JP2004349992A - 暗号に用いる鍵生成機能を備えるデータ処理装置 - Google Patents
暗号に用いる鍵生成機能を備えるデータ処理装置 Download PDFInfo
- Publication number
- JP2004349992A JP2004349992A JP2003144256A JP2003144256A JP2004349992A JP 2004349992 A JP2004349992 A JP 2004349992A JP 2003144256 A JP2003144256 A JP 2003144256A JP 2003144256 A JP2003144256 A JP 2003144256A JP 2004349992 A JP2004349992 A JP 2004349992A
- Authority
- JP
- Japan
- Prior art keywords
- key
- generation circuit
- key generation
- data
- value
- 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
Links
Images
Abstract
【課題】再現性が低く推定することが困難なため安全である鍵を生成し、その鍵を用いてデータを暗号化するデータ処理装置を提供する。
【解決手段】鍵生成回路605は、その内部のレジスタの値だけでなく、その外部の信号の値も参照して、その内部のレジスタの値を更新していく。鍵生成回路605が参照する外部の信号は、例えば、主記憶603からチップセット602へ流れるデータバスとする。データを暗号化する場合、CPU601は、まず鍵生成回路605から鍵を取り出し、主記憶603が保持しているデータを受けて暗号化して、暗号化されたデータを主記憶603へ送り、主記憶603は暗号化されたデータを保持する。
【選択図】 図6
【解決手段】鍵生成回路605は、その内部のレジスタの値だけでなく、その外部の信号の値も参照して、その内部のレジスタの値を更新していく。鍵生成回路605が参照する外部の信号は、例えば、主記憶603からチップセット602へ流れるデータバスとする。データを暗号化する場合、CPU601は、まず鍵生成回路605から鍵を取り出し、主記憶603が保持しているデータを受けて暗号化して、暗号化されたデータを主記憶603へ送り、主記憶603は暗号化されたデータを保持する。
【選択図】 図6
Description
【0001】
【発明の属する技術分野】
本発明は、データを暗号化や復号化するために用いる鍵を生成する鍵生成回路と、それを備えるデータ処理装置に関する。
【0002】
【従来の技術】
今般、様々なデータがディジタル化されて、計算システム(ワークステーションやパーソナルコンピュータ等)や携帯情報端末、携帯電話機器、磁気ディスク装置、システムチップ等のデータ処理装置で扱われるようになっている。こうしたデータの中には、クレジットカードの番号やその他の個人情報等、不正に扱われるべきでないデータもある。このような不正に扱われるべきでないデータを保護するための技術に、暗号技術がある。
【0003】
一般に共通鍵暗号や対称暗号と呼ばれる暗号技術では、予め、正当者(ここでは「者」はユーザや装置を意味するものとする)のみが知り得るべき鍵(これ自体もデータの一種である)を用意しておく。そして、データを保護する場合には鍵を用いてデータを暗号化し、元のデータを復元する場合には鍵を用いて暗号化されたデータを復号化する。もし暗号化されたデータが不正者に入手されたとしても、暗号化されたデータから元のデータを復元したり暗号化に用いられた鍵を導出したりすることは大変困難であり、安全である。しかしながら、もし鍵も不正者に入手されたなら、不正に扱われるべきでない元のデータは不正者によって簡単に復元されてしまう。
【0004】
そのため、不正者に対して鍵を秘密に保つことが重要であり、鍵が漏洩しないことはもちろん、不正者によって鍵が推定されないことも重要である。これは共通鍵暗号に限らず、一般に公開鍵暗号や非対称暗号と呼ばれる暗号技術でも同じであり、公開鍵暗号では秘密鍵と呼ばれる秘密に扱われるべき鍵は秘密に保つことが重要である。
【0005】
鍵は一般に、例えば、特許文献1に開示されているような擬似乱数生成回路によって生成される。擬似乱数生成回路の種類は様々であるが、ここでは多項式
x^64=x^4+x^3+x+1(ここでは「^」はべき演算子を示すものとし、例えば「A^B」はAのB乗を示す)に基づいて接続されたLFSR(Linear Feedback Shift Register)を例に挙げて説明する。
【0006】
これは、64ビット分のレジスタR[0],R[1],…,R[63]から成り、動作クロックに従って(各クロックサイクル毎に)直前のクロックサイクルの時の値R’[0],R’[1],…,R’[63]を参照して、
R[0]←R’[63]、
およびi=1,3,4に対しては
R[i]←R’[i−1]+R’[63](ここの「+」は排他的論理和演算を表す)、
およびi=2または5≦i≦63に対しては
R[i]←R’[i−1]と更新する。すなわちこれは、内部で定められた更新規則に従って、内部の値を参照しながら、規則的に、周期的に動作する。
【0007】
例えば、この擬似乱数生成回路がある時点で、R[0]のみ値1を保持し、他のレジスタは値0を保持しているとすると、次のクロックサイクルでは、R[1]のみ値1を保持し、他のレジスタは値0を保持するようになる。同様に、さらに62クロックサイクル後には、R[63]のみ値1を保持し、他のレジスタは値0を保持するようになり、さらにその次のクロックサイクルでは、R[0],R[1],R[3],R[4]は値1を保持し、他のレジスタは値0を保持するようになる。
【0008】
このLFSRは、64ビット以下の鍵を生成する鍵生成回路として用いることができる。例えば、このLFSRの64ビット分のレジスタの全ての値を、順にR[0],R[1],…,R[63]と取り出すことで(ここではこれらを最上位から順に並べるものとする)、これを64ビットの鍵を生成する鍵生成回路として用いることができる。このLFSRをクロック周波数を1MHzで動作させた場合、ある時点で鍵として
8000000000000000(16進表現、すなわちR[0]のみ値1である)を取り出すことができたなら、それから時間的に63μs後(63クロックサイクル後)には鍵として
0000000000000001(16進表現、すなわちR[63]のみ値1である)を取り出すことができる。このLFSRを用いて64ビット未満の鍵を生成する場合には、それに合ったビット分の適切なレジスタから値を取り出せばよい。
【0009】
【特許文献1】
特開2000−81969号公報
【0010】
【発明が解決しようとする課題】
前述した鍵生成回路では、ある時点で得られた鍵から次に得られる鍵を、比較的容易に推定される可能性がある。すなわち、鍵生成回路が前述の構造であり、ある時点で取り出した鍵が
8000000000000000(16進表現)であり、それからおよそ63μs後に新たな鍵を取り出したことを不正者が知ったなら、その新たな鍵は
0000000000000001(16進表現)か、それともそれに時間的に近い
0000000000000002(16進表現、1クロックサイクル前)あるいは
D800000000000000(16進表現、1クロックサイクル後)いずれかの可能性が高い、と不正者は推定することができる。よって鍵生成回路やそれを備えるデータ処理装置としては、不正者によって鍵をこのように容易に推定されることがないことが重要である。
【0011】
【課題を解決するための手段】
本発明は、推定することが困難な鍵を生成する鍵生成回路、およびそれを備えるデータ処理装置を提供する。
【0012】
本発明の鍵生成回路は、内部レジスタの値の更新には、内部のレジスタの値だけでなく、外部信号の値をも参照する。こうすることで、外部信号の値の違いによって内部のレジスタの値も異なるようになる。よって本発明の鍵生成回路に依れば、内部のレジスタの値を推定することが困難となるため、内部の構成を知る者であっても鍵を推定することが困難となり、鍵を秘密に保つ可能性が高くなる。
【0013】
また、本発明のデータ処理装置は、本発明の鍵生成回路と、他の回路(二つ目の本発明の鍵生成回路でもよい)からの信号を接続する。本発明のデータ処理装置に依れば、推定することが困難な鍵を鍵生成回路から取り出すことができるため、鍵を秘密に保つ可能性が高くなる。
【0014】
すなわち本発明に依れば、不正者が鍵を推定することは困難であり、鍵の秘密が保たれるため、ひいてはその鍵を用いて暗号化されたデータの秘密が保たれるため、安全である。
【0015】
【発明の実施の形態】
本発明の鍵生成回路は、多様な形態で実施することができる。ここでは、多項式
x^64=x^4+x^3+x+1に基づいて接続されたLFSRを用いて構成した鍵生成回路を説明する。
【0016】
まず、第1の実施形態について説明する。
【0017】
図1は、第1の実施形態の構成を示す図である。鍵生成回路100は、64ビット分のレジスタR[0]101,R[1]102,R[2]103,R[3]104,R[4]105,R[5]106,…,R[62]107,R[63]108およびEXOR(Exclusive−OR)素子109,110,111,112から成る。また、鍵生成回路100の入出力として、クロック入力113、外部信号入力114、および64ビット分の鍵出力115,116,117,118,119,120,…,121,122がある。
【0018】
以降では、各レジスタ101〜108を、動作クロックの立ち上がりエッジ毎にその入力信号の値を保持するフリップフロップとして説明するが、これに限らず、例えば、動作クロックの立ち下がりエッジ毎に保持するフリップフロップとして実施することもできるし、鍵生成回路100がクロック入力113の代わりに更新信号入力を備え、その更新信号入力に従って動作するスルーラッチとして実施することもできる。また、鍵生成回路100の動作クロックは、外部からクロック入力113を経て入力するものとして説明するが、これに限らず、例えばクロック入力113の代わりに内部にクロック発振器を備えて、それが発信するクロックを動作クロックとして用いて実施することもできる。
【0019】
各EXOR素子109〜112は、その入力信号の値に対して排他的論理和演算を行った値を出力する。クロック入力113は、外部から入力される動作クロックを、各レジスタ101〜108に伝える(図1では記述が複雑にならないように接続を省略して記述している)。外部信号入力114は、外部から入力される信号を、EXOR素子112へ伝える。各鍵出力115〜122は、各レジスタ101〜108の値を、暗号で用いる鍵として外部へ出力する。
【0020】
図2は、鍵生成回路100の動作波形の一例を示す図であり、これは外部信号入力114には常に値0を印加した場合のものである。なおここでは、値1を高レベルの電圧、値0を低レベルの電圧として表すが、もちろんその逆でも実施することができる。外部信号入力114に常に値0を印加する場合、鍵生成回路100は前述した従来の擬似乱数生成回路と同じ動作となる。
【0021】
すなわち例えば図2のように、ある時点(時点0)で、R[0]101のみ値1を保持し、他のレジスタは値0を保持しているとき、クロック入力113から入力される動作クロックの次の立ち上がりによって(時点1)、R[1]102のみ値1を保持し、他のレジスタは値0を保持するようになる。
【0022】
同様に、動作クロックのさらに62回立ち上がり後には(時点63)、R[63]108のみ値1を保持し、他のレジスタは値0を保持するようになり、動作クロックのさらに次の立ち上がりによって(時点64)、R[0]101,R[1]102,R[3]104,R[4]105は値1を保持し、他のレジスタは値0を保持するようになる。
【0023】
図3は、鍵生成回路100の動作波形の、他の一例を示す図である。これは、外部信号入力114には外部の他の回路からの信号が印加された場合のものである。ここでは、その信号はクロック入力113を経て入力される動作クロックに同期しているものとし、例としてその値を時点0から順に1,0,1,1,0,1,0,…,1,1,0,0,0としている。
【0024】
この場合、鍵生成回路100は前述した従来の擬似乱数生成回路とは異なる動作となる(各レジスタ101〜108が従来の擬似乱数生成回路とは異なる値を保持するようになる)。それに伴い各鍵出力115〜122の値も、従来の擬似乱数生成回路の値とは異なるようになり、鍵生成回路100の構成を知る者であっても各鍵出力115〜122の値を推定することが困難となる。そのため、各鍵出力115〜122の値を暗号の鍵として用いれば、鍵を秘密に保つ可能性が高くなる。
【0025】
図4は、鍵生成回路100の動作波形の、更に他の一例を示す図である。これは、外部信号入力114には外部の他の回路からの信号が印加された場合のものである。図3の場合とは、ここでは、その信号はクロック入力113を経て入力される動作クロックに同期していないものとしていることが異なる。例としてその信号の値を時点0から順に1,0,1,1,0,…,1,0,1,0としている。
【0026】
この場合、鍵生成回路100は前述した従来の擬似乱数生成回路や図3の場合とは異なる動作となる(各レジスタ101〜108が従来の擬似乱数生成回路や図3の場合とは異なる値を保持するようになる)。それに伴い各鍵出力115〜122の値も、従来の擬似乱数生成回路や図3の場合の値とは異なるようになり、鍵生成回路100の構成を知る者であっても各鍵出力115〜122の値を推定することが困難となる。
【0027】
外部信号入力114を経て入力される信号とクロック入力113を経て入力される動作クロックとは非同期であるため、鍵生成回路100の動作の再現性は低い。すなわち、外部信号入力114を経て入力される信号の周期を同じにし、クロック入力113を経て入力される動作クロックの周期も同じにして再現しても、それらの位相が異なれば、鍵生成回路100の動作も異なってくる可能性が高い。よって、鍵生成回路100の構成を知る者であっても各鍵出力115〜122の値を推定することがますます困難となる。そのため、各鍵出力115〜122の値を暗号の鍵として用いれば、鍵を秘密に保つ可能性がますます高くなる。
【0028】
次に、第2の実施形態について説明する。
【0029】
図5は、第2の実施形態の構成を示す図である。この鍵生成回路500は、図1と比べて、XOR素子112を備えない代わりに、SEL素子501,502を備え、外部信号入力114は外部から入力される信号を各SEL素子501,502へ伝える。各SEL素子501,502は、その入力信号sの値が1なら入力信号1を、入力信号sの値が0なら入力信号0を出力する。
【0030】
すなわち、レジスタR[0]101へ信号を伝えるSEL素子501は、外部信号入力114には値1が印加されているときはレジスタR[63]108からの信号を、また、外部信号入力114には値0が印加されているときはレジスタR[4]105からの信号を、レジスタR[0]101へ伝える。また、レジスタR[5]106へ信号を伝えるSEL素子502は、外部信号入力114には値1が印加されているときはレジスタR[4]105からの信号を、また、外部信号入力114には値0が印加されているときはレジスタR[63]108からの信号を、レジスタR[5]106へ伝える。このように、鍵生成回路500は、外部信号入力114から入力される外部からの信号を参照することによって、内部の信号の流れを変えている。
【0031】
外部信号入力114に常に値1を印加する場合の鍵生成回路500は、前述した従来の擬似乱数生成回路とも、また図1の外部信号入力114に常に値0を印加する場合の鍵生成回路100とも、同じ動作となる。また、外部信号入力114に常に値0を印加する場合の鍵生成回路500は、前述した従来の擬似乱数生成回路や、また図1の外部信号入力114に任意の値を印加する場合の鍵生成回路100と異なる動作となる。外部信号入力114には外部の他の回路からの信号が印加された場合、鍵生成回路500の構成を知る者であっても各鍵出力115〜122の値を推定することが困難となる。そのため、各鍵出力115〜122の値を暗号の鍵として用いれば、鍵を秘密に保つ可能性が高くなる。
【0032】
なお、第1の実施形態の図1や、第2の実施形態の図2には示していないが、鍵生成回路は、入出力として制御信号入力を備え、各レジスタの値を意図的に設定することができる機能を加えた構成とすることもできる。こうすることで、一般の回路のレジスタに接続されたセット信号あるいはリセット信号のように各レジスタの値をクリアする場合、あるいは、外部から初期値を入力してそれを適切なレジスタに設定する場合等でも、鍵生成回路は、各レジスタの値を意図的に設定することもできる。
【0033】
また、鍵生成回路は、内部のレジスタ分の不揮発性メモリ素子を備え、この不揮発性メモリ素子は、各レジスタが動作時に保持している値を、非動作(電源停止あるいは休止等)となる前に保持し、再動作する前に再設定する機能を加えた構成とすることもできる。こうすることで、非動作となりその後再動作しても、各レジスタの値は直前の動作時に保持していた値に復帰することができ、連続の値を更新することができる。
【0034】
なお鍵生成回路では、入力される外部信号のビット数、それを参照するための演算、それを参照する箇所等は、以上で説明した例に限らず、多様な形態で実施することができる。もちろん、第1および第2の実施形態を合成し、外部からの信号を内部の信号とともに演算させる構成でもあり、外部からの信号を参照して内部の信号の流れを変える構成でもある形態で実施することもできる。
【0035】
また、以上の説明では、鍵生成回路の構成のために用いた擬似乱数生成器を、多項式
x^64=x^4+x^3+x+1に基づいて接続されたLFSRとしたが、これに限らず、他の次数や他の項から成る多項式に基づいて接続されたLFSRはもちろん、非線形に接続されたフィードバックシフトレジスタ等とすることもでき、鍵生成回路は多様な形態で実施することができる。さらに、鍵生成回路が出力する鍵のビット数は、以上で説明した例に限らず、内部のレジスタ数未満であれば、鍵のビット数分の適切なレジスタの値を出力する構成で実施することができる。
【0036】
次に、データ処理装置について説明する。データ処理装置も、多様な形態で実施することができる。ここでは、データ処理装置の実施形態として、計算システム、および暗号用システムチップの2例を順に説明する。
【0037】
まず、本発明のデータ処理装置の第1の実施形態について説明する。
【0038】
図6は、本発明のデータ処理装置の第1の実施形態である、計算システムの構成を示す図である。計算システム600は、CPU(Central Processing Unit)601、チップセット602、主記憶603、補助記憶604、鍵生成回路605、および、図示していないディスプレイやネットワークポートなどがバスなどの内部通信線で接続された構成となる。すなわち計算システム600は、一般の計算システムに鍵生成回路605を加えた構成となる。
【0039】
CPU601は、チップセット602を介して、主記憶603が保持しているプログラムデータを受けて、そのプログラムデータに沿って演算や計算システム600全体の制御を行う。またCPU601は、データの暗号化を行うのに際して鍵が必要になると、チップセット602を介して、鍵生成回路605が出力する鍵を受けて、その鍵を用いてデータの暗号化を行う。チップセット602は、CPU601や主記憶603、補助記憶604等のデータバス制御を行う。主記憶603としては、一般の計算システムでは半導体メモリが多く用いられる。主記憶603は、チップセット602を介して、保持しているプログラムデータをCPU601へ送る。また主記憶603は、CPU601が必要とするプログラムデータを保持していない場合には、チップセット602を介して、補助記憶604からそれを受けて保持する。補助記憶604としては、一般の計算システムでは磁気ディスク装置やRAID(Redundant Array of Independent Disks)サブシステム等が多く用いられる。補助記憶604は、計算システムが扱うプログラムデータ等のほとんどのデータを保持する。補助記憶604は主記憶603と比べて、比較的多くのデータを保持することができ、計算システム600が非動作(電源停止あるいは休止等)の間もデータを保持し続けるところが、主な違いである。鍵生成回路605は、前述の鍵生成回路であり、ここではチップとして実現されているものとしている。鍵生成回路605は、計算システム600内の所定の構成要素から所定の信号を受ける。ここでは例として、その構成要素を主記憶603とし、その信号を主記憶603からチップセット602へ流れるデータバスとする。鍵生成回路605は、その信号を、チップセット602を介して、鍵生成回路605自身の外部信号入力に受けて、その値を参照しながら内部のレジスタを更新し、鍵を出力する。図示していないディスプレイは、計算システム600が扱っているデータを可視化する。また図示していないネットワークポートは、計算システム600外部の他のシステムとネットワークを介して接続し、計算システム600と他のシステムを通信する。
【0040】
このような構成にすると、補助記憶604が保持すべきデータを暗号化して保持する場合や、図示していないネットワークポートを介して他のシステムへ送信すべきデータを暗号化して送信する場合等、その暗号化には鍵生成回路605が出力した鍵を用いているため、計算システム600外部からその鍵を推定することが困難となる。そのため、鍵も、その鍵を用いて暗号化されたデータも、秘密に保たれる可能性が高くなる。
【0041】
次に、本発明のデータ処理装置の第2の実施形態について説明する。
【0042】
図7は、本発明のデータ処理装置の第2の実施形態である、暗号用システムチップの構成を示す図である。暗号用システムチップ700は、MPU(Micro Processing Unit)701、RAM(Random Access Memory)702、3種類の暗号モジュール[0]703、[1]704、[2]705、擬似乱数生成回路706、鍵生成回路707などがバスなどの内部通信線で接続された構成となる。また、暗号用システムチップ700には入出力708がある。
【0043】
MPU701としては、一般にマイクロコンピュータと呼ばれる汎用的なものでも、次に説明する機能を実現する簡単なモジュール(回路)でもよい。MPU701は、MPU701自身あるいはRAM702が格納しているプログラムデータに沿って演算や暗号用システムチップ700全体の制御を行う。またMPU701は、RAM702や各暗号モジュール703〜705、入出力708等のデータバス制御を行う。RAM702は、保持しているデータをMPU701や各暗号モジュール703〜705、入出力708等に送り、またそれらから送られるデータを受けるとそのデータを保持する。各暗号モジュール703〜705としては、様々な公開鍵暗号や、DES(Data Encryption Standard)やAES(Advanced Encryption Standard)等の共通鍵暗号暗号アルゴリズムを、用途に応じて回路で実現すればよい。各暗号モジュール703〜705は、RAM702あるいは鍵生成回路707から鍵を受け、RAM702からデータを受けると、その暗号アルゴリズムに基づいてデータを暗号化し、その結果をRAM702へ送る。擬似乱数生成回路706としては、従来の一般的な擬似乱数生成回路でよく例えばLFSRでよいし、あるいは上記実施形態の鍵生成回路でもよい。擬似乱数生成回路706は、擬似乱数を生成して、それを鍵生成回路707へ送る。鍵生成回路707は、前述の鍵生成回路であり、ここでは他のモジュールと1チップ化されて実現されているものとしている。鍵生成回路707は、擬似乱数生成回路706から送られる擬似乱数を外部信号入力に受けて、その値を参照しながら内部のレジスタを更新し、鍵を適切な暗号モジュールへ出力する。その際に鍵の性質がその暗号に不適切であれば(例えば素数の性質が要求される暗号等では)、MPU701がその鍵を適切な新たな鍵へと変換して、その適切な鍵を適切な暗号モジュールへ出力する。
【0044】
このような構成にすると、暗号用システムチップ700に外部からデータを送って暗号用システムチップ700にそのデータを暗号化する場合等、その暗号化には鍵生成回路708が出力した鍵を用いているため、暗号用システムチップ700外部からその鍵を推定することが困難となる。そのため、鍵も、その鍵を用いて暗号化されたデータも、秘密に保たれる可能性が高くなる。
【0045】
なお、データ処理装置が備える鍵生成回路の、外部信号入力が受ける信号と動作クロックとは、同期していても非同期であってもよい。非同期であれば、鍵の再現性が低くなるため、鍵も、その鍵を用いて暗号化されたデータも、秘密に保たれる可能性がますます高くなる。
【0046】
以上の説明では、実施形態として、計算システム、および暗号用システムチップを例に挙げたが、これに限らず、多様な形態で実施することができる。例えば、暗号技術を用いつつそのための鍵生成を行う、計算システムを複数を組み合わせた大規模システムや、携帯情報端末、携帯電話機器やその基地局、ネットワークルータやゲートウェイ、磁気ディスク装置や光ディスク装置等の記憶装置、フラッシュメモリ等の半導体メモリ等としても実施することができる。
【0047】
【発明の効果】
本発明に依れば、不正者が鍵を推定することは困難であり、鍵の秘密が保たれる。そのため、ひいてはその鍵を用いて暗号化されたデータの秘密が保たれ、安全である。
【図面の簡単な説明】
【図1】鍵生成回路の第1の実施形態の構成を示す図である。
【図2】鍵生成回路の動作波形の一例を示す図である。
【図3】鍵生成回路の動作波形の、他の一例を示す図である。
【図4】鍵生成回路の動作波形の、更に他の一例を示す図である。
【図5】鍵生成回路の第2の実施形態の構成を示す図である。
【図6】データ処理装置の第1の実施形態の構成を示す図である。
【図7】データ処理装置の第2の実施形態の構成を示す図である。
【符号の説明】
100,500,605,707…鍵生成回路、600…計算システム、700…暗号用システムチップ
【発明の属する技術分野】
本発明は、データを暗号化や復号化するために用いる鍵を生成する鍵生成回路と、それを備えるデータ処理装置に関する。
【0002】
【従来の技術】
今般、様々なデータがディジタル化されて、計算システム(ワークステーションやパーソナルコンピュータ等)や携帯情報端末、携帯電話機器、磁気ディスク装置、システムチップ等のデータ処理装置で扱われるようになっている。こうしたデータの中には、クレジットカードの番号やその他の個人情報等、不正に扱われるべきでないデータもある。このような不正に扱われるべきでないデータを保護するための技術に、暗号技術がある。
【0003】
一般に共通鍵暗号や対称暗号と呼ばれる暗号技術では、予め、正当者(ここでは「者」はユーザや装置を意味するものとする)のみが知り得るべき鍵(これ自体もデータの一種である)を用意しておく。そして、データを保護する場合には鍵を用いてデータを暗号化し、元のデータを復元する場合には鍵を用いて暗号化されたデータを復号化する。もし暗号化されたデータが不正者に入手されたとしても、暗号化されたデータから元のデータを復元したり暗号化に用いられた鍵を導出したりすることは大変困難であり、安全である。しかしながら、もし鍵も不正者に入手されたなら、不正に扱われるべきでない元のデータは不正者によって簡単に復元されてしまう。
【0004】
そのため、不正者に対して鍵を秘密に保つことが重要であり、鍵が漏洩しないことはもちろん、不正者によって鍵が推定されないことも重要である。これは共通鍵暗号に限らず、一般に公開鍵暗号や非対称暗号と呼ばれる暗号技術でも同じであり、公開鍵暗号では秘密鍵と呼ばれる秘密に扱われるべき鍵は秘密に保つことが重要である。
【0005】
鍵は一般に、例えば、特許文献1に開示されているような擬似乱数生成回路によって生成される。擬似乱数生成回路の種類は様々であるが、ここでは多項式
x^64=x^4+x^3+x+1(ここでは「^」はべき演算子を示すものとし、例えば「A^B」はAのB乗を示す)に基づいて接続されたLFSR(Linear Feedback Shift Register)を例に挙げて説明する。
【0006】
これは、64ビット分のレジスタR[0],R[1],…,R[63]から成り、動作クロックに従って(各クロックサイクル毎に)直前のクロックサイクルの時の値R’[0],R’[1],…,R’[63]を参照して、
R[0]←R’[63]、
およびi=1,3,4に対しては
R[i]←R’[i−1]+R’[63](ここの「+」は排他的論理和演算を表す)、
およびi=2または5≦i≦63に対しては
R[i]←R’[i−1]と更新する。すなわちこれは、内部で定められた更新規則に従って、内部の値を参照しながら、規則的に、周期的に動作する。
【0007】
例えば、この擬似乱数生成回路がある時点で、R[0]のみ値1を保持し、他のレジスタは値0を保持しているとすると、次のクロックサイクルでは、R[1]のみ値1を保持し、他のレジスタは値0を保持するようになる。同様に、さらに62クロックサイクル後には、R[63]のみ値1を保持し、他のレジスタは値0を保持するようになり、さらにその次のクロックサイクルでは、R[0],R[1],R[3],R[4]は値1を保持し、他のレジスタは値0を保持するようになる。
【0008】
このLFSRは、64ビット以下の鍵を生成する鍵生成回路として用いることができる。例えば、このLFSRの64ビット分のレジスタの全ての値を、順にR[0],R[1],…,R[63]と取り出すことで(ここではこれらを最上位から順に並べるものとする)、これを64ビットの鍵を生成する鍵生成回路として用いることができる。このLFSRをクロック周波数を1MHzで動作させた場合、ある時点で鍵として
8000000000000000(16進表現、すなわちR[0]のみ値1である)を取り出すことができたなら、それから時間的に63μs後(63クロックサイクル後)には鍵として
0000000000000001(16進表現、すなわちR[63]のみ値1である)を取り出すことができる。このLFSRを用いて64ビット未満の鍵を生成する場合には、それに合ったビット分の適切なレジスタから値を取り出せばよい。
【0009】
【特許文献1】
特開2000−81969号公報
【0010】
【発明が解決しようとする課題】
前述した鍵生成回路では、ある時点で得られた鍵から次に得られる鍵を、比較的容易に推定される可能性がある。すなわち、鍵生成回路が前述の構造であり、ある時点で取り出した鍵が
8000000000000000(16進表現)であり、それからおよそ63μs後に新たな鍵を取り出したことを不正者が知ったなら、その新たな鍵は
0000000000000001(16進表現)か、それともそれに時間的に近い
0000000000000002(16進表現、1クロックサイクル前)あるいは
D800000000000000(16進表現、1クロックサイクル後)いずれかの可能性が高い、と不正者は推定することができる。よって鍵生成回路やそれを備えるデータ処理装置としては、不正者によって鍵をこのように容易に推定されることがないことが重要である。
【0011】
【課題を解決するための手段】
本発明は、推定することが困難な鍵を生成する鍵生成回路、およびそれを備えるデータ処理装置を提供する。
【0012】
本発明の鍵生成回路は、内部レジスタの値の更新には、内部のレジスタの値だけでなく、外部信号の値をも参照する。こうすることで、外部信号の値の違いによって内部のレジスタの値も異なるようになる。よって本発明の鍵生成回路に依れば、内部のレジスタの値を推定することが困難となるため、内部の構成を知る者であっても鍵を推定することが困難となり、鍵を秘密に保つ可能性が高くなる。
【0013】
また、本発明のデータ処理装置は、本発明の鍵生成回路と、他の回路(二つ目の本発明の鍵生成回路でもよい)からの信号を接続する。本発明のデータ処理装置に依れば、推定することが困難な鍵を鍵生成回路から取り出すことができるため、鍵を秘密に保つ可能性が高くなる。
【0014】
すなわち本発明に依れば、不正者が鍵を推定することは困難であり、鍵の秘密が保たれるため、ひいてはその鍵を用いて暗号化されたデータの秘密が保たれるため、安全である。
【0015】
【発明の実施の形態】
本発明の鍵生成回路は、多様な形態で実施することができる。ここでは、多項式
x^64=x^4+x^3+x+1に基づいて接続されたLFSRを用いて構成した鍵生成回路を説明する。
【0016】
まず、第1の実施形態について説明する。
【0017】
図1は、第1の実施形態の構成を示す図である。鍵生成回路100は、64ビット分のレジスタR[0]101,R[1]102,R[2]103,R[3]104,R[4]105,R[5]106,…,R[62]107,R[63]108およびEXOR(Exclusive−OR)素子109,110,111,112から成る。また、鍵生成回路100の入出力として、クロック入力113、外部信号入力114、および64ビット分の鍵出力115,116,117,118,119,120,…,121,122がある。
【0018】
以降では、各レジスタ101〜108を、動作クロックの立ち上がりエッジ毎にその入力信号の値を保持するフリップフロップとして説明するが、これに限らず、例えば、動作クロックの立ち下がりエッジ毎に保持するフリップフロップとして実施することもできるし、鍵生成回路100がクロック入力113の代わりに更新信号入力を備え、その更新信号入力に従って動作するスルーラッチとして実施することもできる。また、鍵生成回路100の動作クロックは、外部からクロック入力113を経て入力するものとして説明するが、これに限らず、例えばクロック入力113の代わりに内部にクロック発振器を備えて、それが発信するクロックを動作クロックとして用いて実施することもできる。
【0019】
各EXOR素子109〜112は、その入力信号の値に対して排他的論理和演算を行った値を出力する。クロック入力113は、外部から入力される動作クロックを、各レジスタ101〜108に伝える(図1では記述が複雑にならないように接続を省略して記述している)。外部信号入力114は、外部から入力される信号を、EXOR素子112へ伝える。各鍵出力115〜122は、各レジスタ101〜108の値を、暗号で用いる鍵として外部へ出力する。
【0020】
図2は、鍵生成回路100の動作波形の一例を示す図であり、これは外部信号入力114には常に値0を印加した場合のものである。なおここでは、値1を高レベルの電圧、値0を低レベルの電圧として表すが、もちろんその逆でも実施することができる。外部信号入力114に常に値0を印加する場合、鍵生成回路100は前述した従来の擬似乱数生成回路と同じ動作となる。
【0021】
すなわち例えば図2のように、ある時点(時点0)で、R[0]101のみ値1を保持し、他のレジスタは値0を保持しているとき、クロック入力113から入力される動作クロックの次の立ち上がりによって(時点1)、R[1]102のみ値1を保持し、他のレジスタは値0を保持するようになる。
【0022】
同様に、動作クロックのさらに62回立ち上がり後には(時点63)、R[63]108のみ値1を保持し、他のレジスタは値0を保持するようになり、動作クロックのさらに次の立ち上がりによって(時点64)、R[0]101,R[1]102,R[3]104,R[4]105は値1を保持し、他のレジスタは値0を保持するようになる。
【0023】
図3は、鍵生成回路100の動作波形の、他の一例を示す図である。これは、外部信号入力114には外部の他の回路からの信号が印加された場合のものである。ここでは、その信号はクロック入力113を経て入力される動作クロックに同期しているものとし、例としてその値を時点0から順に1,0,1,1,0,1,0,…,1,1,0,0,0としている。
【0024】
この場合、鍵生成回路100は前述した従来の擬似乱数生成回路とは異なる動作となる(各レジスタ101〜108が従来の擬似乱数生成回路とは異なる値を保持するようになる)。それに伴い各鍵出力115〜122の値も、従来の擬似乱数生成回路の値とは異なるようになり、鍵生成回路100の構成を知る者であっても各鍵出力115〜122の値を推定することが困難となる。そのため、各鍵出力115〜122の値を暗号の鍵として用いれば、鍵を秘密に保つ可能性が高くなる。
【0025】
図4は、鍵生成回路100の動作波形の、更に他の一例を示す図である。これは、外部信号入力114には外部の他の回路からの信号が印加された場合のものである。図3の場合とは、ここでは、その信号はクロック入力113を経て入力される動作クロックに同期していないものとしていることが異なる。例としてその信号の値を時点0から順に1,0,1,1,0,…,1,0,1,0としている。
【0026】
この場合、鍵生成回路100は前述した従来の擬似乱数生成回路や図3の場合とは異なる動作となる(各レジスタ101〜108が従来の擬似乱数生成回路や図3の場合とは異なる値を保持するようになる)。それに伴い各鍵出力115〜122の値も、従来の擬似乱数生成回路や図3の場合の値とは異なるようになり、鍵生成回路100の構成を知る者であっても各鍵出力115〜122の値を推定することが困難となる。
【0027】
外部信号入力114を経て入力される信号とクロック入力113を経て入力される動作クロックとは非同期であるため、鍵生成回路100の動作の再現性は低い。すなわち、外部信号入力114を経て入力される信号の周期を同じにし、クロック入力113を経て入力される動作クロックの周期も同じにして再現しても、それらの位相が異なれば、鍵生成回路100の動作も異なってくる可能性が高い。よって、鍵生成回路100の構成を知る者であっても各鍵出力115〜122の値を推定することがますます困難となる。そのため、各鍵出力115〜122の値を暗号の鍵として用いれば、鍵を秘密に保つ可能性がますます高くなる。
【0028】
次に、第2の実施形態について説明する。
【0029】
図5は、第2の実施形態の構成を示す図である。この鍵生成回路500は、図1と比べて、XOR素子112を備えない代わりに、SEL素子501,502を備え、外部信号入力114は外部から入力される信号を各SEL素子501,502へ伝える。各SEL素子501,502は、その入力信号sの値が1なら入力信号1を、入力信号sの値が0なら入力信号0を出力する。
【0030】
すなわち、レジスタR[0]101へ信号を伝えるSEL素子501は、外部信号入力114には値1が印加されているときはレジスタR[63]108からの信号を、また、外部信号入力114には値0が印加されているときはレジスタR[4]105からの信号を、レジスタR[0]101へ伝える。また、レジスタR[5]106へ信号を伝えるSEL素子502は、外部信号入力114には値1が印加されているときはレジスタR[4]105からの信号を、また、外部信号入力114には値0が印加されているときはレジスタR[63]108からの信号を、レジスタR[5]106へ伝える。このように、鍵生成回路500は、外部信号入力114から入力される外部からの信号を参照することによって、内部の信号の流れを変えている。
【0031】
外部信号入力114に常に値1を印加する場合の鍵生成回路500は、前述した従来の擬似乱数生成回路とも、また図1の外部信号入力114に常に値0を印加する場合の鍵生成回路100とも、同じ動作となる。また、外部信号入力114に常に値0を印加する場合の鍵生成回路500は、前述した従来の擬似乱数生成回路や、また図1の外部信号入力114に任意の値を印加する場合の鍵生成回路100と異なる動作となる。外部信号入力114には外部の他の回路からの信号が印加された場合、鍵生成回路500の構成を知る者であっても各鍵出力115〜122の値を推定することが困難となる。そのため、各鍵出力115〜122の値を暗号の鍵として用いれば、鍵を秘密に保つ可能性が高くなる。
【0032】
なお、第1の実施形態の図1や、第2の実施形態の図2には示していないが、鍵生成回路は、入出力として制御信号入力を備え、各レジスタの値を意図的に設定することができる機能を加えた構成とすることもできる。こうすることで、一般の回路のレジスタに接続されたセット信号あるいはリセット信号のように各レジスタの値をクリアする場合、あるいは、外部から初期値を入力してそれを適切なレジスタに設定する場合等でも、鍵生成回路は、各レジスタの値を意図的に設定することもできる。
【0033】
また、鍵生成回路は、内部のレジスタ分の不揮発性メモリ素子を備え、この不揮発性メモリ素子は、各レジスタが動作時に保持している値を、非動作(電源停止あるいは休止等)となる前に保持し、再動作する前に再設定する機能を加えた構成とすることもできる。こうすることで、非動作となりその後再動作しても、各レジスタの値は直前の動作時に保持していた値に復帰することができ、連続の値を更新することができる。
【0034】
なお鍵生成回路では、入力される外部信号のビット数、それを参照するための演算、それを参照する箇所等は、以上で説明した例に限らず、多様な形態で実施することができる。もちろん、第1および第2の実施形態を合成し、外部からの信号を内部の信号とともに演算させる構成でもあり、外部からの信号を参照して内部の信号の流れを変える構成でもある形態で実施することもできる。
【0035】
また、以上の説明では、鍵生成回路の構成のために用いた擬似乱数生成器を、多項式
x^64=x^4+x^3+x+1に基づいて接続されたLFSRとしたが、これに限らず、他の次数や他の項から成る多項式に基づいて接続されたLFSRはもちろん、非線形に接続されたフィードバックシフトレジスタ等とすることもでき、鍵生成回路は多様な形態で実施することができる。さらに、鍵生成回路が出力する鍵のビット数は、以上で説明した例に限らず、内部のレジスタ数未満であれば、鍵のビット数分の適切なレジスタの値を出力する構成で実施することができる。
【0036】
次に、データ処理装置について説明する。データ処理装置も、多様な形態で実施することができる。ここでは、データ処理装置の実施形態として、計算システム、および暗号用システムチップの2例を順に説明する。
【0037】
まず、本発明のデータ処理装置の第1の実施形態について説明する。
【0038】
図6は、本発明のデータ処理装置の第1の実施形態である、計算システムの構成を示す図である。計算システム600は、CPU(Central Processing Unit)601、チップセット602、主記憶603、補助記憶604、鍵生成回路605、および、図示していないディスプレイやネットワークポートなどがバスなどの内部通信線で接続された構成となる。すなわち計算システム600は、一般の計算システムに鍵生成回路605を加えた構成となる。
【0039】
CPU601は、チップセット602を介して、主記憶603が保持しているプログラムデータを受けて、そのプログラムデータに沿って演算や計算システム600全体の制御を行う。またCPU601は、データの暗号化を行うのに際して鍵が必要になると、チップセット602を介して、鍵生成回路605が出力する鍵を受けて、その鍵を用いてデータの暗号化を行う。チップセット602は、CPU601や主記憶603、補助記憶604等のデータバス制御を行う。主記憶603としては、一般の計算システムでは半導体メモリが多く用いられる。主記憶603は、チップセット602を介して、保持しているプログラムデータをCPU601へ送る。また主記憶603は、CPU601が必要とするプログラムデータを保持していない場合には、チップセット602を介して、補助記憶604からそれを受けて保持する。補助記憶604としては、一般の計算システムでは磁気ディスク装置やRAID(Redundant Array of Independent Disks)サブシステム等が多く用いられる。補助記憶604は、計算システムが扱うプログラムデータ等のほとんどのデータを保持する。補助記憶604は主記憶603と比べて、比較的多くのデータを保持することができ、計算システム600が非動作(電源停止あるいは休止等)の間もデータを保持し続けるところが、主な違いである。鍵生成回路605は、前述の鍵生成回路であり、ここではチップとして実現されているものとしている。鍵生成回路605は、計算システム600内の所定の構成要素から所定の信号を受ける。ここでは例として、その構成要素を主記憶603とし、その信号を主記憶603からチップセット602へ流れるデータバスとする。鍵生成回路605は、その信号を、チップセット602を介して、鍵生成回路605自身の外部信号入力に受けて、その値を参照しながら内部のレジスタを更新し、鍵を出力する。図示していないディスプレイは、計算システム600が扱っているデータを可視化する。また図示していないネットワークポートは、計算システム600外部の他のシステムとネットワークを介して接続し、計算システム600と他のシステムを通信する。
【0040】
このような構成にすると、補助記憶604が保持すべきデータを暗号化して保持する場合や、図示していないネットワークポートを介して他のシステムへ送信すべきデータを暗号化して送信する場合等、その暗号化には鍵生成回路605が出力した鍵を用いているため、計算システム600外部からその鍵を推定することが困難となる。そのため、鍵も、その鍵を用いて暗号化されたデータも、秘密に保たれる可能性が高くなる。
【0041】
次に、本発明のデータ処理装置の第2の実施形態について説明する。
【0042】
図7は、本発明のデータ処理装置の第2の実施形態である、暗号用システムチップの構成を示す図である。暗号用システムチップ700は、MPU(Micro Processing Unit)701、RAM(Random Access Memory)702、3種類の暗号モジュール[0]703、[1]704、[2]705、擬似乱数生成回路706、鍵生成回路707などがバスなどの内部通信線で接続された構成となる。また、暗号用システムチップ700には入出力708がある。
【0043】
MPU701としては、一般にマイクロコンピュータと呼ばれる汎用的なものでも、次に説明する機能を実現する簡単なモジュール(回路)でもよい。MPU701は、MPU701自身あるいはRAM702が格納しているプログラムデータに沿って演算や暗号用システムチップ700全体の制御を行う。またMPU701は、RAM702や各暗号モジュール703〜705、入出力708等のデータバス制御を行う。RAM702は、保持しているデータをMPU701や各暗号モジュール703〜705、入出力708等に送り、またそれらから送られるデータを受けるとそのデータを保持する。各暗号モジュール703〜705としては、様々な公開鍵暗号や、DES(Data Encryption Standard)やAES(Advanced Encryption Standard)等の共通鍵暗号暗号アルゴリズムを、用途に応じて回路で実現すればよい。各暗号モジュール703〜705は、RAM702あるいは鍵生成回路707から鍵を受け、RAM702からデータを受けると、その暗号アルゴリズムに基づいてデータを暗号化し、その結果をRAM702へ送る。擬似乱数生成回路706としては、従来の一般的な擬似乱数生成回路でよく例えばLFSRでよいし、あるいは上記実施形態の鍵生成回路でもよい。擬似乱数生成回路706は、擬似乱数を生成して、それを鍵生成回路707へ送る。鍵生成回路707は、前述の鍵生成回路であり、ここでは他のモジュールと1チップ化されて実現されているものとしている。鍵生成回路707は、擬似乱数生成回路706から送られる擬似乱数を外部信号入力に受けて、その値を参照しながら内部のレジスタを更新し、鍵を適切な暗号モジュールへ出力する。その際に鍵の性質がその暗号に不適切であれば(例えば素数の性質が要求される暗号等では)、MPU701がその鍵を適切な新たな鍵へと変換して、その適切な鍵を適切な暗号モジュールへ出力する。
【0044】
このような構成にすると、暗号用システムチップ700に外部からデータを送って暗号用システムチップ700にそのデータを暗号化する場合等、その暗号化には鍵生成回路708が出力した鍵を用いているため、暗号用システムチップ700外部からその鍵を推定することが困難となる。そのため、鍵も、その鍵を用いて暗号化されたデータも、秘密に保たれる可能性が高くなる。
【0045】
なお、データ処理装置が備える鍵生成回路の、外部信号入力が受ける信号と動作クロックとは、同期していても非同期であってもよい。非同期であれば、鍵の再現性が低くなるため、鍵も、その鍵を用いて暗号化されたデータも、秘密に保たれる可能性がますます高くなる。
【0046】
以上の説明では、実施形態として、計算システム、および暗号用システムチップを例に挙げたが、これに限らず、多様な形態で実施することができる。例えば、暗号技術を用いつつそのための鍵生成を行う、計算システムを複数を組み合わせた大規模システムや、携帯情報端末、携帯電話機器やその基地局、ネットワークルータやゲートウェイ、磁気ディスク装置や光ディスク装置等の記憶装置、フラッシュメモリ等の半導体メモリ等としても実施することができる。
【0047】
【発明の効果】
本発明に依れば、不正者が鍵を推定することは困難であり、鍵の秘密が保たれる。そのため、ひいてはその鍵を用いて暗号化されたデータの秘密が保たれ、安全である。
【図面の簡単な説明】
【図1】鍵生成回路の第1の実施形態の構成を示す図である。
【図2】鍵生成回路の動作波形の一例を示す図である。
【図3】鍵生成回路の動作波形の、他の一例を示す図である。
【図4】鍵生成回路の動作波形の、更に他の一例を示す図である。
【図5】鍵生成回路の第2の実施形態の構成を示す図である。
【図6】データ処理装置の第1の実施形態の構成を示す図である。
【図7】データ処理装置の第2の実施形態の構成を示す図である。
【符号の説明】
100,500,605,707…鍵生成回路、600…計算システム、700…暗号用システムチップ
Claims (2)
- データを暗号化や復号化するために用いる鍵を生成する鍵生成回路であって、
前記鍵生成回路は、前記鍵の生成に用いる内部レジスタの値を更新する際に、前記鍵生成回路外部の信号の値を参照することを特徴とする鍵生成回路。 - データを暗号化や復号化するために用いる鍵を生成する鍵生成手段を備えるデータ処理装置であって、
前記鍵生成手段は、当該データ処理装置内部の前記鍵生成手段以外の回路の信号を、参照する手段を備えることを特徴とするデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003144256A JP2004349992A (ja) | 2003-05-22 | 2003-05-22 | 暗号に用いる鍵生成機能を備えるデータ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003144256A JP2004349992A (ja) | 2003-05-22 | 2003-05-22 | 暗号に用いる鍵生成機能を備えるデータ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004349992A true JP2004349992A (ja) | 2004-12-09 |
Family
ID=33531745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003144256A Pending JP2004349992A (ja) | 2003-05-22 | 2003-05-22 | 暗号に用いる鍵生成機能を備えるデータ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004349992A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013064898A (ja) * | 2011-09-19 | 2013-04-11 | Nec Engineering Ltd | 擬似乱数生成装置、および、擬似乱数生成方法 |
-
2003
- 2003-05-22 JP JP2003144256A patent/JP2004349992A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013064898A (ja) * | 2011-09-19 | 2013-04-11 | Nec Engineering Ltd | 擬似乱数生成装置、および、擬似乱数生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220141038A1 (en) | Method of rsa signature or decryption protected using a homomorphic encryption | |
Barenghi et al. | Fault injection attacks on cryptographic devices: Theory, practice, and countermeasures | |
Güneysu et al. | Cryptanalysis with COPACOBANA | |
US8750502B2 (en) | System on chip and method for cryptography using a physically unclonable function | |
US9111122B2 (en) | Asymmetric cryptographic device with local private key generation and method therefor | |
EP2506176A1 (en) | Establishing unique key during chip manufacturing | |
US8781117B2 (en) | Generating pseudo random bits from polynomials | |
EP3577642B1 (en) | Methods and devices for protecting data | |
US9015218B2 (en) | Random number generator, encryption device, and authentication device | |
KR20000052797A (ko) | 멀티칩 집적 회로 패키지내에서의 상호 접속 보안 회로 및 방법 | |
JP2008252299A (ja) | 暗号処理システム及び暗号処理方法 | |
US20060015751A1 (en) | Method of storing unique constant values | |
JP2015534419A (ja) | 耐グリッチ性暗号離散対数ベースの署名のための方法及びシステム | |
JP6533553B2 (ja) | 暗号化/復号装置及びその電力解析保護方法 | |
US6996233B2 (en) | System and method for encrypting and verifying messages using three-phase encryption | |
JP2004304800A (ja) | データ処理装置におけるサイドチャネル攻撃防止 | |
US11336425B1 (en) | Cryptographic machines characterized by a Finite Lab-Transform (FLT) | |
US20010036267A1 (en) | Method for generating electronic keys from integer numbers prime with each other and a device for implementing the method | |
Berlin et al. | An overview of cryptanalysis of RSA public key system | |
JP2003337750A (ja) | 内部解析防止機能付き半導体デバイス | |
CN116455561A (zh) | 用于轻量装置的嵌入式tls协议 | |
Rahman et al. | Design and security-mitigation of custom and configurable hardware cryptosystems | |
JP2002217898A (ja) | 擬似乱数生成システム | |
KR100737173B1 (ko) | 일회용 암호 발생기 및 일회용 암호 발생기를 이용한 인증장치 | |
Ramkumar | Trustworthy computing under resource constraints with the DOWN policy |