JP2016103799A - 暗号処理装置、および暗号処理方法、並びにプログラム - Google Patents
暗号処理装置、および暗号処理方法、並びにプログラム Download PDFInfo
- Publication number
- JP2016103799A JP2016103799A JP2014242332A JP2014242332A JP2016103799A JP 2016103799 A JP2016103799 A JP 2016103799A JP 2014242332 A JP2014242332 A JP 2014242332A JP 2014242332 A JP2014242332 A JP 2014242332A JP 2016103799 A JP2016103799 A JP 2016103799A
- Authority
- JP
- Japan
- Prior art keywords
- key
- data
- lfsr
- random number
- stream
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 175
- 238000003672 processing method Methods 0.000 title claims description 11
- 238000000034 method Methods 0.000 claims abstract description 98
- 230000008569 process Effects 0.000 claims description 82
- 238000006243 chemical reaction Methods 0.000 claims description 52
- 238000004364 calculation method Methods 0.000 claims description 34
- 238000004891 communication Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 16
- 230000010365 information processing Effects 0.000 description 14
- 238000011084 recovery Methods 0.000 description 8
- 239000000470 constituent Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000006467 substitution reaction Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Abstract
Description
(S1)秘密のパラメータである秘密鍵と、公開パラメータである初期ベクトル(IV:Initial Vector)から、キーストリームと呼ばれる擬似乱数系列を生成する。
(S2)平文と、生成したキーストリームの排他的論理和をとることにより、暗号文を生成する。
(S3)秘密のパラメータである秘密鍵と、公開パラメータである初期ベクトル(IV:Initial Vector)から、キーストリーム(擬似乱数系列)を生成する。
(S4)暗号文と、生成したキーストリームの排他的論理和をとることにより、平文を生成する。
つまり、共通の秘密情報である「秘密鍵」を送信者と受信者で安全に共有することにより、暗号化および復号処理が可能となる。
暗号鍵データからなるデータストリームであるキーストリームを生成するキーストリーム生成部と、
前記キーストリームを構成する暗号鍵データと、暗号処理対象データとの演算処理を実行する演算部を有し、
前記キーストリーム生成部は、
第1の秘密鍵に基づいて擬似乱数を生成する擬似乱数生成部と、
第2の秘密鍵に基づいてLFSR出力データを生成する線形フィードバックレジスタ(LFSR)と、
前記擬似乱数生成部の生成した疑似乱数と、前記LFSR出力データとの排他的論理和演算処理を実行する排他的論理和演算部を有し、
前記排他的論理和演算部の出力をキーストリームとして出力する暗号処理装置にある。
復号鍵データからなるデータストリームであるキーストリームを生成するキーストリーム生成部と、
前記キーストリームを構成する復号鍵データと、復号処理対象データとの演算処理を実行する演算部を有し、
前記キーストリーム生成部は、
第1の秘密鍵に基づいて擬似乱数を生成する擬似乱数生成部と、
第2の秘密鍵に基づいてLFSR出力データを生成する線形フィードバックレジスタ(LFSR)と、
前記擬似乱数生成部の生成した疑似乱数と、前記LFSR出力データとの排他的論理和演算処理を実行する排他的論理和演算部を有し、
前記排他的論理和演算部の出力をキーストリームとして出力する復号処理装置にある。
暗号処理装置において実行する暗号処理方法であり、
キーストリーム生成部が、暗号鍵データからなるデータストリームであるキーストリームを生成するキーストリーム生成ステップと、
演算部が、前記キーストリームを構成する暗号鍵データと、暗号処理対象データとの演算処理を実行する演算ステップを実行し、
前記キーストリーム生成ステップは、
擬似乱数生成部が、第1の秘密鍵に基づいて擬似乱数を生成する擬似乱数生成ステップと、
線形フィードバックレジスタ(LFSR)が、第2の秘密鍵に基づいてLFSR出力データを生成するLFSR出力データ生成ステップと、
排他的論理和演算部が、前記擬似乱数生成部の生成した疑似乱数と、前記LFSR出力データとの排他的論理和演算処理を実行する排他的論理和演算ステップを有し、
前記排他的論理和演算部の出力をキーストリームとして出力する暗号処理方法にある。
暗号処理装置において暗号処理を実行させるプログラムであり、
キーストリーム生成部に、暗号鍵データからなるデータストリームであるキーストリームを生成させるキーストリーム生成ステップと、
演算部に、前記キーストリームを構成する暗号鍵データと、暗号処理対象データとの演算処理を実行させる演算ステップを実行させ、
前記プログラムは、前記キーストリーム生成ステップにおいて、
擬似乱数生成部に、第1の秘密鍵に基づいて擬似乱数を生成させる擬似乱数生成ステップと、
線形フィードバックレジスタ(LFSR)に、第2の秘密鍵に基づいてLFSR出力データを生成させるLFSR出力データ生成ステップと、
排他的論理和演算部に、前記擬似乱数生成部の生成した疑似乱数と、前記LFSR出力データとの排他的論理和演算処理を実行させる排他的論理和演算ステップを実行させ、
前記排他的論理和演算部の出力をキーストリームとして出力させるプログラムにある。
具体的には、暗号鍵データからなるデータストリームであるキーストリームを生成するキーストリーム生成部と、キーストリームを構成する暗号鍵データと、暗号処理対象データとの演算処理を実行する演算部を有し、キーストリーム生成部は、第1の秘密鍵に基づいて擬似乱数を生成する擬似乱数生成部と、第2の秘密鍵に基づいてLFSR出力データを生成する線形フィードバックレジスタ(LFSR)と、擬似乱数生成部の生成した疑似乱数と、LFSR出力データとの排他的論理和演算処理を実行する排他的論理和演算部を有し、排他的論理和演算部の出力をキーストリームとして出力する。
本構成により、安全性を向上させたストリーム暗号を実行する装置、方法が実現される。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
1.ストリーム暗号の概要について
2.安全性を高めたストリーム暗号の構成について
2−1.第2の秘密鍵(KL)に基づくLFSR出力を適用してキーストリームを生成する実施例(実施例1)
2−2.秘密鍵(Ks)に基づくLFSR出力を適用してキーストリームを生成する実施例(実施例2)
2−3.第1の秘密鍵(Ks)の変換データに基づくLFSR出力を適用してキーストリームを生成する実施例(実施例3)
3.暗号処理装置の構成例について
4.本開示の構成のまとめ
まず、ストリーム暗号の概要について説明する。
ストリーム暗号は、共通鍵暗号の一つである。
図1、図2を参照して、ストリーム暗号に従った暗号化処理と復号処理について説明する。
キーストリーム生成部50は、秘密鍵(Ks)11と、初期ベクトル(IV:Initial Vector)12を入力して、キーストリーム(擬似乱数)13を生成する。
秘密鍵(Ks)11と、初期ベクトル(IV)12は、暗号処理を実行する装置、例えばユーザの情報処理装置に予め格納されたデータである。
秘密鍵(Ks)11は、秘密情報であり、公開されたデータではない。特定のユーザ間、例えば暗号文生成ユーザと、暗号文を復号するユーザ間で共有される秘密情報である。
一方、初期ベクトル(IV)12は、公開データであり、不特定多数のユーザが知ることができるデータである。
鍵スケジュール部51は、秘密鍵(Ks)11と、初期ベクトル(IV)12に基づいて、擬似乱数生成用初期データを生成して擬似乱数生成部52に出力する。
擬似乱数生成部52は、鍵スケジュール部51から入力する擬似乱数生成用初期データを適用して擬似乱数としてのキーストリーム13を生成して出力する。
擬似乱数生成部52は、各々が所定長のデータからなるデータ列:Z1,Z2,Z3,・・・をキーストリームとして順次、出力する。
この排他的論理和演算結果として算出するデータ列:C1,C2,C3・・・を、暗号文22として出力する。
C1=P1(+)Z1
C2=P2(+)Z2
C3=P3(+)Z3
・・・
なお、上記式において(+)は、排他的論理和演算を意味する。
また、平文の構成要素Pi、キーストリームの構成要素Zi、暗号文構成要素Ci、これらの各構成要素は、いずれも同一ビット数、例えば1バイト(8ビット)のデータに設定される。
(S1)秘密のパラメータである秘密鍵と、公開パラメータである初期ベクトル(IV:Initial Vector)から、キーストリームと呼ばれる擬似乱数系列Z1,Z2,Z3・・・を生成する。
(S2)平文の構成データP1,P2,P3・・・と、生成したキーストリームZ1,Z2,Z3・・・の排他的論理和をとることにより、暗号文C1,C2,C3・・・を生成する。
図2は、ストリーム暗号に従った復号処理について説明する図である。
ストリーム暗号に従った暗号処理と復号処理は、同一の装置構成を用いて実行可能である。
秘密鍵(Ks)41と、初期ベクトル(IV)42は、復号処理を実行する装置、例えばユーザの情報処理装置に予め格納されたデータである。
秘密鍵(Ks)41は、秘密情報であり、公開されたデータではない。特定のユーザ間、例えば暗号文生成ユーザと、暗号文を復号するユーザ間で共有される秘密情報である。
一方、初期ベクトル(IV)12は、公開データであり、不特定多数のユーザが知ることができるデータである。
復号対象とする暗号文22が、図1に示す構成によって生成された暗号文22である場合、初期ベクトル(IV)42も、図1に示す暗号処理において適用した初期ベクトル(IV)12と同一のデータである。
鍵スケジュール部71は、秘密鍵(Ks)41と、初期ベクトル(IV)42に基づいて、擬似乱数生成用初期データを生成して擬似乱数生成部72に出力する。
擬似乱数生成部72は、鍵スケジュール部71から入力する擬似乱数生成用初期データを適用して擬似乱数としてのキーストリーム43を生成して出力する。
なお、生成されるキーストリーム43は、同一の秘密鍵(Ks)と同一の初期ベクトル(IV)を用いた場合、同一のデータとなる。
擬似乱数生成部72は、各々が所定長のデータからなるデータ列:Z1,Z2,Z3,・・・をキーストリームとして順次、出力する。
この排他的論理和演算結果として算出するデータ列:P1,P2,P3・・・が、復号結果としての平文21となる。
P1=C1(+)Z1
P2=C2(+)Z2
P3=C3(+)Z3
・・・
なお、上記式において(+)は、排他的論理和演算を意味する。
また、平文の構成要素Pi、キーストリームの構成要素Zi、暗号文構成要素Ci、これらの各構成要素は、いずれも同一ビット数、例えば1バイト(8ビット)のデータである。
(S3)秘密鍵と、初期ベクトル(IV)から、キーストリーム(擬似乱数系列)Z1,Z2,Z3・・・を生成する。
(S4)暗号文C1,C2,C3・・・と、生成したキーストリームZ1,Z2,Z3・・・の排他的論理和をとることにより、平文P1,P2,P3・・・を生成する。
つまり、共通の秘密情報である「秘密鍵」を送信者と受信者で安全に共有することにより、暗号化および復号処理が可能となる。
図1、図2に示す鍵スケジュール部51,71内で実行する鍵スケジューリングアルゴリズムでは、秘密鍵(Ks)と、初期ベクトル(IV)とから、擬似乱数生成用初期データを生成する。
擬似乱数生成用初期データは、擬似乱数生成部52の内部状態と呼ばれる内部変数の初期値(初期状態)に相当する。なお、安全性の観点より、擬似乱数生成用初期データ(内部状態)のサイズは、秘密鍵(Ks)の2倍以上であることが求められる。
ここでZiは、時刻iにおける擬似乱数生成部からの出力であり、サイズはアルゴリズムによって異なる。たとえば、ストリーム暗号RC4の場合には、各ワードのサイズは1バイト(8ビット)である。
線形フィードバック型は、その名の通り線形フィードバックシフトレジスタをベースにしており、線形フィルター関数と、非線形フィードバックシフトレジスタと組み合わせることで安全性を確保している。代表的なものとして、SNOW 3G、 KCipher−2が挙げられる。
一方、状態遷移型はレジスタ内を非線形な関数により更新し、その一部をキーストリームとして出力する構成である。代表的なものとして、RC4が挙げられる。
(1)識別攻撃:キーストリームを真性乱数と識別する攻撃、
(2)予測攻撃:未知のキーストリームを予測する攻撃、
(3)鍵回復攻撃:キーストリームから、秘密鍵を求める攻撃、
(4)内部状態復元攻撃:キーストリームから秘密鍵と等価な内部状態を求める攻撃、
基本的には、ストリーム暗号は上記の攻撃すべてに対して耐性を有していることが求められる。
しかしながら、攻撃の前提として、攻撃者が十分な量(サイズ)のキーストリームの情報を知っていることが求められる。これは、攻撃者が、大量の平文暗号文ペアを保持しておく必要があることを意味する。この強い仮定のため、実際の利用においては脅威になりにくく、理論的な攻撃と考えられる。
キーストリームの偏りの例について、図3を参照して説明する。
図3に示すキーストリーム生成部50の生成するキーストリームの1つの構成要素(ワード)Z2に着目する。
キーストリームの1つの構成要素(ワード)を1バイト(8ビット)とすると、Z2の取り得る値は0〜255の256通りである。
しかし、現実には、キーストリームの構成要素(ワード)の値の出現確率には偏りが発生する。
Z2についての実際の出現確率の計測値は、図3の[(b)現実]に示すグラフの通り、0の出現確率が他の値に比較して高くなっている。
図3には、キーストリームの構成要素(ワード)の1つであるZ2についての検証結果を示しているが、その他のキーストリームの構成要素についても、それぞれ、出現しやすい値が存在する。
なお、「ブロードキャスト・セッティング」とは、"同じ平文を異なる鍵で暗号化し、暗号文を生成する状況"を意味する
例えば、ある1つの平文Pを多数のユーザに同時に配信(ブロードキャスト)する場合、各ユーザに対応付けられた異なる秘密鍵k1〜kxを適用して、同一平文に対する暗号化処理を実行して、多数の暗号化データ(C1〜Cx)を生成して送信することが行われる。
C2=E(k2,P)
・・・
Cx=E(kx,P)
である。
ただし、E(ki,P)は、平文Pに対する鍵kiを適用した暗号化処理を意味する。
キーストリームの統計的な偏りがあると、取得した多数の暗号化データの解析に基づく平文算出が容易になる。この攻撃が、「ブロードキャスト・セッティング」を利用した暗号文から平文を求める識別攻撃である。
コンテンツをユーザごとの鍵で暗号化して、ネットワーク配信する処理は頻繁に行われており、この攻撃による損害は多大なものとなる恐れがある。
出力に偏りが存在する場合には、図4を参照して説明した平文回復攻撃がやり易くなり、安全性が脅かされる。この脅威を防止するためには、何らかの対策をとる必要がある。
(1)別の安全なストリーム暗号に変更する。
もっとも単純な方法で、システム全体において、偏りのある弱いストリーム暗号を安全なストリーム暗号に変更することにより、脆弱性を取り除く。これにより、ブロードキャスト・セッティングにおいても、偏りによるキーストリームを利用した平文回復攻撃を完全に防ぐことができる。
ストリーム暗号自体を入れ替えるのではなく、アルゴリズムの一部に修正を加えることにより、偏りのある出力が発生する脆弱性を取り除く。例えば、出力の偏りを取り除くための方法としては、擬似ランダム関数(MAC関数等)を追加して、キーストリームを擬似ランダム置換に代入し、その出力を新しいキーストリームとすることで、脆弱性を取り除くことができる。
すでに実装されている暗号をすべて変えることが必要となるため、費用的にも時間的にも大きなコストになる。また新規のハードウェアやソフトウェアの開発のコストもかかる。さらに、すでに出荷されているデバイスやシステムが、ネットワークにつながっていない場合には、ソフトウェア/ファームウェアアップデート等でも対応することが非常に難しい。特にハードウェアの変更はネットワーク経由でのアップデートは基本的にできず、コストが高い。
方法(1)とは異なりアルゴリズムすべてを変更するわけではないため、変更のコストは方法(1)と比べて、比較的軽微になることが予想される。しかしながら、既存のアルゴリズムを修正する場合は高い専門知識が必要である。既存システムの設計者でない場合、設計理論のすべてを把握できないため、修正がかえって他の深刻的な脆弱性を招く可能性がある。また、実際に安全な暗号を運用したい場合には。安全性評価を実施する必要があるが、これにも多くの時間や高い専門性が必要になる。
また、修正することにより、パファーマンスが大幅に低下してしまった場合には、他のシステムと整合性が取れなくなり、システム全体のパファーマンスも不安定になる可能性がある。例えば、前述の擬似ランダム置換を用いる場合には、大幅な速度の低下が予想される。
次に、上述した問題点を解決した安全性を強化した本開示のストリーム暗号の構成例について説明する。
(a)追加実装コスト(ソフトウェア、ハードウェアとも)が低い。
(b)安全性評価を簡単に行うことができる。
(c)ストリーム暗号の実装性能(特に速度)を保つことが可能である。
例えば、既存のストリーム暗号において生成するキーストリームに対して、所定の秘密情報を入力した線形フィードバックシフトレジスタ(LFSR:Linear Feedback Shift Register)の出力を、排他的論理和(XOR)して新たなキーストリームを生成して利用する。この構成により、安全性の高いストリーム暗号を実現する。
(a)出力系列は決定的で、現在の内部状態を知っていれば次の状態は推測可能。
(b)出力系列を観測することで、内部状態を復元することが可能。
また、本開示の各実施例において用いる線形フィードバックシフトレジスタ(LFSR)はさらに以下の特徴を持つことが望ましい。
(c)0と1の出現確率が真性乱数と統計的に同じ。
以下、各実施例について、順次、説明する。
まず、実施例1として、線形フィードバックシフトレジスタ(LFSR)に、鍵スケジュール部に入力する秘密鍵(Ks)と異なる第2の秘密鍵(KL)を入力して、LFSRの初期状態を設定する実施例について説明する。
すなわち、秘密鍵(Ks)に基づいて鍵スケジュール部と擬似乱数生成部の処理によって生成した擬似乱数と、第2の秘密鍵(KL)に基づくLFSRからの出力とを排他的論理和(XOR)したデータをキーストリームとする実施例である。
キーストリーム生成部110は、第1秘密鍵(Ks)131と、初期ベクトル(IV:Initial Vector)132、さらに、第2秘密鍵(KL)133を入力して、キーストリーム(擬似乱数)136を生成する。
第1秘密鍵(Ks)131と、第2秘密鍵(KL)133は、秘密情報であり、公開されたデータではない。特定のユーザ間、例えば暗号文生成ユーザと、暗号文を復号するユーザ間で共有される秘密情報である。
また、第1秘密鍵(Ks)131と、第2秘密鍵(KL)133は、異なる鍵データである。
初期ベクトル(IV)132は、公開データであり、不特定多数のユーザが知ることができるデータである。
鍵スケジュール部111は、第1秘密鍵(Ks)131と、初期ベクトル(IV)132に基づいて、擬似乱数生成用初期データを生成して擬似乱数生成部112に出力する。
擬似乱数生成部112は、鍵スケジュール部111から入力する擬似乱数生成用初期データを適用して擬似乱数134を生成して出力する。擬似乱数134は、図に示すZa1,Za2,・・・のデータシーケンスであり、例えば、Zaiの各々が1バイト(8ビット)の擬似乱数シーケンス:Za1,Za2,・・・を生成して排他的論理和(XOR)演算部122に出力する。
線形フィードバックシフトレジスタ(LFSR)121を構成するレジスタに、第2秘密鍵(KL)133の構成ビットがセットされる。この第2秘密鍵(KL)のセット状態をLFSRの初期状態とする。
その後、線形フィードバックシフトレジスタ(LFSR)121は、規定のシフト動作を順次、実行して、LFSR出力135を生成して出力する。
LFSR出力135は、図に示すO1,O2,・・・のデータシーケンスである。例えば、Oiの各々が1バイト(8ビット)のLFSR出力シーケンス:O1,O2,・・・を生成して排他的論理和(XOR)演算部122に出力する。
図6は、線形フィードバックシフトレジスタ(LFSR)121に入力する第2秘密鍵(KL)133が128ビットデータであり、線形フィードバックシフトレジスタ(LFSR)121のレジスタ数(設定可能なビット数)も128としたLFSRの構成例である。
まず、レジスタD1〜D128の各々に第2秘密鍵(KL)133の構成ビットをセットする。この状態を初期状態とする。
その後、シフト処理として、
レジスタD1の格納ビット(X1)をレジスタD2、
レジスタD2の格納ビット(X2)をレジスタD3、
・・・
レジスタD127の格納ビット(X127)をレジスタD128、
このように1ビットシフトを行う。
更新D1=X128(+)X126(+)X101(+)X99
なお、上記式において、(+)は排他的論理和(XOR)を意味する。
図6に示すLFSRは、出力系列の特性を決める特性多項式として、以下の原始多項式f(x)を用いたLFSRである。
f(x)=X128(+)X126(+)X101(+)X99(+)1
図6に示すLFSRは、この多項式f(x)によって規定される構造を持つLFSRである。
図5に示すLFSR出力135は、各々が1バイト(8ビット)データからなるデータシーケンス:O1,O2,O3であり、これをLFSR出力135として排他的論理和(XOR)演算部122に出力する。
次に、図7を参照して、線形フィードバックシフトレジスタ(LFSR)121に入力する第2秘密鍵(KL)133が64ビットデータである場合のLFSR構成例について説明する。
その後、シフト処理として、
レジスタD1の格納ビット(X1)をレジスタD2、
レジスタD2の格納ビット(X2)をレジスタD3、
・・・
レジスタD63の格納ビット(X63)をレジスタD64、
このように1ビットシフトを行う。
更新D1=X64(+)X63(+)X61(+)X60
なお、上記式において、(+)は排他的論理和(XOR)を意味する。
図7に示すLFSRは、出力系列の特性を決める特性多項式として、以下の原始多項式f(x)を用いたLFSRである。
f(x)=X64(+)X63(+)X61(+)X60(+)1
レジスタD64から1ビットデータが、順次、出力される。この出力ビットの所定単位のデータ、たとえば1バイト(8ビット)データを、1つのLFSR出力Oiとして設定する。
(a)第1秘密鍵(Ks)131に基づいて、鍵スケジュール部111、擬似乱数生成部112の処理によって生成された擬似乱数:Za1,Za2,Za3・・・
(b)第2秘密鍵(KL)133に基づいて、線形フィードバックシフトレジスタ(LFSR)121から出力されるLFSR出力:O1,O2,O3・・・
排他的論理和(XOR)演算部122では、これら2つのデータ、すなわち、
擬似乱数:Za1,Za2,Za3・・・
LFSR出力:O1,O2,O3・・・
これらのデータの排他的論理和(XOR)演算を実行して、キーストリームZb1,Zb2,Zb3・・・を生成して出力する。
キーストリームZb1,Zb2,Zb3・・・は、以下の算出式によって生成される。
Zb1=Za1(+)O1、
Zb2=Za2(+)O2、
Zb3=Za3(+)O3、
・・・
なお、上記式において、(+)は排他的論理和演算(XOR)を意味する。
このように、キーストリーム生成部110の排他的論理和(XOR)演算部122は、各々が所定長のデータからなるデータ列:Zb1,Zb2,Zb3,・・・をキーストリームとして順次、出力する。
この排他的論理和演算結果として算出するデータ列:C1,C2,C3・・・を、暗号文142として出力する。
C1=P1(+)Zb1
C2=P2(+)Zb2
C3=P3(+)Zb3
・・・
なお、上記式において(+)は、排他的論理和演算を意味する。
また、平文の構成要素Pi、キーストリームの構成要素Zbi、暗号文構成要素Ci、これらの各構成要素は、いずれも同一ビット数、例えば1バイト(8ビット)のデータである。
(Sa1)秘密のパラメータである第1秘密鍵(Ks)と、公開パラメータである初期ベクトル(IV:Initial Vector)から、擬似乱数系列Za1,Za2,Za3・・・を生成する。
(Sa2)秘密のパラメータである第2秘密鍵(KL)から、LFSR出力系列O1,O2,O3・・・を生成する。
(Sa3)擬似乱数系列Za1,Za2,Za3・・・と、LFSR出力系列O1,O2,O3・・・との排他的論理和(XOR)により、キーストリームZb1,Zb2,Zb3・・・を生成する。
(Sa4)平文の構成データP1,P2,P3・・・と、生成したキーストリームZb1,Zb2,Zb3・・・の排他的論理和をとることにより、暗号文C1,C2,C3・・・を生成する。
図8は、本実施例1に従った復号処理について説明する図である。
本実施例1のストリーム暗号に従った暗号処理と復号処理は、同一の装置構成を用いて実現される。
第1秘密鍵(Ks)231と、第2秘密鍵(KL)233は、秘密情報であり、公開されたデータではない。特定のユーザ間、例えば暗号文生成ユーザと、暗号文を復号するユーザ間で共有される秘密情報である。
すなわち、復号対象とする暗号文142が、図5に示す構成によって生成された暗号文142である場合、第1秘密鍵(Ks)231は、図5に示す暗号処理において適用した第1秘密鍵(Ks)131と同一の鍵である。
また、第2秘密鍵(KL)233は、図5に示す暗号処理において適用した第2秘密鍵(Ks)133と同一の鍵である。
復号対象とする暗号文142が、図5に示す構成によって生成された暗号文142である場合、初期ベクトル(IV)232も、図5に示す暗号処理において適用した初期ベクトル(IV)132と同一のデータである。
鍵スケジュール部211は、第1秘密鍵(Ks)231と、初期ベクトル(IV)232に基づいて、擬似乱数生成用初期データを生成して擬似乱数生成部212に出力する。
擬似乱数生成部212は、鍵スケジュール部211から入力する擬似乱数生成用初期データを適用して擬似乱数234を生成して出力する。擬似乱数234は、図に示すZa1,Za2,・・・のデータシーケンスであり、例えば、Zaiの各々が1バイト(8ビット)の擬似乱数シーケンス:Za1,Za2,・・・を生成して排他的論理和(XOR)演算部222に出力する。
線形フィードバックシフトレジスタ(LFSR)221を構成するレジスタに、第2秘密鍵(KL)233の構成ビットがセットされる。この第2秘密鍵(KL)のセット状態をLFSRの初期状態とする。
その後、線形フィードバックシフトレジスタ(LFSR)221は、規定のシフト動作を順次、実行して、LFSR出力235を生成して出力する。
LFSR出力235は、図に示すO1,O2,・・・のデータシーケンスであり、例えば、Oiの各々が1バイト(8ビット)のLFSR出力シーケンス:O1,O2,・・・を生成して排他的論理和(XOR)演算部222に出力する。
線形フィードバックシフトレジスタ(LFSR)221の具体例として図6、図7を参照して2つの例を説明したが、暗号処理に用いたLFSRと復号処理に用いるLFSRは同一構成とする。
図8に示すキーストリーム生成部210の構成を、図5を参照して説明したキーストリーム生成部110の構成と同一とし、入力する各データ、すなわち、第1秘密鍵(Ks)、初期ベクトル(IV)、第2秘密鍵(KL)を同一とすることで、いずれにおいても同一のキーストリームZb1,Zb2,Zb3・・が生成される。
(a)第1秘密鍵(Ks)231に基づいて、鍵スケジュール部211、擬似乱数生成部212の処理によって生成された擬似乱数:Za1,Za2,Za3・・・
(b)第2秘密鍵(KL)233に基づいて、線形フィードバックシフトレジスタ(LFSR)221から出力されるLFSR出力:O1,O2,O3・・・
排他的論理和(XOR)演算部222では、これら2つのデータ、すなわち、
擬似乱数:Za1,Za2,Za3・・・
LFSR出力:O1,O2,O3・・・
これらのデータの排他的論理和(XOR)演算を実行して、キーストリームZb1,Zb2,Zb3・・・を生成して出力する。
キーストリームZb1,Zb2,Zb3・・・は、以下の算出式によって生成される。
Zb1=Za1(+)O1、
Zb2=Za2(+)O2、
Zb3=Za3(+)O3、
・・・
なお、上記式において、(+)は排他的論理和演算(XOR)を意味する。
このように、キーストリーム生成部210の排他的論理和(XOR)演算部222は、各々が所定長のデータからなるデータ列:Zb1,Zb2,Zb3,・・・をキーストリームとして順次、出力する。
この排他的論理和演算結果として算出するデータ列:P1,P2,P3・・・が、復号結果としての平文141となる。
P1=C1(+)Zb1
P2=C2(+)Zb2
P3=C3(+)Zb3
・・・
なお、上記式において(+)は、排他的論理和演算を意味する。
また、平文の構成要素Pi、キーストリームの構成要素Zbi、暗号文構成要素Ci、これらの各構成要素は、いずれも同一ビット数、例えば1バイト(8ビット)のデータである。
(Sb1)秘密のパラメータである第1秘密鍵(Ks)と、公開パラメータである初期ベクトル(IV:Initial Vector)から、擬似乱数系列Za1,Za2,Za3・・・を生成する。
(Sb2)秘密のパラメータである第2秘密鍵(KL)から、LFSR出力系列O1,O2,O3・・・を生成する。
(Sb3)擬似乱数系列Za1,Za2,Za3・・・と、LFSR出力系列O1,O2,O3・・・との排他的論理和(XOR)により、キーストリームZb1,Zb2,Zb3・・・を生成する。
(Sb4)暗号文C1,C2,C3・・・と、生成したキーストリームZb1,Zb2,Zb3・・・の排他的論理和をとることにより、平文の構成データP1,P2,P3・・・を生成する。
例えば、擬似乱数生成部112の出力する擬似乱数Za1,Za2,・・・に偏りがあった場合においても、偏りのあるこれらの擬似乱数Za1,Za2,・・・に対して、0、1の出現頻度が均一なLFSRの出力O1,O2・・・を、排他的論理和(XOR)演算を施して新たなキーストリームZb1,Zb2,・・・を生成することで、偏りを取り除くことができる。
この処理によって、先に図4を参照して説明したブロードキャスト・セッティングを利用した平文回復攻撃を防ぐことができる。
本実施例1において用いる線形フィードバックシフトレジスタ(LFSR)はレジスタと排他的論理和(XOR)演算処理構成のみで実装可能であり、H/W(ハードウェア)で構成した場合の実装コストが小さい。そのため、既存のシステムに付加しても大きなコストアップにならない。また。S/W(ソフトウェア)実装とした場合においても高速処理が可能であり、RC4など、既存のストリーム暗号のパフォーマンスを低下させない。さらにLFSRは同期を取るために必要なカウンターとして用いることも可能であり、他の用途に利用することもできる。
この128ビットキーRC4に本実施例1を適用する場合、秘密鍵(Ks)のサイズを128ビットとし、第2秘密鍵(KL)のビットサイズ、およびLFSRのレジスタ数(セット可能なビット数)のサイズを128ビット、LFSRの周期を最大周期2128−1となるようにLFSRを選択する。
具体的には、LFSRは、先に図6を参照して説明した構成とし、LFSRの構成を規定する特性多項式は、以下の128次の原始多項式とする。
f(x)=X128(+)X126(+)X101(+)X99(+)1
次に、実施例2として、線形フィードバックシフトレジスタ(LFSR)に、鍵スケジュール部に入力する秘密鍵(Ks)と同じ秘密鍵(Ks)を入力して、LFSRの初期状態を設定する実施例について説明する。
すなわち、秘密鍵(Ks)に基づいて鍵スケジュール部と擬似乱数生成部の処理によって生成した擬似乱数と、同じ秘密鍵(Ks)に基づくLFSRからの出力とを排他的論理和(XOR)したデータをキーストリームとする実施例である。
図9に示すキーストリーム生成部110は、先に実施例1の構成として説明した図5に示すキーストリーム生成部110と同一の構成である。
図1に示す構成との差異は、図9に示すキーストリーム生成部110の線形フィードバックシフトレジスタ(LFSR)121に対して、第1秘密鍵(Ks)を入力している点である。
鍵スケジュール部111は、第1秘密鍵(Ks)131と、初期ベクトル(IV)132に基づいて、擬似乱数生成用初期データを生成して擬似乱数生成部112に出力する。
擬似乱数生成部112は、鍵スケジュール部111から入力する擬似乱数生成用初期データを適用して擬似乱数134を生成して出力する。擬似乱数134は、図に示すZa1,Za2,・・・のデータシーケンスであり、例えば、Zaiの各々が1バイト(8ビット)の擬似乱数シーケンス:Za1,Za2,・・・を生成して排他的論理和(XOR)演算部122に出力する。
線形フィードバックシフトレジスタ(LFSR)121を構成するレジスタに、第1秘密鍵(Ks)131の構成ビットがセットされる。この第1秘密鍵(Ks)のセット状態をLFSRの初期状態とする。
その後、線形フィードバックシフトレジスタ(LFSR)121は、規定のシフト動作を順次、実行して、LFSR出力135を生成して出力する。
LFSR出力135は、図に示すO1,O2,・・・のデータシーケンスであり、例えば、Oiの各々が1バイト(8ビット)のLFSR出力シーケンス:O1,O2,・・・を生成して排他的論理和(XOR)演算部122に出力する。
具体的には、例えば、先に図6、図7を参照して説明した構成を持つ。
(a)第1秘密鍵(Ks)131に基づいて、鍵スケジュール部111、擬似乱数生成部112の処理によって生成された擬似乱数:Za1,Za2,Za3・・・
(b)第1秘密鍵(Ks)131に基づいて、線形フィードバックシフトレジスタ(LFSR)121から出力されるLFSR出力:O1,O2,O3・・・
排他的論理和(XOR)演算部122では、これら2つのデータ、すなわち、
擬似乱数:Za1,Za2,Za3・・・
LFSR出力:O1,O2,O3・・・
これらのデータの排他的論理和(XOR)演算を実行して、キーストリームZb1,Zb2,Zb3・・・を生成して出力する。
キーストリームZb1,Zb2,Zb3・・・は、以下の算出式によって生成される。
Zb1=Za1(+)O1、
Zb2=Za2(+)O2、
Zb3=Za3(+)O3、
・・・
なお、上記式において、(+)は排他的論理和演算(XOR)を意味する。
このように、キーストリーム生成部110の排他的論理和(XOR)演算部122は、各々が所定長のデータからなるデータ列:Zb1,Zb2,Zb3,・・・をキーストリームとして順次、出力する。
この排他的論理和演算結果として算出するデータ列:C1,C2,C3・・・を、暗号文142として出力する。
C1=P1(+)Zb1
C2=P2(+)Zb2
C3=P3(+)Zb3
・・・
なお、上記式において(+)は、排他的論理和演算を意味する。
また、平文の構成要素Pi、キーストリームの構成要素Zbi、暗号文構成要素Ci、これらの各構成要素は、いずれも同一ビット数、例えば1バイト(8ビット)のデータである。
(Sa1)秘密のパラメータである第1秘密鍵(Ks)と、公開パラメータである初期ベクトル(IV:Initial Vector)から、擬似乱数系列Za1,Za2,Za3・・・を生成する。
(Sa2)秘密のパラメータである第1秘密鍵(Ks)から、LFSR出力系列O1,O2,O3・・・を生成する。
(Sa3)擬似乱数系列Za1,Za2,Za3・・・と、LFSR出力系列O1,O2,O3・・・との排他的論理和(XOR)により、キーストリームZb1,Zb2,Zb3・・・を生成する。
(Sa4)平文の構成データP1,P2,P3・・・と、生成したキーストリームZb1,Zb2,Zb3・・・の排他的論理和をとることにより、暗号文C1,C2,C3・・・を生成する。
図10は、本実施例2に従った復号処理について説明する図である。
本実施例2のストリーム暗号に従った暗号処理と復号処理は、同一の装置構成を用いて実現される。
第1秘密鍵(Ks)231は、秘密情報であり、公開されたデータではない。特定のユーザ間、例えば暗号文生成ユーザと、暗号文を復号するユーザ間で共有される秘密情報である。
一方、初期ベクトル(IV)232は、公開データであり、不特定多数のユーザが知ることができるデータである。
復号対象とする暗号文142が、図9に示す構成によって生成された暗号文142である場合、初期ベクトル(IV)232も、図9に示す暗号処理において適用した初期ベクトル(IV)132と同一のデータである。
鍵スケジュール部211は、第1秘密鍵(Ks)231と、初期ベクトル(IV)232に基づいて、擬似乱数生成用初期データを生成して擬似乱数生成部212に出力する。
擬似乱数生成部212は、鍵スケジュール部211から入力する擬似乱数生成用初期データを適用して擬似乱数234を生成して出力する。擬似乱数234は、図に示すZa1,Za2,・・・のデータシーケンスであり、例えば、Zaiの各々が1バイト(8ビット)の擬似乱数シーケンス:Za1,Za2,・・・を生成して排他的論理和(XOR)演算部222に出力する。
線形フィードバックシフトレジスタ(LFSR)221を構成するレジスタに、第1秘密鍵(Ks)231の構成ビットがセットされる。この第1秘密鍵(Ks)のセット状態をLFSRの初期状態とする。
その後、線形フィードバックシフトレジスタ(LFSR)221は、規定のシフト動作を順次、実行して、LFSR出力235を生成して出力する。
LFSR出力235は、図に示すO1,O2,・・・のデータシーケンスであり、例えば、Oiの各々が1バイト(8ビット)のLFSR出力シーケンス:O1,O2,・・・を生成して排他的論理和(XOR)演算部222に出力する。
線形フィードバックシフトレジスタ(LFSR)221の具体例として図6、図7を参照して2つの例を説明したが、暗号処理に用いたLFSRと復号処理に用いるLFSRは同一構成とする。
図10に示すキーストリーム生成部210の構成を、図9を参照して説明したキーストリーム生成部110の構成と同一とし、入力する各データ、すなわち、第1秘密鍵(Ks)、初期ベクトル(IV)を同一とすることで、いずれにおいても同一のキーストリームZb1,Zb2,Zb3・・が生成される。
(a)第1秘密鍵(Ks)231に基づいて、鍵スケジュール部211、擬似乱数生成部212の処理によって生成された擬似乱数:Za1,Za2,Za3・・・
(b)第1秘密鍵(Ks)231に基づいて、線形フィードバックシフトレジスタ(LFSR)221から出力されるLFSR出力:O1,O2,O3・・・
排他的論理和(XOR)演算部222では、これら2つのデータ、すなわち、
擬似乱数:Za1,Za2,Za3・・・
LFSR出力:O1,O2,O3・・・
これらのデータの排他的論理和(XOR)演算を実行して、キーストリームZb1,Zb2,Zb3・・・を生成して出力する。
キーストリームZb1,Zb2,Zb3・・・は、以下の算出式によって生成される。
Zb1=Za1(+)O1、
Zb2=Za2(+)O2、
Zb3=Za3(+)O3、
・・・
なお、上記式において、(+)は排他的論理和演算(XOR)を意味する。
このように、キーストリーム生成部210の排他的論理和(XOR)演算部222は、各々が所定長のデータからなるデータ列:Zb1,Zb2,Zb3,・・・をキーストリームとして順次、出力する。
この排他的論理和演算結果として算出するデータ列:P1,P2,P3・・・が、復号結果としての平文142となる。
P1=C1(+)Zb1
P2=C2(+)Zb2
P3=C3(+)Zb3
・・・
なお、上記式において(+)は、排他的論理和演算を意味する。
また、平文の構成要素Pi、キーストリームの構成要素Zbi、暗号文構成要素Ci、これらの各構成要素は、いずれも同一ビット数、例えば1バイト(8ビット)のデータである。
(Sb1)秘密のパラメータである第1秘密鍵(Ks)と、公開パラメータである初期ベクトル(IV:Initial Vector)から、擬似乱数系列Za1,Za2,Za3・・・を生成する。
(Sb2)秘密のパラメータである第1秘密鍵(Ks)から、LFSR出力系列O1,O2,O3・・・を生成する。
(Sb3)擬似乱数系列Za1,Za2,Za3・・・と、LFSR出力系列O1,O2,O3・・・との排他的論理和(XOR)により、キーストリームZb1,Zb2,Zb3・・・を生成する。
(Sb4)暗号文C1,C2,C3・・・と、生成したキーストリームZb1,Zb2,Zb3・・・の排他的論理和をとることにより、平文の構成データP1,P2,P3・・・を生成する。
例えば、図9に示す擬似乱数生成部112の出力する擬似乱数Za1,Za2,・・・に偏りがあった場合においても、偏りのあるこれらの擬似乱数Za1,Za2,・・・に対して、0、1の出現頻度が均一なLFSRの出力O1,O2・・・を、排他的論理和(XOR)演算を施して新たなキーストリームZb1,Zb2,・・・を生成することで、偏りを取り除くことができる。
この処理によって、先に図4を参照して説明したブロードキャスト・セッティングを利用した平文回復攻撃を防ぐことができる。
本実施例2において用いる線形フィードバックシフトレジスタ(LFSR)はレジスタと排他的論理和(XOR)演算処理構成のみで実装可能であり、H/W(ハードウェア)で構成した場合の実装コストが小さい。そのため、既存のシステムに付加しても大きなコストアップにならない。また。S/W(ソフトウェア)実装とした場合においても高速処理が可能である。また、新たな鍵も必要なく、LFSRを追加するのみでよいので、実装コストを最小限に抑えることが可能である。
この128ビットキーRC4に本実施例2を適用する場合、秘密鍵(Ks)のサイズを128ビットとし、LFSRのレジスタ数(セット可能なビット数)のサイズは128ビット、周期は最大周期2128−1となるようにLFSRを選択する。
具体的には、LFSRは、先に図6を参照して説明した構成とし、LFSRの出力系列を決める特性多項式は、以下の128次の原始多項式とする。
f(x)=X128(+)X126(+)X101(+)X99(+)1
次に、実施例3として、線形フィードバックシフトレジスタ(LFSR)に、鍵スケジュール部に入力する秘密鍵(Ks)と同じ秘密鍵(Ks)を変換したデータ(Ks2)を入力して、LFSRの初期状態を設定する実施例について説明する。
すなわち、秘密鍵(Ks)に基づいて鍵スケジュール部と擬似乱数生成部の処理によって生成した擬似乱数と、同じ秘密鍵(Ks)の変換データ(Ks2)に基づくLFSRからの出力とを排他的論理和(XOR)したデータをキーストリームとする実施例である。
図11に示すキーストリーム生成部510は、先に実施例1の構成として説明した図5に示すキーストリーム生成部110に、鍵変換部521を追加した構成を持つ。
さらに、図1に示す構成との差異は、図11に示すキーストリーム生成部510の線形フィードバックシフトレジスタ(LFSR)522の前段に追加した鍵変換部521に第1秘密鍵(Ks)を入力している点である。
鍵スケジュール部511は、第1秘密鍵(Ks)531と、初期ベクトル(IV)532に基づいて、擬似乱数生成用初期データを生成して擬似乱数生成部512に出力する。
擬似乱数生成部512は、鍵スケジュール部511から入力する擬似乱数生成用初期データを適用して擬似乱数534を生成して出力する。擬似乱数534は、図に示すZa1,Za2,・・・のデータシーケンスであり、例えば、Zaiの各々が1バイト(8ビット)の擬似乱数シーケンス:Za1,Za2,・・・を生成して排他的論理和(XOR)演算部523に出力する。
鍵変換部521の具体的な一構成例を図12に示す。
鍵変換部521は、図12に示すように、ハッシュ関数(SHA−1)実行部551、ビット数調整部552を有する。
ビット数調整部552は、ハッシュ関数実行部551からの入力に対して、ビット数調整処理を実行し、ビット数調整後の鍵変換データを線形フィードバックシフトレジスタ(LFSR)522に入力する。
ビット数調整部552は、ハッシュ関数実行部551から入力する160ビットデータに対して、ビット数調整処理を実行し、128ビットの変換鍵データ(Ks2)を生成して線形フィードバックシフトレジスタ(LFSR)522に入力する。
なお、図12に示す鍵変換部521の構成は一例であり、鍵データ変換部521は、この他の構成を適用して、入力鍵データを変換する構成としてもよい。
線形フィードバックシフトレジスタ(LFSR)522を構成するレジスタに、第1秘密鍵(Ks)531に基づいて生成された変換鍵データ(Ks2)の構成ビットがセットされる。この変換鍵データ(Ks2)のセット状態をLFSRの初期状態とする。
その後、線形フィードバックシフトレジスタ(LFSR)522は、規定のシフト動作を順次、実行して、LFSR出力535を生成して出力する。
LFSR出力535は、図に示すO1,O2,・・・のデータシーケンスであり、例えば、Oiの各々が1バイト(8ビット)のLFSR出力シーケンス:O1,O2,・・・を生成して排他的論理和(XOR)演算部523に出力する。
具体的には、例えば、先に図6、図7を参照して説明した構成を持つ。
(a)第1秘密鍵(Ks)531に基づいて、鍵スケジュール部511、擬似乱数生成部512の処理によって生成された擬似乱数:Za1,Za2,Za3・・・
(b)第1秘密鍵(Ks)531に基づく変換鍵データ(Ks2)に基づいて、線形フィードバックシフトレジスタ(LFSR)522から出力されるLFSR出力:O1,O2,O3・・・
排他的論理和(XOR)演算部523では、これら2つのデータ、すなわち、
擬似乱数:Za1,Za2,Za3・・・
LFSR出力:O1,O2,O3・・・
これらのデータの排他的論理和(XOR)演算を実行して、キーストリームZb1,Zb2,Zb3・・・を生成して出力する。
キーストリームZb1,Zb2,Zb3・・・は、以下の算出式によって生成される。
Zb1=Za1(+)O1、
Zb2=Za2(+)O2、
Zb3=Za3(+)O3、
・・・
なお、上記式において、(+)は排他的論理和演算(XOR)を意味する。
このように、キーストリーム生成部510の排他的論理和(XOR)演算部523は、各々が所定長のデータからなるデータ列:Zb1,Zb2,Zb3,・・・をキーストリームとして順次、出力する。
この排他的論理和演算結果として算出するデータ列:C1,C2,C3・・・を、暗号文542として出力する。
C1=P1(+)Zb1
C2=P2(+)Zb2
C3=P3(+)Zb3
・・・
なお、上記式において(+)は、排他的論理和演算を意味する。
また、平文の構成要素Pi、キーストリームの構成要素Zbi、暗号文構成要素Ci、これらの各構成要素は、いずれも同一ビット数、例えば1バイト(8ビット)のデータである。
(Sa1)秘密のパラメータである第1秘密鍵(Ks)と、公開パラメータである初期ベクトル(IV:Initial Vector)から、擬似乱数系列Za1,Za2,Za3・・・を生成する。
(Sa2)秘密のパラメータである第1秘密鍵(Ks)の変換処理を実行して変換鍵データ(Ks2)を生成し、変換鍵データ(Ks2)から、LFSR出力系列O1,O2,O3・・・を生成する。
(Sa3)擬似乱数系列Za1,Za2,Za3・・・と、LFSR出力系列O1,O2,O3・・・との排他的論理和(XOR)により、キーストリームZb1,Zb2,Zb3・・・を生成する。
(Sa4)平文の構成データP1,P2,P3・・・と、生成したキーストリームZb1,Zb2,Zb3・・・の排他的論理和をとることにより、暗号文C1,C2,C3・・・を生成する。
図13は、本実施例3に従った復号処理について説明する図である。
本実施例3のストリーム暗号に従った暗号処理と復号処理は、同一の装置構成を用いて実現される。
第1秘密鍵(Ks)631は、秘密情報であり、公開されたデータではない。特定のユーザ間、例えば暗号文生成ユーザと、暗号文を復号するユーザ間で共有される秘密情報である。
一方、初期ベクトル(IV)632は、公開データであり、不特定多数のユーザが知ることができるデータである。
復号対象とする暗号文542が、図11に示す構成によって生成された暗号文542である場合、初期ベクトル(IV)632も、図11に示す暗号処理において適用した初期ベクトル(IV)532と同一のデータである。
鍵スケジュール部611は、第1秘密鍵(Ks)631と、初期ベクトル(IV)632に基づいて、擬似乱数生成用初期データを生成して擬似乱数生成部612に出力する。
擬似乱数生成部612は、鍵スケジュール部611から入力する擬似乱数生成用初期データを適用して擬似乱数634を生成して出力する。擬似乱数634は、図に示すZa1,Za2,・・・のデータシーケンスであり、例えば、Zaiの各々が1バイト(8ビット)の擬似乱数シーケンス:Za1,Za2,・・・を生成して排他的論理和(XOR)演算部623に出力する。
鍵変換部621は、図11の構成における鍵変換部521と同一の構成を持つ。すなわち、例えば図12に示すように、ハッシュ関数(SHA−1)実行部551、ビット数調整部552によって構成される。
鍵データ変換部621が、第1秘密鍵(Ks)631に基づいて生成した変換鍵データ(Ks2)は、線形フィードバックシフトレジスタ(LFSR)622に入力される。
その後、線形フィードバックシフトレジスタ(LFSR)622は、規定のシフト動作を順次、実行して、LFSR出力635を生成して出力する。
LFSR出力635は、図に示すO1,O2,・・・のデータシーケンスであり、例えば、Oiの各々が1バイト(8ビット)のLFSR出力シーケンス:O1,O2,・・・を生成して排他的論理和(XOR)演算部623に出力する。
線形フィードバックシフトレジスタ(LFSR)622は、例えば、先に具体例として説明した図6、図7に示す構成を持つ。なお、暗号処理に用いたLFSRと復号処理に用いるLFSRは同一構成とする。
図13に示すキーストリーム生成部610の構成を、図11を参照して説明したキーストリーム生成部510の構成と同一とし、入力する各データ、すなわち、第1秘密鍵(Ks)、初期ベクトル(IV)を同一とすることで、いずれにおいても同一のキーストリームZb1,Zb2,Zb3・・が生成される。
(a)第1秘密鍵(Ks)631に基づいて、鍵スケジュール部611、擬似乱数生成部612の処理によって生成された擬似乱数:Za1,Za2,Za3・・・
(b)第1秘密鍵(Ks)631に基づく変換鍵データ(Ks2)に基づいて、線形フィードバックシフトレジスタ(LFSR)622から出力されるLFSR出力:O1,O2,O3・・・
排他的論理和(XOR)演算部623では、これら2つのデータ、すなわち、
擬似乱数:Za1,Za2,Za3・・・
LFSR出力:O1,O2,O3・・・
これらのデータの排他的論理和(XOR)演算を実行して、キーストリームZb1,Zb2,Zb3・・・を生成して出力する。
キーストリームZb1,Zb2,Zb3・・・は、以下の算出式によって生成される。
Zb1=Za1(+)O1、
Zb2=Za2(+)O2、
Zb3=Za3(+)O3、
・・・
なお、上記式において、(+)は排他的論理和演算(XOR)を意味する。
このように、キーストリーム生成部610の排他的論理和(XOR)演算部623は、各々が所定長のデータからなるデータ列:Zb1,Zb2,Zb3,・・・をキーストリームとして順次、出力する。
この排他的論理和演算結果として算出するデータ列:P1,P2,P3・・・が、復号結果としての平文541となる。
P1=C1(+)Zb1
P2=C2(+)Zb2
P3=C3(+)Zb3
・・・
なお、上記式において(+)は、排他的論理和演算を意味する。
また、平文の構成要素Pi、キーストリームの構成要素Zbi、暗号文構成要素Ci、これらの各構成要素は、いずれも同一ビット数、例えば1バイト(8ビット)のデータである。
(Sb1)秘密のパラメータである第1秘密鍵(Ks)と、公開パラメータである初期ベクトル(IV:Initial Vector)から、擬似乱数系列Za1,Za2,Za3・・・を生成する。
(Sb2)秘密のパラメータである第1秘密鍵(Ks)に基づいて生成される変換鍵データ(Ks2)から、LFSR出力系列O1,O2,O3・・・を生成する。
(Sb3)擬似乱数系列Za1,Za2,Za3・・・と、LFSR出力系列O1,O2,O3・・・との排他的論理和(XOR)により、キーストリームZb1,Zb2,Zb3・・・を生成する。
(Sb4)暗号文C1,C2,C3・・・と、生成したキーストリームZb1,Zb2,Zb3・・・の排他的論理和をとることにより、平文の構成データP1,P2,P3・・・を生成する。
例えば、図11に示す擬似乱数生成部512の出力する擬似乱数Za1,Za2,・・・に偏りがあった場合においても、偏りのあるこれらの擬似乱数Za1,Za2,・・・に対して、0、1の出現頻度が均一なLFSRの出力O1,O2・・・を、排他的論理和(XOR)演算を施して新たなキーストリームZb1,Zb2,・・・を生成することで、偏りを取り除くことができる。
この処理によって、先に図4を参照して説明したブロードキャスト・セッティング時の平文回復攻撃を防ぐことができる。
また、暗号文等からLFSRの出力推定には、キーストリーム生成部内部の排他的論理和処理以前の擬似乱数系列の推定も必要となり、この推定は極めて困難である。
本実施例3において用いる線形フィードバックシフトレジスタ(LFSR)はレジスタと排他的論理和(XOR)演算処理構成のみで実装可能であり、H/W(ハードウェア)で構成した場合の実装コストが小さい。そのため、既存のシステムに付加しても大きなコストアップにならない。また。S/W(ソフトウェア)実装とした場合においても高速処理が可能である。また、新たな鍵も必要なく、LFSRを追加するのみでよいので、実装コストを最小限に抑えることが可能である。
この128ビットキーRC4に本実施例3を適用する場合、秘密鍵(Ks)のサイズを128ビットとし、LFSRのレジスタ数(セット可能なビット数)のサイズは128ビット、その周期は最大周期2128−1となるようにLFSRを選択する。
具体的には、LFSRは、先に図6を参照して説明した構成とし、LFSRの出力系列の特性を決める特性多項式は、以下の128次の原始多項式とする。
f(x)=X128(+)X126(+)X101(+)X99(+)1
最後に、上述した実施例に従った暗号処理を実行する暗号処理装置の構成例について説明する。
上述した実施例に従った暗号処理を実行する暗号処理装置は、暗号処理を実行する様々な情報処理装置に搭載可能である。具体的には、PC、TV、レコーダ、プレーヤ、通信機器、さらに、RFID、スマートカード、センサネットワーク機器、デンチ/バッテリー認証モジュール、健康・医療機器、自立型ネットワーク機器等、例えばデータ処理や通信処理に伴う暗号処理を実行する様々な機器において利用可能である。
暗号化処理、復号処理、双方の処理において、上述した実施例において説明した構成を適用することが可能である。
暗号化処理、復号処理、双方の処理において、上述した実施例において説明した構成を適用することが可能である。
また、図15に示すスマートフォン900に図14に示すICモジュール800を搭載し、上述した実施例に従った暗号処理をICモジュール800において実行する構成としてもよい。
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
(1) 暗号鍵データからなるデータストリームであるキーストリームを生成するキーストリーム生成部と、
前記キーストリームを構成する暗号鍵データと、暗号処理対象データとの演算処理を実行する演算部を有し、
前記キーストリーム生成部は、
第1の秘密鍵に基づいて擬似乱数を生成する擬似乱数生成部と、
第2の秘密鍵に基づいてLFSR出力データを生成する線形フィードバックレジスタ(LFSR)と、
前記擬似乱数生成部の生成した疑似乱数と、前記LFSR出力データとの排他的論理和演算処理を実行する排他的論理和演算部を有し、
前記排他的論理和演算部の出力をキーストリームとして出力する暗号処理装置。
前記鍵変換部は、前記第1の秘密鍵を入力して該第1の秘密鍵と異なる第2の秘密鍵を生成して前記線形フィードバックレジスタ(LFSR)に入力する(1)に記載の暗号処理装置。
一方向性ハッシュ関数を適用したデータ変換を実行する(5)に記載の暗号処理装置。
前記線形フィードバックレジスタ(LFSR)は、1バイト単位のLFSR出力を生成し、
前記排他的論理和演算部は、1バイト単位の擬似乱数と、1バイト単位のLFSR出力との排他的論理和演算を実行して、1バイト単位の暗号鍵データからなるキーストリームを生成する(1〜(6)いずれかに記載の暗号処理装置。
f(x)=X128(+)X126(+)X101(+)X99(+)1
上記の128次の原始多項式によって規定される構成である(1)〜(7)いずれかに記載の暗号処理装置。
f(x)=X64(+)X63(+)X61(+)X60(+)1
上記の64次の原始多項式によって規定される構成である(1)〜(7)いずれかに記載の暗号処理装置。
前記第1の秘密鍵を入力して、擬似乱数生成用初期データを生成する鍵スケジュール部と、
前記鍵スケジュール部の生成した疑似乱数生成用初期データを入力して擬似乱数を出力する擬似乱数生成部を有する構成である(1)〜(9)いずれかに記載の暗号処理装置。
前記キーストリームを構成する復号鍵データと、復号処理対象データとの演算処理を実行する演算部を有し、
前記キーストリーム生成部は、
第1の秘密鍵に基づいて擬似乱数を生成する擬似乱数生成部と、
第2の秘密鍵に基づいてLFSR出力データを生成する線形フィードバックレジスタ(LFSR)と、
前記擬似乱数生成部の生成した疑似乱数と、前記LFSR出力データとの排他的論理和演算処理を実行する排他的論理和演算部を有し、
前記排他的論理和演算部の出力をキーストリームとして出力する復号処理装置。
キーストリーム生成部が、暗号鍵データからなるデータストリームであるキーストリームを生成するキーストリーム生成ステップと、
演算部が、前記キーストリームを構成する暗号鍵データと、暗号処理対象データとの演算処理を実行する演算ステップを実行し、
前記キーストリーム生成ステップは、
擬似乱数生成部が、第1の秘密鍵に基づいて擬似乱数を生成する擬似乱数生成ステップと、
線形フィードバックレジスタ(LFSR)が、第2の秘密鍵に基づいてLFSR出力データを生成するLFSR出力データ生成ステップと、
排他的論理和演算部が、前記擬似乱数生成部の生成した疑似乱数と、前記LFSR出力データとの排他的論理和演算処理を実行する排他的論理和演算ステップを有し、
前記排他的論理和演算部の出力をキーストリームとして出力する暗号処理方法。
キーストリーム生成部に、暗号鍵データからなるデータストリームであるキーストリームを生成させるキーストリーム生成ステップと、
演算部に、前記キーストリームを構成する暗号鍵データと、暗号処理対象データとの演算処理を実行させる演算ステップを実行させ、
前記プログラムは、前記キーストリーム生成ステップにおいて、
擬似乱数生成部に、第1の秘密鍵に基づいて擬似乱数を生成させる擬似乱数生成ステップと、
線形フィードバックレジスタ(LFSR)に、第2の秘密鍵に基づいてLFSR出力データを生成させるLFSR出力データ生成ステップと、
排他的論理和演算部に、前記擬似乱数生成部の生成した疑似乱数と、前記LFSR出力データとの排他的論理和演算処理を実行させる排他的論理和演算ステップを実行させ、
前記排他的論理和演算部の出力をキーストリームとして出力させるプログラム。
具体的には、暗号鍵データからなるデータストリームであるキーストリームを生成するキーストリーム生成部と、キーストリームを構成する暗号鍵データと、暗号処理対象データとの演算処理を実行する演算部を有し、キーストリーム生成部は、第1の秘密鍵に基づいて擬似乱数を生成する擬似乱数生成部と、第2の秘密鍵に基づいてLFSR出力データを生成する線形フィードバックレジスタ(LFSR)と、擬似乱数生成部の生成した疑似乱数と、LFSR出力データとの排他的論理和演算処理を実行する排他的論理和演算部を有し、排他的論理和演算部の出力をキーストリームとして出力する。
本構成により、安全性を向上させたストリーム暗号を実行する装置、方法が実現される。
12 初期ベクトル
13 キーストリーム(擬似乱数)
21 平文
22 暗号文
50 キーストリーム生成部
51 鍵スケジュール部
52 擬似乱数生成部
53 排他的論理和(XOR)演算部
41 秘密鍵
42 初期ベクトル
43 キーストリーム(擬似乱数)
70 キーストリーム生成部
71 鍵スケジュール部
72 擬似乱数生成部
73 排他的論理和(XOR)演算部
110 キーストリーム生成部
111 鍵スケジュール部
112 擬似乱数生成部
121 線形フィードバックシフトレジスタ(LFSR)
122 排他的論理和(XOR)演算部
131 第1秘密鍵(Ks)
132 初期ベクトル
133 第2秘密鍵(KL)
134 出力擬似乱数
135 LFSR出力
136 キーストリーム(擬似乱数)
141 平文
142 暗号文
210 キーストリーム生成部
211 鍵スケジュール部
212 擬似乱数生成部
221 線形フィードバックシフトレジスタ(LFSR)
222 排他的論理和(XOR)演算部
231 第1秘密鍵(Ks)
232 初期ベクトル
233 第2秘密鍵(KL)
234 出力擬似乱数
235 LFSR出力
236 キーストリーム(擬似乱数)
510 キーストリーム生成部
511 鍵スケジュール部
512 擬似乱数生成部
521 鍵変換部
522 線形フィードバックシフトレジスタ(LFSR)
523 排他的論理和(XOR)演算部
531 第1秘密鍵(Ks)
532 初期ベクトル
534 出力擬似乱数
535 LFSR出力
536 キーストリーム(擬似乱数)
541 平文
542 暗号文
551 ハッシュ関数実行部
552 ビット数調整部
610 キーストリーム生成部
611 鍵スケジュール部
612 擬似乱数生成部
621 鍵変換部
622 線形フィードバックシフトレジスタ(LFSR)
623 排他的論理和(XOR)演算部
631 第1秘密鍵(Ks)
632 初期ベクトル
634 出力擬似乱数
635 LFSR出力
636 キーストリーム(擬似乱数)
800 ICモジュール
801 CPU(Central processing Unit)
802 メモリ
803 暗号処理部
804 乱数生成部
805 送受信部
900 スマートフォン
901 プロセッサ
902 メモリ
903 ストレージ
904 外部接続インタフェース
906 カメラ
907 センサ
908 マイクロフォン
909 入力デバイス
910 表示デバイス
911 スピーカ
913 無線通信インタフェース
914 アンテナスイッチ
915 アンテナ
917 バス
918 バッテリー
919 補助コントローラ
Claims (13)
- 暗号鍵データからなるデータストリームであるキーストリームを生成するキーストリーム生成部と、
前記キーストリームを構成する暗号鍵データと、暗号処理対象データとの演算処理を実行する演算部を有し、
前記キーストリーム生成部は、
第1の秘密鍵に基づいて擬似乱数を生成する擬似乱数生成部と、
第2の秘密鍵に基づいてLFSR出力データを生成する線形フィードバックレジスタ(LFSR)と、
前記擬似乱数生成部の生成した疑似乱数と、前記LFSR出力データとの排他的論理和演算処理を実行する排他的論理和演算部を有し、
前記排他的論理和演算部の出力をキーストリームとして出力する暗号処理装置。 - 前記第1の秘密鍵と前記第2の秘密鍵は、異なる秘密鍵である請求項1に記載の暗号処理装置。
- 前記第1の秘密鍵と前記第2の秘密鍵は、同一の秘密鍵である請求項1に記載の暗号処理装置。
- 前記第2の秘密鍵は、前記第1の秘密鍵に基づくデータ変換処理によって生成された鍵である請求項1に記載の暗号処理装置。
- 前記キーストリーム生成部は、鍵変換部を有し、
前記鍵変換部は、前記第1の秘密鍵を入力して該第1の秘密鍵と異なる第2の秘密鍵を生成して前記線形フィードバックレジスタ(LFSR)に入力する請求項1に記載の暗号処理装置。 - 前記鍵変換部は、
一方向性ハッシュ関数を適用したデータ変換を実行する請求項5に記載の暗号処理装置。 - 前記擬似乱数生成部は、1バイト単位の擬似乱数を生成し、
前記線形フィードバックレジスタ(LFSR)は、1バイト単位のLFSR出力を生成し、
前記排他的論理和演算部は、1バイト単位の擬似乱数と、1バイト単位のLFSR出力との排他的論理和演算を実行して、1バイト単位の暗号鍵データからなるキーストリームを生成する請求項1に記載の暗号処理装置。 - 前記線形フィードバックレジスタ(LFSR)は、特性多項式が、
f(x)=X128(+)X126(+)X101(+)X99(+)1
上記の128次の原始多項式によって規定される構成である請求項1に記載の暗号処理装置。 - 前記線形フィードバックレジスタ(LFSR)は、特性多項式が、
f(x)=X64(+)X63(+)X61(+)X60(+)1
上記の64次の原始多項式によって規定される構成である請求項1に記載の暗号処理装置。 - 前記キーストリーム生成部は、
前記第1の秘密鍵を入力して、擬似乱数生成用初期データを生成する鍵スケジュール部と、
前記鍵スケジュール部の生成した疑似乱数生成用初期データを入力して擬似乱数を出力する擬似乱数生成部を有する構成である請求項1に記載の暗号処理装置。 - 復号鍵データからなるデータストリームであるキーストリームを生成するキーストリーム生成部と、
前記キーストリームを構成する復号鍵データと、復号処理対象データとの演算処理を実行する演算部を有し、
前記キーストリーム生成部は、
第1の秘密鍵に基づいて擬似乱数を生成する擬似乱数生成部と、
第2の秘密鍵に基づいてLFSR出力データを生成する線形フィードバックレジスタ(LFSR)と、
前記擬似乱数生成部の生成した疑似乱数と、前記LFSR出力データとの排他的論理和演算処理を実行する排他的論理和演算部を有し、
前記排他的論理和演算部の出力をキーストリームとして出力する復号処理装置。 - 暗号処理装置において実行する暗号処理方法であり、
キーストリーム生成部が、暗号鍵データからなるデータストリームであるキーストリームを生成するキーストリーム生成ステップと、
演算部が、前記キーストリームを構成する暗号鍵データと、暗号処理対象データとの演算処理を実行する演算ステップを実行し、
前記キーストリーム生成ステップは、
擬似乱数生成部が、第1の秘密鍵に基づいて擬似乱数を生成する擬似乱数生成ステップと、
線形フィードバックレジスタ(LFSR)が、第2の秘密鍵に基づいてLFSR出力データを生成するLFSR出力データ生成ステップと、
排他的論理和演算部が、前記擬似乱数生成部の生成した疑似乱数と、前記LFSR出力データとの排他的論理和演算処理を実行する排他的論理和演算ステップを有し、
前記排他的論理和演算部の出力をキーストリームとして出力する暗号処理方法。 - 暗号処理装置において暗号処理を実行させるプログラムであり、
キーストリーム生成部に、暗号鍵データからなるデータストリームであるキーストリームを生成させるキーストリーム生成ステップと、
演算部に、前記キーストリームを構成する暗号鍵データと、暗号処理対象データとの演算処理を実行させる演算ステップを実行させ、
前記プログラムは、前記キーストリーム生成ステップにおいて、
擬似乱数生成部に、第1の秘密鍵に基づいて擬似乱数を生成させる擬似乱数生成ステップと、
線形フィードバックレジスタ(LFSR)に、第2の秘密鍵に基づいてLFSR出力データを生成させるLFSR出力データ生成ステップと、
排他的論理和演算部に、前記擬似乱数生成部の生成した疑似乱数と、前記LFSR出力データとの排他的論理和演算処理を実行させる排他的論理和演算ステップを実行させ、
前記排他的論理和演算部の出力をキーストリームとして出力させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014242332A JP6287785B2 (ja) | 2014-11-28 | 2014-11-28 | 暗号処理装置、および暗号処理方法、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014242332A JP6287785B2 (ja) | 2014-11-28 | 2014-11-28 | 暗号処理装置、および暗号処理方法、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016103799A true JP2016103799A (ja) | 2016-06-02 |
JP6287785B2 JP6287785B2 (ja) | 2018-03-07 |
Family
ID=56089240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014242332A Active JP6287785B2 (ja) | 2014-11-28 | 2014-11-28 | 暗号処理装置、および暗号処理方法、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6287785B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190021635A (ko) * | 2017-08-23 | 2019-03-06 | 다운정보통신(주) | 고속 스트림 암호 구현을 위한 병렬화 처리 방법 및 병렬화 시스템 |
CN110785960A (zh) * | 2017-06-27 | 2020-02-11 | 三菱电机株式会社 | 码生成装置、码生成方法和码生成程序 |
JP2020532177A (ja) * | 2017-08-23 | 2020-11-05 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | データの高度なセキュリティ、高速暗号化および、伝送のためのコンピュータ実装システムおよび方法 |
WO2023040410A1 (zh) * | 2021-09-16 | 2023-03-23 | 飞天诚信科技股份有限公司 | 工作密钥生成方法、装置及计算机可读存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11838402B2 (en) | 2019-03-13 | 2023-12-05 | The Research Foundation For The State University Of New York | Ultra low power core for lightweight encryption |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003173254A (ja) * | 2001-09-26 | 2003-06-20 | Toshiba Corp | 乱数生成回路 |
JP2005018251A (ja) * | 2003-06-24 | 2005-01-20 | Renesas Technology Corp | 乱数発生装置 |
JP2006039998A (ja) * | 2004-07-28 | 2006-02-09 | Victor Co Of Japan Ltd | 乱数発生回路 |
US20080263116A1 (en) * | 2007-04-17 | 2008-10-23 | Mosaid Technologies Corporation | Balanced pseudo-random binary sequence generator |
JP2010181789A (ja) * | 2009-02-09 | 2010-08-19 | Mitsubishi Electric Corp | 情報処理装置及び情報処理方法及びプログラム |
JP2012100078A (ja) * | 2010-11-02 | 2012-05-24 | Kddi Corp | ストリーム暗号の暗号化装置、ストリーム暗号の暗号化方法およびプログラム |
-
2014
- 2014-11-28 JP JP2014242332A patent/JP6287785B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003173254A (ja) * | 2001-09-26 | 2003-06-20 | Toshiba Corp | 乱数生成回路 |
JP2005018251A (ja) * | 2003-06-24 | 2005-01-20 | Renesas Technology Corp | 乱数発生装置 |
JP2006039998A (ja) * | 2004-07-28 | 2006-02-09 | Victor Co Of Japan Ltd | 乱数発生回路 |
US20080263116A1 (en) * | 2007-04-17 | 2008-10-23 | Mosaid Technologies Corporation | Balanced pseudo-random binary sequence generator |
JP2010181789A (ja) * | 2009-02-09 | 2010-08-19 | Mitsubishi Electric Corp | 情報処理装置及び情報処理方法及びプログラム |
JP2012100078A (ja) * | 2010-11-02 | 2012-05-24 | Kddi Corp | ストリーム暗号の暗号化装置、ストリーム暗号の暗号化方法およびプログラム |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110785960A (zh) * | 2017-06-27 | 2020-02-11 | 三菱电机株式会社 | 码生成装置、码生成方法和码生成程序 |
CN110785960B (zh) * | 2017-06-27 | 2023-06-20 | 三菱电机株式会社 | 码生成装置、码生成方法和计算机能读取的存储介质 |
KR20190021635A (ko) * | 2017-08-23 | 2019-03-06 | 다운정보통신(주) | 고속 스트림 암호 구현을 위한 병렬화 처리 방법 및 병렬화 시스템 |
KR101975800B1 (ko) | 2017-08-23 | 2019-05-08 | 다운정보통신(주) | 고속 스트림 암호 구현을 위한 병렬화 처리 방법 및 병렬화 시스템 |
JP2020532177A (ja) * | 2017-08-23 | 2020-11-05 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | データの高度なセキュリティ、高速暗号化および、伝送のためのコンピュータ実装システムおよび方法 |
WO2023040410A1 (zh) * | 2021-09-16 | 2023-03-23 | 飞天诚信科技股份有限公司 | 工作密钥生成方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP6287785B2 (ja) | 2018-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9819657B2 (en) | Protection of memory interface | |
US10187200B1 (en) | System and method for generating a multi-stage key for use in cryptographic operations | |
US10887080B2 (en) | Double-hashing operation mode for encryption | |
JP6406350B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP6287785B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
US20180205536A1 (en) | Stream cipher system | |
JP5481455B2 (ja) | 暗号処理装置 | |
JP2017504838A (ja) | 暗号アルゴリズムに対するサイドチャネル攻撃への対抗策 | |
JP2009506438A (ja) | 暗号的に安全な擬似乱数生成器 | |
JP2014509812A (ja) | チップ製造中に一意の鍵を確立すること | |
US20120314857A1 (en) | Block encryption device, block decryption device, block encryption method, block decryption method and program | |
JPWO2006100801A1 (ja) | キーストリーム暗号化装置および方法ならびにプログラム | |
US20180054301A1 (en) | Method and device for data encryption | |
JPWO2008010441A1 (ja) | 暗号装置及びプログラムと方法 | |
JP2015191106A (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
Christina et al. | Optimized Blowfish encryption technique | |
Jassim et al. | A survey on stream ciphers for constrained environments | |
WO2015146430A1 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP6348273B2 (ja) | 情報処理システム | |
Subramanian et al. | Adaptive counter clock gated S-Box transformation based AES algorithm of low power consumption and dissipation in VLSI system design | |
US8718278B2 (en) | Method and system for encryption of a datastream | |
Buja et al. | The direction of lightweight ciphers in mobile big data computing | |
Landge et al. | VHDL based Blowfish implementation for secured embedded system design | |
JP2008276728A (ja) | 疑似乱数生成装置及びそれを用いた暗号化処理装置 | |
JP2005309148A (ja) | データ変換装置およびデータ変換方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170201 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170927 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171113 |
|
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: 20180109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180122 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6287785 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |