JP2003037482A - 疑似乱数生成装置またはそれを用いた暗号復号処理装置 - Google Patents

疑似乱数生成装置またはそれを用いた暗号復号処理装置

Info

Publication number
JP2003037482A
JP2003037482A JP2001274433A JP2001274433A JP2003037482A JP 2003037482 A JP2003037482 A JP 2003037482A JP 2001274433 A JP2001274433 A JP 2001274433A JP 2001274433 A JP2001274433 A JP 2001274433A JP 2003037482 A JP2003037482 A JP 2003037482A
Authority
JP
Japan
Prior art keywords
block
unit
buffer
state
random number
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
JP2001274433A
Other languages
English (en)
Other versions
JP3724399B2 (ja
Inventor
Masaru Watanabe
大 渡辺
Soichi Furuya
聡一 古屋
Kazuo Takaragi
和夫 宝木
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001274433A priority Critical patent/JP3724399B2/ja
Priority to DE60138357T priority patent/DE60138357D1/de
Priority to EP01310546A priority patent/EP1225507B1/en
Priority to US10/046,167 priority patent/US7224796B2/en
Priority to US10/124,577 priority patent/US7280659B2/en
Publication of JP2003037482A publication Critical patent/JP2003037482A/ja
Application granted granted Critical
Publication of JP3724399B2 publication Critical patent/JP3724399B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators

Abstract

(57)【要約】 【課題】ソフトウェアによる高速実行可能であり、か
つ、ハードウェアでの現実的な実装が可能な疑似乱数を
生成する装置を提供する。 【解決手段】疑似乱数生成装置が備えるバッファとステ
ートのうち、ステートについて、(i)データ処理の単位
長をnとしたとき、ステートの大きさが3×nビットであ
り、バッファ容量が32×nビットであり、(ii)クロック
制御により、時刻tから時刻t+1へのステートの状態変更
を行うためのステート変換部(ステート変換関数)が、(n
ビット入力、nビット出力)の非線形関数Fを2回、または
異なる二つの非線形関数F,Gを一回ずつ使う、という構
成を提供する。ステート変換部は、暗号学的安全性と実
装について十分に評価されたブロック暗号の段関数など
の非線形関数の採用が可能な構成を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、実用的な乱数列を
生成する技術とその応用技術に関する。
【0002】
【従来の技術】公開鍵暗号技術を利用した署名生成また
は、秘密通信を行う際の鍵の生成、ストリーム暗号(str
eam cipher)技術などにおいて、乱数の必要性は高い。
しかし、これらの場面において真性乱数を用いようとす
ることは非現実的であり,実際には疑似乱数生成方法ま
たはそれを用いた装置により生成される疑似乱数(以
下、単に乱数ともいう)が用いられる。
【0003】暗号での使用に関して疑似乱数に要求され
る条件として、予測不可能性や、乱数を決定するための
初期値を生成した乱数から導出できないこと、という安
全性に関する性質がある。さらに疑似乱数生成方法また
は生成装置が実用に耐えるためにはソフトウェア実装ま
たはハードウェア実装において高速な処理が求められ
る。さらに、ハードウェア実装する場合の必要ゲート数
や、ソフトウェア実装した場合のステップ数や実行時の
必要メモリ領域などが小さい、といった実装コストの面
からも効率的である必要がある。汎用的な暗号アルゴリ
ズムとして、これらの評価項目全てにおいて欠点のない
ものが好ましい。
【0004】
【発明が解決しようとする課題】現在知られているアル
ゴリズムは、性能または実装面でソフトウェア、ハード
ウェアいずれか一方に適したものが多い。たとえば、特
にソフトウェア実装に適したアルゴリズムは、ハードウ
ェア実装時のことが考慮されていないために回路規模が
大きくなる。
【0005】上記のようなソフトウェア処理に適したア
ルゴリズムは、たとえば、以下に開示されている。 文献1:Daemen, J., Clapp, C., “Fast Hashing and S
tream Encryption with PANAMA,” Fast Software Encr
yption, 5th International Workshop, Proceedings, L
NCS1372, 61-74, Springer-Verlag, 1998. 文献2:米国特許 5,454,039号。
【0006】ハードウェア処理に適したアルゴリズムを
用いたものの例としては、ハードウェア実装規模が小さ
く高速な処理も実現できる、線形フィードバックシフト
レジスタ(linear feedback shift register (LFSR))に
もとづいた疑似乱数生成装置があるが、ソフトウェア実
装した場合の処理速度が充分ではない。LFSRにもとづい
た疑似乱数生成装置は、たとえば、以下に開示されてい
る。 文献3:B. Schneier, "Applied Cryptography," John W
iley & Sons, Inc., 1996.pp. 369〜428。
【0007】ソフトウェア、ハードウェアいずれにおい
ても実用的な実装が可能な疑似乱数生成方法として、ブ
ロック暗号(block cipher)技術を利用したOFBモード(OF
B mode)、カウンタモード(counter mode)などが知られ
ているが、その乱数生成速度はブロック暗号の処理速度
と同じであり、一般に専用の疑似乱数生成装置に比べて
処理速度が充分ではない。ブロック暗号技術を利用した
技術については,文献3, pp. 203〜206に記載されてい
る。また、その処理速度は,文献2と以下に示す文献4に
記述される暗号の処理速度から評価することができる。
【0008】文献4:B. Schneier, D. Whiting, "Fast
Software Encryption: Designing Encryption Algorith
ms for Optimal Software Speed on the Intel Pentium
Processor," Fast Software Encryption, 4th Interna
tional Workshop, FSE'97, Haifa, Israel, January 19
97, Proceedings, Lecture Notes in Computer Science
Vol. 1267, Springer-Verlag, pp.242-259, 1998。
【0009】暗号技術の応用分野の広まりとともに、ハ
ードウェア、ソフトウェアいずれにおいても上記各条件
を満たす、実用になる自由度と柔軟性を備えた疑似乱数
生成技術が望まれている。また、より高い安全性を備え
た疑似乱数生成技術が望まれている。
【0010】
【課題を解決するための手段】本発明は、安全性が高
く、ソフトウェアでも高速処理が可能であり、かつ、ハ
ードウェアでも高速かつ回路規模の小さい実装が可能
な、疑似乱数生成方法または装置を提供する。本発明
は、また、上記疑似乱数生成技術を用いた暗号化装置ま
たは復号化装置を提供する。本発明は、その一態様にお
いて、上記文献1が開示するアルゴリズムを実行する疑
似乱数生成装置が備えるバッファ(大きなメモリ領域)と
ステート(より小さなメモリ領域)のうち、ステートにつ
いて、(i)データ処理の単位長をn(たとえば32、64、128、2
56ビット)としたとき、ステートの大きさが3以上(好ま
しくは3)×nビットであり、(ii)クロック制御により、
時刻tから時刻t+1へのステートの状態変更を行うための
ステート変換部(ステート変換関数)が、(nビット入力、
nビット出力)の非線形関数Fを2回、または異なる二つの
非線形関数F,Gを一回ずつ使うという構成を提供する。
【0011】他の態様によれば、本発明による疑似乱数
生成装置は、ステート記憶部と、バッファと、バッファ
の記憶内容とステート記憶部の記憶内容とを用いた変換
を行い変換結果を出力するステート変換部と、バッファ
の記憶内容とステート記憶部の記憶内容とを用いた変換
を行い変換結果を出力するバッファ変換部と、クロック
に応じて、ステート変換部出力を用いてステート記憶部
の内部状態を更新するステート記憶制御部と、クロック
に応じて、バッファ変換部出力を用いてバッファの内部
状態を更新するバッファ制御部と、を備え、ステート記
憶部は3ブロック(ただし1ブロックはnビットからなる)
の容量を備え、バッファは複数ブロックの容量を備え、
ステート変換部は、バッファの記憶内容とステート記憶
部の記憶内容とを用いる非線形変換部と、変換結果のう
ち1ブロックデータを部分乱数列として出力する出力部
と、を備える。また、上記構成は、記憶装置とプロセッ
サとを備えた計算機上にプログラムによって実現される
ものであってもよく、ステート記憶部とバッファ部は、
該プログラムの所定のステップにおいてその内部状態が
更新される。
【0012】また、ステート変換部は、第1の演算部と
第2の演算部とを備え、第1の演算部は、ステート記憶部
に記憶されている3つのブロックのうち、第1と第2の二
つのブロックと、バッファに記憶されているブロックを
入力として受け付ける入力部と、第1のブロックとバッ
ファに記憶されているブロックを非線形変換し、nビッ
トのデータを出力する第1の非線形変換部と、第1の非線
形変換部出力と第2のブロックとを入力とし論理演算す
る第3の演算部と、第1のブロックと第3の演算部による
演算結果を出力する出力部と、を備え、第2の演算部
は、第1の演算部のいずれかの出力とステート記憶部に
記憶されている第3のブロックと、バッファに記憶され
ているブロックを入力として受け付ける入力部と、第1
の演算部のいずれかの出力とバッファに記憶されている
ブロックを非線形変換し、nビットのデータを出力する
第2の非線形変換部と、第2の非線形変換部出力と第3の
ブロックとを入力とし論理演算する第4の演算部と、第1
の演算部のいずれかの出力と第4の演算部による演算結
果を出力する出力部と、を備える。さらに、上記ステー
ト変換部は、第3、第4の演算部の演算結果が、それぞれ
の演算部に入力されたブロックとは異なるブロックとし
て、ステート記憶部に記憶されるように転置する転置部
を備える。
【0013】上記構成は、ステートの大きさを3ブロッ
ク以上×nビットとすることにより、並列処理を可能と
している。さらに、ステートの大きさを3ブロック×nビ
ットとすることにより、ハードウェア実装時の回路規模
を小さくすることが可能になる。すなわち、上記構成
は、(a) 安全性の評価が簡単でありながら、より高い安
全性を保証でき、(b) ソフトウェア実装やハードウェア
実装において高速な、(c)必要メモリ領域やハードウェ
ア実装時のゲート数が少なく、実装コストが安い疑似乱
数装置の実現を可能とする。
【0014】
【発明の実施の形態】(用語の説明)疑似乱数生成装置(p
seudorandom number generator):乱数列(random numbe
rsequence )を決定するための初期値(initial value)を
与えて、疑似乱数列(pseudorandom number sequence)を
生成する装置。 疑似乱数(pseudorandom number):有限、もしくは無限
のビット列であり、どのような方法でも真正乱数と区別
することができないもの。 真正乱数:無限ビット列であり、任意の連続する部分列
が与えられても、次の1ビットを推定することができな
いような列のこと。 共通鍵暗号(symmetric-key encryption):暗号化処理と
復号化処理に同じ鍵を用いる暗号化技術。 鍵:暗号化処理の際に用いる秘匿パラメータ。 平文(plaintext):暗号化処理前、または復号化処理後
のデータであり、ディジタル化されたマルチメディアデ
ータも含まれる。 暗号文:暗号化処理されたデータ。 ブロック暗号:入力データを一定長のデータごとに区切
り(区切られた一定長データをブロックという)、鍵と共
に攪拌処理を行うことで暗号化処理(encryption)または
復号化処理(decryption)を行う暗号技術。 ストリーム暗号:疑似乱数生成装置に乱数列を決定する
情報を与えて乱数列を生成し、この乱数列と平文を攪拌
することで暗号文を生成する暗号技術。 非線形変換:状態遷移関数のうち、線形変換でないも
の。 Sボックス(S箱):3〜10ビット程度の置換表。高い非線
形性と攪拌性を伴った変換を表参照で行えるうえ、簡単
な構成による実現が可能であることから、暗号の実装に
多く用いられる。 最大分離距離符号(MDS)行列:線形変換であって、入出
力データの非0となる元の個数の和の最小値(分岐数)が
最大となる行列。n×nのMDS行列は分岐数がn+1であるこ
とが知られている。
【0015】(実施例)本発明の実施形態を図を用いて説
明する。各図の説明に用いている記号「XOR」はビット
ごとの排他的論理和(exclusive or)を表す。図2に示す
ように、本実施例の乱数生成装置(200)は、1ブロックを
64ビットとしたとき64ビット×3ブロックの記憶領域を
備えるステート記憶部(以下、ステートという)(201)お
よび、64ビット×32ブロックの記憶領域を備えるバッフ
ァ(202)、ステート(201)の内部状態を更新するステート
変換部(203)、バッファの内容を更新するバッファ変換
部(204)、バッファ入力を切り替えるスイッチ(207)とそ
れを制御する制御部(214)で構成される。ディジタル回
路またはプログラム構成上、32の倍数を処理単位とする
ことが望ましく、暗号学的な安全性の観点から、ステー
トとバッファの内部状態数は大きい方がよい。好ましい
本実施例においては、処理単位である1ブロックを64ビ
ットとし、ステートの大きさを3ブロック、バッファの
大きさを32ブロックとしている。これにより処理を並列
化することと回路規模を小さくすることが可能になる。
【0016】本実施例をハードウェアにて構成した場
合、トリガとなるクロック信号(210)を受信すると、ス
テート(201)は、ステート変換部(203)の値を新しいステ
ート値として記憶する。バッファも同様にクロック信号
(210)を受信すると、バッファ変換部(204)の値を新しい
値として記憶する。制御回路(214)はクロック信号(210)
を受信すると、内部カウンタにて計数し、その値に応じ
てスイッチ(207)が入力(212)とステート(201)出力のい
ずれを選択するかを切り替える。バッファ変換部(204)
は、スイッチ(207)の切り替えに応じて決定される入力
値(64ビット)と現在のバッファの値から新たなバッファ
(202)の内容を決定する。
【0017】図5は、図2のバッファ変換部(204)の構成
をより詳細に例示するものである。バッファ変換部(20
4)は、バッファ(202)から入力された32ブロックのう
ち、上位から数えて25ブロック目と32ブロック目を除い
たブロックをひとつ下位のブロックとして出力する。ま
た、第25ブロックと、第32ブロックの上位と下位を入れ
替えたものとの排他的論理和演算を行った後一つ下位の
ブロックとして出力する。また、第32ブロックと、スイ
ッチ(207)の出力との排他的論理和演算を行った後第1ブ
ロックとして出力する。
【0018】図1のフローチャートにもとづいて図2の動
作を説明する。本実施例では、乱数生成装置(200)は、
図1の処理ステップ102からステップ108を行う。また、1
クロック毎に64ビットのビット列(部分乱数列)を生成す
る。ステップ102から104において、内部状態の初期化、
乱数生成のためのセットアップを行う。 ステップ102:ステート(201)、バッファ(202)の内容、
および制御回路(214)内部のメモリをリセット入力(211)
によりリセットする。例えば、すべてのビット値を0に
する。 ステップ103:乱数列を決定する情報として、鍵情報と
乱数列番号とを入力(212)する。入力に上位64ビットの
鍵情報を与えて、クロック信号(210)を入力する。次に
入力に下位64ビットの鍵情報を与えて、クロック信号(2
10)を入力する。続けて同様に、乱数列番号も上位、下
位64ビットに分割し、2クロックで入力する。これらの
クロック処理にはバッファ(202)やステート(201)は前述
のとおりに動作する。さらに出力回数N(213)を入力す
る。本実施例では、生成する乱数列を決定するための鍵
情報と乱数列番号、さらに出力回数をそれぞれ128ビッ
トの数値とする。 ステップ104:初期状態を生成するために、128クロック
処理を行い、ステート(201)、バッファ(202)の内容を攪
拌する。制御回路(214)は、このステップ以降ではスイ
ッチ(207)がステート出力を選択するように、制御す
る。本実施例においては、例えば、ステート出力の上位
64ビットaHがスイッチ(207)に入力される。
【0019】以降のステップにおいて部分乱数列を繰り
返し生成する。 ステップ105:N=0ならば終了(ステップ109)するが、そ
うでないならステップ106に進む。 ステップ106:ステート変換部(203)は変換処理を行い、
部分乱数列64ビットを出力する。 ステップ107:バッファとステートに、クロック信号と
ステート変換部(203)とバッファ変換部(202)による変換
処理結果とを与え、内容を更新する。 ステップ108:N=N-1として、ステップ105に戻る。 上記ステップ105からステップ108の繰り返しにより生成
される一つ以上の部分乱数列を、例えばビット連結する
ことにより所望の疑似乱数列を得る。本実施例の構成を
ソフトウェア処理で実現する場合は、一つの部分乱数列
を得る上記ステップ105からステップ108までの一連の操
作をラウンドという。
【0020】図11は、バッファ変換部(204)の他の構成
を例示するものである。このとき、協同するバッファ(2
02)の記憶領域の構成は64ビット×18ブロックとする。
バッファ変換部(204)は、バッファ(202)から入力された
18ブロックのうち、上位から数えて第2、12、18ブロッ
ク目を除いたブロックを一つ下位のブロックとして出力
する。また、第2ブロックと第7ブロックを排他的論理和
した演算結果を第3ブロックとして出力する。また、第1
5ブロックの上位1/2ブロックと下位1/2ブロックを入れ
替えたブロックと第12ブロックを排他的論理和した演算
結果を第13ブロックとして出力する。さらに、第18ブロ
ックと、スイッチ(207)の出力とを排他的論理和した演
算結果を第1ブロックとして出力する。図11に例示した
バッファ変換部の構成は、図5の構成に比べて変換が複
雑であり、バッファ内部をより強く攪拌できるので、暗
号学的強度が増すという効果がある。
【0021】図12は、図11のバッファ変換部を用いた場
合の乱数生成装置の構成を例示するものである。図12の
構成における、図1のフローチャートのステップ103、10
4の動作を説明する。 ステップ103:秘匿パラメータとして鍵情報(1201)と、
公開パラメータとして乱数列番号(1202)を入力する。本
実施形態では、鍵情報、乱数列番号はいずれも128ビッ
ト(2ブロック)とする。ステート(201)には、下位2ブロ
ックに乱数列番号128ビットを入力する。 ステップ104:初期状態を生成する。
【0022】鍵変換部を用いて変換した鍵情報をバッフ
ァに入力する。鍵変換部は次のように変換を行う。 KH || KL = 鍵情報(128ビット) Y2I ← KL >>> 7I (0 ≦ I < 9) Y21+1 ← KH <<<7(I + 1) (0 ≦ I < 9) バッファへは鍵変換部の出力を上位から順に入力する。 B0 || B1 || ... || B17 = バッファ値(64ビット×18ブ
ロック) BI ← YI (0 ≦ I < 18) 本実施例で、例えば、ブロック暗号の段関数をステート
変換部(203)として使用することができる(文献5参照)。
ブロック暗号の段関数は、1段ではステート(201)の内部
状態を十分に攪拌することはできない。しかし、バッフ
ァ変換部(204)を用いてバッファの内部状態を動的に更
新することにより、充分な攪拌が行えるので、ブロック
暗号と同程度以上の安全性を保持することができる。上
記のようにして実現した疑似乱数生成装置は、ブロック
暗号の使用方法とみなすことができる。
【0023】図13は、バッファ変換部(204)の他の構成
を例示するものである。このとき、協同するバッファ(2
02)の記憶領域の構成は64ビット×16ブロックとする。
バッファ変換部(204)は、バッファ(202)から入力された
16ブロックのうち、上位から数えて第4、10、16ブロッ
ク目(すなわち、B3、B9、B15)を除いたブロックを一つ
下位のブロックとして出力する。また、第4ブロック
(B3)と第8ブロック(B 7)を排他的論理和した演算結果を
第5ブロック(すなわちY4)として出力する。また、第14
ブロック(B13)の上位1/2ブロックと下位1/2ブロックを
入れ替えたブロックと第10ブロック(B9)を排他的論理和
した演算結果を第11ブロック(Y10)として出力する。さ
らに、第16ブロックと、スイッチ(207)の出力とを排他
的論理和した演算結果を第1ブロック(Y0)として出力す
る。図13に例示したバッファ変換部の構成は、ブロック
の数が2のベキであり、バッファ変換部をソフトウェア
で実現した場合に、状態の更新が高速に行えるという利
点を持つ。
【0024】図14は、図13のバッファ変換部を用いた場
合の乱数生成装置(1400)の構成を例示するものである。
図14の乱数生成装置が実行する、図1のフローチャート
で行われる初期化を説明する。ただし、図1のフローチ
ャートのステップ103, 104として、図15のステップ1601
〜1604が実行される。ステップ1601:秘匿パラメータと
して鍵情報(1502)を鍵変換部(1504)に入力する。鍵情報
は128ビットとする。鍵情報(1502)をK、C’を64ビット
の定数、64ビット単位の右巡回シフトを<<<、左巡回シ
フトを>>>と表すとき、鍵変換部(1504)は次のように変
換を行い、鍵情報(1502)をステート変換部の処理単位と
同じ大きさ(本実施例では192ビット)のデータAに伸長す
る。
【0025】すなわち、 KH || KL = K, AH ← KH, AM ← KL, AL ← (KH <<< 7) XOR (KL >>> 7) XOR C’ 伸長したデータAをステート変換部(203)に入力する。ス
テップ1602:バッファ部(202)への入力を、 Y0 || Y1 || ... || Y15 = バッファ値(64ビット×16ブ
ロック) と表現し、上記データAをステート変換部(203)でi回変
換したものをRi、Riの上位から64ビットごとにRHi,
RMi, RLiとしたとき、下記のように、バッファ部(202)
へRHiを下位から順に入力し、バッファ部(202)はこれら
を保持する。
【0026】すなわち、 Yi ← RH(15-i) (0 ≦ i < 16) ステップ1603:公開パラメータである乱数列番号(1503)
を入力する。本実施形態では、乱数列番号(1503)は128
ビットとする。乱数列番号Qは鍵変換部(1504)により次
のような処理を経て192ビットに伸長され、ステート変
換部(203)に入力される。 QH || QL = Q DH ← RH16 XOR QH, DM ← RM16 XOR QL, DH ← RL16 XOR (QH <<< 7) XOR (QL >>> 7) XOR C’, D = DH || DM || DL 乱数列番号Qが伸長されたデータDをステート変換部(20
3)で16回変換したものをEとし、Eをステート部(201)が
保持する。
【0027】ステップ1604:ステップ1602と1603での処
理結果が入力されたステート部、バッファ部の状態を16
回更新する。すなわち、バッファ部とステート部に、ク
ロック信号とステート変換部(203)とバッファ変換部(20
2)による変換処理結果とを与え、内容を更新する。
【0028】本実施例の初期化方法によれば、初期化段
階におけるデータの流れの把握が容易になる。したがっ
て、安全性の評価を十分に行うことが可能となる。
【0029】図3、図4は、上記各実施例における、非線
形なステート変換部(203)の演算部、転置部などの、実
施例を示す図である。図3の構成において、ステート(20
1)の変換は次のようにして行う。ただし、以下のアルゴ
リズムで、矢印←はデータの代入を、||は結合(concate
nation, 連結)を、それぞれ表す。ステート(201)の値を
ロードする。 aH || aM || aL= ステート値(192ビット) xL ← aH; xH ← aM XOR F(aH, bi) xM ← aL XOR G(xH, bj)(ただしi≠j) xMを部分乱数列として出力し、次のステート値として、
xH || xM || xLを出力する。
【0030】この構造によれば、或るクロックt(または
あるラウンド)におけるG関数(402)への入力とクロックt
+1(またはその次のラウンド)におけるF関数(401)への入
力とが同じになるため、処理の並列化が可能になる。ま
た、或るクロックtにおける部分ステート値aLは、G関数
(402)の出力と排他的論理和された後、クロックt+1にお
いてF関数(401)の出力と排他的論理和されるため、F関
数(401)とG関数(402)とは異なる変換を行う関数である
ことが望ましい。
【0031】図4はステート変換部(203)の他の構成を例
示する図である。図4の構成において、ステート(201)の
変換は次のようにして行う。ステート(201)の値をロー
ドする。 aH || aM || aL= ステート値(192ビット) xL ← aM; xM ← aH XOR F(aM, bi) xH ← aL XOR G(aM, bj) (ただしi≠j) xHを部分乱数列として出力し、次のステート値として、
xH || xM || xLを出力する。図4に示す構造によれば、
或るクロックt(またはあるラウンド)におけるF関数(40
1)への入力とG関数(402)への入力とが同じになり、処理
の並列化が可能になる。
【0032】図9はステート変換部(203)の他の構成を例
示する図である。図9の構成において、ステート(201)の
変換は次のようにして行う。ステート(201)の値をロー
ドする。 AH || AM || AL = ステート値(192ビット) XH ← AM XM ← AL XOR F(AM, BI) XL ← AH XOR G(AM, BJ) (ただしI ≠ J) 各ラウンドにおいて、AHを部分乱数列として出力し、次
のステート値としてXH|| XM || XLを出力する。図9に示
す構造によれば、出力列として開示されたデータが変化
しないラウンドが短いので、安全性が高まる。
【0033】上記図3、図4においてF関数とG関数に与え
られるバッファからの入力(215)は、任意に選択可能で
ある。たとえば、図6には示していないが、第5ブロック
目と第17ブロック目を選択することが可能である。上記
図3,図4に示す構造以外の転置方法を採用しても良い。
【0034】上記図3、図4で用いたF関数(またはG関数)
の構造を図6に例示する。二つの入力データの排他的論
理和演算結果を、8ビット毎に区切り、それぞれSボック
ス、S1(601)〜S8(602)により非線形変換を行う。Sボッ
クス S1(601)〜S8(602)の8ビット出力に、さらに図6に
示す変換処理を行い、出力outを生成する。Sボックスと
しては、たとえば 文献5:J. Daemen, V. Rijmen, "AES Proposal: Rijnda
el," The first AES Candidate Conference, available
at http://www.esat.kuleuven.ac.be/~rijmen/rijndae
l/rijndaeldocV2.zip.のRijndaelで使われている以下の
変換表を使うことが可能である。
【0035】S[256]={ 82, 9, 106, 213, 48, 54,
165, 56,191, 64, 163, 158, 129, 243, 215, 251,12
4, 227, 57, 130, 155, 47, 255, 135,52, 142, 67,
68, 196, 222, 233, 203,84, 123, 148, 50, 166, 1
94, 35, 61,238, 76, 149, 11, 66, 250, 195, 7
8,8, 46, 161, 102, 40, 217, 36, 178,118, 91, 1
62, 73, 109, 139, 209, 37,114, 248, 246, 100, 13
4, 104, 152, 22,212, 164, 92, 204, 93, 101, 18
2, 146,108, 112, 72, 80, 253, 237, 185, 218,94,
21, 70, 87, 167, 141, 157, 132,144, 216, 171,
0, 140, 188, 211, 10,247, 228, 88, 5, 184, 17
9, 69, 6,208, 44, 30, 143, 202, 63, 15,
2,193, 175, 189, 3, 1, 19, 138, 107,58, 145,
17, 65, 79, 103, 220, 234,151, 242, 207, 206, 2
40, 180, 230, 115,150, 172, 116, 34, 231, 173, 5
3, 133,226, 249, 55, 232, 28, 117, 223, 110,71,
241, 26, 113, 29, 41, 197, 137,111, 183, 98,
14, 170, 24, 190, 27,252, 86, 62, 75, 198, 21
0, 121, 32,154, 219, 192, 254, 120, 205, 90, 24
4,31, 221, 168, 51, 136, 7, 199, 49,177, 18,
16, 89, 39, 128, 236, 95,96, 81, 127, 169, 2
5, 181, 74, 13,45, 229, 122, 159, 147, 201, 156,
239,160, 224, 59, 77, 174, 42, 245, 176,200, 2
35, 187, 60, 131, 83, 153, 97,23, 43, 4, 12
6, 186, 119, 214, 38,225, 105, 20, 99, 85, 3
3, 12, 125}; また、ステート記憶部からの入力をa、バッファからの
入力をb、p=p1||p2||p3||p4||p5||p6||p7||p8,(1 ≦ i
≦ 8)とし、Sボックス S1(601)〜S8(602)の8ビット出力
を上位からそれぞれt1, t2, t3, t4, t5, t6, t7, t8と
したとき、図6に示す変換処理は以下のようにも表せ
る。
【0036】下記の数式中で記号「S[x]」もSボックス S1
(601)〜S8(602)の8ビット出力を表し、「SHRX, SHLX
はそれぞれ64ビット幅でのxビット分の右シフト、左シ
フトを表す。 p ← a XOR b; ti ← S[pi] (1 ≦ i ≦ 8); uH ← t1||t2||t3||t4; uL ← t5||t6||t7||t8; uX ← uX XOR SHR8(uX), X={L, H}; uX ← uX XOR SHL16(uX), X={L, H}; uL ← uH AND 0xf0f0f0f0; uH ← uL AND 0x0f0f0f0f; out ← uH || uL; なお、図4に示す構造において、F関数(401)とG関数(40
2)とを同じ関数とし、さらに、バッファからの入力(21
1)を非線形変換の後に排他的論理和する構造にすれば、
さらに処理の並列化による効果が高まる。また、ステー
トとバッファの容量はそれぞれ3ブロック分、32ブロッ
ク分と小さいので、初期設定に必要なクロック数(ラウ
ンド数)を少なくすることが可能である。さらに、ハー
ドウェア化した場合のハードウェア規模を小さくするこ
とができる。
【0037】F関数(401)(またはG関数(402))の他の構成
を図10に示す。二つの入力データの排他的論理和演算結
果を、8ビット毎に区切り、それぞれSボックス1001によ
り非線形変換を行う。次に、Sボックス1001の出力を32
ビットごとに線形変換1002により線形変換を行う。さら
に、32ビット出力それぞれ上位16ビットを交換し、出力
OUTを生成する。Sボックスとしては、たとえば文献5で
使われている変換を用いることが可能である。また、32
ビットの線形変換も、文献5で使われているものを用い
ることができる。
【0038】文献5で使われている線形変換は、最大距
離分離符号行列と呼ばれ、入出力のデータをもっとも効
率的に攪拌する線形変換として知られているものの一例
である。このようにして構成したF関数は、図6に例示し
たF関数に比べ高い強度を持つ。このため、初期化に要
するラウンド数を削減することができる。すなわち、バ
ッファ(202)のステージ数を削減することができ、さら
なるハードウェア規模の削減が可能である。また、ステ
ート記憶部からの入力をA、バッファ記憶部からの入力
をB、データの代入を←、P = P1 || P2 || P3 || P4 ||
P5 || P6 || P7 || P8 (1 ≦ I ≦8)とし、Sボックス
の出力を上位からT1, T2, T3, T4, T5, T6, T7,T8、ま
たはS[X]、MDS行列による変換部をMDS(Ta, Tb, Tc, Td)
としたとき、図12に示す変換処理は以下のようにも表せ
る。
【0039】下記の数式中で記号「S[x]」もSボックス S
(1001)の各8ビット出力を表す。 P ← A XOR B; TI ← S[PI] (1 ≦ I ≦ 8); UH ← MDS1(T1, T2, T3, T4); UL ← MDS2(T5, T6, T7, T8); UH = X1 || X2 || X3 || X4 UL = X5 || X6 || X7 || X8 OUT ← X5 || X6 || X3 || X4 || X1 || X2 || X7 || X
8; さらに、変換結果OUTを出力する前に、さらに定数Cとの
排他的論理和演算を行っても良い。定数CはF関数、G関
数で異なるものを用いても良い。
【0040】また、8ビット(1バイト)単位のブロックに
分け、少なくとも一つのブロックが他と異なるようにす
れば、バイト単位の変換を多用するF関数(401)にビット
単位での変化をつけることができる。例えば、F関数、G
関数に用いる定数をそれぞれCF, CGとしたとき、 CF = 0xBB67AE85 84CAA73B, CG = 0x3C6EF372 FE94F82B とする。ただし、0xnnnnnnnnは数値が16進表記であるこ
とを表す。
【0041】本実施例の構成によれば、ステート変換部
には、以上構成を例示した非線形変換部だけでなく、そ
の他、暗号学的安全性と実装について十分に評価された
ブロック暗号の非線形変換部、段関数を使用することが
できる。本実施例のように、処理単位を64ビットとすれ
ば、ブロック暗号の非線形変換部、段関数の使用がより
容易になる。また、ブロック暗号のOFBモードの3〜5倍
程度の処理速度を期待できる。
【0042】以上の説明における、64ビットという処理
単位は一例であって、要求される仕様に応じて変更可能
である。また、本実施例を、演算処理装置(プロセッサ)
と記憶装置を備える一般的な情報処理装置上にソフトウ
ェアで実現する場合は、ステート、バッファを記憶装置
または演算処理装置のレジスタを用いて実現し、その他
各構成要素を、演算処理装置が記憶装置に格納されたプ
ログラムを実行することにより実現する。各プログラム
は、予め記憶装置に記憶されているか、または、情報処
理装置が備える外部記憶媒体読取装置を介して記憶媒体
から記憶装置にロードされる。または、通信装置を介し
て一旦ネットワークから記憶装置にダウンロードされて
もよい。また、いずれかの構成要素としてハードウェア
化されたものを併用しても良い。
【0043】(応用例)本実施例の一つの好ましい応用例
は、たとえば、膨大なデータ処理を行う必要があるネッ
トワークの基幹部や、高速なリアルタイム処理が必要な
マルチメディアデータ処理システムである。以下、本実
施例を利用したデータの暗号化および配信システムにつ
いて説明する。
【0044】図7は本実施例に用いる機器の概略図であ
り、図8は、図7のデータ送信装置(901)とデータ受信装
置(907)中の暗号復号処理装置(904)を本実施例の疑似乱
数生成装置を用いて構成した例である。データの配信
は、次のステップで行なう。 ステップ1:データ送信者とデータ受信者は、同じ乱数
列を共有できるように、事前に鍵情報(1001)を秘密裏に
共有し、乱数列番号(1002)も秘密裏である必要はないが
共有する。これらの情報を共有するには、例えば、公開
鍵暗号技術を用いた鍵配送方法を用いることができる。 ステップ2:データ送信者は、上記共有情報を与えた暗
号復号処理装置(904)を用いて平文データ(903)を暗号化
する。図8を使って暗号復号処理装置(904)の動作を説明
する。
【0045】暗号復号処理装置(904)は、入力(1003)(こ
の場合は平文データ(903))と同じ長さの疑似乱数列(100
5)を生成する。疑似乱数列の生成は、本実施例による疑
似乱数生成装置(200)に、上記鍵情報(1001)と乱数列番
号(1002)と出力回数を与えることにより行う。生成され
た疑似乱数列(1005)とデータ(903)とを排他的論理和す
ることによって出力(1004)として暗号文データ(1006)を
算出し、出力する。 ステップ3:データ送信者は、暗号文データ(1006)をネ
ットワークインターフェース装置(905)を用いて、ネッ
トワーク(906)を通じてデータ受信者に送信する。 ステップ4:データ受信者は、ネットワークインターフ
ェース装置(908)を介して受信した暗号文データ(1006)
を、上記共有情報を与えた暗号処理装置(904)を用いて
復号する。図8を使って暗号復号処理装置(904)の動作を
説明する。
【0046】暗号復号処理装置(904)は、入力(1003)(こ
の場合は暗号文データ(1006))と同じ長さの疑似乱数列
(1005)を、暗号化時と同様に生成する。生成された疑似
乱数列(1005)と暗号文データ(1006)とを排他的論理和す
ることによって出力(1004)として復号文すなわち平文デ
ータ(1011)を算出し、出力する。 ステップ5:データ受信者は、復号化された平文データ
を再生装置(912)で再生する。
【0047】
【発明の効果】本発明によれば、ソフトウェア、ハード
ウェアいずれにおいても実装コストがかからず実用的
な、さらに高速に動作可能な疑似乱数生成技術を提供で
きる。
【符号の説明】
200…疑似乱数生成装置、201…ステート、202…バッフ
ァ、203…ステート変換部、204…バッファ変換部、206
…出力する乱数列、207…スイッチ、210…クロック入
力、211…リセット入力、212…入力、213…平文の長さ
情報Nの入力、214…制御回路、401…非線形変換F、601
〜604…8ビットの置換表、901…データ送信装置、902…
記憶装置、903…データ、904…暗号復号処理装置、905
…ネットワークインターフェース装置、906…ネットワ
ーク、907…データ受信装置、908…ネットワークインタ
ーフェース装置、 910…記憶装置、912…データ再生装
置、1001…鍵情報、1002…乱数列番号、1003…入力デー
タ、1004…出力データ。
【図面の簡単な説明】
【図1】実施例における疑似乱数生成装置の処理手順を
表すフローチャートである。
【図2】実施例における疑似乱数生成装置の概略構成図
である。
【図3】実施例における疑似乱数生成装置のステート変
換部の構成を表す概略図である。
【図4】ステート変換部の他の構成を表す概略図であ
る。
【図5】実施例における疑似乱数生成装置のバッファ変
換部の構成を表す概略図である。
【図6】ステート変換部で用いる非線形変換部の構成を
表す概略図である。
【図7】実施例における疑似乱数生成装置を応用したデ
ータ配信システムの概略図である。
【図8】実施例を応用したデータ送信装置の暗号復号処
理装置の概略図である。
【図9】ステート変換部のさらに他の構成を表す概略図
である。
【図10】非線形変換部の他の構成を表す概略図であ
る。
【図11】バッファ変換部の他の構成を表す概略図であ
る。
【図12】図11に示すバッファ変換部を用いて構成する
疑似乱数生成装置の概略構成図である。
【図13】バッファ変換部の他の構成を表す概略図であ
る。
【図14】図13に示すバッファ変換部を用いて構成する
疑似乱数生成装置の概略構成図である。
【図15】図14の疑似乱数生成装置が実行する初期化の
動作を説明するフローチャートである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 宝木 和夫 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 Fターム(参考) 5J049 AA36 CA07 5J104 FA05 JA04 NA02

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】ステート記憶部と、 バッファと、 前記バッファの記憶内容と前記ステート記憶部の記憶内
    容とを用いた変換を行い変換結果を出力するステート変
    換部と、 前記バッファの記憶内容と前記ステート記憶部の記憶内
    容とを用いた変換を行い変換結果を出力するバッファ変
    換部と、 クロックに応じて、前記ステート変換部出力を用いて前
    記ステート記憶部の内部状態を更新するステート記憶制
    御部と、 前記クロックに応じて、前記バッファ変換部出力を用い
    て前記バッファの内部状態を更新するバッファ制御部
    と、を備える疑似乱数生成装置であって、 前記ステート記憶部は3ブロック(ただし1ブロックはn
    ビットからなる)の容量を備え、前記バッファは複数ブ
    ロックの容量を備え、 前記ステート変換部は、 前記バッファの記憶内容と前記ステート記憶部の記憶内
    容とを入力として用いる非線形変換部と、 前記変換結果のうち1ブロックデータを部分乱数列とし
    て出力する出力部と、を備えることを特徴とする疑似乱
    数生成装置。
  2. 【請求項2】請求項1記載の疑似乱数生成装置であっ
    て、 前記ステート変換部は、第1の演算部と第2の演算部とを
    備え、 前記第1の演算部は、前記ステート記憶部に記憶されて
    いる3つのブロックのうち、第1と第2の二つのブロック
    と、バッファに記憶されているブロックを入力として受
    け付ける入力部と、前記第1のブロックと前記バッファ
    に記憶されているブロックを非線形変換し、nビットの
    データを出力する第1の非線形変換部と、前記第1の非線
    形変換部出力と前記第2のブロックとを入力とし論理演
    算する第3の演算部と、前記第1のブロックと前記第3の
    演算部による演算結果を出力する出力部と、を備え、 前記第2の演算部は、前記第1の演算部のいずれかの出力
    と前記ステート記憶部に記憶されている第3のブロック
    と、前記バッファに記憶されているブロックを入力とし
    て受け付ける入力部と、前記第1の演算部のいずれかの
    出力と前記バッファに記憶されているブロックを非線形
    変換し、nビットのデータを出力する第2の非線形変換部
    と、前記第2の非線形変換部出力と前記第3のブロックと
    を入力とし論理演算する第4の演算部と、前記第1の演算
    部のいずれかの出力と前記第4の演算部による演算結果
    を出力する出力部と、を備えることを特徴とする疑似乱
    数生成装置。
  3. 【請求項3】請求項2記載の疑似乱数生成装置であっ
    て、 前記ステート変換部は、さらに、転置部を備え、 前記転置部は、前記第3、第4の演算部の演算結果が、そ
    れぞれの前記演算部に入力されたブロックとは異なるブ
    ロックとして、前記ステート記憶部に記憶されるように
    転置することを特徴とする疑似乱数生成装置。
  4. 【請求項4】請求項1記載の疑似乱数生成装置であっ
    て、 前記ステート変換部は、以下の処理を行う xL ← aH; xH ← aM XOR F(aH, bi) xM ← aL XOR G(xH, bj) (ただし、ステート記憶部の記憶内容の上位ブロックをa
    H、中位ブロックをaM、下位ブロックをaL、前記バッフ
    ァ記憶部の第iブロックをbi、前記非線形変換部をF(a,
    b)、G(a, b)、データの代入を←、前記変換結果の上位
    ブロックをxH、中位ブロックをxM、下位ブロックをxL
    表し、i≠jとする)ことを特徴とする疑似乱数生成装
    置。
  5. 【請求項5】請求項1記載の疑似乱数生成装置であっ
    て、 前記ステート変換部は、以下の処理を行う xL ← aM; xM ← aH XOR F(aM, bi) xH ← aL XOR G(aM, bj) (ただし、前記ステート記憶部の記憶内容の上位ブロッ
    クをaH、中位ブロックをa M、下位ブロックをaL、前記バ
    ッファ記憶部の第jブロックをbj、前記非線形変換部をF
    (a, b)、G(a, b)、データの代入を←、前記変換結果の
    上位ブロックをxH、中位ブロックをxM、下位ブロックを
    xLと表し、i≠jとする)ことを特徴とする疑似乱数生成
    装置。
  6. 【請求項6】請求項1記載の疑似乱数生成装置であっ
    て、 1ブロックを64ビットで構成し、 前記非線形変換部は、入力されるブロックを8ビット単
    位に分けて非線形変換を行うSボックスをさらに備え、
    以下の処理を行う処理部を備える p ← a XOR b, ti ← S[pi] (1 ≦ i ≦ 8); uH ← t1||t2||t3||t4; uL ← t5||t6||t7||t8; uX ← uX XOR SHR8(uX), X={L, H}; uX ← uX XOR SHL16(uX), X={L, H}; uL ← uH AND 0xf0f0f0f0; uH ← uL AND 0x0f0f0f0f; out ← uH || uL; (ただし、ステート記憶部からの入力をa、バッファから
    の入力をb、データの代入を←、p=p1||p2||p3||p4||p5|
    |p6||p7||p8,(1 ≦ i ≦ 8)とし、Sボックス出力を、上
    位からt1, t2, t3, t4, t5, t6, t7, t8、またはS[x]、
    64ビット幅でのxビット分の右シフト、左シフトをそれ
    ぞれSHRX, SHLXと表す)ことを特徴とする疑似乱数生成
    装置。
  7. 【請求項7】請求項1記載の疑似乱数生成装置であっ
    て、 前記バッファの容量を32ブロックとし、前記バッファ変
    換部は、以下の処理を行う処理部を備える前記バッファ
    が出力する32ブロックのうち、上位から第25番目ブロッ
    クと第32番目ブロックとを除いたブロックをひとつ下位
    のブロックとして出力する;第32番目ブロックの上位と
    下位を入れ替えたものと第25番目ブロックとの排他的論
    理和演算を行い、当該演算結果を第24番目ブロックとし
    て出力する;第32番目ブロックとステート記憶部の出力
    1ブロックとの排他的論理和演算を行い、当該演算結果
    を第1番目ブロックとして出力することを特徴とする疑
    似乱数生成装置。
  8. 【請求項8】暗号復号処理装置であって、 暗号化対象となる平文データと同じ長さの疑似乱数列を
    生成する疑似乱数生成装置と、 生成された疑似乱数列と平文データとを排他的論理和演
    算することによって暗号文データを算出し、出力する演
    算部と、を備え、 前記疑似乱数生成装置は ステート記憶部と、 バッファと、 前記バッファの記憶内容と前記ステート記憶部の記憶内
    容とを用いた変換を行い変換結果を出力するステート変
    換部と、 前記バッファの記憶内容と前記ステート記憶部の記憶内
    容とを用いた変換を行い変換結果を出力するバッファ変
    換部と、 クロックに応じて、前記ステート変換部出力を用いて前
    記ステート記憶部の内部状態を更新するステート記憶制
    御部と、 前記クロックに応じて、前記バッファ変換部出力を用い
    て前記バッファの内部状態を更新するバッファ制御部
    と、を備え、 前記ステート記憶部は3ブロック(ただし1ブロックはn
    ビットからなる)の容量を備え、前記バッファは複数ブ
    ロックの容量を備え、 前記ステート変換部は、 前記バッファの記憶内容と前記ステート記憶部の記憶内
    容とを用いる非線形変換部と、 前記変換結果のうち1ブロックデータを部分乱数列とし
    て出力する出力部と、を備えることを特徴とする暗号復
    号処理装置。
  9. 【請求項9】暗号復号処理装置であって、 復号化対象となる暗号文データを生成する際に用いた乱
    数列を決定するための情報を用いて、暗号文データと同
    じ長さの疑似乱数列を生成する疑似乱数生成装置と、 生成された疑似乱数列と暗号文データとを排他的論理和
    演算することによって平文データを算出し、出力する演
    算部と、を備え、 前記疑似乱数生成装置は ステート記憶部と、 バッファと、 前記バッファの記憶内容と前記ステート記憶部の記憶内
    容とを用いた変換を行い変換結果を出力するステート変
    換部と、 前記バッファの記憶内容と前記ステート記憶部の記憶内
    容とを用いた変換を行い変換結果を出力するバッファ変
    換部と、 クロックに応じて、前記ステート変換部出力を用いて前
    記ステート記憶部の内部状態を更新するステート記憶制
    御部と、 前記クロックに応じて、前記バッファ変換部出力を用い
    て前記バッファの内部状態を更新するバッファ制御部
    と、を備え、 前記ステート記憶部は3ブロック(ただし1ブロックはn
    ビットからなる)の容量を備え、前記バッファは複数ブ
    ロックの容量を備え、 前記ステート変換部は、 前記バッファの記憶内容と前記ステート記憶部の記憶内
    容とを用いる非線形変換部と、 前記変換結果のうち1ブロックデータを部分乱数列とし
    て出力する出力部と、を備えることを特徴とする暗号復
    号処理装置。
  10. 【請求項10】記憶装置とプロセッサとを備えた計算機
    に、 ステート記憶部と、 バッファと、 前記バッファの記憶内容と前記ステート記憶部の記憶内
    容とを用いた変換を行い変換結果を出力するステート変
    換部と、 前記バッファの記憶内容と前記ステート記憶部の記憶内
    容とを用いた変換を行い変換結果を出力するバッファ変
    換部と、 所定のプログラムステップにおいて、前記ステート変換
    部出力を用いて前記ステート記憶部の内部状態を更新す
    るステート記憶制御部と、 所定のプログラムステップにおいて、前記バッファ変換
    部出力を用いて前記バッファの内部状態を更新するバッ
    ファ制御部と、を実現し、疑似乱数を生成させるプログ
    ラムであって、 前記ステート記憶部は、3ブロック(ただし1ブロックはn
    ビットからなる)の容量を備え、前記バッファは複数ブ
    ロックの容量を備え、 前記ステート変換部は、 前記バッファの記憶内容と前記ステート記憶部の記憶内
    容とを用いる非線形変換部と、 変換結果のうち1ブロックデータを部分乱数列として出
    力する出力部と、を備えることを特徴とする疑似乱数を
    生成させるプログラム。
  11. 【請求項11】請求項1記載の疑似乱数生成装置であっ
    て、 前記ステート変換部は、以下の処理を行う XH ← AM XM ← AL XOR F(AM, BI) XL ← AH XOR G(AM, BJ) (ただし、前記ステート記憶部の記憶内容の上位ブロッ
    クをAH、中位ブロックをA M、下位ブロックをAL、前記バ
    ッファ記憶部の第IブロックをBI、前記非線形変換部をF
    (A, B)、G(A, B)、データの入力を←、前記変換結果の
    上位ブロックをXH、中位ブロックをXM、下位ブロックを
    XLと表し、I≠Jとする)ことを特徴とする疑似乱数生成
    装置。
  12. 【請求項12】請求項1記載の疑似乱数生成装置であっ
    て、 1ブロックを64ビットで構成し、 前記非線形変換部は、入力されるブロックを8ビット単
    位に分けて非線形変換を行うSボックスと、Sボックスの
    出力を32ビット単位で線形変換するMDS行列をさらに備
    え、以下の処理を行う処理部を備える P ← A XOR B; TI ← S[PI] (1 ≦ I ≦ 8); UH ← MDS1(T1, T2, T3, T4); UL ← MDS2(T5, T6, T7, T8); UH = X1 || X2 || X3 || X4 UL = X5 || X6 || X7 || X8 OUT ← X5 || X6 || X3 || X4 || X1 || X2 || X7 || X
    8; (ただし、ステート記憶部からの入力をA、バッファ記憶
    部からの入力をB、データの代入を←、P = P1 || P2 ||
    P3 || P4 || P5 || P6 || P7 || P8 (1 ≦ I≦ 8)と
    し、Sボックスの出力を上位からT1, T2, T3, T4, T5, T
    6, T7,T8、またはS[X]、MDS行列による変換部をMDS(Ta,
    Tb, Tc, Td)と表す)ことを特徴とする疑似乱数生成装
    置。
  13. 【請求項13】請求項1記載の疑似乱数生成装置であっ
    て、 前記バッファの容量を18ブロックとし、前記バッファ変
    換部は、以下の処理を行う処理部を備える前記バッファ
    からの入力18ブロックのうち、上位から第2番目ブロッ
    ク、第12番目ブロック、第18番目ブロックを除いたブロ
    ックを一つ下位のブロックとして出力する;第2番目ブ
    ロックと第7番目ブロックとの排他的論理和演算を行
    い、当該演算結果を第3番目ブロックとして出力する;
    第15番目ブロックの上位1/2ブロックと下位1/2ブロック
    を入れ替えたブロックと第12番目ブロックとの排他的論
    理和演算を行い、当該演算結果を第13番目ブロックとし
    て出力する;第18番目ブロックとステート記憶部の1ブ
    ロックとの排他的論理和演算を行い、当該演算結果を第
    1番目ブロックとして出力することを特徴とする疑似乱
    数生成装置。
  14. 【請求項14】請求項1記載の疑似乱数生成装置であっ
    て、 鍵情報を前記バッファ部の容量と同じ大きさのデータに
    伸長して前記バッファ部に入力する鍵変換部を備えるこ
    とを特徴とする疑似乱数生成装置。
  15. 【請求項15】請求項1記載の疑似乱数生成装置であっ
    て、 前記ステート記憶部は公開パラメータを用いることを特
    徴とする疑似乱数生成装置。
  16. 【請求項16】請求項1記載の疑似乱数生成装置であっ
    て、 1ブロックを64ビットで構成し、 前記非線形変換部は、入力されるブロックを8ビット単
    位に分けて非線形変換を行うSボックスと、Sボックスの
    出力を32ビット単位で線形変換するMDS行列と、64ビッ
    トの定数をさらに備え、以下の処理を行う処理部を備え
    る P ← A XOR B; TI ← S[PI] (1 ≦ I ≦ 8); UH ← MDS1(T1, T2, T3, T4); UL ← MDS2(T5, T6, T7 ,T8); UH = X1 || X2 || X3 || X4; UL = X5 || X6 || X7 || X8; Z ← X5 || X6 || X3 || X4 || X1 || X2 || X7 || X8; OUT ← Z XOR C; (ただし、ステート記憶部からの入力をA、バッファ記憶
    部からの入力をB、データの代入を←、P = P1 || P2 ||
    P3 || P4 || P5 || P6 || P7 || P8 (1 ≦ I≦ 8)と
    し、Sボックスの出力を上位からT1, T2, T3, T4, T5, T
    6, T7,T8、またはS[X]、MDS行列による変換部をMDS(Ta,
    Tb, Tc, Td)、上記定数をCと表す)ことを特徴とする疑
    似乱数生成装置。
  17. 【請求項17】請求項16記載の疑似乱数生成装置におい
    て、 上記定数Cを8ビットからなるブロックに分けたとき、少
    なくとも一つのブロックは他と異なる値であることを特
    徴とする疑似乱数生成装置。
  18. 【請求項18】請求項1記載の疑似乱数生成装置であっ
    て、 前記バッファの容量を16ブロックとし、前記バッファ変
    換部は、以下の処理を行う処理部を備える前記バッファ
    からの入力16ブロックのうち、上位から第4番目ブロッ
    ク、第10番目ブロック、第16番目ブロックを除いたブロ
    ックを一つ下位のブロックとして出力する;第4番目ブ
    ロックと第8番目ブロックとの排他的論理和演算を行
    い、当該演算結果を第5番目ブロックとして出力する;
    第14番目ブロックの上位1/2ブロックと下位1/2ブロック
    を入れ替えたブロックと第10番目ブロックとの排他的論
    理和演算を行い、当該演算結果を第11番目ブロックとし
    て出力する;第16番目ブロックとステート記憶部の1ブ
    ロックとの排他的論理和演算を行い、当該演算結果を第
    1番目ブロックとして出力することを特徴とする疑似乱
    数生成装置。
  19. 【請求項19】請求項1記載の疑似乱数生成装置であっ
    て、 鍵情報と乱数列番号とを入力とする鍵変換部と、前記鍵
    変換部を制御する制御部とを備え、 前記鍵変換部制御部は、 前記鍵情報を前記バッファ部の容量と同じ大きさのデー
    タに伸長して前記バッファ部に入力し、前記鍵情報を前
    記ステート部の容量と同じ大きさのデータに伸長して前
    記ステート部に入力するよう、前記鍵変換部を制御し、
    前記伸長されて前記ステート部に入力された鍵情報
    と、前記乱数列番号とを用いて、さらに、前記ステート
    部のデータを更新するように、前記ステート変換部と前
    記鍵変換部とを制御することを特徴とする疑似乱数生成
    装置。
JP2001274433A 2001-01-23 2001-09-11 疑似乱数生成装置またはそれを用いた暗号復号処理装置 Expired - Lifetime JP3724399B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2001274433A JP3724399B2 (ja) 2001-01-23 2001-09-11 疑似乱数生成装置またはそれを用いた暗号復号処理装置
DE60138357T DE60138357D1 (de) 2001-01-23 2001-12-18 Pseudozahlenerzeugungsgerät oder dieses verwendende Enkryptions- oder Dekryptionsgerät
EP01310546A EP1225507B1 (en) 2001-01-23 2001-12-18 Pseudorandom number generating apparatus or encryption or decryption apparatus using the same
US10/046,167 US7224796B2 (en) 2001-01-23 2002-01-16 Pseudorandom number generating apparatus or encryption or decryption apparatus using the same
US10/124,577 US7280659B2 (en) 2001-01-23 2002-04-18 Pseudorandom number generating apparatus or encryption or decryption apparatus using the same

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2001-13959 2001-01-23
JP2001013959 2001-01-23
JP2001-145783 2001-05-16
JP2001145783 2001-05-16
JP2001274433A JP3724399B2 (ja) 2001-01-23 2001-09-11 疑似乱数生成装置またはそれを用いた暗号復号処理装置

Publications (2)

Publication Number Publication Date
JP2003037482A true JP2003037482A (ja) 2003-02-07
JP3724399B2 JP3724399B2 (ja) 2005-12-07

Family

ID=27345795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001274433A Expired - Lifetime JP3724399B2 (ja) 2001-01-23 2001-09-11 疑似乱数生成装置またはそれを用いた暗号復号処理装置

Country Status (4)

Country Link
US (2) US7224796B2 (ja)
EP (1) EP1225507B1 (ja)
JP (1) JP3724399B2 (ja)
DE (1) DE60138357D1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005309148A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd データ変換装置およびデータ変換方法
JP2007192893A (ja) * 2006-01-17 2007-08-02 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2008028849A (ja) * 2006-07-24 2008-02-07 Kddi Corp ハイブリッド暗号化装置およびハイブリッド暗号化方法
JP2008165008A (ja) * 2006-12-28 2008-07-17 Megachips Lsi Solutions Inc データ処理装置及びデータ処理方法
WO2008117804A1 (ja) * 2007-03-27 2008-10-02 Nec Corporation ストリーム暗号向け擬似乱数生成装置とプログラムと方法
JP2008276728A (ja) * 2007-03-30 2008-11-13 Hitachi Ltd 疑似乱数生成装置及びそれを用いた暗号化処理装置
US8553880B2 (en) 2005-05-13 2013-10-08 Ochanomizu University Pseudorandom number generating system, encryption system, and decryption system
JP2017215955A (ja) * 2016-05-30 2017-12-07 ローム株式会社 乱数生成方法
JP2019003144A (ja) * 2017-06-19 2019-01-10 ローレルバンクマシン株式会社 暗号通信システム、暗号化装置、暗号化方法及びプログラム

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10110049A1 (de) * 2001-03-02 2002-09-05 Bosch Gmbh Robert Verfahren und Vorrichtung zur Datenverschlüsselung bei der Programmierung von Steuergeräten
EP1505762A4 (en) * 2002-05-10 2012-11-07 Sony Corp ENCRYPTING DEVICE AND DECOMPOSITION DEVICE
US7257229B1 (en) * 2002-06-07 2007-08-14 Winbond Electronics Corporation Apparatus and method for key scheduling
JP3503638B1 (ja) * 2002-09-26 2004-03-08 日本電気株式会社 暗号装置及び暗号プログラム
AU2003288758A1 (en) * 2002-12-19 2004-07-14 Ntt Communications Corporation Data division method and device using exclusive or calculation
FR2851385A1 (fr) * 2003-02-14 2004-08-20 France Telecom Generation de code de brouillage pour communications umts
JP4025283B2 (ja) * 2003-12-05 2007-12-19 株式会社東芝 符号埋込方法、識別情報復元方法及び装置
US8085938B2 (en) * 2004-02-10 2011-12-27 Ntt Communications Corporation Secret information management scheme based on secret sharing scheme
US8213611B2 (en) * 2004-11-03 2012-07-03 Broadcom Corporation Two-stage block synchronization and scrambling
US7680273B2 (en) * 2004-12-08 2010-03-16 Schweitzer Engineering Laboratories, Inc. System and method for optimizing error detection to detect unauthorized modification of transmitted data
JP4750105B2 (ja) * 2005-03-23 2011-08-17 Kddi株式会社 キーストリーム暗号化装置および方法ならびにプログラム
US20070110225A1 (en) * 2005-11-16 2007-05-17 Sub-Crypto Systems, Llc Method and apparatus for efficient encryption
KR101405321B1 (ko) * 2007-03-16 2014-06-27 재단법인서울대학교산학협력재단 키 연산 방법 및 이를 이용한 공유 키 생성 방법
EP1975779B1 (en) * 2007-03-30 2018-03-28 Hitachi, Ltd. Encryption device using a pseudorandom number generator
US8687802B2 (en) * 2009-03-30 2014-04-01 The Regents Of The University Of California Method and system for accelerating the deterministic enciphering of data in a small domain
US8515059B2 (en) * 2010-03-30 2013-08-20 Daniel W. Engels Cryptographic processor with dynamic update of encryption state
US8677464B2 (en) 2011-06-22 2014-03-18 Schweitzer Engineering Laboratories Inc. Systems and methods for managing secure communication sessions with remote devices
US9130945B2 (en) 2012-10-12 2015-09-08 Schweitzer Engineering Laboratories, Inc. Detection and response to unauthorized access to a communication device
US10182041B2 (en) * 2013-02-27 2019-01-15 CipherTooth, Inc. Method and apparatus for secure data transmissions
US10623176B2 (en) * 2014-08-20 2020-04-14 Nec Corporation Authentication encryption method, authentication decryption method, and information-processing device
US9660803B2 (en) 2015-09-15 2017-05-23 Global Risk Advisors Device and method for resonant cryptography

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04215689A (ja) * 1990-02-21 1992-08-06 General Instr Corp 疑似ランダム非線形シーケンス発生装置に基づいたブロック暗号装置
JPH1074044A (ja) * 1996-04-16 1998-03-17 Vlsi Technol Inc デジタルデータを符号化する方法および装置
JPH1124558A (ja) * 1997-06-30 1999-01-29 Nippon Telegr & Teleph Corp <Ntt> 暗号装置
JPH11212451A (ja) * 1998-01-22 1999-08-06 Dainippon Printing Co Ltd 暗号処理装置
JP2000162965A (ja) * 1998-11-27 2000-06-16 Toshiba Corp 暗復号装置及び記憶媒体
JP2001142395A (ja) * 1999-08-31 2001-05-25 Matsushita Electric Ind Co Ltd 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
WO2001067425A1 (fr) * 2000-03-09 2001-09-13 Mitsubishi Denki Kabushiki Kaisha Systeme de chiffrage de blocs utilisant la conversion auxiliaire

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5454039A (en) * 1993-12-06 1995-09-26 International Business Machines Corporation Software-efficient pseudorandom function and the use thereof for encryption
US6014445A (en) * 1995-10-23 2000-01-11 Kabushiki Kaisha Toshiba Enciphering/deciphering apparatus and method incorporating random variable and keystream generation
US6252958B1 (en) * 1997-09-22 2001-06-26 Qualcomm Incorporated Method and apparatus for generating encryption stream ciphers
US7106860B1 (en) * 2001-02-06 2006-09-12 Conexant, Inc. System and method for executing Advanced Encryption Standard (AES) algorithm
US6937727B2 (en) * 2001-06-08 2005-08-30 Corrent Corporation Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04215689A (ja) * 1990-02-21 1992-08-06 General Instr Corp 疑似ランダム非線形シーケンス発生装置に基づいたブロック暗号装置
JPH1074044A (ja) * 1996-04-16 1998-03-17 Vlsi Technol Inc デジタルデータを符号化する方法および装置
JPH1124558A (ja) * 1997-06-30 1999-01-29 Nippon Telegr & Teleph Corp <Ntt> 暗号装置
JPH11212451A (ja) * 1998-01-22 1999-08-06 Dainippon Printing Co Ltd 暗号処理装置
JP2000162965A (ja) * 1998-11-27 2000-06-16 Toshiba Corp 暗復号装置及び記憶媒体
JP2001142395A (ja) * 1999-08-31 2001-05-25 Matsushita Electric Ind Co Ltd 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
WO2001067425A1 (fr) * 2000-03-09 2001-09-13 Mitsubishi Denki Kabushiki Kaisha Systeme de chiffrage de blocs utilisant la conversion auxiliaire

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005309148A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd データ変換装置およびデータ変換方法
US8553880B2 (en) 2005-05-13 2013-10-08 Ochanomizu University Pseudorandom number generating system, encryption system, and decryption system
JP2007192893A (ja) * 2006-01-17 2007-08-02 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8073140B2 (en) 2006-01-17 2011-12-06 Sony Corporation Encryption/decryption device, encryption/decryption method, and computer program
JP2008028849A (ja) * 2006-07-24 2008-02-07 Kddi Corp ハイブリッド暗号化装置およびハイブリッド暗号化方法
JP2008165008A (ja) * 2006-12-28 2008-07-17 Megachips Lsi Solutions Inc データ処理装置及びデータ処理方法
WO2008117804A1 (ja) * 2007-03-27 2008-10-02 Nec Corporation ストリーム暗号向け擬似乱数生成装置とプログラムと方法
JP5268001B2 (ja) * 2007-03-27 2013-08-21 日本電気株式会社 ストリーム暗号向け擬似乱数生成装置とプログラムと方法
JP2008276728A (ja) * 2007-03-30 2008-11-13 Hitachi Ltd 疑似乱数生成装置及びそれを用いた暗号化処理装置
JP2017215955A (ja) * 2016-05-30 2017-12-07 ローム株式会社 乱数生成方法
JP2019003144A (ja) * 2017-06-19 2019-01-10 ローレルバンクマシン株式会社 暗号通信システム、暗号化装置、暗号化方法及びプログラム

Also Published As

Publication number Publication date
US7224796B2 (en) 2007-05-29
JP3724399B2 (ja) 2005-12-07
EP1225507A3 (en) 2004-12-29
DE60138357D1 (de) 2009-05-28
EP1225507A2 (en) 2002-07-24
EP1225507B1 (en) 2009-04-15
US7280659B2 (en) 2007-10-09
US20020118830A1 (en) 2002-08-29
US20020097868A1 (en) 2002-07-25

Similar Documents

Publication Publication Date Title
JP3724399B2 (ja) 疑似乱数生成装置またはそれを用いた暗号復号処理装置
Standaert et al. Efficient implementation of Rijndael encryption in reconfigurable hardware: Improvements and design tradeoffs
KR100610367B1 (ko) 정보 누출 공격을 방지하기 위한 갈로아 필드 상의 곱셈방법 및 장치, 역변환 장치 그리고 aes 바이트 치환연산장치
KR100435052B1 (ko) 암호화장치
AU2003213318B2 (en) Block cipher apparatus using auxiliary transformation
JP4052480B2 (ja) 疑似乱数発生方法、疑似乱数発生器、及び疑似乱数発生プログラム
KR100296958B1 (ko) 블록 데이터 암호화 장치
WO2005073842A1 (ja) 擬似乱数生成装置および擬似乱数生成プログラム
US6606385B1 (en) Data encrypting/decrypting conversion methods and apparatuses and data communication system adopting the same
KR100800468B1 (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
US8122075B2 (en) Pseudorandom number generator and encryption device using the same
Aqel et al. Analysis of stream cipher security algorithm
JPH0675525A (ja) 暗号通信装置
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
JPWO2006019152A1 (ja) メッセージ認証子生成装置、メッセージ認証子検証装置、およびメッセージ認証子生成方法
Ghazi et al. Robust and Efficient Dynamic Stream Cipher Cryptosystem
Hashim et al. Design and implementation of proposed 320 bit RC6-cascaded encryption/decryption cores on altera FPGA
JP4857230B2 (ja) 疑似乱数生成装置及びそれを用いた暗号化処理装置
Subramanian et al. Adaptive counter clock gated S-Box transformation based AES algorithm of low power consumption and dissipation in VLSI system design
JP2008151829A (ja) 暗号演算装置
Abdulwahed Chaos-Based Advanced Encryption Standard
WO2009104827A1 (en) Method and apparatus for generating key stream for stream cipher, s-box for block cipher and method for substituting input vector using the s-box
JPWO2008117804A1 (ja) ストリーム暗号向け擬似乱数生成装置とプログラムと方法
JPH09288565A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、鍵系列生成装置及び方法、並びに記憶媒体
Sönmez Turan On statistical analysis of synchronous stream ciphers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040323

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: 20050830

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050912

R151 Written notification of patent or utility model registration

Ref document number: 3724399

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080930

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090930

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090930

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100930

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100930

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110930

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120930

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120930

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130930

Year of fee payment: 8

EXPY Cancellation because of completion of term