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
Application number
JP34509197A
Other languages
English (en)
Other versions
JP3626340B2 (ja
Inventor
Tomomi Hori
智美 堀
Shinichi Kawamura
信一 川村
Atsushi Shinpo
淳 新保
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP34509197A priority Critical patent/JP3626340B2/ja
Publication of JPH10240128A publication Critical patent/JPH10240128A/ja
Application granted granted Critical
Publication of JP3626340B2 publication Critical patent/JP3626340B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 自装置内でより少ないコンピュータ資源を利
用して、暗号鍵生成のもととなる十分な大きさの素数を
生成可能な暗号装置を提供すること。 【解決手段】 自装置内で素数をもとに暗号鍵を生成す
る暗号装置であって、予め定められたnビット以下の値
のすべての素数をもとに2nビット以下の第1の素数を
生成する第1の素数生成手段と、前記nビット以下のす
べての素数および前記第1の素数をもとに2nビットよ
り大きい所定のビット長の第2の素数を生成する第2の
素数生成手段と、前記所定のビット長の第2の素数を用
いて暗号鍵を生成する暗号鍵生成手段とを備えたことを
特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、暗号処理、復号処
理、認証処理などに用いる暗号鍵を自装置内で生成する
暗号装置、暗号鍵生成方法及び暗号鍵管理方法、並びに
素数生成装置及び素数生成方法に関する。
【0002】
【従来の技術】昨今、情報処理の技術が進歩するにつれ
て情報を電子化して扱うことが通常行なわれるようにな
ってきた。また、単にデータを電子化するだけでなく、
電子貨幣システムや著作権に係る電子化情報の配布シス
テムなど新たなサービスも開発されている。このような
電子化情報を扱う場合に、企業秘密やプライベートなデ
ータ、電子貨幣情報、著作権に係る電子化情報など、特
定の者だけが閲覧等可能で、それ以外の者には内容を秘
匿したい情報の蓄積や通信などにあたっては、暗号技術
が使用される。
【0003】例えば、ホストコンピュータ間で暗号通信
を行なう場合、送信側では共通鍵あるいは相手の公開鍵
でデータを暗号化し、受信側ではこれを共通鍵あるいは
自分の秘密鍵で復号することで、特定の鍵情報を持つ者
だけが暗号化データを復号可能とすることができる。ま
た例えば鍵情報を用いた認証処理により情報の正当性の
検証を可能としている。
【0004】ところで、秘密鍵暗号では乱数生成機能が
存在するだけで共通鍵の生成を容易に行なうことができ
る。これに対して、公開鍵暗号の公開鍵及び秘密鍵の生
成は、秘密鍵暗号の共通鍵生成ほど簡単な処理ではな
い。特に、公開鍵及び秘密鍵を生成するためには、大き
なビット長の素数が必要になるため、計算量の増加が避
けられない。この大きなビット長の素数を高速に生成す
るための方法として、メモリを利用したテーブル処理が
存在するが、この場合、非常に多くの素数を記憶してお
く必要があり、メモリ資源の限られた暗号装置(例えば
処理機能を有するICカードを暗号装置として用いるも
の)においてはこのテーブル処理は適切ではないとされ
てきた。このような理由から従来では、公開鍵暗号の公
開鍵及び秘密鍵は、通常、パーソナルコンピュータ等の
高速なCPUと十分なメモリが存在する環境で生成する
必要があった。
【0005】また、各ユーザの公開鍵を管理・公開する
センターが公開鍵及び秘密鍵を生成し、各ユーザに秘密
鍵を配送する場合、安全性を考慮した鍵配送メカニズム
が必須である。従って、センターが大量の秘密鍵を配送
及び管理することは、かなりの負担であった。
【0006】また、個々のユーザがパーソナルコンピュ
ータ等で公開鍵及び秘密鍵を生成し、秘密鍵を外部記憶
装置に転送及び保持する場合、一時的であっても、パー
ソナルコンピュータのメモリ上に生成された鍵が存在す
ることになり、それがオンラインの状態ならば、鍵が破
壊あるいは改ざんされる可能性がある。また、秘密鍵生
成機能の誤操作等により既に生成された鍵が破壊あるい
は改ざんされる可能性がある。さらに、鍵が破壊あるい
は改ざんなどされたことを検出することはできないとい
う問題点もあった。
【0007】
【発明が解決しようとする課題】従来、素数をもとに暗
号鍵(公開鍵、秘密鍵、共通鍵)を生成する場合、大き
なビット長の素数を生成する必要があるため、多量のコ
ンピュータ資源を必要とする問題点があった。
【0008】また、従来、秘密鍵生成機能の再起動によ
り既に生成された鍵が破壊される可能性があるという問
題点があった。また、従来、鍵が破壊あるいは改ざんな
どされたことを検出することはできないという問題点が
あった。
【0009】本発明は、上記事情を考慮してなされたも
のであり、自装置内でより少ないコンピュータ資源を利
用して、暗号鍵生成のもととなる十分な大きさの素数を
生成可能な暗号装置及び暗号鍵生成方法を提供すること
を目的とする。
【0010】また、本発明は、暗号鍵を安全に管理可能
な暗号装置、暗号鍵生成方法及び暗号鍵管理方法を提供
することを目的とする。また、本発明は、より少ないコ
ンピュータ資源を利用してより大きい素数を生成可能な
素数生成装置及び素数生成方法を提供することを目的と
する。
【0011】
【課題を解決するための手段】本発明(請求項1)は、
自装置内で素数をもとに暗号鍵を生成する暗号装置であ
って、予め定められたnビット以下の値のすべての素数
をもとに2nビット以下の第1の素数を生成する第1の
素数生成手段と、前記nビット以下のすべての素数およ
び前記第1の素数をもとに2nビットより大きい所定の
ビット長の第2の素数を生成する第2の素数生成手段
と、前記所定のビット長の第2の素数を用いて暗号鍵を
生成する暗号鍵生成手段とを備えたことを特徴とする。
【0012】本発明(請求項2)は、自装置内で暗号鍵
を生成する暗号装置であって、予め定められたnビット
以下のすべての素数を用いて所定の2nビット以下の乱
数を素数判定することにより2nビット以下の第1の素
数を生成する第1の素数生成手段と、前記第1の素数を
もとに該第1の素数より大きい素数候補を生成し、少な
くとも前記nビット以下のすべての素数を用いた素数判
定により該素数候補が合成数でないと判定された場合に
は該素数候補を新たな第1の素数とし該新たな第1の素
数をもとに該素数候補より大きい新たな素数候補を生成
する処理を再帰的に繰り返すとともに、素数候補が合成
数であると判定された場合には前記合成数と判定された
時点での第1の素数をもとに素数候補を生成し直しあら
ためて該処理を再帰的に繰り返すことにより、2nビッ
トより大きい所定のビット長の第2の素数を生成する第
2の素数生成手段と、前記所定のビット長の素数を用い
て暗号鍵を生成する暗号鍵生成手段とを備えたことを特
徴とする。
【0013】本発明(請求項3)は、自装置内で暗号鍵
を生成する暗号装置であって、予め定められた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の素数を用いて暗号鍵
を生成する暗号鍵生成手段とを備えたことを特徴とす
る。
【0014】本発明(請求項4)は、自装置内で暗号鍵
を生成する暗号装置であって、前記暗号鍵を生成する暗
号鍵生成手段と、前記暗号鍵生成手段により前記暗号鍵
が生成されたか否かを示す制御情報を格納する手段と、
前記制御情報により前記暗号鍵が生成されたことが示さ
れている間は、前記暗号鍵生成手段による前記暗号鍵の
生成を不可にする手段とを備えたことを特徴とする。
【0015】本発明(請求項5)は、自装置内で暗号鍵
を生成する暗号装置であって、前記暗号鍵を生成する暗
号鍵生成手段と、前記暗号鍵生成手段により前記暗号鍵
が生成された場合、直ちに、生成された前記暗号鍵のチ
ェックサムを生成するチェックサム生成手段と、前記暗
号鍵とそのチェックサムを対応付けて格納する格納手段
とを備えたことを特徴とする。
【0016】本発明(請求項6)は、暗号装置内で素数
をもとに暗号鍵を生成する暗号鍵生成方法であって、予
め定められたnビット以下の値のすべての素数をもとに
2nビット以下の第1の素数を生成し、前記nビット以
下のすべての素数および前記第1の素数をもとに2nビ
ットより大きい所定のビット長の第2の素数を生成し、
前記所定のビット長の第2の素数を用いて暗号鍵を生成
することを特徴とする。
【0017】本発明(請求項7)は、暗号装置内で素数
をもとに暗号鍵を生成する暗号鍵生成方法であって、予
め定められたnビット以下のすべての素数を用いて所定
の2nビット以下の乱数を素数判定することにより2n
ビット以下の第1の素数を生成する第1の素数生成ステ
ップと、前記第1の素数をもとに該第1の素数より大き
い素数候補を生成し、少なくとも前記nビット以下のす
べての素数を用いた素数判定により該素数候補が合成数
でないと判定された場合には該素数候補を新たな第1の
素数とし該新たな第1の素数をもとに該素数候補より大
きい新たな素数候補を生成する処理を再帰的に繰り返す
とともに、素数候補が合成数であると判定された場合に
は前記第1の素数生成ステップにて合成数と判定された
時点での第1の素数をもとに素数候補を生成し直しあら
ためて該処理を再帰的に繰り返すことにより、2nビッ
トより大きい所定のビット長の第2の素数を生成する第
2の素数生成ステップと、前記所定のビット長の素数を
用いて暗号鍵を生成する暗号鍵生成ステップとを有する
ことを特徴とする。
【0018】本発明(請求項8)は、暗号装置内で素数
をもとに暗号鍵を生成する暗号鍵生成方法であって、予
め定められた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の素数を用いて暗号鍵
を生成する暗号鍵生成ステップとを有することを特徴と
する。
【0019】本発明(請求項9)は、暗号鍵を生成する
暗号鍵生成手段を備えた暗号装置における暗号鍵生成方
法であって、前記暗号鍵生成手段により前記暗号鍵を生
成するのに先だって、前記暗号鍵生成手段により前記暗
号鍵が生成された否かを示す制御情報を参照し、該制御
情報により前記暗号鍵が生成されていないことが示され
ている場合にのみ、前記暗号鍵生成手段により前記暗号
鍵を生成し、前記暗号鍵生成手段により前記暗号鍵を生
成した場合、前記制御情報を前記暗号鍵が生成されたこ
とを示す状態にすることを特徴とする。
【0020】本発明(請求項10)は、自装置内で暗号
鍵を生成する暗号装置における暗号鍵管理方法であっ
て、前記暗号鍵を生成し、直ちに該暗号鍵のチェックサ
ムを生成し、生成された前記暗号鍵と前記チェックサム
とを対応付けて格納することを特徴とする。
【0021】本発明(請求項11)は、予め定められた
nビット以下の値のすべての素数をもとに2nビット以
下の素数を生成する第1の素数生成手段と、前記nビッ
ト以下のすべての素数および前記2nビット以下の素数
をもとに2nビットより大きい前記所定のビット長の素
数を生成する第2の素数生成手段とを備えたことを特徴
とする。
【0022】本発明(請求項12)は、予め定められた
nビット以下のすべての素数を用いて所定の2nビット
以下の乱数を素数判定することにより2nビット以下の
第1の素数を生成する第1の素数生成手段と、前記第1
の素数をもとに該第1の素数より大きい素数候補を生成
し、少なくとも前記nビット以下のすべての素数を用い
た素数判定により該素数候補が合成数でないと判定され
た場合には該素数候補を新たな第1の素数とし該新たな
第1の素数をもとに該素数候補より大きい新たな素数候
補を生成する処理を再帰的に繰り返すとともに、素数候
補が合成数であると判定された場合には前記合成数と判
定された時点での第1の素数をもとに素数候補を生成し
直しあらためて該処理を再帰的に繰り返すことにより、
2nビットより大きい所定のビット長の第2の素数を生
成する第2の素数生成手段とを備えたことを特徴とす
る。
【0023】本発明(請求項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.4
mビットの第2の素数、前記第3の素数生成手段により
生成された0.5mビットの第3の素数および前記nビ
ット以下のすべての素数をもとにmビットの第4の素数
を生成する第4の素数生成手段とを備えたことを特徴と
する。
【0024】本発明(請求項14)は、予め定められた
nビット以下の値のすべての素数をもとに2nビット以
下の第1の素数を生成し、前記nビット以下のすべての
素数および前記2nビット以下の素数をもとに2nビッ
トより大きい前記所定のビット長の素数を生成すること
を特徴とする。
【0025】本発明(請求項15)は、予め定められた
nビット以下のすべての素数を用いて所定の2nビット
以下の乱数を素数判定することにより2nビット以下の
第1の素数を生成する第1の素数生成ステップと、前記
第1の素数をもとに該第1の素数より大きい素数候補を
生成し、少なくとも前記nビット以下のすべての素数を
用いた素数判定により該素数候補が合成数でないと判定
された場合には該素数候補を新たな第1の素数とし該新
たな第1の素数をもとに該素数候補より大きい新たな素
数候補を生成する処理を再帰的に繰り返すとともに、素
数候補が合成数であると判定された場合には前記第1の
素数生成ステップにて合成数と判定された時点での第1
の素数をもとに素数候補を生成しあらためて該処理を再
帰的に繰り返すことにより、2nビットより大きい所定
のビット長の第2の素数を生成する第2の素数生成ステ
ップとを有することを特徴とする。
【0026】本発明(請求項16)は、予め定められた
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の素数生成ステ
ップとを有することを特徴とする。
【0027】本発明(請求項17)は、コンピュータ
に、予め定められたnビット以下の値のすべての素数を
もとに2nビット以下の第1の素数を生成する手順と、
前記nビット以下のすべての素数および前記第1の素数
をもとに2nビットより大きい所定のビット長の第2の
素数を生成する手順とを実行させるためのプログラムを
記録したコンピュータ読取り可能な記録媒体を要旨とす
る。
【0028】本発明(請求項18)は、コンピュータ
に、予め定められたnビット以下のすべての素数を用い
て所定の2nビット以下の乱数を素数判定することによ
り2nビット以下の第1の素数を生成する第1の素数生
成ステップと、前記第1の素数をもとに該第1の素数よ
り大きい素数候補を生成し、前記nビット以下のすべて
の素数を少なくとも用いた素数判定により該素数候補が
合成数でないと判定された場合には該素数候補を新たな
第1の素数とし該新たな第1の素数をもとに該素数候補
より大きい新たな素数候補を生成する処理を再帰的に繰
り返すとともに、素数候補が合成数であると判定された
場合には前記第1の素数生成ステップにて合成数と判定
された時点での第1の素数をもとに素数候補を生成し直
しあらためて該処理を再帰的に繰り返すことにより、2
nビットより大きい所定のビット長の第2の素数を生成
する第2の素数生成ステップとを実行させるためのプロ
グラムを記録したコンピュータ読取り可能な記録媒体を
要旨とする。
【0029】本発明(請求項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の素数生成ステップとを実行させるためのプログラ
ムを記録したコンピュータ読取り可能な記録媒体を要旨
とする、好ましくは、前記プログラムはコンピュータに
生成された前記素数を用いて暗号鍵を生成させる手順を
含むものであるようにしてもよい。
【0030】好ましくは、前記プログラムはコンピュー
タに生成された前記暗号鍵を用いて暗号化対象となるデ
ータを暗号化させる手順を含むものであるようにしても
よい。
【0031】本発明(請求項20)は、コンピュータ
に、暗号鍵を生成する前に暗号鍵が生成された否かを示
す制御情報を参照する手順と、該制御情報により前記暗
号鍵が生成されていないことが示されている場合にのみ
暗号鍵を生成する手順と、暗号鍵を生成した場合に前記
制御情報を暗号鍵が生成されたことを示す状態にする手
順とを実行させるためのプログラム記録したコンピュー
タ読取り可能な記録媒体を要旨とする。
【0032】本発明(請求項21)は、コンピュータ
に、暗号鍵を生成する手順と、暗号鍵を生成したら直ち
に該暗号鍵のチェックサムを生成する手順と、生成され
た暗号鍵とチェックサムとを対応付けて所定の記憶領域
に格納する手順とを実行させるためのプログラム記録し
たコンピュータ読取り可能な記録媒体を要旨とする。
【0033】なお、以上の装置に係る発明は方法に係る
発明としても成立し、方法に係る発明は装置に係る発明
としても成立する。また、装置または方法に係る本発明
は、コンピュータに当該発明に相当する手順を実行させ
るための(あるいはコンピュータを当該発明に相当する
手段として機能させるための、あるいはコンピュータに
当該発明に相当する機能を実現させるための)プログラ
ムを記録したコンピュータ読取り可能な記録媒体として
も成立する。
【0034】本発明(請求項1、2、3、6、7、8、
11〜16)において、nビットは好ましくは2の倍数
である。例えばnビット=256=28 の場合、256
以下の素数は全部で53個である。また、所定のビット
長は、例えば256ビットあるいは384ビットであ
る。また、mは、例えば256あるいは384である。
【0035】また、第2〜第4の素数生成では、前記n
ビット以下のすべての素数を用いる素数判定(エラトス
テネスのふるい)の次に少なくともフェルマーテストを
行なうのが好ましい。
【0036】また、好ましくは、前記暗号装置や前記素
数生成装置は、プログラム記憶手段、プログラムを実行
する演算手段、データの読み出し及び書き込み可能なメ
モリ手段及び外部との通信を行なう手段を備えても良
い。
【0037】また、前記暗号装置や前記素数生成装置
は、例えばパーソナルコンピュータで実現することがで
きる。あるいはICカードで実現することもできる。本
発明(請求項1、2、3、6)によれば、確定的素数判
定方法と、第1の素数を素数判定するときに用いる(第
1の素数)1/2 以下の素数を格納した素数テーブルとを
組合わせることによって、暗号装置のメモリ容量に対応
したサイズのテーブルを利用することが可能になる。
【0038】したがって、豊富なメモリを持つパーソナ
ルコンピュータのような暗号装置でなく、メモリ容量が
限定されている暗号装置(例えばICカード)であって
も装置上に容易に鍵(例えば公開鍵暗号における公開鍵
及び秘密鍵)の生成機能を実装することが可能になる。
【0039】また、扱うデータ量が少ないので、高速に
鍵を生成することができる。また、確定的素数判定方法
を用いるので、確実に素数を得ることができ、安全な鍵
を得ることができる。
【0040】また、装置に鍵生成機能を持たせることに
より、鍵に対する安全性を向上させ、鍵の管理を容易に
することができる。また、個々の暗号装置内で鍵を生成
し、暗号装置内で暗号処理及び復号処理を行なうなら
ば、鍵は決して暗号装置外に出ることがないので、鍵に
対する高い安全性を保つことができる。
【0041】また、公開鍵暗号において、個々の暗号装
置が秘密鍵および公開鍵を生成することにより、鍵を管
理するセンターは、個々の暗号装置に対し鍵生成及び配
送をする必要がなくなり、鍵生成及び管理に伴う処理の
負担が軽減される。
【0042】本発明(請求項11〜16)によれば、確
定的素数判定方法と、第1の素数を素数判定するときに
用いる(第1の素数)1/2 以下の素数を格納した素数テ
ーブルとを組合わせることによって、装置のメモリ容量
に対応したサイズのテーブルを利用することが可能にな
る。
【0043】したがって、豊富なメモリを持つパーソナ
ルコンピュータのような装置でなく、メモリ容量が限定
されている装置(例えばICカード)であっても装置上
に容易に素数生成機能を実装することが可能になる。
【0044】また、扱うデータ量が少ないので、高速に
素数を生成することができる。また、確定的素数判定方
法を用いるので、確実に素数を得ることができる。本発
明(請求項4、9)において、制御情報は、例えば少な
くとも1ビットのメモリである。
【0045】本発明(請求項4、9)によれば、制御情
報が暗号鍵生成後の状態にある間は暗号鍵生成手段は再
動作できないので、暗号装置内で生成された鍵に対し暗
号鍵生成手段の再起動等により既に生成された鍵が破壊
されることを防ぐことができる。
【0046】本発明(請求項5、10)によれば、暗号
鍵生成後、直ちに、チェックサムを計算し、自装置内に
暗号鍵と共に保持しておくので、この鍵の使用に際して
保存されている暗号鍵のチェックサムを計算し、これと
保存されているチェックサムとを比較することにより、
鍵の正当性を検証し、改ざんあるいは何らかの原因で破
壊された暗号鍵による暗号処理や復号処理を回避するこ
とができる。
【0047】
【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。図1は、本発明の一実施形態に
係る暗号装置の構成を示す図である。本実施形態の暗号
装置1は、CPU2、プログラム記憶部3、演算部4、
乱数生成部5、ランダムアクセス可能な不揮発メモリ
6、不揮発性メモリ7、アドレス及びデータバス8を備
えている。
【0048】本実施形態では、プログラム記憶部3に格
納されたプログラムをCPU2で実行する形で各機能を
実現するものとしている。このプログラムは、素数生成
のためのサブプログラムと鍵生成のためのサブプログラ
ムとを少なくとも含む。なお、素数生成のためのサブプ
ログラムと、鍵生成のためのサブプログラムとを独立実
施することも可能である。
【0049】また、本実施形態では、処理速度を上げる
ために所定の演算については演算部4を利用する。演算
部4には、例えばコプロセッサを用いる。ただし、演算
部4を設けなくても構わない。
【0050】また、図1では、乱数生成部5を明に示し
ているが、乱数生成部5は独立のハードウェアで実現し
ても良いし、プログラムとCPU2で実現しても良い。
本実施形態では、後者であるとする。なお、乱数は外部
の装置から入力するようにしても構わない。
【0051】プログラム記憶部3は、例えばROMであ
る。なお、プログラム(本実施形態を実現するための手
順を含むプログラム)を外部から(例えば、記録媒体か
ら読み込んでもしくはネットワークを介して取得して)
インストールする構成を採用することも可能である。こ
のような場合、プログラム記憶部3には、例えばEEP
ROMもしくはRAMもしくはハードディスク装置など
を用いることができる。
【0052】ランダムアクセス可能な不揮発性メモリ6
は、例えばRAMである。このメモリ6には、計算に必
要なデータや計算途中のデータなどを格納する。不揮発
性メモリ7は、例えばEEPROMである。このメモリ
7には、生成された鍵などを格納する。
【0053】また、暗号装置1は、図示しない所望のイ
ンタフェースを介して外部からデータを入力し、また外
部にデータを出力する。このインタフェースは、例え
ば、ユーザインタフェース、通信インタフェースなど、
種々のものが考えられる。例えば、暗号装置1がICカ
ードである場合、所定の通信インタフェースを介して外
部の計算機とデータの受け渡しを行なう。
【0054】そして、暗号装置1、所望の暗号機能、す
なわち例えばこのインタフェースを介して入力されたデ
ータに対して暗号化あるいは復号化などの処理を行な
い、あるいはデータの認証処理を行ない、また外部の表
示装置、通信回線あるいは記憶装置に対して、入力され
たデータあるいは処理したデータなどを出力する機能を
有するものとする。この機能は、例えばプログラムによ
り実現する。また、この機能をサブプログラムとして上
記の素数生成のためのサブプログラムと鍵生成のための
サブプログラムとを含むプログラムに組み込んで実施す
ることも可能である。
【0055】ところで、本実施形態では、素数判定に用
いる素数を格納した素数テーブルを用いる。この素数テ
ーブルは、ランダムアクセス可能な不揮発性メモリ6に
格納する。ここでは、始めにワードサイズの2倍のビッ
ト長の素数を生成し、その素数を基にそれより大きい所
定のサイズの素数を生成することを前提として、素数テ
ーブルにはワードサイズ以下の素数を格納しておくもの
とする。例えば、ワードサイズが8ビットである場合、
256以下のすべての素数(53個の素数)を格納して
おく。
【0056】図2に、公開鍵及び秘密鍵生成に用いる素
数を生成する素数生成処理のフローチャートを示す。 処理1:まず、乱数生成部5においてワードサイズの2
倍のビット長の奇数をランダムに生成する(ステップS
1)。
【0057】処理2:生成された奇数について、素数テ
ーブルに格納されているワードサイズ以下の素数を用い
て演算部4において試行割算(エラトステネスのふる
い)を行なう(ステップS2)。
【0058】処理3:生成された奇数が素数テーブル内
の全ての素数で割り切れない場合、この奇数を素数と判
定し、F0 に代入する。素数テーブル内のいずれかの素
数で割り切れた場合、処理1に戻る(ステップS3)。
【0059】処理4:以下の処理ループのためのパラメ
ータi=0とする(ステップS4)。 処理5:素数Fi を基に、乱数生成部5において、Ri
<Fi を満たす乱数Ri を生成し(ステップS5)、N
i =2Rii +1で表される素数候補Ni を作る(ス
テップS6)。
【0060】処理6:素数候補Ni に対し、素数判定の
前処理として、素数テーブルに格納されている素数を用
いて演算部4において試行割算を行なう(ステップS
7)。 処理7:素数候補Ni が、素数テーブル内のいずれかの
素数で割り切れた場合、素数候補Ni は合成数であると
判定し、処理5に戻る(ステップS8)。そして、Fi
の値はそのままで、乱数生成部5においてRi (Ri
i )を生成し直し、新しい素数候補Ni を生成する。
【0061】処理8:素数候補Ni について、所定のa
i について、式(1)を満たすかどうか演算部4におい
て計算する(フェルマーテスト)(ステップS9)。満
たさない場合、処理5に戻る(ステップS10)。
【0062】
【数1】
【0063】処理9:素数候補Ni について、所定のa
i について、式(2)を満たすかどうか演算部4におい
て計算する(ステップS11)。満たさない場合、処理
5に戻る(ステップS12)。
【0064】
【数2】
【0065】処理10:素数候補Ni が所定のビットサ
イズに達していないならば、Fi =Ni 、i+=1(i
を1増加)とし(ステップS13,S14)、処理5に
戻る。素数候補Ni が所定のビット長に達するように、
i のビット長を増加(Ri<Fi )させることで調整
する。
【0066】処理11:以上のようにして、素数候補N
i が所定のビットサイズに達したならば、素数Ni を得
る。上記の処理8と処理9においては、ai =2を用い
るのが好ましい。上記の試行割算では、ワードサイズ以
下の素数を含む前記素数テーブルを使用するが、F0
下の素数による試行割算を前処理として施すことで、殆
どの合成数を除去することが可能である。よって、素数
判定にかける素数候補が絞られることにより、効率良く
素数判定を行なうことができる。
【0067】また、上記の判定式では、ai =2という
小さな底の計算で処理するので計算が容易となる。通
常、底ai は、2だけではなく、小さな素数から順に用
いて素数判定処理を行なうが、ai をこのように変化さ
せなくても支障はない。それは、ai =2のときに、素
数候補が素数であるにもかかわらず、素数ではないと判
定されるケースは非常に小さいからである。
【0068】よって、効率性と実用性を備えた底とし
て、ai =2を用いる。上記の処理11までの実行で、
求められた素数のビットサイズがnビットとすると、
(素数−1)にn/2ビット程度の素数を持たせること
ができる。これにより、素因数分解法の一手法であるp
−1法を回避できる。
【0069】さらにp+1法に対処するためには、(素
数+1)にも大きなビットサイズの素数を持たせる必要
がある。図2の処理を用いて素数を生成し、図3の処理
でp±1法に対処できる素数を生成する。
【0070】処理12:まず、図2の処理を用いて0.
4nビットの素数(s,t)を生成する(ステップS2
1,S22)。 処理13:0.5nビットの素数候補を、r=2at+
1となるように生成する(ステップS23)。
【0071】処理14:素数候補に対し、素数判定の前
処理として、素数テーブルに格納されている素数を用い
て演算部4において試行割算を行なう(ステップS2
4)。素数候補が、素数テーブル内のいずれかの素数で
割り切れた場合、素数候補Nは合成数であると判定し、
a+=1のようにaの値を調整し、処理13に戻る(ス
テップS25)。
【0072】処理15:素数候補について、式(3)を
満たすかどうか演算部4において計算する(ステップS
26)。満たさない場合、a+=1のようにaの値を調
整し、処理13に戻る(ステップS27)。
【0073】
【数3】
【0074】処理16:素数候補について、式(4)を
満たすかどうか演算部4において計算する(ステップS
28)。満たさない場合、a+=1のようにaの値を調
整し、処理14に戻る(ステップS29)。
【0075】
【数4】
【0076】処理17:nビットの素数Nを、N=1+
2(bs−r-1 (mod s))rとなるように生成
し(ステップS30)、上記の処理14の試行割算およ
び判定、処理15の計算および判断、処理16の計算お
よび判断と同じ処理を行なう(ステップS31〜S3
6)。この試行割算で素数候補Nが合成数と判定された
場合およびいずれかの計算で素数判定式が成立しない場
合、b+=1のようにbの値を調整し、再度、上記一連
の処理を行なう。
【0077】処理18:生成した素数Nが所定のビット
長を持つならば終了する(ステップS37)。所定のビ
ット長に達していないならば処理17に戻り、素数候補
Nが所定のビット長を持つようにb+=1のようにbの
値を調整し素数判定を行なう。
【0078】さて、以上のようにして素数を生成した
ら、次に、これら素数をもとに公開鍵及び秘密鍵を生成
する。以下、各暗号方式における公開鍵及び秘密鍵の生
成について説明する。
【0079】RSA暗号における公開鍵及び秘密鍵の生
成に際しては、上記の処理を用いて2個の素数p、qを
生成し、n=pqを公開除数とし、ed=1 (mod
lcm(p−1,q−1))なるe、dをそれぞれ、
秘密べき指数、公開べき指数として用いる(lcmは最
小公倍数を表す)。
【0080】ラビン暗号における公開鍵及び秘密鍵で用
いる素数p、qは、式(5)、式(6)の制限があるの
で、p、q各々について、上記処理16まで処理した
後、処理17の代わりに次の処理17´を行なう。
【0081】
【数5】
【0082】処理17´:p=2Fpp +1、q=2
qq +1、(p、qはnビットの素数候補)、F
p 、Fq は0.5nビットの素数、Rp 、Rq は0.4
nビットの乱数である。Fp 、Rp は、処理17の各々
(bs−r-1 (mod s))、rに相当する。Fp
p とFqq について、4|Fpp −1、4|Fq
q −3を満たすものを探す。そして、p、qについ
て、上記の処理14の試行割算および判定、処理15の
計算および判断、処理16の計算および判断と同じ処理
を行なう(ステップS31〜S36)。
【0083】処理17´で生成されたp、qを用いて、
n=pqを公開除数とし、ed=1(mod (1/
2)・lcm(p−1,q−1))なるe、dをそれぞ
れ、秘密べき指数、公開べき指数として用いる。
【0084】公開鍵暗号系で用いられるプラム整数m=
pqは、素数p、qは、式(7)、式(8)の制限があ
るので、上記の処理17´におけるFpp とFqq
について、2|Fpp −1、2|Fqq −1を満た
すものを探す。そして、p、qについて、上記の処理1
4の試行割算および判定、処理15の計算および判断、
処理16の計算および判断と同じ処理を行なう(ステッ
プS31〜S36)。
【0085】
【数6】
【0086】DSAの鍵に必要な素数は、上記の処理1
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を秘密鍵として用い
る。
【0087】以上のように本実施形態によれば、確定的
素数判定方法と、素数F0 を素数判定するときに用いる
(F01/2 以下の素数を格納した素数テーブルとを組
合わせることによって、暗号装置のメモリ容量に対応し
たサイズのテーブルを利用することが可能になる。
【0088】したがって、豊富なメモリを持つパーソナ
ルコンピュータのような暗号装置でなく、メモリ容量が
限定されている暗号装置(例えばICカード)であって
も装置上に容易に公開鍵暗号における公開鍵及び秘密鍵
の生成機能を実装することが可能になる。
【0089】また、扱うデータ量が少ないので、高速に
鍵を生成することができる。また、確定的素数判定方法
を用いるので、確実に素数を得ることができ、安全な鍵
を得ることができる。
【0090】また、素因数分解による攻撃に強い鍵を得
ることができる。また、装置に鍵生成機能を持たせるこ
とにより、鍵に対する安全性を向上させ、鍵の管理を容
易にすることができる。
【0091】また、個々の暗号装置内で鍵を生成し、暗
号装置内で暗号処理及び復号処理を行なうならば、鍵は
決して暗号装置外に出ることがないので、鍵に対する高
い安全性を保つことができる。
【0092】なお、前述したように素数テーブルをメモ
リ6内に設ける代わりに、素数テーブルに相当するもの
をプログラムの中に作り込むようにしても良い。また、
本実施形態では、素数をもとに公開鍵暗号における秘密
鍵と公開鍵を生成するものについて説明したが、前述し
た方法で生成した素数をもとに共通鍵を生成しても構わ
ない。
【0093】次に、鍵生成プログラムの実行制御につい
て説明する。暗号装置1において、鍵生成プログラムが
起動され、一旦、鍵が生成されたならば、その鍵は不揮
発性メモリ7に格納される。本実施形態では、それと同
時に、同じく不揮発性メモリ7に存在する鍵生成制御ビ
ットを立てるようにする。
【0094】この鍵生成制御ビットにより、鍵生成プロ
グラムの実行を制御する。つまり、鍵生成プログラムを
実行するのに先だって、鍵生成制御ビットを調べ、鍵生
成制御ビットがオフの状態ならば、鍵生成プログラムを
実行させ、オンの状態ならば鍵生成プログラムを起動し
ない。
【0095】これによって、暗号装置1が生成した鍵に
対し、鍵生成プログラムの再起動等により、既に生成さ
れた鍵が破壊されることを防ぐことができる。その他の
鍵生成プログラムの実行制御方法として、予め、暗号装
置1内に保存されている秘密の認証コードと同一コード
が入力されたときのみ鍵生成プログラムを起動する方法
も考えられる。この方法は、認証コードをマスクに書き
込んでおくかまたは発行時の初期段階で書き込み、後の
鍵生成時に同一コードを入力し鍵生成プログラムを起動
するものである。この鍵生成プログラムの実行制御方法
は、既に生成された暗号鍵を変更する場合にも用いるこ
ともできる。つまり、正しい認証コードを入力した場合
にのみ、鍵生成プログラムが実行可能であり、生成され
た暗号鍵を不揮発性メモリ7に格納することができる。
【0096】次に、図4を参照しながら暗号装置9内に
格納されている鍵の検証について説明する。まず、鍵が
生成されたならば、直ちに、生成された鍵のハッシュ値
を計算し、生成された鍵(図中11)と、そのハッシュ
値(図中10)とを対応付けて不揮発性メモリ7に保存
しておく。
【0097】しかして、暗号処理や復号処理あるいは認
証処理にて鍵を使用する前に、不揮発性メモリ7に格納
されている鍵(図中11)のハッシュ値を計算し(図中
12)、予め不揮発性メモリ7に保存されていたハッシ
ュ値(図中10)と一致判定部13において比較する。
一致したならば成功を示す制御信号を出力して暗号処理
や復号処理の実行を可能とし、一致しないならば、失敗
を示す制御信号を出力して暗号処理や復号処理の実行を
不可とする。
【0098】そして、制御信号が成功、すなわちハッシ
ュ値の一致を示している場合にのみ、暗号処理を起動
し、制御信号が失敗、すなわちハッシュ値の不一致を示
している場合には、暗号処理を起動させない。
【0099】このように暗号装置9で生成された鍵を用
いて暗号処理や復号処理を行なう際に、格納されている
鍵の検証を行なうことによって、何らかの原因で破壊さ
れた鍵による暗号処理や復号処理を回避することができ
る。
【0100】次に、図5を参照しながらユーザ側と公開
鍵を管理・公開するセンター側との間でのユーザの鍵の
正当性の確認について説明する。暗号装置19で生成さ
れた公開鍵及び秘密鍵については、センター17がそれ
らの正当性を確認する手段が必要である。その一手法と
して、図5に示す方法がある。
【0101】まず、センター17は、情報処理装置18
から、暗号装置19により生成された公開鍵kを受け取
る。次に、センター17は、乱数Rを生成し(図中2
0)、その乱数Rを暗号装置19により生成された公開
鍵kを用いて暗号化し(図中21)、情報処理装置18
へ送信する(図中22)。
【0102】情報処理装置18は、外部インタフェース
30を介して暗号装置19に公開鍵kで暗号化された乱
数Rを送信する。暗号装置19は、その公開鍵kで暗号
化された乱数Rを、公開鍵とペアである秘密鍵を用いて
復号化する(図中23)。
【0103】復号化された乱数Rは、暗号装置19から
情報処理装置18を介してセンターに送信する(図中2
5)。そして、センター17では、一致判定部26によ
り自ら生成した乱数と暗号装置19から送信された乱数
について検証を行なう。
【0104】一致したならば、暗号装置19はセンター
17が所有する公開鍵に対して正当な秘密鍵を保持して
いるので、センター17は暗号装置19に公開鍵証明書
を発行する。
【0105】このように、個々の暗号装置が秘密鍵およ
び公開鍵を生成することにより、鍵を管理するセンター
は、個々の暗号装置に対し鍵生成及び配送をする必要が
なくなり、鍵生成及び管理に伴う処理の負担が軽減され
る。
【0106】なお、本発明は、コンピュータに所定の手
順を実行させるための(あるいはコンピュータを所定の
手段として機能させるための、あるいはコンピュータに
所定の機能を実現させるための)プログラムを記録した
コンピュータ読取り可能な記録媒体として実施すること
もできる。本発明は、上述した実施の形態に限定される
ものではなく、その技術的範囲において種々変形して実
施することができる。
【0107】
【発明の効果】本発明によれば、予め定められたnビッ
ト以下の値のすべての素数をもとに2nビット以下の素
数を生成し、この生成された素数をもとに順次大きな素
数を生成して所定のビット長の第2の素数生成するの
で、必要なメモリ容量を少なく済ませることができる。
【0108】したがって、メモリ容量が限定されている
暗号装置に鍵生成機能を実装することが可能になる。ま
た、扱うデータ量が少ないので、高速に鍵を生成するこ
とができる。
【0109】また、外部とのやり取りなしに暗号装置内
で鍵を生成するので、鍵に対する安全性を向上させるこ
とができるとともに、鍵の管理を容易にすることができ
る。また、本発明によれば、暗号装置内で既に鍵が生成
されている場合、再度鍵が生成されないようにするの
で、既に生成された鍵が新たに生成された鍵で破壊され
るようなことを防ぐことができる。
【0110】また、本発明によれば、暗号装置内で生成
された鍵を用いて暗号処理や復号処理を行なう際に、格
納されている鍵の検証を行なうことによって、何らかの
原因で破壊された鍵による暗号処理や復号処理を回避す
ることができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る暗号化装置の構成を
示す図
【図2】同実施形態に係る素数生成手順を示すフローチ
ャート
【図3】同実施形態に係る素数生成手順を示すフローチ
ャート
【図4】同実施形態に係る暗号装置における鍵検証の一
例を示す図
【図5】同実施形態に係る鍵の正当性検証の一例を示す
【符号の説明】
1…暗号装置 2…CPU 3…プログラム記憶部 4…演算部 5…乱数生成部 6…ランダムアクセス可能な不揮発メモリ 7…不揮発メモリ 8…バス 9…暗号装置 12…ハッシュ値算出部 13,26…一致判定部 17…センター 18…方法処理装置 19…暗号装置

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】自装置内で素数をもとに暗号鍵を生成する
    暗号装置であって、 予め定められたnビット以下の値のすべての素数をもと
    に2nビット以下の第1の素数を生成する第1の素数生
    成手段と、 前記nビット以下のすべての素数および前記第1の素数
    をもとに2nビットより大きい所定のビット長の第2の
    素数を生成する第2の素数生成手段と、 前記所定のビット長の第2の素数を用いて暗号鍵を生成
    する暗号鍵生成手段とを備えたことを特徴とする暗号装
    置。
  2. 【請求項2】自装置内で暗号鍵を生成する暗号装置であ
    って、 予め定められたnビット以下のすべての素数を用いて所
    定の2nビット以下の乱数を素数判定することにより2
    nビット以下の第1の素数を生成する第1の素数生成手
    段と、 前記第1の素数をもとに該第1の素数より大きい素数候
    補を生成し、前記nビット以下のすべての素数を少なく
    とも用いた素数判定により該素数候補が合成数でないと
    判定された場合には該素数候補を新たな第1の素数とし
    該新たな第1の素数をもとに該素数候補より大きい新た
    な素数候補を生成する処理を再帰的に繰り返すととも
    に、素数候補が合成数であると判定された場合には前記
    合成数と判定された時点での第1の素数をもとに素数候
    補を生成し直しあらためて該処理を再帰的に繰り返すこ
    とにより、2nビットより大きい所定のビット長の第2
    の素数を生成する第2の素数生成手段と、 前記所定のビット長の素数を用いて暗号鍵を生成する暗
    号鍵生成手段とを備えたことを特徴とする暗号装置。
  3. 【請求項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. 【請求項4】自装置内で暗号鍵を生成する暗号装置であ
    って、 前記暗号鍵を生成する暗号鍵生成手段と、 前記暗号鍵生成手段により前記暗号鍵が生成されたか否
    かを示す制御情報を格納する手段と、 前記制御情報により前記暗号鍵が生成されたことが示さ
    れている間は、前記暗号鍵生成手段による前記暗号鍵の
    生成を不可にする手段とを備えたことを特徴とする暗号
    装置。
  5. 【請求項5】自装置内で暗号鍵を生成する暗号装置であ
    って、 前記暗号鍵を生成する暗号鍵生成手段と、 前記暗号鍵生成手段により前記暗号鍵が生成された場
    合、直ちに、生成された前記暗号鍵のチェックサムを生
    成するチェックサム生成手段と、 前記暗号鍵とそのチェックサムを対応付けて格納する格
    納手段とを備えたことを特徴とする暗号装置。
  6. 【請求項6】暗号装置内で素数をもとに暗号鍵を生成す
    る暗号鍵生成方法であって、 予め定められたnビット以下の値のすべての素数をもと
    に2nビット以下の第1の素数を生成し、 前記nビット以下のすべての素数および前記第1の素数
    をもとに2nビットより大きい所定のビット長の第2の
    素数を生成し、 前記所定のビット長の第2の素数を用いて暗号鍵を生成
    することを特徴とする暗号鍵生成方法。
  7. 【請求項7】暗号装置内で素数をもとに暗号鍵を生成す
    る暗号鍵生成方法であって、 予め定められたnビット以下のすべての素数を用いて所
    定の2nビット以下の乱数を素数判定することにより2
    nビット以下の第1の素数を生成する第1の素数生成ス
    テップと、 前記第1の素数をもとに該第1の素数より大きい素数候
    補を生成し、前記nビット以下のすべての素数を少なく
    とも用いた素数判定により該素数候補が合成数でないと
    判定された場合には該素数候補を新たな第1の素数とし
    該新たな第1の素数をもとに該素数候補より大きい新た
    な素数候補を生成する処理を再帰的に繰り返すととも
    に、素数候補が合成数であると判定された場合には前記
    第1の素数生成ステップにて合成数と判定された時点で
    の第1の素数をもとに素数候補を生成し直しあらためて
    該処理を再帰的に繰り返すことにより、2nビットより
    大きい所定のビット長の第2の素数を生成する第2の素
    数生成ステップと、 前記所定のビット長の素数を用いて暗号鍵を生成する暗
    号鍵生成ステップとを有することを特徴とする暗号鍵生
    成方法。
  8. 【請求項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. 【請求項9】暗号鍵を生成する暗号鍵生成手段を備えた
    暗号装置における暗号鍵生成方法であって、 前記暗号鍵生成手段により前記暗号鍵を生成するのに先
    だって、前記暗号鍵生成手段により前記暗号鍵が生成さ
    れた否かを示す制御情報を参照し、該制御情報により前
    記暗号鍵が生成されていないことが示されている場合に
    のみ、前記暗号鍵生成手段により前記暗号鍵を生成し、 前記暗号鍵生成手段により前記暗号鍵を生成した場合、
    前記制御情報を前記暗号鍵が生成されたことを示す状態
    にすることを特徴とする暗号鍵生成方法。
  10. 【請求項10】自装置内で暗号鍵を生成する暗号装置に
    おける暗号鍵管理方法であって、 前記暗号鍵を生成し、直ちに該暗号鍵のチェックサムを
    生成し、 生成された前記暗号鍵と前記チェックサムとを対応付け
    て格納することを特徴とする暗号鍵管理方法。
  11. 【請求項11】予め定められたnビット以下の値のすべ
    ての素数をもとに2nビット以下の素数を生成する第1
    の素数生成手段と、 前記nビット以下のすべての素数および前記2nビット
    以下の素数をもとに2nビットより大きい前記所定のビ
    ット長の素数を生成する第2の素数生成手段とを備えた
    ことを特徴とする素数生成装置。
  12. 【請求項12】予め定められたnビット以下のすべての
    素数を用いて所定の2nビット以下の乱数を素数判定す
    ることにより2nビット以下の第1の素数を生成する第
    1の素数生成手段と、 前記第1の素数をもとに該第1の素数より大きい素数候
    補を生成し、前記nビット以下のすべての素数を少なく
    とも用いた素数判定により該素数候補が合成数でないと
    判定された場合には該素数候補を新たな第1の素数とし
    該新たな第1の素数をもとに該素数候補より大きい新た
    な素数候補を生成する処理を再帰的に繰り返すととも
    に、素数候補が合成数であると判定された場合には前記
    合成数と判定された時点での第1の素数をもとに素数候
    補を生成し直しあらためて該処理を再帰的に繰り返すこ
    とにより、2nビットより大きい所定のビット長の第2
    の素数を生成する第2の素数生成手段とを備えたことを
    特徴とする素数生成装置。
  13. 【請求項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. 【請求項14】予め定められたnビット以下の値のすべ
    ての素数をもとに2nビット以下の第1の素数を生成
    し、 前記nビット以下のすべての素数および前記2nビット
    以下の素数をもとに2nビットより大きい前記所定のビ
    ット長の素数を生成することを特徴とする素数生成方
    法。
  15. 【請求項15】予め定められたnビット以下のすべての
    素数を用いて所定の2nビット以下の乱数を素数判定す
    ることにより2nビット以下の第1の素数を生成する第
    1の素数生成ステップと、 前記第1の素数をもとに該第1の素数より大きい素数候
    補を生成し、前記nビット以下のすべての素数を少なく
    とも用いた素数判定により該素数候補が合成数でないと
    判定された場合には該素数候補を新たな第1の素数とし
    該新たな第1の素数をもとに該素数候補より大きい新た
    な素数候補を生成する処理を再帰的に繰り返すととも
    に、素数候補が合成数であると判定された場合には前記
    第1の素数生成ステップにて合成数と判定された時点で
    の第1の素数をもとに素数候補を生成し直しあらためて
    該処理を再帰的に繰り返すことにより、2nビットより
    大きい所定のビット長の第2の素数を生成する第2の素
    数生成ステップとを有することを特徴とする素数生成方
    法。
  16. 【請求項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. 【請求項17】コンピュータに、予め定められたnビッ
    ト以下の値のすべての素数をもとに2nビット以下の第
    1の素数を生成する手順と、前記nビット以下のすべて
    の素数および前記第1の素数をもとに2nビットより大
    きい所定のビット長の第2の素数を生成する手順とを実
    行させるためのプログラムを記録したコンピュータ読取
    り可能な記録媒体。
  18. 【請求項18】コンピュータに、予め定められたnビッ
    ト以下のすべての素数を用いて所定の2nビット以下の
    乱数を素数判定することにより2nビット以下の第1の
    素数を生成する第1の素数生成ステップと、前記第1の
    素数をもとに該第1の素数より大きい素数候補を生成
    し、前記nビット以下のすべての素数を少なくとも用い
    た素数判定により該素数候補が合成数でないと判定され
    た場合には該素数候補を新たな第1の素数とし該新たな
    第1の素数をもとに該素数候補より大きい新たな素数候
    補を生成する処理を再帰的に繰り返すとともに、素数候
    補が合成数であると判定された場合には前記第1の素数
    生成ステップにて合成数と判定された時点での第1の素
    数をもとに素数候補を生成し直しあらためて該処理を再
    帰的に繰り返すことにより、2nビットより大きい所定
    のビット長の第2の素数を生成する第2の素数生成ステ
    ップとを実行させるためのプログラムを記録したコンピ
    ュータ読取り可能な記録媒体。
  19. 【請求項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. 【請求項20】コンピュータに、暗号鍵を生成する前に
    暗号鍵が生成された否かを示す制御情報を参照する手順
    と、該制御情報により前記暗号鍵が生成されていないこ
    とが示されている場合にのみ暗号鍵を生成する手順と、
    暗号鍵を生成した場合に前記制御情報を暗号鍵が生成さ
    れたことを示す状態にする手順とを実行させるためのプ
    ログラム記録したコンピュータ読取り可能な記録媒体。
  21. 【請求項21】コンピュータに、暗号鍵を生成する手順
    と、暗号鍵を生成したら直ちに該暗号鍵のチェックサム
    を生成する手順と、生成された暗号鍵とチェックサムと
    を対応付けて所定の記憶領域に格納する手順とを実行さ
    せるためのプログラム記録したコンピュータ読取り可能
    な記録媒体。
JP34509197A 1996-12-26 1997-12-15 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法 Expired - Fee Related JP3626340B2 (ja)

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)

* Cited by examiner, † Cited by third party
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 サーティコム コーポレーション ハードウェアベースセキュリティのためのシステムおよび方法

Cited By (24)

* Cited by examiner, † Cited by third party
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
US20200302429A1 (en) Rapid and secure off-ledger cryptocurrency transactions through cryptographic binding of a private key to a possession token
JP6841911B2 (ja) 情報保護用のシステム及び方法
US7370196B2 (en) Controlled-content recoverable blinded certificates
JP5497677B2 (ja) 公開鍵を検証可能に生成する方法及び装置
US8966269B2 (en) Integrity protected smart card transaction
US7730315B2 (en) Cryptosystem based on a Jacobian of a curve
CN111448579A (zh) 量子证明区块链
US20110016324A1 (en) Data card verification system
US8195951B2 (en) Data processing system for providing authorization keys
US9882890B2 (en) Reissue of cryptographic credentials
JPH09128507A (ja) 相互認証方法
US7000110B1 (en) One-way function generation method, one-way function value generation device, proving device, authentication method, and authentication device
JP3871996B2 (ja) データ分割管理方法及びプログラム
JP3626340B2 (ja) 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法
US11310049B2 (en) Homomorphic encryption for password authentication
JP2004072290A (ja) 証明書管理環境の管理方法、プログラム及び装置
JPH11234262A (ja) 利用資格検証装置
JP3791169B2 (ja) 認証装置および方法
JP2004248330A (ja) 暗号装置、暗号鍵生成方法、暗号鍵管理方法
CN107070648A (zh) 一种密钥保护方法及pki系统
JP2003162691A (ja) データ処理システム、メモリデバイス、データ処理装置、およびデータ処理方法、並びにコンピュータ・プログラム
JPH1013402A (ja) 公開鍵暗号の秘密鍵管理方法および装置
CN113064761B (zh) 数据恢复方法、服务器、加密机、终端及介质
JP2003051817A (ja) 暗号化・復号装置、ディジタル署名生成・検証装置、方法及びプログラム
JPH1155244A (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