JP2004248330A - 暗号装置、暗号鍵生成方法、暗号鍵管理方法 - Google Patents

暗号装置、暗号鍵生成方法、暗号鍵管理方法 Download PDF

Info

Publication number
JP2004248330A
JP2004248330A JP2004162531A JP2004162531A JP2004248330A JP 2004248330 A JP2004248330 A JP 2004248330A JP 2004162531 A JP2004162531 A JP 2004162531A JP 2004162531 A JP2004162531 A JP 2004162531A JP 2004248330 A JP2004248330 A JP 2004248330A
Authority
JP
Japan
Prior art keywords
encryption key
key
encryption
generated
generating
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.)
Pending
Application number
JP2004162531A
Other languages
English (en)
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 JP2004162531A priority Critical patent/JP2004248330A/ja
Publication of JP2004248330A publication Critical patent/JP2004248330A/ja
Pending legal-status Critical Current

Links

Images

Abstract

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

Description

本発明は、暗号処理、復号処理、認証処理などに用いる暗号鍵を自装置内で生成する暗号装置、暗号鍵生成方法、暗号鍵管理方法に関する。
昨今、情報処理の技術が進歩するにつれて情報を電子化して扱うことが通常行なわれるようになってきた。また、単にデータを電子化するだけでなく、電子貨幣システムや著作権に係る電子化情報の配布システムなど新たなサービスも開発されている。このような電子化情報を扱う場合に、企業秘密やプライベートなデータ、電子貨幣情報、著作権に係る電子化情報など、特定の者だけが閲覧等可能で、それ以外の者には内容を秘匿したい情報の蓄積や通信などにあたっては、暗号技術が使用される。
例えば、ホストコンピュータ間で暗号通信を行なう場合、送信側では共通鍵あるいは相手の公開鍵でデータを暗号化し、受信側ではこれを共通鍵あるいは自分の秘密鍵で復号することで、特定の鍵情報を持つ者だけが暗号化データを復号可能とすることができる。また例えば鍵情報を用いた認証処理により情報の正当性の検証を可能としている。
ところで、秘密鍵暗号では乱数生成機能が存在するだけで共通鍵の生成を容易に行なうことができる。これに対して、公開鍵暗号の公開鍵及び秘密鍵の生成は、秘密鍵暗号の共通鍵生成ほど簡単な処理ではない。特に、公開鍵及び秘密鍵を生成するためには、大きなビット長の素数が必要になるため、計算量の増加が避けられない。この大きなビット長の素数を高速に生成するための方法として、メモリを利用したテーブル処理が存在するが、この場合、非常に多くの素数を記憶しておく必要があり、メモリ資源の限られた暗号装置(例えば処理機能を有するICカードを暗号装置として用いるもの)においてはこのテーブル処理は適切ではないとされてきた。このような理由から従来では、公開鍵暗号の公開鍵及び秘密鍵は、通常、パーソナルコンピュータ等の高速なCPUと十分なメモリが存在する環境で生成する必要があった。
また、各ユーザの公開鍵を管理・公開するセンターが公開鍵及び秘密鍵を生成し、各ユーザに秘密鍵を配送する場合、安全性を考慮した鍵配送メカニズムが必須である。従って、センターが大量の秘密鍵を配送及び管理することは、かなりの負担であった。
また、個々のユーザがパーソナルコンピュータ等で公開鍵及び秘密鍵を生成し、秘密鍵を外部記憶装置に転送及び保持する場合、一時的であっても、パーソナルコンピュータのメモリ上に生成された鍵が存在することになり、それがオンラインの状態ならば、鍵が破壊あるいは改ざんされる可能性がある。また、秘密鍵生成機能の誤操作等により既に生成された鍵が破壊あるいは改ざんされる可能性がある。さらに、鍵が破壊あるいは改ざんなどされたことを検出することはできないという問題点もあった。
従来、素数をもとに暗号鍵(公開鍵、秘密鍵、共通鍵)を生成する場合、大きなビット長の素数を生成する必要があるため、多量のコンピュータ資源を必要とする問題点があった。
また、従来、秘密鍵生成機能の再起動により既に生成された鍵が破壊される可能性があるという問題点があった。また、従来、鍵が破壊あるいは改ざんなどされたことを検出することはできないという問題点があった。
本発明は、上記事情を考慮してなされたものであり、自装置内でより少ないコンピュータ資源を利用して、暗号鍵生成のもととなる十分な大きさの素数を生成可能な暗号装置及び暗号鍵生成方法を提供することを目的とする。
また、本発明は、暗号鍵を安全に管理可能な暗号装置、暗号鍵生成方法及び暗号鍵管理方法を提供することを目的とする。
本発明(請求項1)は、自装置内で暗号鍵を生成する暗号装置であって、前記暗号鍵を生成する暗号鍵生成手段と、前記暗号鍵生成手段により前記暗号鍵が生成されたか否かを示す制御情報を格納する手段と、前記制御情報により前記暗号鍵が生成されたことが示されている間は、前記暗号鍵生成手段による前記暗号鍵の生成を不可にする手段とを備えたことを特徴とする。
本発明(請求項2)は、自装置内で暗号鍵を生成する暗号装置であって、前記暗号鍵を生成する暗号鍵生成手段と、前記暗号鍵生成手段により前記暗号鍵が生成された場合、直ちに、生成された前記暗号鍵のチェックサムを生成するチェックサム生成手段と、前記暗号鍵とそのチェックサムを対応付けて格納する格納手段とを備えたことを特徴とする。
本発明(請求項3)は、暗号鍵を生成する暗号鍵生成手段を備えた暗号装置における暗号鍵生成方法であって、前記暗号鍵生成手段により前記暗号鍵を生成するのに先だって、前記暗号鍵生成手段により前記暗号鍵が生成された否かを示す制御情報を参照し、該制御情報により前記暗号鍵が生成されていないことが示されている場合にのみ、前記暗号鍵生成手段により前記暗号鍵を生成し、前記暗号鍵生成手段により前記暗号鍵を生成した場合、前記制御情報を前記暗号鍵が生成されたことを示す状態にすることを特徴とする。
本発明(請求項4)は、自装置内で暗号鍵を生成する暗号装置における暗号鍵管理方法であって、前記暗号鍵を生成し、直ちに該暗号鍵のチェックサムを生成し、生成された前記暗号鍵と前記チェックサムとを対応付けて格納することを特徴とする。
本発明(請求項5)は、コンピュータに、暗号鍵を生成する前に暗号鍵が生成された否かを示す制御情報を参照する手順と、該制御情報により前記暗号鍵が生成されていないことが示されている場合にのみ暗号鍵を生成する手順と、暗号鍵を生成した場合に前記制御情報を暗号鍵が生成されたことを示す状態にする手順とを実行させるためのプログラム記録したコンピュータ読取り可能な記録媒体を要旨とする。
本発明(請求項6)は、コンピュータに、暗号鍵を生成する手順と、暗号鍵を生成したら直ちに該暗号鍵のチェックサムを生成する手順と、生成された暗号鍵とチェックサムとを対応付けて所定の記憶領域に格納する手順とを実行させるためのプログラム記録したコンピュータ読取り可能な記録媒体を要旨とする。
なお、以上の装置に係る発明は方法に係る発明としても成立し、方法に係る発明は装置に係る発明としても成立する。また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
また、好ましくは、前記暗号装置は、プログラム記憶手段、プログラムを実行する演算手段、データの読み出し及び書き込み可能なメモリ手段及び外部との通信を行なう手段を備えても良い。
また、前記暗号装置は、例えばパーソナルコンピュータで実現することができる。あるいはICカードで実現することもできる。
したがって、豊富なメモリを持つパーソナルコンピュータのような暗号装置でなく、メモリ容量が限定されている暗号装置(例えばICカード)であっても装置上に容易に鍵(例えば公開鍵暗号における公開鍵及び秘密鍵)の生成機能を実装することが可能になる。
また、装置に鍵生成機能を持たせることにより、鍵に対する安全性を向上させ、鍵の管理を容易にすることができる。また、個々の暗号装置内で鍵を生成し、暗号装置内で暗号処理及び復号処理を行なうならば、鍵は決して暗号装置外に出ることがないので、鍵に対する高い安全性を保つことができる。
また、公開鍵暗号において、個々の暗号装置が秘密鍵および公開鍵を生成することにより、鍵を管理するセンターは、個々の暗号装置に対し鍵生成及び配送をする必要がなくなり、鍵生成及び管理に伴う処理の負担が軽減される。
本発明(請求項1、3)において、制御情報は、例えば少なくとも1ビットのメモリである。
本発明(請求項1、3)によれば、制御情報が暗号鍵生成後の状態にある間は暗号鍵生成手段は再動作できないので、暗号装置内で生成された鍵に対し暗号鍵生成手段の再起動等により既に生成された鍵が破壊されることを防ぐことができる。
本発明(請求項2、4)によれば、暗号鍵生成後、直ちに、チェックサムを計算し、自装置内に暗号鍵と共に保持しておくので、この鍵の使用に際して保存されている暗号鍵のチェックサムを計算し、これと保存されているチェックサムとを比較することにより、鍵の正当性を検証し、改ざんあるいは何らかの原因で破壊された暗号鍵による暗号処理や復号処理を回避することができる。
以上説明したように本発明によれば、外部とのやり取りなしに暗号装置内で鍵を生成するので、鍵に対する安全性を向上させることができるとともに、鍵の管理を容易にすることができる。また、本発明によれば、暗号装置内で既に鍵が生成されている場合、再度鍵が生成されないようにするので、既に生成された鍵が新たに生成された鍵で破壊されるようなことを防ぐことができる。
また、本発明によれば、暗号装置内で生成された鍵を用いて暗号処理や復号処理を行なう際に、格納されている鍵の検証を行なうことによって、何らかの原因で破壊された鍵による暗号処理や復号処理を回避することができる。
以下、図面を参照しながら発明の実施の形態を説明する。図1は、本発明の一実施形態に係る暗号装置の構成を示す図である。本実施形態の暗号装置1は、CPU2、プログラム記憶部3、演算部4、乱数生成部5、ランダムアクセス可能な不揮発メモリ6、不揮発性メモリ7、アドレス及びデータバス8を備えている。
本実施形態では、プログラム記憶部3に格納されたプログラムをCPU2で実行する形で各機能を実現するものとしている。このプログラムは、素数生成のためのサブプログラムと鍵生成のためのサブプログラムとを少なくとも含む。なお、素数生成のためのサブプログラムと、鍵生成のためのサブプログラムとを独立実施することも可能である。
また、本実施形態では、処理速度を上げるために所定の演算については演算部4を利用する。演算部4には、例えばコプロセッサを用いる。ただし、演算部4を設けなくても構わない。
また、図1では、乱数生成部5を明に示しているが、乱数生成部5は独立のハードウェアで実現しても良いし、プログラムとCPU2で実現しても良い。本実施形態では、後者であるとする。なお、乱数は外部の装置から入力するようにしても構わない。
プログラム記憶部3は、例えばROMである。なお、プログラム(本実施形態を実現するための手順を含むプログラム)を外部から(例えば、記録媒体から読み込んでもしくはネットワークを介して取得して)インストールする構成を採用することも可能である。このような場合、プログラム記憶部3には、例えばEEPROMもしくはRAMもしくはハードディスク装置などを用いることができる。
ランダムアクセス可能な不揮発性メモリ6は、例えばRAMである。このメモリ6には、計算に必要なデータや計算途中のデータなどを格納する。不揮発性メモリ7は、例えばEEPROMである。このメモリ7には、生成された鍵などを格納する。
また、暗号装置1は、図示しない所望のインタフェースを介して外部からデータを入力し、また外部にデータを出力する。このインタフェースは、例えば、ユーザインタフェース、通信インタフェースなど、種々のものが考えられる。例えば、暗号装置1がICカードである場合、所定の通信インタフェースを介して外部の計算機とデータの受け渡しを行なう。
そして、暗号装置1、所望の暗号機能、すなわち例えばこのインタフェースを介して入力されたデータに対して暗号化あるいは復号化などの処理を行ない、あるいはデータの認証処理を行ない、また外部の表示装置、通信回線あるいは記憶装置に対して、入力されたデータあるいは処理したデータなどを出力する機能を有するものとする。この機能は、例えばプログラムにより実現する。また、この機能をサブプログラムとして上記の素数生成のためのサブプログラムと鍵生成のためのサブプログラムとを含むプログラムに組み込んで実施することも可能である。
ところで、本実施形態では、素数判定に用いる素数を格納した素数テーブルを用いる。この素数テーブルは、ランダムアクセス可能な不揮発性メモリ6に格納する。ここでは、始めにワードサイズの2倍のビット長の素数を生成し、その素数を基にそれより大きい所定のサイズの素数を生成することを前提として、素数テーブルにはワードサイズ以下の素数を格納しておくものとする。例えば、ワードサイズが8ビットである場合、256以下のすべての素数(53個の素数)を格納しておく。
図2に、公開鍵及び秘密鍵生成に用いる素数を生成する素数生成処理のフローチャートを示す。
処理1:まず、乱数生成部5においてワードサイズの2倍のビット長の奇数をランダムに生成する(ステップS1)。
処理2:生成された奇数について、素数テーブルに格納されているワードサイズ以下の素数を用いて演算部4において試行割算(エラトステネスのふるい)を行なう(ステップS2)。
処理3:生成された奇数が素数テーブル内の全ての素数で割り切れない場合、この奇数を素数と判定し、F0 に代入する。素数テーブル内のいずれかの素数で割り切れた場合、処理1に戻る(ステップS3)。
処理4:以下の処理ループのためのパラメータi=0とする(ステップS4)。
処理5:素数Fi を基に、乱数生成部5において、Ri <Fi を満たす乱数Ri を生成し(ステップS5)、Ni =2Rii +1で表される素数候補Ni を作る(ステップS6)。
処理6:素数候補Ni に対し、素数判定の前処理として、素数テーブルに格納されている素数を用いて演算部4において試行割算を行なう(ステップS7)。
処理7:素数候補Ni が、素数テーブル内のいずれかの素数で割り切れた場合、素数候補Ni は合成数であると判定し、処理5に戻る(ステップS8)。そして、Fi の値はそのままで、乱数生成部5においてRi (Ri <Fi )を生成し直し、新しい素数候補Ni を生成する。
処理8:素数候補Ni について、所定のai について、式(1)を満たすかどうか演算部4において計算する(フェルマーテスト)(ステップS9)。満たさない場合、処理5に戻る(ステップS10)。
Figure 2004248330
処理9:素数候補Ni について、所定のai について、式(2)を満たすかどうか演算部4において計算する(ステップS11)。満たさない場合、処理5に戻る(ステップS12)。
Figure 2004248330
処理10:素数候補Ni が所定のビットサイズに達していないならば、Fi =Ni 、i+=1(iを1増加)とし(ステップS13,S14)、処理5に戻る。素数候補Ni が所定のビット長に達するように、Ri のビット長を増加(Ri<Fi )させることで調整する。
処理11:以上のようにして、素数候補Ni が所定のビットサイズに達したならば、素数Ni を得る。上記の処理8と処理9においては、ai =2を用いるのが好ましい。上記の試行割算では、ワードサイズ以下の素数を含む前記素数テーブルを使用するが、F0 以下の素数による試行割算を前処理として施すことで、殆どの合成数を除去することが可能である。よって、素数判定にかける素数候補が絞られることにより、効率良く素数判定を行なうことができる。
また、上記の判定式では、ai =2という小さな底の計算で処理するので計算が容易となる。通常、底ai は、2だけではなく、小さな素数から順に用いて素数判定処理を行なうが、ai をこのように変化させなくても支障はない。それは、ai =2のときに、素数候補が素数であるにもかかわらず、素数ではないと判定されるケースは非常に小さいからである。
よって、効率性と実用性を備えた底として、ai =2を用いる。上記の処理11までの実行で、求められた素数のビットサイズがnビットとすると、(素数−1)にn/2ビット程度の素数を持たせることができる。これにより、素因数分解法の一手法であるp−1法を回避できる。
さらにp+1法に対処するためには、(素数+1)にも大きなビットサイズの素数を持たせる必要がある。図2の処理を用いて素数を生成し、図3の処理でp±1法に対処できる素数を生成する。
処理12:まず、図2の処理を用いて0.4nビットの素数(s,t)を生成する(ステップS21,S22)。
処理13:0.5nビットの素数候補を、r=2at+1となるように生成する(ステップS23)。
処理14:素数候補に対し、素数判定の前処理として、素数テーブルに格納されている素数を用いて演算部4において試行割算を行なう(ステップS24)。素数候補が、素数テーブル内のいずれかの素数で割り切れた場合、素数候補Nは合成数であると判定し、a+=1のようにaの値を調整し、処理13に戻る(ステップS25)。
処理15:素数候補について、式(3)を満たすかどうか演算部4において計算する(ステップS26)。満たさない場合、a+=1のようにaの値を調整し、処理13に戻る(ステップS27)。
Figure 2004248330
処理16:素数候補について、式(4)を満たすかどうか演算部4において計算する(ステップS28)。満たさない場合、a+=1のようにaの値を調整し、処理14に戻る(ステップS29)。
Figure 2004248330
処理17:nビットの素数Nを、N=1+2(bs−r-1 (mod s))rとなるように生成し(ステップS30)、上記の処理14の試行割算および判定、処理15の計算および判断、処理16の計算および判断と同じ処理を行なう(ステップS31〜S36)。この試行割算で素数候補Nが合成数と判定された場合およびいずれかの計算で素数判定式が成立しない場合、b+=1のようにbの値を調整し、再度、上記一連の処理を行なう。
処理18:生成した素数Nが所定のビット長を持つならば終了する(ステップS37)。所定のビット長に達していないならば処理17に戻り、素数候補Nが所定のビット長を持つようにb+=1のようにbの値を調整し素数判定を行なう。
さて、以上のようにして素数を生成したら、次に、これら素数をもとに公開鍵及び秘密鍵を生成する。以下、各暗号方式における公開鍵及び秘密鍵の生成について説明する。
RSA暗号における公開鍵及び秘密鍵の生成に際しては、上記の処理を用いて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´を行なう。
Figure 2004248330
処理17´:p=2Fp Rp +1、q=2Fq Rq +1、(p、qはnビットの素数候補)、Fp 、Fq は0.5nビットの素数、Rp 、Rq は0.4nビットの乱数である。Fp 、Rp は、処理17の各々(bs−r-1 (mod s))、rに相当する。Fp Rp とFq Rq について、4|Fp Rp −1、4|FqRq −3を満たすものを探す。そして、p、qについて、上記の処理14の試行割算および判定、処理15の計算および判断、処理16の計算および判断と同じ処理を行なう(ステップS31〜S36)。
処理17´で生成されたp、qを用いて、n=pqを公開除数とし、ed=1(mod (1/2)・lcm(p−1,q−1))なるe、dをそれぞれ、秘密べき指数、公開べき指数として用いる。
公開鍵暗号系で用いられるプラム整数m=pqは、素数p、qは、式(7)、式(8)の制限があるので、上記の処理17´におけるFp Rp とFq Rq について、2|Fp Rp −1、2|Fq Rq −1を満たすものを探す。そして、p、qについて、上記の処理14の試行割算および判定、処理15の計算および判断、処理16の計算および判断と同じ処理を行なう(ステップS31〜S36)。
Figure 2004248330
DSAの鍵に必要な素数は、上記の処理17´において、素数候補が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 を素数判定するときに用いる(F01/2 以下の素数を格納した素数テーブルとを組合わせることによって、暗号装置のメモリ容量に対応したサイズのテーブルを利用することが可能になる。
したがって、豊富なメモリを持つパーソナルコンピュータのような暗号装置でなく、メモリ容量が限定されている暗号装置(例えばICカード)であっても装置上に容易に公開鍵暗号における公開鍵及び秘密鍵の生成機能を実装することが可能になる。
また、扱うデータ量が少ないので、高速に鍵を生成することができる。また、確定的素数判定方法を用いるので、確実に素数を得ることができ、安全な鍵を得ることができる。
また、素因数分解による攻撃に強い鍵を得ることができる。また、装置に鍵生成機能を持たせることにより、鍵に対する安全性を向上させ、鍵の管理を容易にすることができる。
また、個々の暗号装置内で鍵を生成し、暗号装置内で暗号処理及び復号処理を行なうならば、鍵は決して暗号装置外に出ることがないので、鍵に対する高い安全性を保つことができる。
なお、前述したように素数テーブルをメモリ6内に設ける代わりに、素数テーブルに相当するものをプログラムの中に作り込むようにしても良い。また、本実施形態では、素数をもとに公開鍵暗号における秘密鍵と公開鍵を生成するものについて説明したが、前述した方法で生成した素数をもとに共通鍵を生成しても構わない。
次に、鍵生成プログラムの実行制御について説明する。暗号装置1において、鍵生成プログラムが起動され、一旦、鍵が生成されたならば、その鍵は不揮発性メモリ7に格納される。本実施形態では、それと同時に、同じく不揮発性メモリ7に存在する鍵生成制御ビットを立てるようにする。
この鍵生成制御ビットにより、鍵生成プログラムの実行を制御する。つまり、鍵生成プログラムを実行するのに先だって、鍵生成制御ビットを調べ、鍵生成制御ビットがオフの状態ならば、鍵生成プログラムを実行させ、オンの状態ならば鍵生成プログラムを起動しない。
これによって、暗号装置1が生成した鍵に対し、鍵生成プログラムの再起動等により、既に生成された鍵が破壊されることを防ぐことができる。その他の鍵生成プログラムの実行制御方法として、予め、暗号装置1内に保存されている秘密の認証コードと同一コードが入力されたときのみ鍵生成プログラムを起動する方法も考えられる。この方法は、認証コードをマスクに書き込んでおくかまたは発行時の初期段階で書き込み、後の鍵生成時に同一コードを入力し鍵生成プログラムを起動するものである。この鍵生成プログラムの実行制御方法は、既に生成された暗号鍵を変更する場合にも用いることもできる。つまり、正しい認証コードを入力した場合にのみ、鍵生成プログラムが実行可能であり、生成された暗号鍵を不揮発性メモリ7に格納することができる。
次に、図4を参照しながら暗号装置9内に格納されている鍵の検証について説明する。まず、鍵が生成されたならば、直ちに、生成された鍵のハッシュ値を計算し、生成された鍵(図中11)と、そのハッシュ値(図中10)とを対応付けて不揮発性メモリ7に保存しておく。
しかして、暗号処理や復号処理あるいは認証処理にて鍵を使用する前に、不揮発性メモリ7に格納されている鍵(図中11)のハッシュ値を計算し(図中12)、予め不揮発性メモリ7に保存されていたハッシュ値(図中10)と一致判定部13において比較する。一致したならば成功を示す制御信号を出力して暗号処理や復号処理の実行を可能とし、一致しないならば、失敗を示す制御信号を出力して暗号処理や復号処理の実行を不可とする。
そして、制御信号が成功、すなわちハッシュ値の一致を示している場合にのみ、暗号処理を起動し、制御信号が失敗、すなわちハッシュ値の不一致を示している場合には、暗号処理を起動させない。
このように暗号装置9で生成された鍵を用いて暗号処理や復号処理を行なう際に、格納されている鍵の検証を行なうことによって、何らかの原因で破壊された鍵による暗号処理や復号処理を回避することができる。
次に、図5を参照しながらユーザ側と公開鍵を管理・公開するセンター側との間でのユーザの鍵の正当性の確認について説明する。暗号装置19で生成された公開鍵及び秘密鍵については、センター17がそれらの正当性を確認する手段が必要である。その一手法として、図5に示す方法がある。
まず、センター17は、情報処理装置18から、暗号装置19により生成された公開鍵kを受け取る。次に、センター17は、乱数Rを生成し(図中20)、その乱数Rを暗号装置19により生成された公開鍵kを用いて暗号化し(図中21)、情報処理装置18へ送信する(図中22)。
情報処理装置18は、外部インタフェース30を介して暗号装置19に公開鍵kで暗号化された乱数Rを送信する。暗号装置19は、その公開鍵kで暗号化された乱数Rを、公開鍵とペアである秘密鍵を用いて復号化する(図中23)。
復号化された乱数Rは、暗号装置19から情報処理装置18を介してセンターに送信する(図中25)。そして、センター17では、一致判定部26により自ら生成した乱数と暗号装置19から送信された乱数について検証を行なう。

一致したならば、暗号装置19はセンター17が所有する公開鍵に対して正当な秘密鍵を保持しているので、センター17は暗号装置19に公開鍵証明書を発行する。
このように、個々の暗号装置が秘密鍵および公開鍵を生成することにより、鍵を管理するセンターは、個々の暗号装置に対し鍵生成及び配送をする必要がなくなり、鍵生成及び管理に伴う処理の負担が軽減される。
なお、本発明は、コンピュータに所定の手順を実行させるための(あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための)プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
本発明の一実施形態に係る暗号化装置の構成を示す図 同実施形態に係る素数生成手順を示すフローチャート 同実施形態に係る素数生成手順を示すフローチャート 同実施形態に係る暗号装置における鍵検証の一例を示す図 同実施形態に係る鍵の正当性検証の一例を示す図
符号の説明
1…暗号装置、2…CPU、3…プログラム記憶部、4…演算部、5…乱数生成部、6…ランダムアクセス可能な不揮発メモリ、7…不揮発メモリ、8…バス、9…暗号装置、12…ハッシュ値算出部、13,26…一致判定部、17…センター、18…方法処理装置、19…暗号装置。

Claims (6)

  1. 自装置内で暗号鍵を生成する暗号装置であって、前記暗号鍵を生成する暗号鍵生成手段と、
    前記暗号鍵生成手段により前記暗号鍵が生成されたか否かを示す制御情報を格納する手段と、
    前記制御情報により前記暗号鍵が生成されたことが示されている間は、前記暗号鍵生成手段による前記暗号鍵の生成を不可にする手段とを備えたことを特徴とする暗号装置。
  2. 自装置内で暗号鍵を生成する暗号装置であって、
    前記暗号鍵を生成する暗号鍵生成手段と、
    前記暗号鍵生成手段により前記暗号鍵が生成された場合、直ちに、生成された前記暗号鍵のチェックサムを生成するチェックサム生成手段と、
    前記暗号鍵とそのチェックサムを対応付けて格納する格納手段とを備えたことを特徴とする暗号装置。
  3. 暗号鍵を生成する暗号鍵生成手段を備えた暗号装置における暗号鍵生成方法であって、
    前記暗号鍵生成手段により前記暗号鍵を生成するのに先だって、前記暗号鍵生成手段により前記暗号鍵が生成された否かを示す制御情報を参照し、該制御情報により前記暗号鍵が生成されていないことが示されている場合にのみ、前記暗号鍵生成手段により前記暗号鍵を生成し、
    前記暗号鍵生成手段により前記暗号鍵を生成した場合、前記制御情報を前記暗号鍵が生成されたことを示す状態にすることを特徴とする暗号鍵生成方法。
  4. 自装置内で暗号鍵を生成する暗号装置における暗号鍵管理方法であって、
    前記暗号鍵を生成し、直ちに該暗号鍵のチェックサムを生成し、
    生成された前記暗号鍵と前記チェックサムとを対応付けて格納することを特徴とする暗号鍵管理方法。
  5. コンピュータに、暗号鍵を生成する前に暗号鍵が生成された否かを示す制御情報を参照する手順と、該制御情報により前記暗号鍵が生成されていないことが示されている場合にのみ暗号鍵を生成する手順と、暗号鍵を生成した場合に前記制御情報を暗号鍵が生成されたことを示す状態にする手順とを実行させるためのプログラム記録したコンピュータ読取り可能な記録媒体。
  6. コンピュータに、暗号鍵を生成する手順と、暗号鍵を生成したら直ちに該暗号鍵のチェックサムを生成する手順と、生成された暗号鍵とチェックサムとを対応付けて所定の記憶領域に格納する手順とを実行させるためのプログラム記録したコンピュータ読取り可能な記録媒体。
JP2004162531A 1996-12-26 2004-05-31 暗号装置、暗号鍵生成方法、暗号鍵管理方法 Pending JP2004248330A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004162531A JP2004248330A (ja) 1996-12-26 2004-05-31 暗号装置、暗号鍵生成方法、暗号鍵管理方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP34805996 1996-12-26
JP2004162531A JP2004248330A (ja) 1996-12-26 2004-05-31 暗号装置、暗号鍵生成方法、暗号鍵管理方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP34509197A Division JP3626340B2 (ja) 1996-12-26 1997-12-15 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法

Publications (1)

Publication Number Publication Date
JP2004248330A true JP2004248330A (ja) 2004-09-02

Family

ID=33031624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004162531A Pending JP2004248330A (ja) 1996-12-26 2004-05-31 暗号装置、暗号鍵生成方法、暗号鍵管理方法

Country Status (1)

Country Link
JP (1) JP2004248330A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009060631A1 (ja) 2007-11-09 2009-05-14 Icon Corp. 鍵管理装置及び当該装置を用いた情報伝達システム
JP2011010277A (ja) * 2009-06-24 2011-01-13 Intel Corp 格納されている入力値および格納されているカウント値を利用する暗号化鍵生成
US8607329B2 (en) 2007-12-19 2013-12-10 Icon Corp. Server device, information providing method and information succession system
EP3624418A1 (en) * 2018-09-12 2020-03-18 Contemporary Amperex Technology Co., Limited Method for data transmission, battery management system, and storage medium

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009060631A1 (ja) 2007-11-09 2009-05-14 Icon Corp. 鍵管理装置及び当該装置を用いた情報伝達システム
US8607329B2 (en) 2007-12-19 2013-12-10 Icon Corp. Server device, information providing method and information succession system
JP2011010277A (ja) * 2009-06-24 2011-01-13 Intel Corp 格納されている入力値および格納されているカウント値を利用する暗号化鍵生成
US8971530B2 (en) 2009-06-24 2015-03-03 Intel Corporation Cryptographic key generation using a stored input value and a stored count value
US9800409B2 (en) 2009-06-24 2017-10-24 Intel Corporation Cryptographic key generation using a stored input value and a stored count value
US10341099B2 (en) 2009-06-24 2019-07-02 Intel Corporation Cryptographic key generation using a stored input value and a stored count value
EP3624418A1 (en) * 2018-09-12 2020-03-18 Contemporary Amperex Technology Co., Limited Method for data transmission, battery management system, and storage medium
US11102651B2 (en) 2018-09-12 2021-08-24 Contemporary Amperex Technology Co., Limited Method for data transmission, battery management system, and storage medium

Similar Documents

Publication Publication Date Title
US11544701B2 (en) Rapid and secure off-ledger cryptocurrency transactions through cryptographic binding of a private key to a possession token
CN101241527B (zh) 用于普通验证的系统和方法
US7370196B2 (en) Controlled-content recoverable blinded certificates
US6477254B1 (en) Network system using a threshold secret sharing method
US8195951B2 (en) Data processing system for providing authorization keys
US7000110B1 (en) One-way function generation method, one-way function value generation device, proving device, authentication method, and authentication device
US8806206B2 (en) Cooperation method and system of hardware secure units, and application device
WO1998052316A1 (en) Initial secret key establishment including facilities for verification of identity
JP3871996B2 (ja) データ分割管理方法及びプログラム
JP2006333520A (ja) マルチステップディジタル署名方法およびそのシステム
JPH10511778A (ja) 2つの処理装置の間における秘密鍵による通信プロトコルの実行方法
EP1636664A2 (en) Proof of execution using random function
JP3794457B2 (ja) データの暗号化復号化方法
JP3626340B2 (ja) 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法
JP2000115154A (ja) 記憶装置および方法、復号装置および方法、提供媒体、並びに情報記憶媒体
JP2004072290A (ja) 証明書管理環境の管理方法、プログラム及び装置
JP3791169B2 (ja) 認証装置および方法
JP2004248330A (ja) 暗号装置、暗号鍵生成方法、暗号鍵管理方法
JP2008219787A (ja) 鍵管理システム、鍵管理プログラムおよびicカード
Casanova-Marqués et al. Implementation of Revocable Keyed-Verification Anonymous Credentials on Java Card
JPH09106445A (ja) 情報記録媒体のキー変更方法および情報記録媒体
JP2000232442A (ja) 情報処理方法及びシステム
CN113064761B (zh) 数据恢复方法、服务器、加密机、终端及介质
JPH1155244A (ja) 鍵回復方法および装置
JP2003051817A (ja) 暗号化・復号装置、ディジタル署名生成・検証装置、方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071002

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080219