JP2000194261A - デ―タ乱数化装置 - Google Patents

デ―タ乱数化装置

Info

Publication number
JP2000194261A
JP2000194261A JP10368875A JP36887598A JP2000194261A JP 2000194261 A JP2000194261 A JP 2000194261A JP 10368875 A JP10368875 A JP 10368875A JP 36887598 A JP36887598 A JP 36887598A JP 2000194261 A JP2000194261 A JP 2000194261A
Authority
JP
Japan
Prior art keywords
data
bit
input
randomized
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10368875A
Other languages
English (en)
Inventor
Kaoru Yokota
薫 横田
Motoji Omori
基司 大森
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP10368875A priority Critical patent/JP2000194261A/ja
Publication of JP2000194261A publication Critical patent/JP2000194261A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 高いデータ撹乱能力を維持しつつ、データ長
が可変の入力データに対応できるデータ乱数化装置を提
供する。 【解決手段】 データ撹乱部110は、第1段数制御部
130から入力されるデータと、第1データ制御部12
0の制御の下で入力される第1乱数化データ保管部10
0の保管データの部分データによって、得られる出力デ
ータを出力し、第1乱数化データ保管部100では保管
するデータの一部が第2データ制御部121の制御の下
でその出力データに書き換えられる。この一連の操作
を、指定された回数だけ繰り返す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータ通信における
暗号化技術に関し、特にデータ乱数化方式に関する。
【0002】
【従来の技術】近年、ディジタル通信が急速に普及して
きたが、健全な産業の発展やプライバシ−を保護する等
の観点から、通信におけるデータの機密性を確保するた
めのセキュリティ技術が要求されている。その中で、一
方向性のデータ乱数化方式はブロック暗号方式の部分鍵
生成手段、メッセージ認証、ディジタル署名などの各種
暗号方式に必要となるものである。
【0003】一方向性のデータ乱数化装置の従来例とし
て、ブロック暗号方式FEAL(Fast Data Enciphermen
t Algorithm)の拡大鍵生成手段として用いられている、
特公平7−60292号公報のデータ乱数化装置があ
る。その内部構成図を図4に示す。
【0004】本データ乱数化装置3は、データ乱数化部
30と第3段数制御部31と第3乱数化データ保管部3
2から構成され、64ビットのデータを入力としてデー
タ乱数化処理を行い、256ビットの乱数化データを出
力する。
【0005】データ乱数化部30は、第3段数制御部3
1から入力される64ビットのデータC0及び32ビッ
トのデータC1に従いデータ乱数化処理を行い32ビッ
トの乱数化データC4と64ビットのデータC2と32
ビットのデータC3を出力する。
【0006】第3段数制御部31は、データ乱数化部3
0が何回データ乱数化処理を行ったかをカウントし、デ
ータ乱数化部30への入力データC0及びC1を制御す
る。データ乱数化処理が指定された回数に満たない場合
には、データ乱数化部30より入力される64ビットの
データC2及び32ビットのデータC3をそれぞれデー
タ乱数化部30への入力データC0及びC1として再び
入力する。但し、データ乱数化部30が1回目のデータ
乱数化処理を行うときは、C0としてデータ乱数化装置
3に入力される64ビットの入力データ、C1として値
0をデータ乱数化部30に入力する。データ乱数化処理
が指定された回数になった場合はデータ乱数化部30へ
の入力を終了し、データ乱数化部30も処理を終了す
る。なお、本実施の形態では上記指定された回数を8回
とする。
【0007】第3乱数化データ保管部32は、データ乱
数化部30から順次入力される32ビットの乱数化デー
タC4を保管する。データ乱数化部30及び第3段数制
御部31が上記の処理を終了した時点で、保管している
全てのデータをデータ乱数化装置3から出力するもので
ある。但し、上記出力データは先に入力され保管してい
たデータから順に出力するものとする。また、本実施の
形態では上記データのデータ長は32ビット×8=25
6ビットである。
【0008】<データ乱数化部30の構成>データ乱数
化部30の内部構成を示すブロック図を図5に示す。
【0009】データ乱数化部30は、データ変換部30
0と第1排他的論理和部301から構成され、64ビッ
トのデータC0と32ビットのデータC1を入力として
データ乱数化処理を行い、32ビットの乱数化データC
4と64ビットのデータC2と32ビットのデータC3
を出力する。以下、データ乱数化部30の動作について
述べる。
【0010】入力される64ビットのデータC0は、上
位32ビットをA1、下位32ビットをA0として二つ
の32ビットデータに分割される。上記A1は、データ
変換部300に入力されると同時に、32ビットの出力
データC3としてデータ乱数化部30から出力される。
上記A0は、第1排他的論理和部301に入力されると
同時に、32ビットのデータB1として後で述べる32
ビットのデータB0と、B1を上位、B0を下位として
連結されてデータ乱数化部30から出力される。第1排
他的論理和部301は、入力される上記A0と32ビッ
トの入力データC1とのビット毎の排他的論理和演算を
行い、演算結果のデータA2を出力する。データ変換部
300は、入力される上記A2と32ビットのデータA
1を入力データとするデータ変換処理を行い、32ビッ
トのデータB0を出力する。また、B0は出力されると
同時に32ビットの出力データC0として第3乱数化デ
ータ保管部32に入力され、保管される。上記B0及び
B1は、B1を上位32ビット、B0を下位32ビット
として連結され64ビットのデータC2としてデータ乱
数化部30から出力される。
【0011】本従来例では、前段階のデータとの排他的
論理和演算によりデータ融合を行ったものをデータ変換
部300の入力として乱数化データを生成していくの
で、64ビットの入力データからランダムな256ビッ
トの乱数化データを出力することができる。
【0012】
【発明が解決しようとする課題】しかしながら、この従
来例におけるデータ乱数化装置では、データ乱数化装置
の入力データが64ビットと固定されており、例えば1
28ビットのデータをデータ乱数化することが要求され
るようなシステムには対応できない。
【0013】そこで、本発明はかかる問題点に鑑みてな
されたものであり、入力データのビット数が固定でな
く、ある一定の範囲で自由に設定できるデータ乱数化装
置を提供することを目的とする。
【0014】
【課題を解決するための手段】上記目的を達成するため
に本願発明は、Lビットの入力データを所定の処理によ
って、予め指定されたビット数の乱数化データに変換
し、乱数化データを出力するデータ乱数化装置であっ
て、RビットデータとSビットデータを入力データとし
てデータ変換し、Tビットの出力データを出力する第1
のデータ変換手段と、第1のデータ変換手段から入力さ
れるTビットデータを、入力データとしてデータ変換
し、Uビットの出力データを出力する第2のデータ変換
手段と、Qビット(L≦Q)のデータを保管し、入力さ
れるUビット(U≦Q)データで、保管しているQビッ
トデータのうちUビットを、書き換える第1のデータ保
管手段と、Wビットのデータを保管し、第1のデータ変
換手段から入力されるTビット(T≦W)データで、保
管しているWビットデータのうちTビットを、書き換え
る第2のデータ保管手段とから構成され、第1のデータ
保管手段は、データ乱数化装置に入力されるLビットデ
ータを、保管するQビットデータのうちのLビットデー
タとして、初期保管し、第2のデータ変換手段から入力
されるUビットデータで、保管しているLビットデータ
のうちUビットを、書き換え、予め指定された時に、保
管しているQビットのうちVビット(Q≧V)をデータ
乱数化装置から出力し、第1のデータ変換手段は、第1
のデータ保管手段が保管するQビットの保管データのう
ちRビット及び、第2のデータ保管手段が保管するWビ
ットの保管データのうちSビットを、入力データとし
て、データ変換しTビットの出力データを出力すること
を特徴としている。
【0015】これにより、上記従来例のごとく入力デー
タのデータ長が固定でなく、一定の範囲内の如何なるデ
ータ長であっても、十分にランダム化された乱数化デー
タを出力することが可能なデータ乱数化装置が実現でき
る。
【0016】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を用いて詳細に説明する。
【0017】(実施の形態1) <データ乱数化装置1の構成>図1は、本実施の形態に
係るデータ乱数化装置1の内部構成図である。
【0018】本データ乱数化装置1は、32ビット以上
256ビット以下の任意のデータ長のデータを入力とし
て、データ乱数化処理を行い、256ビットの乱数化デ
ータを出力するものであり、第1乱数化データ保管部1
00と、データ撹乱部110と、第1データ制御部12
0と、第2データ制御部121と、第1段数制御部13
0から構成される。また、データ乱数化装置1は、後で
述べる一連の処理を1段あたりの基本処理として、何段
処理が行われたかをカウントするためのカウンター14
0を内蔵している。
【0019】第1乱数化データ保管部100は、256
ビットのデータを上位から各々32ビットの8個のデー
タ Dt1[7],Dt1[6],…,Dt1[0]に
分割して保管する。また、外部から32ビットの入力デ
ータがある場合は、第2データ制御部121の制御に従
って、保管されている上記32ビットデータ Dt1
[7],Dt1[6],…,Dt1[0]のうち1つの
データ内容を、その入力データに書き換える。
【0020】第1段数制御部130は、カウンター14
0の値CT1によってデータ撹乱部110へのフィード
バック入力を制御する。カウンター140の値CT1が
予め設定している段数Nに満たない場合、第1段数制御
部130はデータ撹乱部110から入力される32ビッ
トデータを出力し、さらに次段の処理を実行する。カウ
ンター140の値CT1が上記設定段数Nと等しい場
合、データ乱数化装置1内でのデータ乱数化処理を終了
し、第1乱数化データ保管部100が保管している32
ビット×8個のデータを上位からDt1[7],Dt1
[6],…,Dt1[0]の順に連結して256ビット
のデータとしてデータ乱数化装置1から出力するものと
する。なお、本実施の形態では上記設定段数NをN=1
6とする。
【0021】第1データ制御部120は、カウンター1
40の値CT1に従って第1乱数化データ保管部100
からデータ撹乱部110へ入力する32ビットデータを
制御する。また、第1データ制御部120は、第1乱数
化データ保管部100に保管されている32ビット×8
のデータ Dt1[7],Dt1[6],…,Dt1
[0]のうち、カウンター140の値CT1に従って、
32ビットデータDt1[(CT1−1) mod 8]
のデータ内容をデータ撹乱部100に入力する。但し、
α mod β は、αをβで割った時の余りを表す。
【0022】第2データ制御部121は、上記カウンタ
ー140の値CT1に従ってデータ撹乱部110から第
1乱数化データ保管部100に入力するデータを制御す
る。第2データ制御部121は、第1乱数化データ保管
部100に保管されている32ビット×8のデータDt
1[7],Dt1[6],…,Dt1[0]のうち、カ
ウンター140の値CT1に従って32ビットデータD
t1[(CT1−1)mod 8]のデータ内容を、デ
ータ撹乱部110から出力される32ビットデータのデ
ータ内容に書き換える。
【0023】<データ撹乱部110の構成>図2は、図
1に示されるデータ撹乱部110の構成の一例を示すブ
ロック図である。
【0024】本図において、このデータ撹乱部110
は、第1換字テーブルデータ保管部1101と、第2換
字テーブルデータ保管部1102と、第3換字テーブル
データ保管部1103と、第4換字テーブルデータ保管
部1104と、第1テーブル値加算部1105と、第2
テーブル値加算部1106と、テーブル値排他的論理和
部1107とデータ加算部1108を備えている。
【0025】第1換字テーブルデータ保管部1101
は、予め設定している32ビット×256の換字テーブ
ルデータを上位から32ビットずつ256個のブロック
に分割し、分割したブロックをそれぞれ上位から32ビ
ットのテーブル値Tab1[0],Tab1[1],
…,Tab1[255]として保管している。第2換字
テーブルデータ保管部1102は、予め設定している3
2ビット×256の換字テーブルデータを上位から32
ビットずつ256個のブロックに分割し、分割したブロ
ックをそれぞれ上位から32ビットのテーブル値Tab
2[0],Tab2[1],…,Tab2[255]と
して保管している。第3換字テーブルデータ保管部11
03は、予め設定している32ビット×256の換字テ
ーブルデータを上位から32ビットずつ256個のブロ
ックに分割し、分割したブロックをそれぞれ上位から3
2ビットのテーブル値Tab3[0],Tab3
[1],…,Tab3[255]として保管している。
第4換字テーブルデータ保管部1104は、予め設定し
ている32ビット×256の換字テーブルデータを上位
から32ビットずつ256個のブロックに分割し、分割
したブロックをそれぞれ上位から32ビットのテーブル
値Tab4[0],Tab4[1],…,Tab4[2
55]として保管している。なお、第1〜第4換字テー
ブルデータ保管部1101〜1104に保管している上
記データはデータ撹乱部110外部からの呼び出しがで
きないような状態で保管されているものとする。
【0026】以下、データ撹乱部110の動作について
述べる。入力された32ビットのデータD1およびD0
は、まず最初にデータ加算部1108に入力される。デ
ータ加算部1108は入力された32ビットのデータD
1およびD0とを算術加算演算した結果を32ビットの
出力データEとして出力する。ここで32ビット目以上
の繰り上がりは無視される。すなわち、 E=(D1 + D0) mod 2^32 とする。ただし、“2^32”は「2の32乗」を表
す。
【0027】次に、上記32ビットデータEは上位から
8ビットずつの4個のブロックF3,F2,F1,F0
に分割され、それぞれ第1換字テーブルデータ保管部1
101、第2換字テーブルデータ保管部1102、第3
換字テーブルデータ保管部1103、第4換字テーブル
データ保管部1104に入力される。
【0028】第1換字テーブルデータ保管部1101で
は、入力される上記8ビットのデータF3に基づき、3
2ビットのテーブル値Tab1[F3]がJ3として出
力される。
【0029】第2換字テーブルデータ保管部1102で
は、入力される上記8ビットのデータF2に基づき、3
2ビットのテーブル値Tab2[F2]がJ2として出
力される。
【0030】第3換字テーブルデータ保管部1103で
は、入力される上記8ビットのデータF1に基づき、3
2ビットのテーブル値Tab3[F1]がJ1として出
力される。
【0031】第4換字テーブルデータ保管部1104で
は、入力される上記8ビットのデータF0に基づき、3
2ビットのテーブル値Tab4[F0]がJ0として出
力される。
【0032】第1テーブル値加算部1105は、第1換
字テーブルデータ保管部1101より出力される32ビ
ットテーブル値J3及び第2換字テーブルデータ保管部
1102より出力される32ビットテーブル値J2とを
算術加算演算して出力データQ0とする。また32ビッ
ト目以上の繰り上がりは無視される。すなわち、Q0=
(J3 + J2) mod 2^32である。
【0033】テーブル値排他的論理和部1107は、上
記Q0と第3換字テーブルデータ保管部1103から出
力される32ビットテーブル値J1とを排他的論理和し
てQ1とする。すなわち、 Q1=Q0(+)J1 とする。ただし、演算子“(+)”は対応するビット毎
の排他的論理和を意味する。
【0034】第2テーブル値加算部1106は、上記Q
1と第4換字テーブルデータ保管部1104より出力さ
れる32ビットテーブル値J0とを算術加算演算して出
力データQ2とする。また32ビット目以上の繰り上が
りは無視される。すなわち、 Q2=(Q1 + J0) mod 2^32 である。
【0035】そして、Q2をデータ撹乱部110の32
ビット出力データとする。 <データ乱数化装置1の動作>以下に、データ乱数化装
置1の動作について述べる。
【0036】まず最初に、第1乱数化データ保管部10
0は、データ乱数化装置1の32〜256ビットの入力
データについて、データ長が256ビットに満たない場
合は上位ビットに必要な個数だけ“0”を挿入して25
6ビットのデータとした後、32ビット×8個のデータ
に分割して上位からそれぞれ Dt1[7],Dt1
[6],…,Dt1[0]として保管する。また、第1
段数制御部130は予め内部に保管している32ビット
の初期データIV1をデータ撹乱部110に入力する。
【0037】上記処理の後、カウンター140の値を0
にリセットして、以下に述べる1段あたりの処理をカウ
ンター140の値CT1がN=16になるまで繰り返し
実行する。
【0038】まず最初に、カウンター140の値CT1
を1だけ増加させる。次に、第1データ制御部120は
第1乱数化データ保管部100に保管されている8個の
データ Dt1[7],Dt1[6],…,Dt1
[0] のうち、カウンター140の値CT1に従っ
て、32ビットデータDt1[(CT1−1) mod
8]のデータ内容をデータHとしてデータ撹乱部110
に入力する。上記の処理の後、データ撹乱部110は上
記32ビットデータHと、一つ前の段の処理において
(CT1=1の場合は初期設定時において)第1段数制
御部130から入力される32ビットデータI(CT1
=1の場合はIV1)とをもとにデータ撹乱処理を行
い、32ビットの出力データVを出力する。この出力デ
ータVは、第1段数制御部130と第2データ制御部1
21の両方に入力される。
【0039】上記データ撹乱処理の後、第2データ制御
部121は第1乱数化データ保管部100に保管されて
いる8個のデータ Dt1[7],Dt1[6],…,
Dt1[0]のうち、カウンター140の値CT1に従
って、32ビットデータDt1[(CT1−1) mo
d 8]のデータ内容を、データ撹乱部110から入力
される上記32ビットデータVのデータ内容に書き換え
る。さらに、第1段数制御部130は、カウンターの値
CT1が予め設定している段数N=16に等しいかどう
かを判定する。CT1=N(=16)の場合、第1乱数
化データ保管部100に保管されている32ビット×8
個のデータを上位からDt1[7],Dt1[6],
…,Dt1[0]の順に連結して256ビットのデータ
とし、データ乱数化装置1から出力し、全ての処理を終
了する。CT1<N(=16)の場合、さらに次段の処
理を実行する。
【0040】以上で述べた1段あたりの基本処理をCT
1=N(=16)になるまで繰り返し実行することで、
データ乱数化処理が実行される。
【0041】<データ乱数化装置1の安全性>次に本デ
ータ乱数化装置1の安全性について、述べる。
【0042】データ乱数化装置1から出力される256
ビットの乱数化データからもとの入力データを求めるた
めには、データ撹乱部110の出力データ32ビットか
ら32ビットの入力データを求める必要がある。本実施
の形態で述べたデータ撹乱部110(図2参照)におい
ては、第1〜第4換字テーブルデータ保管部1101〜
1104に保管されている32×256×4ビットのデ
ータはデータ撹乱部の外部からの読み出しができず、秘
密に保持されているので、第1〜第4換字テーブルデー
タ保管部1101〜1104の出力データからもとの入
力データを求めることはできない。
【0043】即ち、データ撹乱部110の出力データか
ら入力データを求めることはできない。また、仮に第1
〜第4換字テーブルデータ保管部1101〜1104に
保管されている32×256×4ビットのデータが解読
者に既知であっても、以下の式 Q2=(Q1+J0) mod 2^32 Q1=Q0(+)J1 Q0=(J3 + J2) mod 2^32 を同時に満たすJ3〜J0をそれぞれ第1〜第4換字テ
ーブルデータ保管部1101〜1104から見つける必
要があり、これらの値を一意に求めることは極めて困難
である。よって、データ乱数化装置1の出力乱数化デー
タ256ビットからもとの入力データを求めることは不
可能である。
【0044】また、各データ撹乱部の出力データは、そ
の1つ前の段階でのデータ撹乱部の出力データに従っ
て、乱数化データ保管部に保管されているデータを撹乱
することで得られるので、乱数化データ保管部のデータ
書き換えを繰り返し行うことで乱数化データ保管部の保
管データから十分にランダム化された乱数化データを得
ることができる。
【0045】さらに、本データ乱数化装置においては、
入力データが32〜256ビットの任意のデータ長に対
応できるという特徴を有している。
【0046】以上のように、本発明により、32〜25
6ビットの任意データ長の入力データから十分にランダ
ム化された安全性の高い乱数化データを得ることがで
き、複数の用途でそれぞれ必要とする入力データのデー
タ長さが異なる場合でも同一のデータ乱数化装置により
対応することが可能となる。
【0047】なお、本実施の形態のデータ乱数化装置の
各構成部は、EXOR(Exclusive-OR)等の論理回路を
用いた専用のハ−ドウェアで実現することができるだけ
でなく、汎用のマイクロプロセッサ、制御プログラム、
上記テーブルを格納したROM及び作業域としてのRA
M等からなるコンピュ−タシステム上でのソフトウェア
によって実現することができるのは言うまでもない。
【0048】また、本実施の形態のデータ乱数化装置
は、ブロック暗号方式の部分鍵生成手段として用いるこ
とができる。
【0049】また、本実施の形態では、1段の基本操作
の繰り返し段数Nを16段としているが、これは16以
外の値であってもよい。
【0050】また、本実施の形態では、乱数化データ保
管部100からの取り出されたデータと、1段前のデー
タ撹乱部の出力データで、データ撹乱を行っているが、
これは1段前に限られたものではなく、それより以前の
段の出力データであれば何でもよい。
【0051】また、本実施の形態では、第1乱数化デー
タ保管部100で保管するデータを32ビット×8個の
データとしているが、これは8個でなくてよい。第1乱
数化データ保管部100での個数が8個より少ない場合
は、出力データは256ビットよりも少なくなる。この
場合、入力データのデータ長の上限も256ビットより
も少なくなる。一方、第1乱数化データ保管部100で
の個数が8個より多い場合は、出力データは256ビッ
トよりも多くなる。この場合、入力データ長の上限も2
56ビットよりも多くなる。
【0052】また、データ撹乱部110のデータ撹乱手
段は、本実施の形態の構成に限られるものではなく、3
2ビットの2個の入力データから出力データを一意に特
定できるが逆に出力データから2個の入力データが特定
できないような変換であればよい。
【0053】さらに、本実施の形態では、32ビットデ
ータを1個のデータとし、データ撹乱部110は32ビ
ットのデータブロックを変換単位としたが、本発明はこ
のビット数に限定されるものではない。例えば、本発明
を汎用の64ビットCPUで実現する場合であれば64
ビットデータを1個のブロックとして変換したり、逆に
処理の高速性を考慮し、16ビットのデータを1個のブ
ロックとして変換するものであってもよい。その場合、
第1乱数化データ保管部100で保管するデータのブロ
ック単位長もそれに合わせて32ビット以外のビット数
になる。
【0054】(実施の形態2) <データ乱数化装置2の構成>図3は、本実施の形態に
係るデータ乱数化装置2の内部構成図である。
【0055】本データ乱数化装置2は、32ビット以上
128ビット以下の任意のデータ長のデータを入力とし
て、データ乱数化処理を行い、128×[N/M]ビッ
トの乱数化データを出力するものであり、第2乱数化デ
ータ保管部200と、データ撹乱部210と、第3デー
タ制御部220と、第4データ制御部221と、第2段
数制御部230から構成される。ただし、[α/β]
はαをβで割った商の整数部分の値を表し、M,Nは後
で述べるように予め設定される定数値である。また、デ
ータ乱数化装置2は、後で述べる一連の処理を1段あた
りの基本処理として、何段処理が行われたかをカウント
するためのカウンター240を内蔵している。
【0056】第2乱数化データ保管部200は、128
ビットのデータを上位から各々32ビットの4個のデー
タ Dt2[3],Dt2[2],…,Dt2[0]に
分割して保管する。また、外部から32ビットの入力デ
ータがある場合は第4データ制御部221の制御に従っ
て、保管されている上記32ビットデータDt2
[3],Dt2[2],…,Dt2[0]のうち1つの
データ内容を、その入力データの内容に書き換える。
【0057】第2段数制御部230は、上記カウンター
240の値CT2によってデータ撹乱部210への入力
を制御する。カウンターの値CT2が予め設定している
段数Nに満たない場合、第2段数制御部230はデータ
撹乱部210から入力される32ビットデータを出力
し、さらにもう1段の処理を実行する。カウンターの値
CT2が上記設定段数Nと等しい場合、データ乱数化装
置2内でのデータ乱数化処理を終了し、第2乱数化デー
タ保管部200が保管している32ビット×4個のデー
タを上位からDt2[3],Dt2[2],…,Dt2
[0]の順に連結して128ビットのデータとしてデー
タ乱数化装置2から出力するものとする。また、第2段
数制御部230では上記の設定段数Nとは異なる値かつ
Nよりも小さな値の段数Mを予め設定しており、カウン
ターの値CT2が式 CT2 mod M=0 を満たす場合には、第2乱数化データ保管部200が保
管している32ビット×4個のデータを上位からDt2
[3],Dt2[2],…,Dt2[0]の順に連結し
て128ビットのデータとしてデータ乱数化装置2から
出力した後、次段の処理を実行する。また、CT2が上
記の式を満たさない場合は何も行わず次段の処理を実行
する。なお、本実施の形態では上記設定段数N,Mをそ
れぞれN=16,M=8とする。従ってこの時、データ
乱数化装置2の出力データは128×[16/8]=2
56ビットである。
【0058】第3データ制御部220は、カウンター2
40の値CT2に従って第2乱数化データ保管部200
からデータ撹乱部210へ入力する32ビットデータを
制御する。また、第2データ制御部220は、第2乱数
化データ保管部200に保管されている32ビット×4
のデータ Dt2[3],Dt2[2],…,Dt2
[0]のうち、カウンター240の値CT2に従って、
32ビットデータDt2[(CT2−1) mod 4]
のデータ内容をデータ撹乱部200に入力する。
【0059】第4データ制御部221は、上記カウンタ
ー240の値CT2に従ってデータ撹乱部210から第
2乱数化データ保管部200に入力するデータを制御す
る。第4データ制御部221は、第2乱数化データ保管
部200に保管されている32ビット×4のデータDt
2[3],Dt2[2],…,Dt2[0]のうち、カ
ウンター240の値CT2に従って32ビットデータD
t2[(CT2−1)mod 4]のデータ内容を、デ
ータ撹乱部210から出力される32ビットデータのデ
ータ内容に書き換える。
【0060】<データ撹乱部210の構成>データ撹乱
部210の内部構成および動作は実施の形態1のデータ
撹乱部110と同じである。
【0061】<データ乱数化装置2の動作>以下に、デ
ータ乱数化装置2の動作について述べる。
【0062】まず最初に、第2乱数化データ保管部20
0は、データ乱数化装置2の32〜128ビットの入力
データについて、データ長が128ビットに満たない場
合は上位ビットに必要な個数だけ“0”を挿入して12
8ビットのデータとした後、32ビット×4個のデータ
に分割して上位からそれぞれ Dt2[3],Dt2
[2],…,Dt2[0]として保管する。また、第2
段数制御部230は予め内部に保管している32ビット
の初期データIV2をデータ撹乱部210に入力する。
【0063】上記処理の後、データ乱数化装置2が内蔵
するカウンター240の値を0にリセットして、以下に
述べる1段あたりの処理をカウンター240の値CT2
がN(=16)になるまで繰り返し実行する。
【0064】まず最初に、カウンター240の値CT2
を1だけ増加させる。次に、第2データ制御部220は
第2乱数化データ保管部200に保管されている4個の
データ Dt2[3],Dt2[2],…,Dt2
[0] のうち、カウンター240の値CT2に従っ
て、32ビットデータ Dt2[(CT2−1) mod
4]のデータ内容を、データXとしてデータ撹乱部2
10に入力する。上記の処理の後、データ撹乱部210
は上記32ビットデータXと、一つ前の段の処理におい
て(CT2=1の場合は初期設定時において)第2段数
制御部230から入力される32ビットデータYとをも
とにデータ撹乱処理を行い、32ビットの出力データZ
を出力する。この出力データZは、第2段数制御部23
0と第4データ制御部221の両方に入力される。
【0065】上記データ撹乱処理の後、第4データ制御
部221は第2乱数化データ保管部200に保管されて
いる4個のデータ Dt2[3],Dt2[2],…,
Dt2[0] のうち、カウンター240の値CT2に
従って、32ビットデータDt2[(CT2−1) m
od 4]のデータ内容を、データ撹乱部210から入
力される上記32ビットデータZのデータ内容に書き換
える。さらに、第2段数制御部230は、カウンター2
40の値CT2が予め設定している段数N(=16)に
等しいかどうかを判定する。CT2=(N=16)の場
合、第2乱数化データ保管部200に保管されている3
2ビット×4個のデータを上位から Dt2[3],D
t2[2],…,Dt2[0] の順に連結して128
ビットのデータとし、データ乱数化装置2から出力し、
全ての処理を終了する。さらに、CT2<N(=16)
の場合で、カウンター240の値CT2が予め設定して
いる値M(=8)に対して式 CT2 mod M=0 の関係を満たす場合は、第2乱数化データ保管部200
に保管されている32ビット×4個のデータを上位から
Dt2[3],Dt2[2],…,Dt2[0]の順
に連結して128ビットのデータとし、データ乱数化装
置2から出力した後、さらに次段の処理を実行する。C
T2が上記のいずれの条件も満たさない場合、上記の出
力は行わず、さらに次段の処理を実行する。
【0066】以上で述べた1段あたりの基本処理をCT
2=N(=16)になるまで繰り返し実行し、全ての処
理を終了するまでにデータ乱数化装置2から出力される
データを、先に出力されたものを上位として連結して得
られた256ビットのデータをデータ乱数化装置2の出
力データとする。
【0067】<データ乱数化装置2の安全性>本データ
乱数化装置2の安全性については、実施の形態1のデー
タ乱数化装置1の安全性と全く同じことがいえる。即
ち、データ乱数化装置2はデータ乱数化装置1と同様十
分な安全性を得ることができる。
【0068】なお、本実施の形態のデータ乱数化装置の
各構成部は、EXOR(Exclusive-OR)等の論理回路を
用いた専用のハ−ドウェアで実現することができるだけ
でなく、汎用のマイクロプロセッサ、制御プログラム、
上記テーブルを格納したROM及び作業域としてのRA
M等からなるコンピュ−タシステム上でのソフトウェア
によって実現することができるのは言うまでもない。
【0069】また、本実施の形態のデータ乱数化装置
は、ブロック暗号方式の部分鍵生成手段として用いるこ
とができる。
【0070】また、本実施の形態では、1段の基本操作
の繰り返し段数Nを16としているが、これは16以外
の値であってもよく、また、乱数化装置2からの出力タ
イミングに関する設定段数Mの値を8としているが、こ
れは8以外の値であってもよい。このとき、M,Nの値
によっては、乱数化装置2の出力データのビット数は2
56ビット以外のビット数になる場合もある。
【0071】また、本実施の形態では、第2乱数化デー
タ保管部200からの取り出されたデータと、1段前の
データ撹乱部の出力データで、データ撹乱を行っている
が、これは1段前に限られたものではなく、それより以
前の段の出力データであれば何でもよい。
【0072】また、本実施の形態では、第2乱数化デー
タ保管部200で保管するデータを32ビット×4個の
データとしているが、これは4個でなくてよい。第2乱
数化データ保管部200での個数が4個より少ない場合
は、出力データは256ビットよりも少なくなる。この
場合、入力データのデータ長の上限も128ビットより
も少なくなる。一方、第2乱数化データ保管部100で
の個数が4個より多い場合は、出力データは256ビッ
トよりも多くなる。この場合、入力データ長の上限も1
28ビットよりも多くなる。
【0073】また、データ撹乱部110のデータ撹乱手
段は、本実施の形態の構成に限られるものではなく、3
2ビットの2個の入力データから出力データを一意に特
定できるが逆に出力データからは2個の入力データが特
定できないような変換であればよい。
【0074】さらに、本実施の形態では、32ビットデ
ータを1個のデータとし、データ撹乱部110は32ビ
ットのデータブロックを変換単位としたが、本発明はこ
のビット数に限定されるものではない。例えば、本発明
を汎用の64ビットCPUで実現する場合であれば64
ビットデータを1個のブロックとして変換したり、逆に
処理の高速性を考慮し、16ビットのデータを1個のブ
ロックとして変換するものであってもよい。その場合、
第1乱数化データ保管部100で保管するデータのブロ
ック単位長もそれに合わせて32ビット以外のビット数
になる。
【0075】
【発明の効果】以上の説明から明らかなように本発明は
一定の範囲で任意のデータ長を有するデータを乱数化し
て、予め決められたデータ長の乱数化データを出力する
データ乱数化装置であって、乱数化データ保管部が保管
する保管データの部分データを、以前にデータ撹乱部か
ら出力された出力データに従ってデータ撹乱を行うデー
タ撹乱部を有することを特徴とする。
【0076】つまり、従来例の如くある固定されたデー
タ長の入力データ全体を繰り返しデータ撹乱しながら乱
数化データを生成していくのはなく、入力データを一旦
乱数化データ保管部保管して、その部分データをデータ
撹乱部によって以前の撹乱データをもとにデータ撹乱し
ていく。これにより、従来からあるデータ乱数化装置と
同様の乱数化処理性能を維持しつつ、ある一定範囲内の
任意のデータ長を有するデータを入力とすることが可能
なデータ乱数化装置が実現されている。
【0077】また、データの乱数化処理で必要とされる
時間のほとんどがデータ撹乱部での撹乱操作に要する時
間となるので、データ撹乱部を本実施の形態のような簡
易な演算手段などで構成すれば、高速なデータ乱数化処
理が実現できると期待される。
【0078】よって、本発明に係るデータ乱数化装置
は、従来からあるデータ乱数化装置におけるデータ乱数
化性能を維持しつつ、通信システム内において、データ
に乱数列をビット毎に加算(排他的論理和)するストリ
ーム暗号により、平文データを順次暗号化していくため
の暗号化鍵生成手段として、可変長入力のデータ乱数化
装置が必要な場合にも対応できる。即ち、本発明のデー
タ乱数化装置は前記のような通信システムにおいて、実
装面の簡便性及び運用の効率化を向上させ、その実用的
効果は極めて大きい。
【図面の簡単な説明】
【図1】本発明の一実施の形態に係るデータ乱数化装置
1の構成を示すブロック図
【図2】図1に示すデータ撹乱部110の構成を示すブ
ロック図
【図3】本発明の一実施の形態に係るデータ乱数化装置
2の構成を示すブロック図
【図4】従来のデータ乱数化装置の構成を示すブロック
【図5】図4に示されるデータ乱数化部30の構成を示
すブロック図
【符号の説明】
1 データ乱数化装置 2 データ乱数化装置 3 データ乱数化装置 30 データ乱数化部 31 第3段数制御部 32 第3乱数化データ保管部 100 第1乱数化データ保管部 110 データ撹乱部 120 第1データ制御部 121 第2データ制御部 130 第1段数制御部 140 カウンター 200 第1乱数化データ保管部 210 データ撹乱部 220 第3データ制御部 221 第4データ制御部 230 第2段数制御部 240 カウンター 300 データ変換部 301 排他的論理和部 1101 第1換字テーブル保管部 1102 第2換字テーブル保管部 1103 第3換字テーブル保管部 1104 第4換字テーブル保管部 1105 第1テーブル値加算部 1106 第2テーブル値加算部 1107 テーブル値排他的論理和部 1108 データ加算部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】Lビットの入力データを所定の処理によっ
    て、予め指定されたビット数の乱数化データに変換し、
    乱数化データを出力するデータ乱数化装置であって、 RビットデータとSビットデータを入力データとしてデ
    ータ変換し、Tビットの出力データを出力する第1のデ
    ータ変換手段と、 第1のデータ変換手段から入力されるTビットデータ
    を、入力データとしてデータ変換し、Uビットの出力デ
    ータを出力する第2のデータ変換手段と、 Qビット(L≦Q)のデータを保管し、入力されるUビ
    ット(U≦Q)データで、保管している前記Qビットデ
    ータのうちUビットを、書き換える第1のデータ保管手
    段と、 Wビットのデータを保管し、前記第1のデータ変換手段
    から入力されるTビット(T≦W)データで、保管して
    いる前記WビットデータのうちTビットを、書き換える
    第2のデータ保管手段とからなるデータ乱数化装置であ
    って、 前記第1のデータ保管手段は、データ乱数化装置に入力
    されるLビットデータを、保管するQビットデータのう
    ちのLビットデータとして、初期保管し、前記第2のデ
    ータ変換手段から入力されるUビットデータで、保管し
    ている前記LビットデータのうちUビットを、書き換
    え、予め指定された時に、保管している前記Qビットの
    うちVビット(Q≧V)をデータ乱数化装置から出力
    し、 前記第1のデータ変換手段は、前記第1のデータ保管手
    段が保管するQビットの保管データのうちRビット及
    び、前記第2のデータ保管手段が保管するWビットの保
    管データのうちSビットを、入力データとして、データ
    変換しTビットの出力データを出力すること、 を特徴とするデータ乱数化装置。
  2. 【請求項2】前記第1のデータ変換手段は、前記第1の
    データ保管手段が保管するQビットの保管データのう
    ち、予め指定された間に書き換えられていないデータか
    ら、Rビットのデータを取り出し、入力データとして、
    Tビットの出力データを、出力することを特徴とする請
    求項1に記載のデータ乱数化装置。
