JPH10240128A - 暗号装置、暗号鍵生成方法及び暗号鍵管理方法、並びに素数生成装置及び素数生成方法 - Google Patents
暗号装置、暗号鍵生成方法及び暗号鍵管理方法、並びに素数生成装置及び素数生成方法Info
- Publication number
- JPH10240128A JPH10240128A JP34509197A JP34509197A JPH10240128A JP H10240128 A JPH10240128 A JP H10240128A JP 34509197 A JP34509197 A JP 34509197A JP 34509197 A JP34509197 A JP 34509197A JP H10240128 A JPH10240128 A JP H10240128A
- Authority
- JP
- Japan
- Prior art keywords
- prime
- generating
- bits
- prime number
- less
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
用して、暗号鍵生成のもととなる十分な大きさの素数を
生成可能な暗号装置を提供すること。 【解決手段】 自装置内で素数をもとに暗号鍵を生成す
る暗号装置であって、予め定められたnビット以下の値
のすべての素数をもとに2nビット以下の第1の素数を
生成する第1の素数生成手段と、前記nビット以下のす
べての素数および前記第1の素数をもとに2nビットよ
り大きい所定のビット長の第2の素数を生成する第2の
素数生成手段と、前記所定のビット長の第2の素数を用
いて暗号鍵を生成する暗号鍵生成手段とを備えたことを
特徴とする。
Description
理、認証処理などに用いる暗号鍵を自装置内で生成する
暗号装置、暗号鍵生成方法及び暗号鍵管理方法、並びに
素数生成装置及び素数生成方法に関する。
て情報を電子化して扱うことが通常行なわれるようにな
ってきた。また、単にデータを電子化するだけでなく、
電子貨幣システムや著作権に係る電子化情報の配布シス
テムなど新たなサービスも開発されている。このような
電子化情報を扱う場合に、企業秘密やプライベートなデ
ータ、電子貨幣情報、著作権に係る電子化情報など、特
定の者だけが閲覧等可能で、それ以外の者には内容を秘
匿したい情報の蓄積や通信などにあたっては、暗号技術
が使用される。
を行なう場合、送信側では共通鍵あるいは相手の公開鍵
でデータを暗号化し、受信側ではこれを共通鍵あるいは
自分の秘密鍵で復号することで、特定の鍵情報を持つ者
だけが暗号化データを復号可能とすることができる。ま
た例えば鍵情報を用いた認証処理により情報の正当性の
検証を可能としている。
存在するだけで共通鍵の生成を容易に行なうことができ
る。これに対して、公開鍵暗号の公開鍵及び秘密鍵の生
成は、秘密鍵暗号の共通鍵生成ほど簡単な処理ではな
い。特に、公開鍵及び秘密鍵を生成するためには、大き
なビット長の素数が必要になるため、計算量の増加が避
けられない。この大きなビット長の素数を高速に生成す
るための方法として、メモリを利用したテーブル処理が
存在するが、この場合、非常に多くの素数を記憶してお
く必要があり、メモリ資源の限られた暗号装置(例えば
処理機能を有するICカードを暗号装置として用いるも
の)においてはこのテーブル処理は適切ではないとされ
てきた。このような理由から従来では、公開鍵暗号の公
開鍵及び秘密鍵は、通常、パーソナルコンピュータ等の
高速なCPUと十分なメモリが存在する環境で生成する
必要があった。
センターが公開鍵及び秘密鍵を生成し、各ユーザに秘密
鍵を配送する場合、安全性を考慮した鍵配送メカニズム
が必須である。従って、センターが大量の秘密鍵を配送
及び管理することは、かなりの負担であった。
ータ等で公開鍵及び秘密鍵を生成し、秘密鍵を外部記憶
装置に転送及び保持する場合、一時的であっても、パー
ソナルコンピュータのメモリ上に生成された鍵が存在す
ることになり、それがオンラインの状態ならば、鍵が破
壊あるいは改ざんされる可能性がある。また、秘密鍵生
成機能の誤操作等により既に生成された鍵が破壊あるい
は改ざんされる可能性がある。さらに、鍵が破壊あるい
は改ざんなどされたことを検出することはできないとい
う問題点もあった。
号鍵(公開鍵、秘密鍵、共通鍵)を生成する場合、大き
なビット長の素数を生成する必要があるため、多量のコ
ンピュータ資源を必要とする問題点があった。
り既に生成された鍵が破壊される可能性があるという問
題点があった。また、従来、鍵が破壊あるいは改ざんな
どされたことを検出することはできないという問題点が
あった。
のであり、自装置内でより少ないコンピュータ資源を利
用して、暗号鍵生成のもととなる十分な大きさの素数を
生成可能な暗号装置及び暗号鍵生成方法を提供すること
を目的とする。
な暗号装置、暗号鍵生成方法及び暗号鍵管理方法を提供
することを目的とする。また、本発明は、より少ないコ
ンピュータ資源を利用してより大きい素数を生成可能な
素数生成装置及び素数生成方法を提供することを目的と
する。
自装置内で素数をもとに暗号鍵を生成する暗号装置であ
って、予め定められたnビット以下の値のすべての素数
をもとに2nビット以下の第1の素数を生成する第1の
素数生成手段と、前記nビット以下のすべての素数およ
び前記第1の素数をもとに2nビットより大きい所定の
ビット長の第2の素数を生成する第2の素数生成手段
と、前記所定のビット長の第2の素数を用いて暗号鍵を
生成する暗号鍵生成手段とを備えたことを特徴とする。
を生成する暗号装置であって、予め定められたnビット
以下のすべての素数を用いて所定の2nビット以下の乱
数を素数判定することにより2nビット以下の第1の素
数を生成する第1の素数生成手段と、前記第1の素数を
もとに該第1の素数より大きい素数候補を生成し、少な
くとも前記nビット以下のすべての素数を用いた素数判
定により該素数候補が合成数でないと判定された場合に
は該素数候補を新たな第1の素数とし該新たな第1の素
数をもとに該素数候補より大きい新たな素数候補を生成
する処理を再帰的に繰り返すとともに、素数候補が合成
数であると判定された場合には前記合成数と判定された
時点での第1の素数をもとに素数候補を生成し直しあら
ためて該処理を再帰的に繰り返すことにより、2nビッ
トより大きい所定のビット長の第2の素数を生成する第
2の素数生成手段と、前記所定のビット長の素数を用い
て暗号鍵を生成する暗号鍵生成手段とを備えたことを特
徴とする。
を生成する暗号装置であって、予め定められたnビット
以下のすべての素数を用いて所定の2nビット以下の乱
数を素数判定することにより2nビット以下の第1の素
数を生成する第1の素数生成手段と、前記第1の素数生
成手段により生成された2nビット以下の第1の素数お
よび前記nビット以下のすべての素数をもとに2nビッ
トより大きい所定のビット長の第2の素数を生成する第
2の素数生成手段と、前記第1および第2の素数生成手
段を用いて生成された0.4mビットの第2の素数およ
び前記第2の素数をもとに0.5mビットの第3の素数
を生成する第3の素数生成手段と、前記第1および第2
の素数生成手段を用いて生成された他の0.4mビット
の第2の素数、前記第3の素数生成手段により生成され
た0.5mビットの第3の素数および前記nビット以下
のすべての素数をもとにmビットの第4の素数を生成す
る第4の素数生成手段と、前記第4の素数生成手段によ
り生成された前記mビットの第4の素数を用いて暗号鍵
を生成する暗号鍵生成手段とを備えたことを特徴とす
る。
を生成する暗号装置であって、前記暗号鍵を生成する暗
号鍵生成手段と、前記暗号鍵生成手段により前記暗号鍵
が生成されたか否かを示す制御情報を格納する手段と、
前記制御情報により前記暗号鍵が生成されたことが示さ
れている間は、前記暗号鍵生成手段による前記暗号鍵の
生成を不可にする手段とを備えたことを特徴とする。
を生成する暗号装置であって、前記暗号鍵を生成する暗
号鍵生成手段と、前記暗号鍵生成手段により前記暗号鍵
が生成された場合、直ちに、生成された前記暗号鍵のチ
ェックサムを生成するチェックサム生成手段と、前記暗
号鍵とそのチェックサムを対応付けて格納する格納手段
とを備えたことを特徴とする。
をもとに暗号鍵を生成する暗号鍵生成方法であって、予
め定められたnビット以下の値のすべての素数をもとに
2nビット以下の第1の素数を生成し、前記nビット以
下のすべての素数および前記第1の素数をもとに2nビ
ットより大きい所定のビット長の第2の素数を生成し、
前記所定のビット長の第2の素数を用いて暗号鍵を生成
することを特徴とする。
をもとに暗号鍵を生成する暗号鍵生成方法であって、予
め定められたnビット以下のすべての素数を用いて所定
の2nビット以下の乱数を素数判定することにより2n
ビット以下の第1の素数を生成する第1の素数生成ステ
ップと、前記第1の素数をもとに該第1の素数より大き
い素数候補を生成し、少なくとも前記nビット以下のす
べての素数を用いた素数判定により該素数候補が合成数
でないと判定された場合には該素数候補を新たな第1の
素数とし該新たな第1の素数をもとに該素数候補より大
きい新たな素数候補を生成する処理を再帰的に繰り返す
とともに、素数候補が合成数であると判定された場合に
は前記第1の素数生成ステップにて合成数と判定された
時点での第1の素数をもとに素数候補を生成し直しあら
ためて該処理を再帰的に繰り返すことにより、2nビッ
トより大きい所定のビット長の第2の素数を生成する第
2の素数生成ステップと、前記所定のビット長の素数を
用いて暗号鍵を生成する暗号鍵生成ステップとを有する
ことを特徴とする。
をもとに暗号鍵を生成する暗号鍵生成方法であって、予
め定められたnビット以下のすべての素数を用いて所定
の2nビット以下の乱数を素数判定することにより2n
ビット以下の第1の素数を生成する第1の素数生成ステ
ップと、前記第1の素数生成ステップにて生成された2
nビット以下の第1の素数および前記nビット以下のす
べての素数をもとに2nビットより大きい所定のビット
長の第2の素数を生成する第2の素数生成ステップと、
前記第1および第2の素数生成ステップにより生成され
た0.4mビットの第2の素数および前記第2の素数を
もとに0.5mビットの第3の素数を生成する第3の素
数生成ステップと、前記第1および第2の素数生成ステ
ップにより生成された他の0.4mビットの第2の素
数、前記第3の素数生成ステップにより生成された0.
5mビットの第3の素数および前記nビット以下のすべ
ての素数をもとにmビットの第4の素数を生成する第4
の素数生成ステップと、前記第4の素数生成ステップに
て生成された前記mビットの第4の素数を用いて暗号鍵
を生成する暗号鍵生成ステップとを有することを特徴と
する。
暗号鍵生成手段を備えた暗号装置における暗号鍵生成方
法であって、前記暗号鍵生成手段により前記暗号鍵を生
成するのに先だって、前記暗号鍵生成手段により前記暗
号鍵が生成された否かを示す制御情報を参照し、該制御
情報により前記暗号鍵が生成されていないことが示され
ている場合にのみ、前記暗号鍵生成手段により前記暗号
鍵を生成し、前記暗号鍵生成手段により前記暗号鍵を生
成した場合、前記制御情報を前記暗号鍵が生成されたこ
とを示す状態にすることを特徴とする。
鍵を生成する暗号装置における暗号鍵管理方法であっ
て、前記暗号鍵を生成し、直ちに該暗号鍵のチェックサ
ムを生成し、生成された前記暗号鍵と前記チェックサム
とを対応付けて格納することを特徴とする。
nビット以下の値のすべての素数をもとに2nビット以
下の素数を生成する第1の素数生成手段と、前記nビッ
ト以下のすべての素数および前記2nビット以下の素数
をもとに2nビットより大きい前記所定のビット長の素
数を生成する第2の素数生成手段とを備えたことを特徴
とする。
nビット以下のすべての素数を用いて所定の2nビット
以下の乱数を素数判定することにより2nビット以下の
第1の素数を生成する第1の素数生成手段と、前記第1
の素数をもとに該第1の素数より大きい素数候補を生成
し、少なくとも前記nビット以下のすべての素数を用い
た素数判定により該素数候補が合成数でないと判定され
た場合には該素数候補を新たな第1の素数とし該新たな
第1の素数をもとに該素数候補より大きい新たな素数候
補を生成する処理を再帰的に繰り返すとともに、素数候
補が合成数であると判定された場合には前記合成数と判
定された時点での第1の素数をもとに素数候補を生成し
直しあらためて該処理を再帰的に繰り返すことにより、
2nビットより大きい所定のビット長の第2の素数を生
成する第2の素数生成手段とを備えたことを特徴とす
る。
nビット以下のすべての素数を用いて所定の2nビット
以下の乱数を素数判定することにより2nビット以下の
第1の素数を生成する第1の素数生成手段と、前記第1
の素数生成手段により生成された2nビット以下の第1
の素数および前記nビット以下のすべての素数をもとに
2nビットより大きい所定のビット長の第2の素数を生
成する第2の素数生成手段と、前記第1および第2の素
数生成手段を用いて生成された0.4mビットの第2の
素数および前記第2の素数をもとに0.5mビットの第
3の素数を生成する第3の素数生成手段と、前記第1お
よび第2の素数生成手段を用いて生成された他の0.4
mビットの第2の素数、前記第3の素数生成手段により
生成された0.5mビットの第3の素数および前記nビ
ット以下のすべての素数をもとにmビットの第4の素数
を生成する第4の素数生成手段とを備えたことを特徴と
する。
nビット以下の値のすべての素数をもとに2nビット以
下の第1の素数を生成し、前記nビット以下のすべての
素数および前記2nビット以下の素数をもとに2nビッ
トより大きい前記所定のビット長の素数を生成すること
を特徴とする。
nビット以下のすべての素数を用いて所定の2nビット
以下の乱数を素数判定することにより2nビット以下の
第1の素数を生成する第1の素数生成ステップと、前記
第1の素数をもとに該第1の素数より大きい素数候補を
生成し、少なくとも前記nビット以下のすべての素数を
用いた素数判定により該素数候補が合成数でないと判定
された場合には該素数候補を新たな第1の素数とし該新
たな第1の素数をもとに該素数候補より大きい新たな素
数候補を生成する処理を再帰的に繰り返すとともに、素
数候補が合成数であると判定された場合には前記第1の
素数生成ステップにて合成数と判定された時点での第1
の素数をもとに素数候補を生成しあらためて該処理を再
帰的に繰り返すことにより、2nビットより大きい所定
のビット長の第2の素数を生成する第2の素数生成ステ
ップとを有することを特徴とする。
nビット以下のすべての素数を用いて所定の2nビット
以下の乱数を素数判定することにより2nビット以下の
第1の素数を生成する第1の素数生成ステップと、前記
第1の素数生成ステップにて生成された2nビット以下
の第1の素数および前記nビット以下のすべての素数を
もとに2nビットより大きい所定のビット長の第2の素
数を生成する第2の素数生成ステップと、前記第1およ
び第2の素数生成ステップにより生成された0.4mビ
ットの第2の素数および前記第2の素数をもとに0.5
mビットの第3の素数を生成する第3の素数生成ステッ
プと、前記第1および第2の素数生成ステップにより生
成された他の0.4mビットの第2の素数、前記第3の
素数生成ステップにより生成された0.5mビットの第
3の素数および前記nビット以下のすべての素数をもと
にmビットの第4の素数を生成する第4の素数生成ステ
ップとを有することを特徴とする。
に、予め定められたnビット以下の値のすべての素数を
もとに2nビット以下の第1の素数を生成する手順と、
前記nビット以下のすべての素数および前記第1の素数
をもとに2nビットより大きい所定のビット長の第2の
素数を生成する手順とを実行させるためのプログラムを
記録したコンピュータ読取り可能な記録媒体を要旨とす
る。
に、予め定められたnビット以下のすべての素数を用い
て所定の2nビット以下の乱数を素数判定することによ
り2nビット以下の第1の素数を生成する第1の素数生
成ステップと、前記第1の素数をもとに該第1の素数よ
り大きい素数候補を生成し、前記nビット以下のすべて
の素数を少なくとも用いた素数判定により該素数候補が
合成数でないと判定された場合には該素数候補を新たな
第1の素数とし該新たな第1の素数をもとに該素数候補
より大きい新たな素数候補を生成する処理を再帰的に繰
り返すとともに、素数候補が合成数であると判定された
場合には前記第1の素数生成ステップにて合成数と判定
された時点での第1の素数をもとに素数候補を生成し直
しあらためて該処理を再帰的に繰り返すことにより、2
nビットより大きい所定のビット長の第2の素数を生成
する第2の素数生成ステップとを実行させるためのプロ
グラムを記録したコンピュータ読取り可能な記録媒体を
要旨とする。
に、予め定められたnビット以下のすべての素数を用い
て所定の2nビット以下の乱数を素数判定することによ
り2nビット以下の第1の素数を生成する第1の素数生
成ステップと、前記第1の素数生成ステップにて生成さ
れた2nビット以下の第1の素数および前記nビット以
下のすべての素数をもとに2nビットより大きい所定の
ビット長の第2の素数を生成する第2の素数生成ステッ
プと、前記第1および第2の素数生成ステップにより生
成された0.4mビットの第2の素数および前記第2の
素数をもとに0.5mビットの第3の素数を生成する第
3の素数生成ステップと、前記第1および第2の素数生
成ステップにより生成された他の0.4mビットの第2
の素数、前記第3の素数生成ステップにより生成された
0.5mビットの第3の素数および前記nビット以下の
すべての素数をもとにmビットの第4の素数を生成する
第4の素数生成ステップとを実行させるためのプログラ
ムを記録したコンピュータ読取り可能な記録媒体を要旨
とする、好ましくは、前記プログラムはコンピュータに
生成された前記素数を用いて暗号鍵を生成させる手順を
含むものであるようにしてもよい。
タに生成された前記暗号鍵を用いて暗号化対象となるデ
ータを暗号化させる手順を含むものであるようにしても
よい。
に、暗号鍵を生成する前に暗号鍵が生成された否かを示
す制御情報を参照する手順と、該制御情報により前記暗
号鍵が生成されていないことが示されている場合にのみ
暗号鍵を生成する手順と、暗号鍵を生成した場合に前記
制御情報を暗号鍵が生成されたことを示す状態にする手
順とを実行させるためのプログラム記録したコンピュー
タ読取り可能な記録媒体を要旨とする。
に、暗号鍵を生成する手順と、暗号鍵を生成したら直ち
に該暗号鍵のチェックサムを生成する手順と、生成され
た暗号鍵とチェックサムとを対応付けて所定の記憶領域
に格納する手順とを実行させるためのプログラム記録し
たコンピュータ読取り可能な記録媒体を要旨とする。
発明としても成立し、方法に係る発明は装置に係る発明
としても成立する。また、装置または方法に係る本発明
は、コンピュータに当該発明に相当する手順を実行させ
るための(あるいはコンピュータを当該発明に相当する
手段として機能させるための、あるいはコンピュータに
当該発明に相当する機能を実現させるための)プログラ
ムを記録したコンピュータ読取り可能な記録媒体として
も成立する。
11〜16)において、nビットは好ましくは2の倍数
である。例えばnビット=256=28 の場合、256
以下の素数は全部で53個である。また、所定のビット
長は、例えば256ビットあるいは384ビットであ
る。また、mは、例えば256あるいは384である。
ビット以下のすべての素数を用いる素数判定(エラトス
テネスのふるい)の次に少なくともフェルマーテストを
行なうのが好ましい。
数生成装置は、プログラム記憶手段、プログラムを実行
する演算手段、データの読み出し及び書き込み可能なメ
モリ手段及び外部との通信を行なう手段を備えても良
い。
は、例えばパーソナルコンピュータで実現することがで
きる。あるいはICカードで実現することもできる。本
発明(請求項1、2、3、6)によれば、確定的素数判
定方法と、第1の素数を素数判定するときに用いる(第
1の素数)1/2 以下の素数を格納した素数テーブルとを
組合わせることによって、暗号装置のメモリ容量に対応
したサイズのテーブルを利用することが可能になる。
ルコンピュータのような暗号装置でなく、メモリ容量が
限定されている暗号装置(例えばICカード)であって
も装置上に容易に鍵(例えば公開鍵暗号における公開鍵
及び秘密鍵)の生成機能を実装することが可能になる。
鍵を生成することができる。また、確定的素数判定方法
を用いるので、確実に素数を得ることができ、安全な鍵
を得ることができる。
より、鍵に対する安全性を向上させ、鍵の管理を容易に
することができる。また、個々の暗号装置内で鍵を生成
し、暗号装置内で暗号処理及び復号処理を行なうなら
ば、鍵は決して暗号装置外に出ることがないので、鍵に
対する高い安全性を保つことができる。
置が秘密鍵および公開鍵を生成することにより、鍵を管
理するセンターは、個々の暗号装置に対し鍵生成及び配
送をする必要がなくなり、鍵生成及び管理に伴う処理の
負担が軽減される。
定的素数判定方法と、第1の素数を素数判定するときに
用いる(第1の素数)1/2 以下の素数を格納した素数テ
ーブルとを組合わせることによって、装置のメモリ容量
に対応したサイズのテーブルを利用することが可能にな
る。
ルコンピュータのような装置でなく、メモリ容量が限定
されている装置(例えばICカード)であっても装置上
に容易に素数生成機能を実装することが可能になる。
素数を生成することができる。また、確定的素数判定方
法を用いるので、確実に素数を得ることができる。本発
明(請求項4、9)において、制御情報は、例えば少な
くとも1ビットのメモリである。
報が暗号鍵生成後の状態にある間は暗号鍵生成手段は再
動作できないので、暗号装置内で生成された鍵に対し暗
号鍵生成手段の再起動等により既に生成された鍵が破壊
されることを防ぐことができる。
鍵生成後、直ちに、チェックサムを計算し、自装置内に
暗号鍵と共に保持しておくので、この鍵の使用に際して
保存されている暗号鍵のチェックサムを計算し、これと
保存されているチェックサムとを比較することにより、
鍵の正当性を検証し、改ざんあるいは何らかの原因で破
壊された暗号鍵による暗号処理や復号処理を回避するこ
とができる。
実施の形態を説明する。図1は、本発明の一実施形態に
係る暗号装置の構成を示す図である。本実施形態の暗号
装置1は、CPU2、プログラム記憶部3、演算部4、
乱数生成部5、ランダムアクセス可能な不揮発メモリ
6、不揮発性メモリ7、アドレス及びデータバス8を備
えている。
納されたプログラムをCPU2で実行する形で各機能を
実現するものとしている。このプログラムは、素数生成
のためのサブプログラムと鍵生成のためのサブプログラ
ムとを少なくとも含む。なお、素数生成のためのサブプ
ログラムと、鍵生成のためのサブプログラムとを独立実
施することも可能である。
ために所定の演算については演算部4を利用する。演算
部4には、例えばコプロセッサを用いる。ただし、演算
部4を設けなくても構わない。
ているが、乱数生成部5は独立のハードウェアで実現し
ても良いし、プログラムとCPU2で実現しても良い。
本実施形態では、後者であるとする。なお、乱数は外部
の装置から入力するようにしても構わない。
る。なお、プログラム(本実施形態を実現するための手
順を含むプログラム)を外部から(例えば、記録媒体か
ら読み込んでもしくはネットワークを介して取得して)
インストールする構成を採用することも可能である。こ
のような場合、プログラム記憶部3には、例えばEEP
ROMもしくはRAMもしくはハードディスク装置など
を用いることができる。
は、例えばRAMである。このメモリ6には、計算に必
要なデータや計算途中のデータなどを格納する。不揮発
性メモリ7は、例えばEEPROMである。このメモリ
7には、生成された鍵などを格納する。
ンタフェースを介して外部からデータを入力し、また外
部にデータを出力する。このインタフェースは、例え
ば、ユーザインタフェース、通信インタフェースなど、
種々のものが考えられる。例えば、暗号装置1がICカ
ードである場合、所定の通信インタフェースを介して外
部の計算機とデータの受け渡しを行なう。
なわち例えばこのインタフェースを介して入力されたデ
ータに対して暗号化あるいは復号化などの処理を行な
い、あるいはデータの認証処理を行ない、また外部の表
示装置、通信回線あるいは記憶装置に対して、入力され
たデータあるいは処理したデータなどを出力する機能を
有するものとする。この機能は、例えばプログラムによ
り実現する。また、この機能をサブプログラムとして上
記の素数生成のためのサブプログラムと鍵生成のための
サブプログラムとを含むプログラムに組み込んで実施す
ることも可能である。
いる素数を格納した素数テーブルを用いる。この素数テ
ーブルは、ランダムアクセス可能な不揮発性メモリ6に
格納する。ここでは、始めにワードサイズの2倍のビッ
ト長の素数を生成し、その素数を基にそれより大きい所
定のサイズの素数を生成することを前提として、素数テ
ーブルにはワードサイズ以下の素数を格納しておくもの
とする。例えば、ワードサイズが8ビットである場合、
256以下のすべての素数(53個の素数)を格納して
おく。
数を生成する素数生成処理のフローチャートを示す。 処理1:まず、乱数生成部5においてワードサイズの2
倍のビット長の奇数をランダムに生成する(ステップS
1)。
ーブルに格納されているワードサイズ以下の素数を用い
て演算部4において試行割算(エラトステネスのふる
い)を行なう(ステップS2)。
の全ての素数で割り切れない場合、この奇数を素数と判
定し、F0 に代入する。素数テーブル内のいずれかの素
数で割り切れた場合、処理1に戻る(ステップS3)。
ータi=0とする(ステップS4)。 処理5:素数Fi を基に、乱数生成部5において、Ri
<Fi を満たす乱数Ri を生成し(ステップS5)、N
i =2Ri Fi +1で表される素数候補Ni を作る(ス
テップS6)。
前処理として、素数テーブルに格納されている素数を用
いて演算部4において試行割算を行なう(ステップS
7)。 処理7:素数候補Ni が、素数テーブル内のいずれかの
素数で割り切れた場合、素数候補Ni は合成数であると
判定し、処理5に戻る(ステップS8)。そして、Fi
の値はそのままで、乱数生成部5においてRi (Ri <
Fi )を生成し直し、新しい素数候補Ni を生成する。
i について、式(1)を満たすかどうか演算部4におい
て計算する(フェルマーテスト)(ステップS9)。満
たさない場合、処理5に戻る(ステップS10)。
i について、式(2)を満たすかどうか演算部4におい
て計算する(ステップS11)。満たさない場合、処理
5に戻る(ステップS12)。
イズに達していないならば、Fi =Ni 、i+=1(i
を1増加)とし(ステップS13,S14)、処理5に
戻る。素数候補Ni が所定のビット長に達するように、
Ri のビット長を増加(Ri<Fi )させることで調整
する。
i が所定のビットサイズに達したならば、素数Ni を得
る。上記の処理8と処理9においては、ai =2を用い
るのが好ましい。上記の試行割算では、ワードサイズ以
下の素数を含む前記素数テーブルを使用するが、F0 以
下の素数による試行割算を前処理として施すことで、殆
どの合成数を除去することが可能である。よって、素数
判定にかける素数候補が絞られることにより、効率良く
素数判定を行なうことができる。
小さな底の計算で処理するので計算が容易となる。通
常、底ai は、2だけではなく、小さな素数から順に用
いて素数判定処理を行なうが、ai をこのように変化さ
せなくても支障はない。それは、ai =2のときに、素
数候補が素数であるにもかかわらず、素数ではないと判
定されるケースは非常に小さいからである。
て、ai =2を用いる。上記の処理11までの実行で、
求められた素数のビットサイズがnビットとすると、
(素数−1)にn/2ビット程度の素数を持たせること
ができる。これにより、素因数分解法の一手法であるp
−1法を回避できる。
数+1)にも大きなビットサイズの素数を持たせる必要
がある。図2の処理を用いて素数を生成し、図3の処理
でp±1法に対処できる素数を生成する。
4nビットの素数(s,t)を生成する(ステップS2
1,S22)。 処理13:0.5nビットの素数候補を、r=2at+
1となるように生成する(ステップS23)。
処理として、素数テーブルに格納されている素数を用い
て演算部4において試行割算を行なう(ステップS2
4)。素数候補が、素数テーブル内のいずれかの素数で
割り切れた場合、素数候補Nは合成数であると判定し、
a+=1のようにaの値を調整し、処理13に戻る(ス
テップS25)。
満たすかどうか演算部4において計算する(ステップS
26)。満たさない場合、a+=1のようにaの値を調
整し、処理13に戻る(ステップS27)。
満たすかどうか演算部4において計算する(ステップS
28)。満たさない場合、a+=1のようにaの値を調
整し、処理14に戻る(ステップS29)。
2(bs−r-1 (mod s))rとなるように生成
し(ステップS30)、上記の処理14の試行割算およ
び判定、処理15の計算および判断、処理16の計算お
よび判断と同じ処理を行なう(ステップS31〜S3
6)。この試行割算で素数候補Nが合成数と判定された
場合およびいずれかの計算で素数判定式が成立しない場
合、b+=1のようにbの値を調整し、再度、上記一連
の処理を行なう。
長を持つならば終了する(ステップS37)。所定のビ
ット長に達していないならば処理17に戻り、素数候補
Nが所定のビット長を持つようにb+=1のようにbの
値を調整し素数判定を行なう。
ら、次に、これら素数をもとに公開鍵及び秘密鍵を生成
する。以下、各暗号方式における公開鍵及び秘密鍵の生
成について説明する。
成に際しては、上記の処理を用いて2個の素数p、qを
生成し、n=pqを公開除数とし、ed=1 (mod
lcm(p−1,q−1))なるe、dをそれぞれ、
秘密べき指数、公開べき指数として用いる(lcmは最
小公倍数を表す)。
いる素数p、qは、式(5)、式(6)の制限があるの
で、p、q各々について、上記処理16まで処理した
後、処理17の代わりに次の処理17´を行なう。
Fq Rq +1、(p、qはnビットの素数候補)、F
p 、Fq は0.5nビットの素数、Rp 、Rq は0.4
nビットの乱数である。Fp 、Rp は、処理17の各々
(bs−r-1 (mod s))、rに相当する。Fp
Rp とFq Rq について、4|Fp Rp −1、4|Fq
Rq −3を満たすものを探す。そして、p、qについ
て、上記の処理14の試行割算および判定、処理15の
計算および判断、処理16の計算および判断と同じ処理
を行なう(ステップS31〜S36)。
n=pqを公開除数とし、ed=1(mod (1/
2)・lcm(p−1,q−1))なるe、dをそれぞ
れ、秘密べき指数、公開べき指数として用いる。
pqは、素数p、qは、式(7)、式(8)の制限があ
るので、上記の処理17´におけるFp Rp とFq Rq
について、2|Fp Rp −1、2|Fq Rq −1を満た
すものを探す。そして、p、qについて、上記の処理1
4の試行割算および判定、処理15の計算および判断、
処理16の計算および判断と同じ処理を行なう(ステッ
プS31〜S36)。
7´において、素数候補がp=2Rp qq´+1となる
ように素数q´を生成し、p−1に2個の素数を持た
せ、素数判定を行なう。これにより、q|p−1を満た
すp、qから、g=h(p-1)/q(mod p)>1なる
gと乱数xを用いて、y=gx (mod p)を算出
し、p、q、g、yを公開鍵、xを秘密鍵として用い
る。
素数判定方法と、素数F0 を素数判定するときに用いる
(F0 )1/2 以下の素数を格納した素数テーブルとを組
合わせることによって、暗号装置のメモリ容量に対応し
たサイズのテーブルを利用することが可能になる。
ルコンピュータのような暗号装置でなく、メモリ容量が
限定されている暗号装置(例えばICカード)であって
も装置上に容易に公開鍵暗号における公開鍵及び秘密鍵
の生成機能を実装することが可能になる。
鍵を生成することができる。また、確定的素数判定方法
を用いるので、確実に素数を得ることができ、安全な鍵
を得ることができる。
ることができる。また、装置に鍵生成機能を持たせるこ
とにより、鍵に対する安全性を向上させ、鍵の管理を容
易にすることができる。
号装置内で暗号処理及び復号処理を行なうならば、鍵は
決して暗号装置外に出ることがないので、鍵に対する高
い安全性を保つことができる。
リ6内に設ける代わりに、素数テーブルに相当するもの
をプログラムの中に作り込むようにしても良い。また、
本実施形態では、素数をもとに公開鍵暗号における秘密
鍵と公開鍵を生成するものについて説明したが、前述し
た方法で生成した素数をもとに共通鍵を生成しても構わ
ない。
て説明する。暗号装置1において、鍵生成プログラムが
起動され、一旦、鍵が生成されたならば、その鍵は不揮
発性メモリ7に格納される。本実施形態では、それと同
時に、同じく不揮発性メモリ7に存在する鍵生成制御ビ
ットを立てるようにする。
グラムの実行を制御する。つまり、鍵生成プログラムを
実行するのに先だって、鍵生成制御ビットを調べ、鍵生
成制御ビットがオフの状態ならば、鍵生成プログラムを
実行させ、オンの状態ならば鍵生成プログラムを起動し
ない。
対し、鍵生成プログラムの再起動等により、既に生成さ
れた鍵が破壊されることを防ぐことができる。その他の
鍵生成プログラムの実行制御方法として、予め、暗号装
置1内に保存されている秘密の認証コードと同一コード
が入力されたときのみ鍵生成プログラムを起動する方法
も考えられる。この方法は、認証コードをマスクに書き
込んでおくかまたは発行時の初期段階で書き込み、後の
鍵生成時に同一コードを入力し鍵生成プログラムを起動
するものである。この鍵生成プログラムの実行制御方法
は、既に生成された暗号鍵を変更する場合にも用いるこ
ともできる。つまり、正しい認証コードを入力した場合
にのみ、鍵生成プログラムが実行可能であり、生成され
た暗号鍵を不揮発性メモリ7に格納することができる。
格納されている鍵の検証について説明する。まず、鍵が
生成されたならば、直ちに、生成された鍵のハッシュ値
を計算し、生成された鍵(図中11)と、そのハッシュ
値(図中10)とを対応付けて不揮発性メモリ7に保存
しておく。
証処理にて鍵を使用する前に、不揮発性メモリ7に格納
されている鍵(図中11)のハッシュ値を計算し(図中
12)、予め不揮発性メモリ7に保存されていたハッシ
ュ値(図中10)と一致判定部13において比較する。
一致したならば成功を示す制御信号を出力して暗号処理
や復号処理の実行を可能とし、一致しないならば、失敗
を示す制御信号を出力して暗号処理や復号処理の実行を
不可とする。
ュ値の一致を示している場合にのみ、暗号処理を起動
し、制御信号が失敗、すなわちハッシュ値の不一致を示
している場合には、暗号処理を起動させない。
いて暗号処理や復号処理を行なう際に、格納されている
鍵の検証を行なうことによって、何らかの原因で破壊さ
れた鍵による暗号処理や復号処理を回避することができ
る。
鍵を管理・公開するセンター側との間でのユーザの鍵の
正当性の確認について説明する。暗号装置19で生成さ
れた公開鍵及び秘密鍵については、センター17がそれ
らの正当性を確認する手段が必要である。その一手法と
して、図5に示す方法がある。
から、暗号装置19により生成された公開鍵kを受け取
る。次に、センター17は、乱数Rを生成し(図中2
0)、その乱数Rを暗号装置19により生成された公開
鍵kを用いて暗号化し(図中21)、情報処理装置18
へ送信する(図中22)。
30を介して暗号装置19に公開鍵kで暗号化された乱
数Rを送信する。暗号装置19は、その公開鍵kで暗号
化された乱数Rを、公開鍵とペアである秘密鍵を用いて
復号化する(図中23)。
情報処理装置18を介してセンターに送信する(図中2
5)。そして、センター17では、一致判定部26によ
り自ら生成した乱数と暗号装置19から送信された乱数
について検証を行なう。
17が所有する公開鍵に対して正当な秘密鍵を保持して
いるので、センター17は暗号装置19に公開鍵証明書
を発行する。
び公開鍵を生成することにより、鍵を管理するセンター
は、個々の暗号装置に対し鍵生成及び配送をする必要が
なくなり、鍵生成及び管理に伴う処理の負担が軽減され
る。
順を実行させるための(あるいはコンピュータを所定の
手段として機能させるための、あるいはコンピュータに
所定の機能を実現させるための)プログラムを記録した
コンピュータ読取り可能な記録媒体として実施すること
もできる。本発明は、上述した実施の形態に限定される
ものではなく、その技術的範囲において種々変形して実
施することができる。
ト以下の値のすべての素数をもとに2nビット以下の素
数を生成し、この生成された素数をもとに順次大きな素
数を生成して所定のビット長の第2の素数生成するの
で、必要なメモリ容量を少なく済ませることができる。
暗号装置に鍵生成機能を実装することが可能になる。ま
た、扱うデータ量が少ないので、高速に鍵を生成するこ
とができる。
で鍵を生成するので、鍵に対する安全性を向上させるこ
とができるとともに、鍵の管理を容易にすることができ
る。また、本発明によれば、暗号装置内で既に鍵が生成
されている場合、再度鍵が生成されないようにするの
で、既に生成された鍵が新たに生成された鍵で破壊され
るようなことを防ぐことができる。
された鍵を用いて暗号処理や復号処理を行なう際に、格
納されている鍵の検証を行なうことによって、何らかの
原因で破壊された鍵による暗号処理や復号処理を回避す
ることができる。
示す図
ャート
ャート
例を示す図
図
Claims (21)
- 【請求項1】自装置内で素数をもとに暗号鍵を生成する
暗号装置であって、 予め定められたnビット以下の値のすべての素数をもと
に2nビット以下の第1の素数を生成する第1の素数生
成手段と、 前記nビット以下のすべての素数および前記第1の素数
をもとに2nビットより大きい所定のビット長の第2の
素数を生成する第2の素数生成手段と、 前記所定のビット長の第2の素数を用いて暗号鍵を生成
する暗号鍵生成手段とを備えたことを特徴とする暗号装
置。 - 【請求項2】自装置内で暗号鍵を生成する暗号装置であ
って、 予め定められたnビット以下のすべての素数を用いて所
定の2nビット以下の乱数を素数判定することにより2
nビット以下の第1の素数を生成する第1の素数生成手
段と、 前記第1の素数をもとに該第1の素数より大きい素数候
補を生成し、前記nビット以下のすべての素数を少なく
とも用いた素数判定により該素数候補が合成数でないと
判定された場合には該素数候補を新たな第1の素数とし
該新たな第1の素数をもとに該素数候補より大きい新た
な素数候補を生成する処理を再帰的に繰り返すととも
に、素数候補が合成数であると判定された場合には前記
合成数と判定された時点での第1の素数をもとに素数候
補を生成し直しあらためて該処理を再帰的に繰り返すこ
とにより、2nビットより大きい所定のビット長の第2
の素数を生成する第2の素数生成手段と、 前記所定のビット長の素数を用いて暗号鍵を生成する暗
号鍵生成手段とを備えたことを特徴とする暗号装置。 - 【請求項3】自装置内で暗号鍵を生成する暗号装置であ
って、 予め定められたnビット以下のすべての素数を用いて所
定の2nビット以下の乱数を素数判定することにより2
nビット以下の第1の素数を生成する第1の素数生成手
段と、 前記第1の素数生成手段により生成された2nビット以
下の第1の素数および前記nビット以下のすべての素数
をもとに2nビットより大きい所定のビット長の第2の
素数を生成する第2の素数生成手段と、 前記第1および第2の素数生成手段を用いて生成された
0.4mビットの第2の素数および前記第2の素数をも
とに0.5mビットの第3の素数を生成する第3の素数
生成手段と、 前記第1および第2の素数生成手段を用いて生成された
他の0.4mビットの第2の素数、前記第3の素数生成
手段により生成された0.5mビットの第3の素数およ
び前記nビット以下のすべての素数をもとにmビットの
第4の素数を生成する第4の素数生成手段と、 前記第4の素数生成手段により生成された前記mビット
の第4の素数を用いて暗号鍵を生成する暗号鍵生成手段
とを備えたことを特徴とする暗号装置。 - 【請求項4】自装置内で暗号鍵を生成する暗号装置であ
って、 前記暗号鍵を生成する暗号鍵生成手段と、 前記暗号鍵生成手段により前記暗号鍵が生成されたか否
かを示す制御情報を格納する手段と、 前記制御情報により前記暗号鍵が生成されたことが示さ
れている間は、前記暗号鍵生成手段による前記暗号鍵の
生成を不可にする手段とを備えたことを特徴とする暗号
装置。 - 【請求項5】自装置内で暗号鍵を生成する暗号装置であ
って、 前記暗号鍵を生成する暗号鍵生成手段と、 前記暗号鍵生成手段により前記暗号鍵が生成された場
合、直ちに、生成された前記暗号鍵のチェックサムを生
成するチェックサム生成手段と、 前記暗号鍵とそのチェックサムを対応付けて格納する格
納手段とを備えたことを特徴とする暗号装置。 - 【請求項6】暗号装置内で素数をもとに暗号鍵を生成す
る暗号鍵生成方法であって、 予め定められたnビット以下の値のすべての素数をもと
に2nビット以下の第1の素数を生成し、 前記nビット以下のすべての素数および前記第1の素数
をもとに2nビットより大きい所定のビット長の第2の
素数を生成し、 前記所定のビット長の第2の素数を用いて暗号鍵を生成
することを特徴とする暗号鍵生成方法。 - 【請求項7】暗号装置内で素数をもとに暗号鍵を生成す
る暗号鍵生成方法であって、 予め定められたnビット以下のすべての素数を用いて所
定の2nビット以下の乱数を素数判定することにより2
nビット以下の第1の素数を生成する第1の素数生成ス
テップと、 前記第1の素数をもとに該第1の素数より大きい素数候
補を生成し、前記nビット以下のすべての素数を少なく
とも用いた素数判定により該素数候補が合成数でないと
判定された場合には該素数候補を新たな第1の素数とし
該新たな第1の素数をもとに該素数候補より大きい新た
な素数候補を生成する処理を再帰的に繰り返すととも
に、素数候補が合成数であると判定された場合には前記
第1の素数生成ステップにて合成数と判定された時点で
の第1の素数をもとに素数候補を生成し直しあらためて
該処理を再帰的に繰り返すことにより、2nビットより
大きい所定のビット長の第2の素数を生成する第2の素
数生成ステップと、 前記所定のビット長の素数を用いて暗号鍵を生成する暗
号鍵生成ステップとを有することを特徴とする暗号鍵生
成方法。 - 【請求項8】暗号装置内で素数をもとに暗号鍵を生成す
る暗号鍵生成方法であって、 予め定められたnビット以下のすべての素数を用いて所
定の2nビット以下の乱数を素数判定することにより2
nビット以下の第1の素数を生成する第1の素数生成ス
テップと、 前記第1の素数生成ステップにて生成された2nビット
以下の第1の素数および前記nビット以下のすべての素
数をもとに2nビットより大きい所定のビット長の第2
の素数を生成する第2の素数生成ステップと、 前記第1および第2の素数生成ステップにより生成され
た0.4mビットの第2の素数および前記第2の素数を
もとに0.5mビットの第3の素数を生成する第3の素
数生成ステップと、 前記第1および第2の素数生成ステップにより生成され
た他の0.4mビットの第2の素数、前記第3の素数生
成ステップにより生成された0.5mビットの第3の素
数および前記nビット以下のすべての素数をもとにmビ
ットの第4の素数を生成する第4の素数生成ステップ
と、 前記第4の素数生成ステップにて生成された前記mビッ
トの第4の素数を用いて暗号鍵を生成する暗号鍵生成ス
テップとを有することを特徴とする暗号鍵生成方法。 - 【請求項9】暗号鍵を生成する暗号鍵生成手段を備えた
暗号装置における暗号鍵生成方法であって、 前記暗号鍵生成手段により前記暗号鍵を生成するのに先
だって、前記暗号鍵生成手段により前記暗号鍵が生成さ
れた否かを示す制御情報を参照し、該制御情報により前
記暗号鍵が生成されていないことが示されている場合に
のみ、前記暗号鍵生成手段により前記暗号鍵を生成し、 前記暗号鍵生成手段により前記暗号鍵を生成した場合、
前記制御情報を前記暗号鍵が生成されたことを示す状態
にすることを特徴とする暗号鍵生成方法。 - 【請求項10】自装置内で暗号鍵を生成する暗号装置に
おける暗号鍵管理方法であって、 前記暗号鍵を生成し、直ちに該暗号鍵のチェックサムを
生成し、 生成された前記暗号鍵と前記チェックサムとを対応付け
て格納することを特徴とする暗号鍵管理方法。 - 【請求項11】予め定められたnビット以下の値のすべ
ての素数をもとに2nビット以下の素数を生成する第1
の素数生成手段と、 前記nビット以下のすべての素数および前記2nビット
以下の素数をもとに2nビットより大きい前記所定のビ
ット長の素数を生成する第2の素数生成手段とを備えた
ことを特徴とする素数生成装置。 - 【請求項12】予め定められたnビット以下のすべての
素数を用いて所定の2nビット以下の乱数を素数判定す
ることにより2nビット以下の第1の素数を生成する第
1の素数生成手段と、 前記第1の素数をもとに該第1の素数より大きい素数候
補を生成し、前記nビット以下のすべての素数を少なく
とも用いた素数判定により該素数候補が合成数でないと
判定された場合には該素数候補を新たな第1の素数とし
該新たな第1の素数をもとに該素数候補より大きい新た
な素数候補を生成する処理を再帰的に繰り返すととも
に、素数候補が合成数であると判定された場合には前記
合成数と判定された時点での第1の素数をもとに素数候
補を生成し直しあらためて該処理を再帰的に繰り返すこ
とにより、2nビットより大きい所定のビット長の第2
の素数を生成する第2の素数生成手段とを備えたことを
特徴とする素数生成装置。 - 【請求項13】予め定められたnビット以下のすべての
素数を用いて所定の2nビット以下の乱数を素数判定す
ることにより2nビット以下の第1の素数を生成する第
1の素数生成手段と、 前記第1の素数生成手段により生成された2nビット以
下の第1の素数および前記nビット以下のすべての素数
をもとに2nビットより大きい所定のビット長の第2の
素数を生成する第2の素数生成手段と、 前記第1および第2の素数生成手段を用いて生成された
0.4mビットの第2の素数および前記第2の素数をも
とに0.5mビットの第3の素数を生成する第3の素数
生成手段と、 前記第1および第2の素数生成手段を用いて生成された
他の0.4mビットの第2の素数、前記第3の素数生成
手段により生成された0.5mビットの第3の素数およ
び前記nビット以下のすべての素数をもとにmビットの
第4の素数を生成する第4の素数生成手段とを備えたこ
とを特徴とする素数生成装置。 - 【請求項14】予め定められたnビット以下の値のすべ
ての素数をもとに2nビット以下の第1の素数を生成
し、 前記nビット以下のすべての素数および前記2nビット
以下の素数をもとに2nビットより大きい前記所定のビ
ット長の素数を生成することを特徴とする素数生成方
法。 - 【請求項15】予め定められたnビット以下のすべての
素数を用いて所定の2nビット以下の乱数を素数判定す
ることにより2nビット以下の第1の素数を生成する第
1の素数生成ステップと、 前記第1の素数をもとに該第1の素数より大きい素数候
補を生成し、前記nビット以下のすべての素数を少なく
とも用いた素数判定により該素数候補が合成数でないと
判定された場合には該素数候補を新たな第1の素数とし
該新たな第1の素数をもとに該素数候補より大きい新た
な素数候補を生成する処理を再帰的に繰り返すととも
に、素数候補が合成数であると判定された場合には前記
第1の素数生成ステップにて合成数と判定された時点で
の第1の素数をもとに素数候補を生成し直しあらためて
該処理を再帰的に繰り返すことにより、2nビットより
大きい所定のビット長の第2の素数を生成する第2の素
数生成ステップとを有することを特徴とする素数生成方
法。 - 【請求項16】予め定められたnビット以下のすべての
素数を用いて所定の2nビット以下の乱数を素数判定す
ることにより2nビット以下の第1の素数を生成する第
1の素数生成ステップと、 前記第1の素数生成ステップにて生成された2nビット
以下の第1の素数および前記nビット以下のすべての素
数をもとに2nビットより大きい所定のビット長の第2
の素数を生成する第2の素数生成ステップと、 前記第1および第2の素数生成ステップにより生成され
た0.4mビットの第2の素数および前記第2の素数を
もとに0.5mビットの第3の素数を生成する第3の素
数生成ステップと、 前記第1および第2の素数生成ステップにより生成され
た他の0.4mビットの第2の素数、前記第3の素数生
成ステップにより生成された0.5mビットの第3の素
数および前記nビット以下のすべての素数をもとにmビ
ットの第4の素数を生成する第4の素数生成ステップと
を有することを特徴とする素数生成方法。 - 【請求項17】コンピュータに、予め定められたnビッ
ト以下の値のすべての素数をもとに2nビット以下の第
1の素数を生成する手順と、前記nビット以下のすべて
の素数および前記第1の素数をもとに2nビットより大
きい所定のビット長の第2の素数を生成する手順とを実
行させるためのプログラムを記録したコンピュータ読取
り可能な記録媒体。 - 【請求項18】コンピュータに、予め定められたnビッ
ト以下のすべての素数を用いて所定の2nビット以下の
乱数を素数判定することにより2nビット以下の第1の
素数を生成する第1の素数生成ステップと、前記第1の
素数をもとに該第1の素数より大きい素数候補を生成
し、前記nビット以下のすべての素数を少なくとも用い
た素数判定により該素数候補が合成数でないと判定され
た場合には該素数候補を新たな第1の素数とし該新たな
第1の素数をもとに該素数候補より大きい新たな素数候
補を生成する処理を再帰的に繰り返すとともに、素数候
補が合成数であると判定された場合には前記第1の素数
生成ステップにて合成数と判定された時点での第1の素
数をもとに素数候補を生成し直しあらためて該処理を再
帰的に繰り返すことにより、2nビットより大きい所定
のビット長の第2の素数を生成する第2の素数生成ステ
ップとを実行させるためのプログラムを記録したコンピ
ュータ読取り可能な記録媒体。 - 【請求項19】コンピュータに、予め定められたnビッ
ト以下のすべての素数を用いて所定の2nビット以下の
乱数を素数判定することにより2nビット以下の第1の
素数を生成する第1の素数生成ステップと、前記第1の
素数生成ステップにて生成された2nビット以下の第1
の素数および前記nビット以下のすべての素数をもとに
2nビットより大きい所定のビット長の第2の素数を生
成する第2の素数生成ステップと、前記第1および第2
の素数生成ステップにより生成された0.4mビットの
第2の素数および前記第2の素数をもとに0.5mビッ
トの第3の素数を生成する第3の素数生成ステップと、
前記第1および第2の素数生成ステップにより生成され
た他の0.4mビットの第2の素数、前記第3の素数生
成ステップにより生成された0.5mビットの第3の素
数および前記nビット以下のすべての素数をもとにmビ
ットの第4の素数を生成する第4の素数生成ステップと
を実行させるためのプログラムを記録したコンピュータ
読取り可能な記録媒体。 - 【請求項20】コンピュータに、暗号鍵を生成する前に
暗号鍵が生成された否かを示す制御情報を参照する手順
と、該制御情報により前記暗号鍵が生成されていないこ
とが示されている場合にのみ暗号鍵を生成する手順と、
暗号鍵を生成した場合に前記制御情報を暗号鍵が生成さ
れたことを示す状態にする手順とを実行させるためのプ
ログラム記録したコンピュータ読取り可能な記録媒体。 - 【請求項21】コンピュータに、暗号鍵を生成する手順
と、暗号鍵を生成したら直ちに該暗号鍵のチェックサム
を生成する手順と、生成された暗号鍵とチェックサムと
を対応付けて所定の記憶領域に格納する手順とを実行さ
せるためのプログラム記録したコンピュータ読取り可能
な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34509197A JP3626340B2 (ja) | 1996-12-26 | 1997-12-15 | 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8-348059 | 1996-12-26 | ||
JP34805996 | 1996-12-26 | ||
JP34509197A JP3626340B2 (ja) | 1996-12-26 | 1997-12-15 | 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004162531A Division JP2004248330A (ja) | 1996-12-26 | 2004-05-31 | 暗号装置、暗号鍵生成方法、暗号鍵管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10240128A true JPH10240128A (ja) | 1998-09-11 |
JP3626340B2 JP3626340B2 (ja) | 2005-03-09 |
Family
ID=26577962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34509197A Expired - Fee Related JP3626340B2 (ja) | 1996-12-26 | 1997-12-15 | 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3626340B2 (ja) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002268548A (ja) * | 2001-03-13 | 2002-09-20 | Toshiba Corp | 素数判定装置、方法及びプログラム |
JP2002278450A (ja) * | 2001-03-14 | 2002-09-27 | Toshiba Corp | 素数生成装置、方法及びプログラム |
EP1251654A2 (en) * | 2001-04-17 | 2002-10-23 | Matsushita Electric Industrial Co., Ltd. | Information security device, prime number generation device, and prime number generation method |
JP2003051817A (ja) * | 2001-08-08 | 2003-02-21 | Toshiba Corp | 暗号化・復号装置、ディジタル署名生成・検証装置、方法及びプログラム |
JP2005167870A (ja) * | 2003-12-05 | 2005-06-23 | Sony Corp | データ処理方法およびデータ処理装置 |
JP2005531031A (ja) * | 2002-06-21 | 2005-10-13 | アトメル・コーポレイション | 暗号化適用のための推定素数の検査 |
JP2005303676A (ja) * | 2004-04-12 | 2005-10-27 | Canon Inc | 画像形成装置、鍵ペア生成方法及びコンピュータプログラム |
JP2008506338A (ja) * | 2004-07-14 | 2008-02-28 | インテル コーポレイション | 配布cdを用いて直接証明秘密鍵を装置に配布する方法 |
JP2009229615A (ja) * | 2008-03-21 | 2009-10-08 | Renesas Technology Corp | データ処理システム及びデータ処理方法 |
JP2009258460A (ja) * | 2008-04-18 | 2009-11-05 | Renesas Technology Corp | データ処理装置 |
JP2010044262A (ja) * | 2008-08-14 | 2010-02-25 | Toshiba Corp | 鍵生成装置及びプログラム |
US8015393B2 (en) | 2004-04-12 | 2011-09-06 | Canon Kabushiki Kaisha | Data processing device, encryption communication method, key generation method, and computer program |
JP2012005129A (ja) * | 2010-06-21 | 2012-01-05 | Chol-Ang Chu | 通信データの保護方法、セキュリティ・システム |
JP2012510189A (ja) * | 2008-11-24 | 2012-04-26 | サーティコム コーポレーション | ハードウェアベースセキュリティのためのシステムおよび方法 |
-
1997
- 1997-12-15 JP JP34509197A patent/JP3626340B2/ja not_active Expired - Fee Related
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002268548A (ja) * | 2001-03-13 | 2002-09-20 | Toshiba Corp | 素数判定装置、方法及びプログラム |
JP2002278450A (ja) * | 2001-03-14 | 2002-09-27 | Toshiba Corp | 素数生成装置、方法及びプログラム |
JP4664514B2 (ja) * | 2001-03-14 | 2011-04-06 | 株式会社東芝 | 素数生成装置及びプログラム |
EP1251654A3 (en) * | 2001-04-17 | 2003-07-16 | Matsushita Electric Industrial Co., Ltd. | Information security device, prime number generation device, and prime number generation method |
EP1465366A1 (en) * | 2001-04-17 | 2004-10-06 | Matsushita Electric Industrial Co., Ltd. | Information security device, prime number generation device, and prime number generation method |
US7130422B2 (en) | 2001-04-17 | 2006-10-31 | Matsushita Electric Industrial Co., Ltd. | Information security device, prime number generation device, and prime number generation method |
EP1251654A2 (en) * | 2001-04-17 | 2002-10-23 | Matsushita Electric Industrial Co., Ltd. | Information security device, prime number generation device, and prime number generation method |
JP2003051817A (ja) * | 2001-08-08 | 2003-02-21 | Toshiba Corp | 暗号化・復号装置、ディジタル署名生成・検証装置、方法及びプログラム |
JP2005531031A (ja) * | 2002-06-21 | 2005-10-13 | アトメル・コーポレイション | 暗号化適用のための推定素数の検査 |
JP4756117B2 (ja) * | 2002-06-21 | 2011-08-24 | インサイド コンタクトレス ソシエテ アノニム | 暗号化適用のための推定素数の検査 |
JP2005167870A (ja) * | 2003-12-05 | 2005-06-23 | Sony Corp | データ処理方法およびデータ処理装置 |
US8015393B2 (en) | 2004-04-12 | 2011-09-06 | Canon Kabushiki Kaisha | Data processing device, encryption communication method, key generation method, and computer program |
JP2005303676A (ja) * | 2004-04-12 | 2005-10-27 | Canon Inc | 画像形成装置、鍵ペア生成方法及びコンピュータプログラム |
USRE48381E1 (en) | 2004-04-12 | 2021-01-05 | Canon Kabushiki Kaisha | Data processing device, encryption communication method, key generation method, and computer program |
JP2008506338A (ja) * | 2004-07-14 | 2008-02-28 | インテル コーポレイション | 配布cdを用いて直接証明秘密鍵を装置に配布する方法 |
JP2009229615A (ja) * | 2008-03-21 | 2009-10-08 | Renesas Technology Corp | データ処理システム及びデータ処理方法 |
JP2009258460A (ja) * | 2008-04-18 | 2009-11-05 | Renesas Technology Corp | データ処理装置 |
JP2010044262A (ja) * | 2008-08-14 | 2010-02-25 | Toshiba Corp | 鍵生成装置及びプログラム |
JP2012510189A (ja) * | 2008-11-24 | 2012-04-26 | サーティコム コーポレーション | ハードウェアベースセキュリティのためのシステムおよび方法 |
JP2013223251A (ja) * | 2008-11-24 | 2013-10-28 | Certicom Corp | ハードウェアベースセキュリティのためのシステムおよび方法 |
US8631247B2 (en) | 2008-11-24 | 2014-01-14 | Certicom Corp. | System and method for hardware based security |
US9183158B2 (en) | 2008-11-24 | 2015-11-10 | Certicom Corp. | System and method for hardware based security |
US9678896B2 (en) | 2008-11-24 | 2017-06-13 | Certicom Corp. | System and method for hardware based security |
JP2012005129A (ja) * | 2010-06-21 | 2012-01-05 | Chol-Ang Chu | 通信データの保護方法、セキュリティ・システム |
Also Published As
Publication number | Publication date |
---|---|
JP3626340B2 (ja) | 2005-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6841911B2 (ja) | 情報保護用のシステム及び方法 | |
US7370196B2 (en) | Controlled-content recoverable blinded certificates | |
JP5497677B2 (ja) | 公開鍵を検証可能に生成する方法及び装置 | |
US7472276B2 (en) | Data card verification system | |
US7730315B2 (en) | Cryptosystem based on a Jacobian of a curve | |
US8423774B2 (en) | Integrity protected smart card transaction | |
CN111448579A (zh) | 量子证明区块链 | |
US8195951B2 (en) | Data processing system for providing authorization keys | |
US9882890B2 (en) | Reissue of cryptographic credentials | |
JPH09128507A (ja) | 相互認証方法 | |
JP3871996B2 (ja) | データ分割管理方法及びプログラム | |
JP3626340B2 (ja) | 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法 | |
US11310049B2 (en) | Homomorphic encryption for password authentication | |
JP2004072290A (ja) | 証明書管理環境の管理方法、プログラム及び装置 | |
JPH11234262A (ja) | 利用資格検証装置 | |
JPH11215121A (ja) | 認証装置および方法 | |
JP2004248330A (ja) | 暗号装置、暗号鍵生成方法、暗号鍵管理方法 | |
CN107070648A (zh) | 一种密钥保护方法及pki系统 | |
JP2003162691A (ja) | データ処理システム、メモリデバイス、データ処理装置、およびデータ処理方法、並びにコンピュータ・プログラム | |
JP5268413B2 (ja) | 開示制限処理装置及びデータ処理システム及びプログラム | |
JPH1013402A (ja) | 公開鍵暗号の秘密鍵管理方法および装置 | |
CN113064761B (zh) | 数据恢复方法、服务器、加密机、终端及介质 | |
JP2003051817A (ja) | 暗号化・復号装置、ディジタル署名生成・検証装置、方法及びプログラム | |
JPH1155244A (ja) | 鍵回復方法および装置 | |
JP3617259B2 (ja) | 利用資格検証装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040330 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040531 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041202 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071210 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081210 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091210 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091210 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101210 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101210 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111210 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121210 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131210 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |