(57)【特許請求の範囲】
【請求項１】
情報記録媒体と、
この情報記録媒体に記録された情報を相対的な空間移動に基づく走査によって読み取る情報読み取り手段と、
この情報読み取り手段による前記情報の読み取り時間を検出する読み取り時間検出手段と、
この読み取り時間検出手段によって検出された読み取り時間及び前記記録媒体に記録された情報に基づいて乱数を生成する乱数生成手段と、
この乱数生成手段によって生成された乱数に基づいて暗号鍵を生成する暗号鍵生成手段と、
この暗号鍵生成手段によって生成された暗号鍵を用いて暗号化を行う暗号化手段と、を具備することを特徴とする暗号通信装置。
【請求項２】
前記情報読み取り手段は、手動により操作される情報読み取り手段であることを特徴とする請求項１記載の暗号通信装置。
【請求項３】
前記情報記録媒体に記録された暗号通信関連情報は光学的に読み取り可能な光学情報であり、前記情報読み取り手段は前記光学情報の読み取り手段であり、前記読み取り時間検出手段は、前記光学情報の読み取り時間を検出する読み取り時間検出手段であることを特徴とする請求項２に記載の暗号通信装置。
【請求項４】
前記光学的に読み取り可能な光学情報は前記情報記録媒体上に印刷された濃淡情報であり、前記光学情報読み取り手段は前記濃淡情報の読み取り手段であり、前記読み取り時間検出手段は前記濃淡情報の読み取り手段が情報領域を走査する時間を検出することを特徴とする請求項３に記載の暗号通信装置。
【請求項５】
前記情報記録媒体に記録された暗号通信関連情報は磁気的に読み取り可能な磁気情報であり、前記情報読み取り手段は前記磁気情報の読み取り手段であり、前記読み取り時間検出手段は、前記磁気情報の読み取り時間を検出する磁気情報読み取り時間検出手段であることを特徴とする請求項２に記載の暗号通信装置。
【請求項６】
前記磁気情報読み取り時間検出手段は、前記磁気情報読み取り手段が情報領域を走査する時間を検出することを特徴とする請求項５に記載の暗号通信装置。
【請求項７】
前記情報記録媒体に記録された情報が公開暗号鍵を含むことを特徴とする請求項１から請求項６のいずれか１つに記載の暗号通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は暗号通信装置に関し、例えば電子情報サービス等を公衆回線を介して行う場合の暗号通信装置に関する。
【０００２】
【従来の技術】
ＩＳＤＮ、光ファイバーケーブル通信などのネットワーク通信技術の進歩によって、公衆回線を介してのデータ通信の高速化、大容量化が実現可能となった。これに伴い、ソフトウエアなどの電子コンテンツの販売や流通方式、あるいは公共機関などにおける文書等の閲覧方式は、従来のように店頭販売、通信販売、郵送、公共機関に利用者が出向いての閲覧などの方式から、例えばＴＣＰ／ＩＰ、またはＵＤＰ等のプロトコルを用いて公衆回線を介して（サーバ側から）電子データとしてクライアント（利用者）に配送する方式へと転換していくことが今後予測される。
【０００３】
その際、利用者の利用記録は電子データの配送の際に経由する各サーバーの管理者が閲覧可能であるので、個人情報に関する内容を保護する必要性があり、ＴＣＰ／ＩＰ等におけるアプリケーション層での暗号化技術が必要不可欠であるとされている。
【０００４】
また電子コンテンツの販売においては、契約者以外の第三者が非合法的に有料の電子コンテンツを入手して利用するおそれがあるため、ここでも暗号化技術を用いた利用者の認証が必要となってくる。
【０００５】
公衆回線を流れる個人情報に関する内容を保護するための暗号化手段としては、毎回の暗号化の鍵を変更する方式が取られる。これは、同じ手続きで暗号化された類似する２個の平文に対応する暗号文を入手してその差分をとることにより解読を行なういわゆる「差分暗号攻撃」に対して必要となる対策である。暗号化方法を変更するために毎回の通信の際に用いられる暗号化鍵をセッションキーと称する。このセッションキーの生成の際に、毎回、乱数をもとに暗号鍵を生成する方法が用いられている。
【０００６】
また、認証の方法としては、ＲＳＡ方式、Deffine-Helmann 方式（池野、小山著、現代暗号理論：電子情報通信学会発行を参照）、特開平８−５５０２１号公報に記載の方式、および特開平６−１５００８２号公報に記載されているFiat-Shamir 方式などがある。このうち、最後の３つの方式では毎回の認証において乱数の生成を必要とする。
【０００７】
乱数の生成方法としては、ある種(seed)になる値を利用者に指定させ、それを基に乱数を生成するアルゴリズムを用いる方法が最も安全とされている。
例えば、Pill Zimmermann が開発したＰＧＰ方式（Pretty Good Privacy ：ＰＧＰ暗号メールと電子署名、Simson Garfinkel著を参照）では、キーボードの打鍵速度を測定して、この測定結果に基づいて乱数を生成させている。また、特開平８−５５０２１号公報は、これに加えて利用者が動かすマウスの軌跡を追跡して一方向性関数によってセッションキーを生成する方法を開示している。
【０００８】
【発明が解決しようとする課題】
しかしながら、上記した先行技術はいずれも、情報記録媒体に記録された情報の読み取り動作の他に、乱数生成のための動作を別個に必要とするので、利用者に余分な負担を与えてしまうという欠点があった。
【０００９】
本発明の暗号通信装置はこのような課題に着目してなされたものであり、その目的とするところは、乱数生成のためのみの動作を不要にして利用者に余分な負担がかからない暗号通信装置を提供することにある。
【００１０】
【課題を解決するための手段】
上記の目的を達成するために、第１の発明に係る暗号通信装置は、情報記録媒体と、この情報記録媒体に記録された情報を相対的な空間移動に基づく走査によって読み取る情報読み取り手段と、この情報読み取り手段による前記情報の読み取り時間を検出する読み取り時間検出手段と、この読み取り時間検出手段によって検出された読み取り時間及び前記記録媒体に記録された情報に基づいて乱数を生成する乱数生成手段と、この乱数生成手段によって生成された乱数に基づいて暗号鍵を生成する暗号鍵生成手段と、この暗号鍵生成手段によって生成された暗号鍵を用いて暗号化を行う暗号化手段と、を具備する。
【００１１】
また、第２の発明に係る暗号通信装置は、第１の発明に係る暗号通信装置において、前記情報読み取り手段は、手動により操作される情報読み取り手段である。
また、第３の発明に係る暗号通信装置は、第２の発明に係る暗号通信装置において、前記情報記録媒体に記録された暗号通信関連情報は光学的に読み取り可能な光学情報であり、前記情報読み取り手段は前記光学情報の読み取り手段であり、前記読み取り時間検出手段は、前記光学情報の読み取り時間を検出する読み取り時間検出手段である。
【００１２】
また、第４の発明に係る暗号通信装置は、第３の発明に係る暗号通信装置において、前記光学的に読み取り可能な光学情報は前記情報記録媒体上に印刷された濃淡情報であり、前記光学情報読み取り手段は前記濃淡情報の読み取り手段であり、前記読み取り時間検出手段は前記濃淡情報の読み取り手段が情報領域を走査する時間を検出する。
【００１３】
また、第５の発明に係る暗号通信装置は、第２の発明に係る暗号通信装置において、前記情報記録媒体に記録された暗号通信関連情報は磁気的に読み取り可能な磁気情報であり、前記情報読み取り手段は前記磁気情報の読み取り手段であり、前記読み取り時間検出手段は、前記磁気情報の読み取り時間を検出する磁気情報読み取り時間検出手段である。
【００１４】
また、第６の発明に係る暗号通信装置は、第５の発明に係る暗号通信装置において、前記磁気情報読み取り時間検出手段は、前記磁気情報読み取り手段が情報領域を走査する時間を検出する。
【００１５】
また、第７の発明に係る暗号通信装置は、第１から第６のいずれか１つの発明に係る暗号通信装置において、前記情報記録媒体に記録された情報が公開暗号鍵を含む。
【００１６】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を詳細に説明する。まず、第１実施形態を説明する。
第１実施形態では、情報記録媒体に記録された情報を、この情報記録媒体と情報を読み取る装置との相対的な空間移動に基づく走査によって読み取り、その空間的な移動速度に伴う時間情報（読み取り時間）ｔを記録保持して、この時間情報ｔに基づいて暗号化に用いるときの乱数を生成する。すなわち、本実施形態では、情報記録媒体から情報を読み取るときに、暗号通信に必要な乱数の生成をもともに行なうようにする。
【００１７】
ここで、情報記録媒体に記録された情報とは、例えば光学的または磁気的な方法により読み取り可能な形式で記録された情報であり、暗号化通信を行なうための情報を含んでいる。光学的な方法は情報記録媒体に印刷された濃淡情報からの光の反射率の差異によりデジタル情報として読み取るものである。例えば、紙面上に印刷されたバーコードの情報、ドットマトリックスの情報などがこれに当たる。磁気的な方法は、紙面上などに塗布された磁性体の磁場の情報を読み取って電気信号に変換しデジタル情報として読み取るものである。
【００１８】
図１は利用者が本実施形態による方法によって乱数を生成してセンター３との間で暗号通信を行なうときのようすを説明するための図である。
図１に示すように情報記録媒体であるデータシート１には公衆回線２を介して情報サービスを行うセンター３への登録手続きに関する情報を記録しておく。そして、このデータシート１上に印刷されたデータコード４−１、４−２、…、４−ｎの少なくともいずれか１つを利用者がデータコードスキャナ５によってスキャンすることによって利用者端末６からセンター３へ利用開始要求信号を送信する。なお、ここでデータシート１は郵送など信頼できる方法でセンター３より利用者に配送されたもので、センター３はデータシート１の内容についてあらかじめ知っているものとする。
【００１９】
センター３は利用者に対して一時的な利用許可を与えるために素数ｑとその剰余系における原始根αを与える。これらの数はデータコード上にあらかじめ記載されている。利用者はこの素数ｑ及び原始根αと、データコード４−１、４−２、…、４−ｎの少なくともいずれか１つをスキャンしたときに読み取り時間計測部７で得られる時間情報ｔとから後述の一方向性関数により乱数ａを生成する。また、データシート１上に利用者が一方向性関数に使用する条件を示すインデックス情報を記録しておき、利用者端末６からセンター３に公衆回線２を介してインデックス情報を送信しておく。一方向性関数に使用する条件は固定のものでも構わない。
【００２０】
以下に、上記の読み取り動作によって得られた時間情報ｔに基づいて乱数ａを生成する具体的方法を述べる。
（１）剰余系を用いる方法：
乱数ａは、大きい素数ｑとその原始根α（αのべき乗はｑを法とする剰余系の全ての要素を表すことができる）を用い、ｔを整数化して
ａ＝αt mod ｑ  の式で表される。ここで、ｍｏｄは剰余系演算、ｑは剰余系の法である。このとき原始根α、素数ｑなど乱数の生成に使用したデータを予めセンター３が発行した情報記録媒体上に記載しておきそれにインデックス番号をつけておく。利用者がセンター３に対して通信を開始するときにインデックス番号をセンターに送信する。
【００２１】
一方、センターでは予めインデックス番号とα，ｑとの対応関係を知っているので、センターは受信したインデックス番号により利用者がどのｑ，αの組を選んだかを知ることができる。ここで乱数ａは整数であるので、デジタルデータに符合するような形式に変換することは容易である。
【００２２】
（２）カオス数列の演算を用いる方法：
図２に示すような区間［０，１］で定義された、テント写像（図２（ａ））、ロジティクス写像（図２（ｂ））、チェビシェフ写像（図２（ｃ））を用いて
Ｘn+1 ＝ｆ（Ｘn ）
の写像を考える。ここでｎは初期値Ｘo からｎ回目の写像を行ったことを表す。ここで時間情報ｔから乱数を生成するためにまず初期値Ｘo として前述の時間情報ｔを用いる。あるいは、初期値Ｘo として適当な数の下数桁を時間情報ｔと交換したものを用いる。写像の回数ｎが十分大きければ攪拌の効果が十分となり、初期値Ｘo に対して敏感に変化して、そのデータ領域は０〜１間の計算機上での精度限界に等しくなる。
【００２３】
上記したカオス数列を生成する写像を用いることによって、ホワイトノイズに近い性質をもつ初期値Ｘo に対して無相関な実数乱数が得られる。このようにして初期値Ｘo からｋ回の写像により得られた実数乱数Ｘk から、デジタル情報に符合するようなビット系列の乱数に変換するには例えば以下のような方法がある。
【００２４】
（ａ）Ｘk を定数倍して一定間隔の桁の２５６を法とする剰余系を計算する。
（ｂ）実数（有理数）の２進数展開を行う。
Ｘk ＝２0 ＋２-1＋２-2…＋ε
（ｃ）ｔの値を閾値として１、０からなる閾値関数を作る。
【００２５】
Ｑt （Ｘk ）＝  ：０ if Ｘk ＜ｔ，１if  Ｘk ＞ｔ
（ｄ）Ｘk ，Ｘk-1 ，Ｘk-2 …を用いて一つの閾値ｔに関して（ｃ）と同じ様な変化を逐次行い、複数のビット列を得る。ビット列は容易に整数の型の数値に変換できる。このようにして得られた、ビット列あるいは整数の乱数をａとする。
【００２６】
ここでも、前述と同様に情報記録媒体上にこのような乱数を得るための諸条件すなわち、カオス写像としてどのような関数・アルゴリズムをどのような初期条件で用いたか（ここで初期条件は時間情報ｔを除いたものを指す）などを予め記載しておく。
【００２７】
アルゴリズム・初期条件などの情報をセンター３に対して示すために前述と同様にインデックス番号を付けておく。センター３は必要に応じて利用者が使用した乱数生成の条件などの情報を知りうる。なお、カオス数列の乱数としての性質については、文献（香田  徹、暗号通信やＳＳ通信のための確率論的符号としてのカオスの応用に関する研究：電子通信フロンティア研究  第６回成果報告会予稿集）に詳しく解説されている。
【００２８】
次に、このようにして得られた整数あるいはビット列の乱数ａを用いて、利用者とセンター３との間で認証を行い、一時的な共通鍵の生成により暗号通信を行なう２つの方法について説明する。
１）＜乱数を用いて、一時的な電子コンテンツの利用サービスを行う認証＞：
ここでは、Deffine-Helmann の方式により一時的な利用許可の認証を行う方法を図３及び図４を参照して説明する。
【００２９】
時間情報ｔは前記したようにデータコード４−１、４−２、…、４−ｎの少なくともいずれか１つのスキャンにより得られるが、より詳細には、図４に示すデータコードスキャナ５のセンサ５ａによりデータコード４−１、４−２、…、４−ｎの少なくともいずれか１つからの反射光を検出して電気信号に変換し、ＡＮＤ回路５ｂでこれとクロック５ｃとのＡＮＤをとり、読み取り時間計測部５ｄでＡＮＤ回路５ｂからの出力に基づいて時間情報ｔを生成して出力する。この時間情報ｔは利用者端末６に供給される。
【００３０】
利用者端末６の一方向性関数演算部６ａは時間情報ｔ、データコード４−ｎの原始根α、素数ｑに基づいて乱数ａ＝Ｃ1 （ｔ）を生成する。次に、剰余系演算部６ｂはデータコード４−ｎの乱数ａと素数ｑ、原始根αとを用いて、Ｒ2 ＝αa mod ｑを計算してセンター３に送信する。ここでは受信者Ｂとしてのセンター３は利用者の登録番号（公開鍵）を管理するものとする。
【００３１】
次に、センター３の剰余系演算部３ｄは一時的な秘密データｂを用いてＲ3 ＝αb mod ｑを計算して利用者端末６に送る。このとき剰余系演算部３ｄは同時に受信したＲ2 を用いてＫ＝Ｒ2 b mod ｑを計算しておく。ここでＫは利用者とセンター３との間の一時的な共有鍵である。
【００３２】
次に、利用者端末６の剰余系演算部６ｃは受信したＲ3 を用いてＫ＝Ｒ3 a mod ｑを計算する。
利用者が共有鍵Ｋを持っている事を公衆回線２を通じて第３者に知られないように、かつセンター３だけが知るために、ここでも一方向性関数演算部６ｄでＫを変換して（Ｃa ＝ＣＡ（Ｋ））、演算結果Ｃa をセンター３に送る。これに先だってセンター３側の一方向性関数演算部３ｅは剰余系演算部３ｄで求めたＫに基づいてＣb ＝ＣＢ（Ｋ）を演算しておく。
【００３３】
ここで、利用者端末６で一方向性関数ＣＡ（）によりＣa ＝ＣＡ（Ｋ）を計算する場合に、センター３と同じアルゴリズムで計算されるようにデータシート１上に記載しておく。したがって、センター３と利用者が正しい手続きをとれば、お互いに同じ条件で数Ｃa ，Ｃb の計算が行える。
【００３４】
次に、センター３の比較手段３ｆは利用者端末６から送信された演算結果Ｃa とＣb とを比較することにより利用者の鍵Ｋの確認を行ない、両者が一致するときは許可信号を一方向性関数・カオス数列演算部６ｅに出力するとともに、一致しないときは通信拒絶手続き３ｇを行なう。すなわち、センター３はＣa ＝Ｃb となるときにかぎって利用者が秘密鍵ａを持っていて鍵Ｋを正しく計算できたことを知ることができ、これによってセンター３は利用者を認証したことになる。
【００３５】
利用者とセンター３は一時的な共有鍵Ｋから共通の手順により乱数列を生成することができるので、センター３の排他的論理和演算器３ｊは、コンテンツデータ入力部３ｉから入力された暗号化したいデータ列Ｍi （ｉ＝１，２，…，ｎ）と、一方向性関数・カオス数列演算部３ｈで上述と同様に共通の秘密情報Ｋを初期値として得られたカオスなどの乱数列Ｃb ′i （ｉ＝１，２，…，ｎ）との間で排他的論理和演算Ｄi ＝Ｍi ＸＯＲ  Ｃb ′i   を行って暗号化データ列Ｄi （ｉ＝１，２，…，ｎ）を出力する。これによって暗号文Ｄ＝Ｄ1 ，Ｄ2 ，…Ｄn が得られる。なお、Ｍi は元のデータ列Ｍの部分でＣb ′i 、Ｄi 、Ｍi のデータサイズは等しい。また、ＸＯＲは排他論理和のビット演算を表している。
【００３６】
利用者端末６は、共有鍵Ｋからセンター３が使用した乱数列Ｃb ′i （ｉ＝１，２，…，ｎ）と同じ乱数列Ｃa ′i （ｉ＝１，２，…，ｎ）を一方向性関数・カオス数列演算部６ｅで得ることができるので、排他的論理和演算器６ｆで排他的論理和演算Ｍi ＝Ｄi ＸＯＲＣa ′i を行なうことにより、復号データとして元の情報Ｍを得ることができる。
２）＜公開鍵−秘密鍵方式による認証と一時的な共通暗号鍵の生成＞：
ここでは文献（池野、小山）に記載の公開鍵−秘密鍵方式を用いた一時的な共通の鍵の生成方法を図５、図６を用いて説明する。
【００３７】
送信者Ａとしての登録済みの利用者端末６と、受信者Ｂとしてのセンター３は両者に共通する大きい素数ｑとその原始根αから秘密鍵−公開鍵の組をあらかじめ生成しておく。これは利用者端末６の秘密鍵をＸa 、公開鍵をＹa とすると、
Ｙa ＝αXa mod  ｑで表される。
【００３８】
同様にして、センター３の秘密鍵をＸb 、公開鍵をＹb とすると、
Ｙb ＝αXb  mod ｑで表される。
このような手続きに必要なことは、利用者端末６とセンター３がそれぞれ、利用者の秘密鍵Ｘa ，センター３の秘密鍵Ｘb を記憶しておきその秘密を絶対に他にもらしてはならないことである。また、センター３との共通のｑ，αの組み合わせを持っていることが必要となり、第３者の利用から保護されている。
【００３９】
図１に示す情報記録媒体であるデータシート１には情報サービスを行うセンター３への登録手続きの情報、原始根α，素数ｑ、センター３の公開鍵情報を記載しておく。データシート１はセンター３から利用者に郵送などの信頼できる方法によって配送される。ここで、センター３の公開鍵はセンター３自身の証明を直接付けておくと、利用者はその公開鍵を信用して良いので使うことができる。
【００４０】
まず、データコードスキャナ５を用いてデータコード４−１、４−２、…、４−ｎの少なくともいずれか１つをスキャンした後、利用者端末６からセンター３へ利用開始要求信号を送信する。利用者がデータコード４−１、４−２、…、４−ｎの少なくともいずれか１つをスキャンすることにより時間情報ｔが得られるが、より詳細には、図６に示すデータコードスキャナ５のセンサ５ａによりデータコード４−１、４−２、…、４−ｎの少なくともいずれか１つからの反射光を検出して電気信号に変換し、ＡＮＤ回路５ｂでこれとクロック５ｃとのＡＮＤをとり、読み取り時間計測部５ｄでＡＮＤ回路５ｂからの出力に基づいて時間情報ｔを生成して出力する。この時間情報ｔは利用者端末６に供給される。
【００４１】
利用者端末６の一方向性関数演算部６ｇは時間情報ｔ、データコード４−ｎの原始根α、素数ｑに基づいて一方向性関数を用いて乱数ａを算出する。次に、剰余系演算部６ｈはこの乱数ａと、秘密鍵Ｘa の入力部８から入力された秘密鍵Ｘa と、データコード４−ｎから得られたセンター３の公開鍵Ｙb 、素数ｑとを用いて、
Ｚab＝Ｙb a・Xa mod  ｑ
を計算し、これを利用者の公開鍵Ｙa とともにセンター３に送信する。
【００４２】
センター３の剰余系演算部・一時的な鍵の計算部３ｎは、センター３側の乱数生成器３ｌで生成した秘密の乱数ｂを用いて、
Ｚba＝Ｙb b・Xb mod  ｑ、    Ｋb ＝Ｚab b mod ｑ
を計算して利用者端末６の一時的な鍵の計算部６ｉにＺbaを送信する。
【００４３】
一時的な鍵の計算部６ｉは受信したＺbaを用いて、
Ｋa ＝Ｚba a mod ｑ
を計算する。ここで、
Ｋa ＝Ｙa b・Xb・a mod  ｑ＝α  Xa・b ・Xb・a mod  ｑ
Ｋb ＝Ｙb a ・Xa・b mod ｑ＝α  Xb・a・Xa・b mod ｑ
となるので、両者は同じ数Ｋ＝Ｋa ＝Ｋb を所持していることになる。ここで、利用者が数Ｋをもっていることを、公衆回線２を通じて、第３者に判らないようにセンター３だけが確認するためには、前述の１）と同様に一方向性関数を利用する。
【００４４】
利用者端末６の一方向性関数演算部６ｊは計算したＫを用いて一方向性関数ＣＡ（）によりＣa ＝ＣＡ（Ｋ）を計算してセンター３に送信する。これに先だって、センター３側の一方向性関数演算部３ｏは剰余系演算部３ｎで演算したＫb に基づいてＣb ＝ＣＢ（Ｋ）を計算しておく。
【００４５】
ここで、利用者がセンター３と同じアルゴリズムで計算するようにデータコード上にこのアルゴリズムを記載しておく。したがって、センター３と利用者が正しい手続きをとれば、お互いに同じ条件で数Ｃa ，Ｃb の計算が行える。
【００４６】
利用者端末６からセンター３に演算結果Ｃa を送信するとセンター３は比較手段３ｐを用いて受信したＣa と自身で求めたＣb とを比較することにより、利用者の鍵Ｋの確認を行ない、両者が一致しないときは通信拒絶手続き３ｑを行い、一致したときは一方向性関数・カオス数列演算部６ｋに許可信号を出力する。すなわち、Ｃa ＝Ｃb となったときにかぎり、受信者Ｂ（センター３）は送信者Ａが秘密鍵ａを持っていてＫを正しく計算できたことを知ることができる。これによって、センター３は利用者を認証したことになる。
【００４７】
このようにして、利用者端末６とセンター３がそれぞれ、一時的な共有暗号鍵Ｋを生成し、センター３側では利用者が共有鍵Ｋを所持していることを、公衆回線２を用いて秘密裏に行うことができる。
【００４８】
次に、１）で述べた方法と同様に、排他的論理和演算器３ｓは、共有鍵Ｋを用いて一方向性関数・カオス数列演算部３ｒで求められたＣb ′と、コンテンツデータ入力部３ｔからの暗号化すべきコンテンツとの排他的論理和をとり、排他的論理和演算器６ｌはこの結果と、同じ共有鍵Ｋを用いて一方向性関数・カオス数列演算部６ｋで求められたＣa ′との排他的論理和をとることにより復号データが得られる。
【００４９】
上記したように、第１実施形態では、情報記録媒体に記録された情報を読み取る動作と同時に暗号通信に必要な乱数の生成を行うようにしたので、乱数生成のためのみの動作が不要になり、これによって利用者に余分な負担を与えることなく暗号通信を行なうことができる。
【００５０】
また、時間情報ｔと、剰余系の指数演算、あるいはカオスの演算等で得られた乱数ａとの間には相関がないので、結果として性質の良い乱数を容易に得ることができる。
【００５１】
なお、２）で示したような、公開鍵、秘密鍵の認証方式を併用した一時的な電子コンテンツの利用許可は、例えば、利用者が料金を支払い、バーコードが印刷されたカードを購入し、所定の回数だけ電子コンテンツの利用を行った後、カードを無効とするような有料のサービスを行う。正当なカード購入者であって公開鍵に対応した秘密鍵を所持しているものだけが利用できるので、仮に第３者がカードを拾う、盗むなどして利用しようとしてもそれを防止することができる。
【００５２】
また、公開鍵−秘密鍵方式の認証の場合、その本人が公開鍵の本当の持ち主であるかどうかは電子的には証明できないので、公正な第３者による署名付きの証明が必要になるが、前記情報記録媒体に公開鍵情報を記録しておき通信の相手（利用者）に直接郵送することによって、認証の問題が容易でかつ確実に解決される。
【００５３】
以下に、図７、図８を参照して本発明の第２実施形態を説明する。
第２実施形態では第１実施形態の暗号通信方法を用いて電子的な投票と集計とを行なう。図１に示す第１実施形態における情報記録媒体はバーコード形式でデータコードが印刷された投票用紙１１である。また、図１と同様に図７に示すようなペン型のデータコードスキャナ１５でデータコードの情報を読み取るものとする。投票用紙１１は投票結果集計センターまたは中継局（以下、単にセンターと呼ぶ）１３から利用者として各投票者宛に郵送によって配送される。これにより、前述のように暗号通信においてセンター１３の公開鍵を利用する場合に、センター１３の公開鍵の正当性をあらかじめ証明した状態で投票者に利用してもらうことができる。
【００５４】
以下に、各投票者がセンター１３への登録手続き及び投票を行なう方法を述べる。投票者が、投票用紙１１上のデータコード１４−１、１４−２、…、１４−ｎのうち、投票しようとする候補者のデータコードをペン型のデータコードスキャナ１５で走査すると、このときの走査時間に関わる時間情報ｔは、例えばデータコードスキャナ１５上に設けられ、このデータコードスキャナ１５が保持されている時間を計測できる装置、例えば静電スイッチによって計測される。あるいは、投票者用端末１６であるコンピュータはデータコード１４−１、１４−２、…、１４−ｎのうち、投票者が投票しようとする候補者のデータコードの開始点と終了点が読み込まれた時間を記憶しておき、その時間差によって時間情報ｔを得る。このようにして得られた時間情報ｔから、前述の剰余系の指数演算、あるいはカオスを生成する演算を利用して、乱数ａを得る。
【００５５】
公衆回線１２を介して公的な投票、住民選挙などを行う場合に、公衆回線１２上を投票に関するデータが通過するのであるから、データの改竄を防ぎ、選挙としての公正さを保たなければならない。そこで、データを暗号化して通信することが必要となる。
【００５６】
このときに必要とされる要件としては、
１：（不）特定多数に配る投票用紙は共通のデータ（候補者に関するデータ）よりなる。データの記録媒体としては一括して多数印刷できうるようなものが好ましい。
２：同一の候補者のデータの暗号化が投票（通信）毎に異なっていることで、第３者による解読と改竄を困難にする。
３：乱数を生成するために使用者（投票者）に負担を与えない。
４：投票者による２重投票を防止する。
５：投票者個人の秘密データ（パスワード）漏洩を防ぐ。
６：キーボードの操作に不慣れな使用者（投票者）には、パスワードが書かれているＩＣカード等の利用を可能にする。
【００５７】
第２実施形態では図８に示す手順に従って電子的な投票及び集計を行なう。
まず、投票者が候補者に対応するバーコードをスキャンし、上記の方法におり得られたスキャン時間から暗号化に必要なデータを算出する（ステップＳ１）。次に、秘密鍵（パスワード）を入力し、図５に従った認証手続き（（２）の方法）を行なう（ステップＳ２、Ｓ３）。候補者のデータを暗号化して電子メールにてセンター１３に送信する（ステップＳ４、Ｓ５）。
【００５８】
上記した第２実施形態では、投票用紙から投票に必要な情報を読み取る動作と同時に暗号通信に必要な乱数の生成を行うようにしたので、乱数生成のためのみの動作が不要になり、これによって利用者に余分な負担を与えることなく暗号通信を行なうことができる。
【００５９】
また、このようにして得られた乱数を使用者の秘密鍵（パスワード）と組み合わせて認証を行うことによって、確実に暗号通信が行える。前述のように時間情報ｔと乱数ａの間には相関が無いので、投票の毎に得られる乱数ａは一様分散であり、容易に同一の数は得られない、たとえ同一の数が演算上得られたとしても、何番目の投票と何番目の投票が同一の乱数ａを用いたかを知り得ることは極めて困難である。従って、通信毎に元データ（実施例の場合、候補者）を暗号化するパラメータが異なるため容易に第３者が通信文を解読改竄することができない。
【００６０】
センターの公開鍵の正当性は、センター１３から各利用者にデータコードが印刷された印刷物を郵送するときに自らによって証明できるので、電子的な送信方法と異なり、各ドメインにおけるメールサーバーの管理者の権限で内容を改竄するようなことが出来ないのでより安全である。
【００６１】
また、公開鍵−秘密鍵方式の利用によって投票結果を集計するセンターが使用者の公開鍵の使用状況を管理しておけば、使用者の不意あるいは故意による二重投票を防止することができる。
【００６２】
また、投票用紙は日付が指定してあり、媒体も紙であるので使い捨て、あるいは紙資源としてリサイクルで利用することができる。
以下に、図９を参照して本発明の第３実施形態を説明する。
【００６３】
第３実施形態では情報記録媒体として、磁気記録方式によってデータが記録された磁気カードを読み取ることにより乱数を生成する。すなわち図９において、このような磁気カード２１を端末利用者が磁気カードリーダー２５を手動で通したときに、磁気カード２１の通過に要した時間を、例えばカード通過時間計数装置としての光インタラプタ２４などを用いて磁気カード２１が光インタラプタ２４を遮光した時間により計数する。あるいは、利用者端末２６であるコンピュータは磁気カード２１に記録された磁気データの開始点と終了点が読み込まれた時間を記憶しておき、その時間差によって時間情報ｔを得る。磁気カード２１には、情報のサービスを行うセンター２３が持つ利用者端末２６の登録番号、センター２３に接続するためのプロトコル、乱数を生成するアルゴリズム、利用の有効期間を記載しておく。
【００６４】
例えばインターネットの利用において、規模の大きい電子図書館などの電子コンテンツサービスを行う場合、時間当たりのアクセス数を制限することによって、利用者当たりの通信速度が向上して快適な通信環境になる。アクセス数の制限は、将来、電子コンテンツが現在の立体モデル（ＶＲＭＬ、object QuicktimeＶＲ）を凌駕するような容量のマルチメディアになればさらに深刻である。
【００６５】
このとき、アクセス数の制限をサーバー側から強制的に行えば、利用希望者はサーバーのアクセス状況を常に監視していなければならず、時間と資源の浪費である。ここでアクセス数とアクセス時間を前もって磁気カードの媒体に記録して利用者に配っておけば、利用者は指定された時間に確実に利用することができる。
【００６６】
ここで、磁気カードは、サーバーの公開鍵と、一時的な鍵生成の為の乱数生成のアルゴリズム、アクセス有効期限などが記載されている。この程度の容量のデータであれば磁気カードで十分にまかなうことができる。また利用希望者に登録制をとれば、サーバー側に利用者の公開鍵をサーバーの公開鍵で暗号化して送信しておく。
【００６７】
利用者は図９に示すように、利用者端末２６に接続された磁気カードリーダー２５に手動で磁気カード２１を通し、磁気カード２１に記録されたデータを読み取ることが、情報記録媒体の相対的な空間移動に基づく走査によって読み取る情報読み取り手段に相当する。磁気カードリーダー２５に設けられた光インタラプタ２４は、光学的に前記情報の読み取り時間を検出する読み取り時間検出手段である。
【００６８】
このようにデータコードを手動でスキャンする時点で計数された時間ｔよりデータコードで記述された上述の方式により乱数を生成させ、公開鍵−秘密鍵方式による認証を行い、通信を行う２者の間で共通の一時的な暗号鍵を生成する。
【００６９】
電子コンテンツのサービスを行うサーバーはこの一時的な共通の暗号鍵によって、前記サービスの電子コンテンツを暗号化して利用者に送信する。利用者は図６に示した方式で暗号化データを復号化してサービスを受ける。磁気データカードは使いきりのものにしても良いし、サーバーに送り返して再利用するようにしてもかまわない。
【００７０】
上記した第３実施形態によれば、磁気カードに記録された情報を読み取る動作と同時に暗号通信に必要な乱数の生成を行うようにしたので、乱数生成のためのみの動作が不要になり、これによって利用者に余分な負担を与えることなく暗号通信を行なうことができる。また、磁気カードには利用の有効期限を記録しているので、サービスを同時に利用できる人数が予め制限されており通信回線の混雑を回避することができる。
【００７１】
なお、上記した具体的実施形態から以下に示す構成を有する発明が含まれている。
（１）  情報記録媒体と、
この情報記録媒体に記録された情報を相対的な空間移動に基づく走査によって読み取る情報読み取り手段と、
この情報読み取り手段による前記情報の読み取り時間を検出する読み取り時間検出手段と、
この読み取り時間検出手段によって検出された読み取り時間に基づいて乱数を生成する乱数生成手段と、
この乱数生成手段によって生成された乱数に基づいて暗号鍵を生成する暗号鍵生成手段と、
この暗号鍵生成手段によって生成された暗号鍵を用いて暗号化を行う暗号化手段と、
を具備することを特徴とする暗号通信装置。
（２）  前記情報記録媒体に記録された情報は暗号通信を行なうための暗号通信関連情報を含むことを特徴とする構成（１）に記載の暗号通信装置。
（３）  前記情報読み取り手段は、手動により操作される情報読み取り手段であることを特徴とする構成（１）または（２）に記載の暗号通信装置。
（４）  前記情報記録媒体に記録された暗号通信関連情報は光学的に読み取り可能な光学情報であり、また前記情報読み取り手段は前記光学情報の読み取り手段であり、前記読み取り時間検出手段は、前記光学情報の読み取り時間を検出する読み取り時間検出手段であることを特徴とする構成（２）または（３）に記載の暗号通信装置。
（５）  前記光学的に読み取り可能な光学情報は前記情報記録媒体上に印刷された濃淡情報であり、前記光学情報読み取り手段は前記濃淡情報の読み取り手段であり、前記読み取り時間検出手段は前記濃淡情報の読み取り手段が情報領域を走査する時間を検出することを特徴とする構成（４）に記載の暗号通信装置。
（６）  前記情報記録媒体に記録された暗号通信関連情報は磁気的に読み取り可能な磁気情報であり、また前記情報読み取り手段は前記磁気情報の読み取り手段であり、前記読み取り時間検出手段は、前記磁気情報の読み取り時間を検出する磁気情報読み取り時間検出手段であることを特徴とする構成（２）または（３）に記載の暗号通信装置。
（７）  前記磁気情報読み取り時間検出手段は前記磁気情報読み取り手段が情報領域を走査する時間を検出することを特徴とする構成（６）に記載の暗号通信装置。
（８）  前記情報記録媒体に記録された情報が公開暗号鍵を含むことを特徴とする構成（１）〜（７）のいずれか１つに記載の暗号通信装置。
【００７２】
【発明の効果】
本発明によれば、乱数生成のためのみの動作が不要になるので利用者に余分な負担がかからない暗号通信装置を提供することができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態における暗号通信の第１の形態を説明するための図である。
【図２】本発明の第１実施形態において、カオス数列の演算によって乱数を生成する場合に用いられる各写像を示す図である。
【図３】本発明の第１実施形態において、一時的な利用許可の認証を行なう第１の通信手順を説明するための図である。
【図４】図３に示す第１の通信手順を実現するための利用者端末及びセンターの構成を示す図である。
【図５】本発明の第１実施形態において、一時的な利用許可の認証を行なう第２の通信手順を説明するための図である。
【図６】図５に示す第２の通信手順を実現するための利用者端末及びセンターの構成を示す図である。
【図７】本発明の第２実施形態において、電子的な投票と集計を行なう方法の概略を説明するための図である。
【図８】本発明の第２実施形態において、電子的な投票と集計を行なう手順を説明するための図である。
【図９】本発明の第３実施形態における暗号通信の方法を説明するための図である。
【符号の説明】
１…データシート、２…公衆回線、３…センター、４−１、４−２、…、４−ｎ…データコード、５…データコードスキャナ、６…利用者端末、７…保持時間検出器。
【図１】
0003854674.tif 000002
【図２】
0003854674.tif 000003
【図３】
0003854674.tif 000004
【図４】
0003854674.tif 000005
【図５】
0003854674.tif 000006
【図６】
0003854674.tif 000007
【図７】
0003854674.tif 000008
【図８】
0003854674.tif 000009
【図９】
0003854674.tif 000010