JP10368875A 1998-12-25 1998-12-25 デ―タ乱数化装置 Pending JP2000194261A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10368875A JP2000194261A (ja) 1998-12-25 1998-12-25 デ―タ乱数化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10368875A JP2000194261A (ja) 1998-12-25 1998-12-25 デ―タ乱数化装置

Publications (1)

Publication Number Publication Date
JP2000194261A true JP2000194261A (ja) 2000-07-14

Family

ID=18492984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10368875A Pending JP2000194261A (ja) 1998-12-25 1998-12-25 デ―タ乱数化装置

Country Status (1)

Country Link
JP (1) JP2000194261A (ja)

Similar Documents

Publication Publication Date Title
JP4127472B2 (ja) データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体
US6314186B1 (en) Block cipher algorithm having a robust security against differential cryptanalysis, linear cryptanalysis and higher-order differential cryptanalysis
JP2760799B2 (ja) 暗号方式
KR100917073B1 (ko) 암호 작성 프로세싱의 스피드를 증가시키는 방법 및 장치
US6014446A (en) Apparatus for providing improved encryption protection in a communication system
US6201869B1 (en) Data transformation apparatus and data transformation method
JP5000365B2 (ja) ハッシュ値生成装置、プログラム及びハッシュ値生成方法
JP2005527853A (ja) 高度暗号化規格(aes)のハードウェア暗号法エンジン
US6732271B1 (en) Method of deciphering ciphered data and apparatus for same
JP2950485B2 (ja) ストリーム暗号処理装置
JP2000194261A (ja) デ―タ乱数化装置
JP2000075785A (ja) 高速暗号処理回路および処理方法
JP2002510058A (ja) 2進データ・ブロックの暗号変換のための方法
KR100434558B1 (ko) 고속블록암호화방법및이를위한키스케쥴링방법
Abubaker et al. DAFA-A Lightweight DES Augmented Finite Automaton Cryptosystem
JP2870532B2 (ja) 暗号変換装置
JPH10153954A (ja) 暗号装置
JP3917357B2 (ja) 非線形変換方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体及び非線形変換装置
JPH06149153A (ja) 汎用高速暗号装置
CN118509237A (zh) 风电机组数据的加密方法及装置
JPH0830195A (ja) 暗号の拡大鍵生成方法・復号方法及び暗号の拡大鍵生成装置・復号装置
Kijsanayothin et al. The taros block cipher
JPH088897A (ja) データの暗号化・復号処理方法及び暗号装置
JPH0816823B2 (ja) 暗号回路