JPH1152850A - 暗号変換方法および装置 - Google Patents

暗号変換方法および装置

Info

Publication number
JPH1152850A
JPH1152850A JP9213328A JP21332897A JPH1152850A JP H1152850 A JPH1152850 A JP H1152850A JP 9213328 A JP9213328 A JP 9213328A JP 21332897 A JP21332897 A JP 21332897A JP H1152850 A JPH1152850 A JP H1152850A
Authority
JP
Japan
Prior art keywords
data
block
plaintext
conversion
ciphertext
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
JP9213328A
Other languages
English (en)
Inventor
Shin Aikawa
慎 相川
Kazuo Takaragi
和夫 宝木
Hiroyuki Koreeda
浩行 是枝
Soichi Furuya
聡一 古屋
Manabu Sasamoto
学 佐々本
Hiroo Okamoto
宏夫 岡本
Takaharu Noguchi
敬治 野口
Shigeru Hirahata
茂 平畠
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 JP9213328A priority Critical patent/JPH1152850A/ja
Publication of JPH1152850A publication Critical patent/JPH1152850A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】変換データに依存せずに鍵データから循環シフ
トを動的に制御でき、簡単な構成で高度なランダム性を
有する暗号変換を可能にすることと、平文および暗号文
の長さが一定のブロック長の整数倍でないときでも簡単
な構成で暗号および復号変換を可能にすること。 【解決手段】(1)任意長の平文データを、0個以上の
一定長の平文ブロックデータと、1個以下の一定長未満
の端数平文データに分割して出力する平文ブロック分割
手段 (2)鍵と初期値と一定長のブロック平文データを入力
し、一定長のブロック暗号文データを出力するブロック
暗号変換手段 (3)端数平文データと、特定のブロック平文データあ
るいは前記ブロック暗号変換手段によって途中で出力さ
れるデータを入力し、端数暗号文データを出力する端数
暗号変換手段 (4)ブロック暗号文データと端数暗号文データを結合
し任意長の暗号文を出力する暗号文ブロック結合手段 を備えた構成にする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ、情
報家電機器等の間で伝送されるデジタルデータの暗号・
復号技術に関するものである。
【0002】
【従来の技術】今後発展すると予想されるデジタル情報
家電機器においては、デジタルデータの不正な複写を防
ぐための暗号化技術が必須になる。
【0003】従来の暗号化技術としては、データ依存循
環シフト演算を用いたアルゴリズムであるRC5暗号( R.
L. Rivest, "The RC5 encryption algorithm", FAST SO
FTWARE ENCRYPTION, 2nd International Workshop, Spr
inger-Verlag, 1995. )がある。RC5は処理データ長wビ
ット、秘密鍵長wバイト、及び処理ラウンド数rが可変の
暗号アルゴリズムである。以下、RC5のアルゴリズムに
ついて説明する。
【0004】暗号化処理を行っていないデータ(以下平
文と呼ぶ)に対して、処理データ長wビットの上位w/2ビ
ットをL[0]、下位w/2ビットをR[0]とすると、平文(L
[0],R[0])に対して、以下の式で定義された暗号文(L[2r
+1],R[2r+1])を得る。 L[1] = L[0] + S[0] R[1] = R[0] + S[0] L[N+1] = R[N] (1≦N≦2r) R[N+1] = ((L[N] EOR R[N]) <<< R[N]) + S[N+1] (1≦N
≦2r) この関数の繰り返し部分(1≦N≦2r)のNについてを図示
すると図23のようになる。ここで定義されている演算表
記 A + B はAとBの加算結果を2のw乗で割った余りを表
しており、演算 EOR はビット毎の排他的論理和であ
る。また演算表記x <<< yは、xをyの下位log(w)ビット
だけ左に循環シフトする演算を表している。RC5は図23
に示した演算を2回繰り返したものを1段と呼び、これ
をr回繰り返して生成したものを暗号文とする方式であ
る。
【0005】
【発明が解決しようとする課題】RC5は秘密鍵長が利用
者に合わせて可変であることと、循環シフトを動的に変
化させる構造であることが大きな特徴となっている。し
かし、循環シフトを動的に変化させる手段として変換デ
ータに依存したアルゴリズム構造となっており、暗号解
読法の一つである選択平文攻撃に対して弱いという欠点
がある( Lar R. Knudsen, Willi Meier, "Improved Dif
ferential Cryptanalysis on RC5", Advances in Crypt
ology -CRYPTO'96, Springer-Verlag, 1996. に詳しい
)。
【0006】そこで、本発明は、以上述べた課題を達成
するための暗号方法および装置を提案することを目的と
する。 (1)変換データに依存せずに鍵から循環シフトを動的
に制御できること。 (2)簡単な構成で高度なランダム性を有する暗号変換
が可能であること。
【0007】(3)平文および暗号文の長さが一定のブ
ロック長の整数倍でないときでも簡単な構成で暗号およ
び復号変換がが可能であること
【0008】
【課題を解決するための手段】本発明の暗号変換装置
は、 (1)任意長の平文データを、0個以上の一定長の平文
ブロックデータと、1個以下の一定長未満の端数平文デ
ータに分割して出力する平文ブロック分割手段 (2)鍵と初期値と一定長のブロック平文データを入力
し、一定長のブロック暗号文データを出力するブロック
暗号変換手段 (3)端数平文データと、特定のブロック平文データあ
るいは前記ブロック暗号変換手段によって途中で出力さ
れるデータを入力し、端数暗号文データを出力する端数
暗号変換手段 (4)ブロック暗号文データと端数暗号文データを結合
し任意長の暗号文を出力する暗号文ブロック結合手段 を有する暗号変換装置である。
【0009】前記ブロック暗号変換手段における暗号変
換方法は、前記鍵とブロック平文データを入力し、一定
長の暗号文データを出力するブロック暗号であって、 (5)データを左あるいは右に固定ビットだけ循環シフ
トする2個以上の異なる固定循環シフト処理手段 (6)前記固定循環シフト処理手段を選択する循環シフ
ト処理選択手段 (7)鍵から前記循環シフト処理選択手段の選択順序を
決定する循環シフト順序決定手段 を有している。
【0010】
【発明の実施の形態】本発明を用いた暗号変換方法およ
び装置を以下実施例を用いて詳細に説明する。
【0011】図1は本実施例の暗号変換装置の概要図で
あり、任意長のシリアルデータである平文107を同じ長
さのシリアルデータの暗号文114に変換する処理を行
う。ここで、平文データ107の長さを m, rを任意の整数
として(ただし r < 64)、64(m-1)+r ビットと表すこ
とで以下説明していく。平文データ107が平文ブロック
分割器108に入力されると、順次64ビットのパラレルデ
ータであるブロック平文データC101を出力していき、m-
1個の平文ブロックデータが出力された後に残りのrビッ
トを端数平文データC'109として出力する。
【0012】ブロック平文データC101はブロック暗号器
106に入力され、ワーク鍵KA102(32ビット)とワーク鍵KB
103(32ビット)、ワーク鍵KG104(30ビット)および初期値
115によって暗号変換された後、64ビットのブロック暗
号文データM105が出力される。ワーク鍵KG104は暗号器
のアルゴリズムを決定するのでアルゴリズム鍵とも呼
ぶ。
【0013】ブロック暗号器106の処理は、基本変換部
である暗号変換器116によって順次入力されて来るブロ
ック平文データをブロック暗号文へ処理していく。
【0014】一方、端数平文データC'109は端数暗号器1
10に入力され、ブロック暗号器106からの出力117を鍵と
して暗号変換を行い、端数暗号文データM'111を出力す
る。ブロック暗号器106の出力であるブロック暗号文デ
ータM105はスイッチ112によって順次暗号文結合器113に
入力される。すべてのブロック暗号文データが入力され
た後、スイッチ112を切り替えて端数暗号器110からの出
力である端数暗号文データ111を暗号文結合器113に入力
する。
【0015】暗号文結合器113は、パラレル入力データ
であるブロック暗号文データおよび端数暗号データを結
合してシリアルデータに変換し、暗号文114として出力
する。
【0016】次に図1の暗号変換器116の詳細構成を説
明する。
【0017】図2は、暗号器116の詳細構成を示す図で
ある。入力された平文C101は上位32ビットL[1]と下位32
ビットR[1]に分離された後、変換部第1段201から変換
部第10段203までの暗号変換を繰り返し行い、最後に上
位32ビットのL[11]と下位32ビットのR[11]を結合するこ
とで64ビットの暗号文M105が出力される。変換部第N段2
02における変換処理は、ワーク鍵KA102とワーク鍵KB10
3、およびワーク鍵KG104のKG{3N-1} ,KG{3N-2} ,KG{3N-
3} の3ビット値を入力として循環シフト数生成部第N段
205から出力される制御信号G1, G2, G3によって定めら
れる。ここで、KG{x}はKGの第xビットを表わす。
【0018】図3は、図2の変換部第N段202の変換処理
の一例を示している。また、図4は図3の動作の説明図
であり、制御信号G1, G2, G3と循環シフト数Sとの関係
を示している。本例における暗号化は、データ自身を循
環シフトする転置処理と、他のデータとの論理演算およ
び算術演算をとる換字処理で実現されている。以下、図
3の処理内容を順を追って説明する。
【0019】(1)L[N]とKAの排他的論理和をとり、X1
とする。これは図3の処理番号301に対応する。 X1 = L[N] EOR KA ここで、演算表記 A EOR B はAとBの排他的論
理和演算を表し、以下、前記演算表記を同様の意味で用
いるものとする。
【0020】(2)循環シフト数生成部第N段205の2ビ
ット出力値G1から図4にしたがって循環シフト数Sを定
め、X1をSビット左循環シフトしたものと、X1と1との
加算をとり、X2とする。これは図3の処理番号302に対
応する。 X2 = (X1 <<< S) + X1 + 1 ここで、演算表記 A <<< B はAを左方向にBビット循環
シフトすることを表しており、以下同様の意味で用い
る。また、演算表記A + B AとBの加算結果を2の32乗
で割った余りを表しており、以下同様の意味で用いるも
のとし、これを単に加算と呼ぶことにする。
【0021】(3)循環シフト数生成部第N段205の2ビ
ット出力値G2から図4にしたがって循環シフト数Sを定
め、X2をSビット左循環シフトしたものと、X2 との加
算をとり、X3とする。これは図3の処理番号303に対応
する。 X3 = (X2 <<< S) + X2 (4)X3とKBの加算をとり、X4とする。これは図3の処
理番号304に対応する。 X4 = X3 + KB (5)循環シフト数生成部第N段205の2ビット出力値G3
から図4にしたがって循環シフト数Sを定め、X4をSビ
ット左循環シフトしたものと、X4との加算をとり、X5と
する。これは図3の処理番号305に対応する。 X5 = (X4 <<< S) + X4 (6)X5とR[N]の加算をとったものを、変換部第N段202
の上位32ビット出力L[N+1]とする。これは図3の処理番
号306に対応する。 L[N+1] = X5 + R[N] (7)変換部N段の上位32ビット入力L[N]を変換部第N段
202の下位32ビット出力R[N+1]とする。これは図3の処
理番号307に対応する。 R[N+1] = L[N] 以上の暗号変換処理(1)から(5)までをまとめてF
(L[N], K, G)と書くと、変換部第N段202の処理は以下の
ように記述できる。 L[N+1] = R[N] + F(L[N], K, G) R[N+1] = L[N] 以上、本発明による暗号変換処理についてについて詳細
に述べた。
【0022】次に、より具体的な回路構成について述べ
る。図5は、本実施例の変換部第N段202をハードウェア
に実装したときの回路図である。この回路は、レジスタ
601, 603, 611、加算器605、排他的論理和回路612、2
入力マルチプレクサ602, 607、3入力マルチプレクサ60
4, 606、および左2ビット循環シフト器608、左8ビッ
ト循環シフト器609、左14ビット巡回シフト器610から成
る。データ幅はすべて32ビットである。
【0023】図3で示した変換処理は、処理番号301か
ら306に相当するように、マルチプレクサ602, 604, 60
6, 607を制御することで、6サイクルで完了する。循環
シフト器のスイッチングを行うマルチプレクサ606は、
循環シフト数生成部第N段205から順次出力されるG1, G
2, G3によって制御される。
【0024】図6は、2ビット循環シフト器608および
8ビット循環シフト器609を示したものであり、いずれ
も簡単なワイヤーロジックで実現可能である。
【0025】図7は、循環シフト器をスイッチングする
マルチプレクサ606の制御の説明図である。マルチプレ
クサは、左2ビット循環シフト器608、左8ビット循環
シフト器609、左14ビット循環シフト器610のそれぞれの
32ビット出力を入力データとし、2ビット制御入力G1,
G2, G3が順次入力されることで、3つの入力データから
一つを選択し、出力値とする。制御入力G1, G2, G3と出
力値の関係は図4に従う。マルチプレクサ606の制御入
力G1, G2, G3は、図7の循環シフト数生成回路701で計
算される(これは図2の循環シフト生成部に対応す
る)。
【0026】循環シフト数生成回路701は順序回路とし
て実現され、この順序回路は3つの内部状態Q0, Q1, Q2
をもち、同期信号に伴って、入力P0が0ならば、 Q1 → Q2 Q2 → Q3 Q3 → Q1 入力P0が1ならば、 Q1 → Q3 Q2 → Q1 Q3 → Q2 と状態が遷移していく、3進加算/減算カウンタで表せ
る。この順序回路の出力値は図7の循環シフト数生成回
路701の状態図に示す。
【0027】ワーク鍵KGからの3ビットのデータは、入
力P0 および初期値P1, P2に用いられる。ここで、 P0 = KG{3N-1} P1 = KG{3N-2} P2 = KG{3N-3} である。
【0028】図8は初期値P1, P2と内部状態の関係を示
しており、内部状態の初期値はLOAD信号がHighのとき図
8のように定められる。なお循環シフト数生成回路205
は簡単な回路で構成でき、図9に詳細な回路図を示す。
これは、当該技術者なら簡単に理解できる3進カウンタ
の構成である。
【0029】以上述べたように図3の実施例では、2ビ
ット、8ビット、14ビットの左循環シフトを用いた転置
変換処理を換字変換処理と組み合わせることで、暗号変
換を行っており、各段における循環シフトのビット数
は、図2に示すように、アルゴリズム鍵KGから定まるG
1, G2, G3の値から図4のように決定される。各段のG1,
G2, G3はすべて異なる値を取るので、各段の循環シフト
演算の順序は3!=6通り考えられる。本実施例では10段の
変換部を持つので、循環シフト演算の順序が30ビットの
ワーク鍵KGによって、6の10乗通りの中から一意的に
定められことになり、高度なランダム性を有する暗号変
換といえる。
【0030】次に、図3に示す暗号変換の一例につい
て、データ拡散の効果を検証する。図10および図11は本
実施例における循環シフトによるデータ拡散の効果を示
すためにワーク鍵KA, ワーク鍵KBを、 KA = KB = 0 初期データを、 L[1] = R[1] = 0 循環シフトの順序を、 としたときの変換処理過程を示している。
【0031】第1段目の変換4001(図10)および5001(図1
1)の、 X2 = (X1 <<< S) + X1 + 1 によって生じた第1ビットの1は循環シフトによって、
第2段目の変換4002(図10)および5002(図11)までで中位
のビットまで影響を与えていき、第3段目の変換4003
(図10)および5003(図11)ですべてのビットが拡散される
様子が分かる。また、図10(case 1)と図11(case 2)を比
較すると、まったく異なった値に変換されており、循環
シフトの順序を変えることがデータ拡散に効果があるこ
とが分かる。
【0032】次に、本発明による暗号変換装置によって
暗号化されたデータを復号化する復号変換装置について
述べる。
【0033】図12は本発明を用いた復号変換装置の概要
図であり、任意長のシリアルデータである暗号文114を
同じ長さのシリアルデータの平文107に変換する処理を
行う。ここで、暗号文データ114の長さを m, rを任意の
整数として(ただし r < 64)64(m-1)+r ビットと表す
ことで以下説明していく。暗号文データ114が暗号文ブ
ロック分割器402に入力されると、順次64ビットのパラ
レルデータであるブロック暗号文データM105を出力して
いき、m-1個の暗号文ブロックデータが出力された後に
残りのrビットを端数暗号文データM'111として出力す
る。
【0034】ブロック暗号文データM105はブロック復号
器401に入力され、ワーク鍵KA102(32ビット)とワーク鍵
KB103(32ビット)、ワーク鍵KG104(30ビット)および初期
値407によって復号変換された後、64ビットのブロック
平文データC101が出力される。
【0035】ブロック復号器401での処理は基本変換部
である復号変換器405によってブロック暗号文データを
ブロック平文データに処理していく。
【0036】一方、端数暗号文データM'111は端数復号
器403に入力され、ブロック復号器401からの出力406を
鍵として復号変換を行い、端数平文データC'109を出力
する。
【0037】ブロック復号器401の出力であるブロック
平文データC101はスイッチ404によって順次平文結合器4
08に入力される。すべてのブロック平文データが入力さ
れた後、スイッチ112を切り替えて端数復号器110からの
出力である端数平文データC'109を平文結合器408に入力
する。
【0038】平文結合器408は、パラレル入力データで
あるブロック平文データおよび端数平文データを結合し
てシリアルデータに変換し、平文107として出力する。
【0039】図12のブロック復号器401内の復号変換器4
05は図1の暗号変換器116で変換された暗号文をもとの
平文に戻す機能を持つ。具体的には、暗号変換処理の変
換部第N段の処理が、 L[N+1] = R[N] + F(L[N], K, G) R[N+1] = L[N] で記述されるため、第N段目の復号変換処理は、 R[N] = L[N+1] - F(R[N+1], K, G) L[N] = R[N+1] となる。
【0040】ここで、演算表記A - B はAとBの減算結果
を2の32乗で割った余りを表しており、以下同様の意
味で用いるものとし、これを単に減算と呼ぶことにす
る。したがって、復号変換器405は図3の加算回路306を
減算回路に変更し、入力として(R[N+1], L[N+1])、出
力として(R[N], L[N])としたものを復号変換部第N段の
処理とし、これを10段繰り返すことで実現でき、暗号変
換器と同様な構成であることが利点としてあげられる。
以上復号変換処理について説明した。
【0041】次に本発明の他の実施例について述べる。
【0042】図3の前記実施例において、循環シフト変
換部は、左2ビット、左8ビット、左14ビットの3種類
を選択する例を示したが、左または右にシフトするビッ
ト数、および循環シフト処理部の種類数を変化させても
よい。たとえば、循環シフト変換部に左2ビット、左9
ビット、左19ビットの3種類を選んでもよい。特に左ま
たは右にシフトするビット数は図7に示したワイヤーロ
ジックを変更すればよいので、回路規模を変化されるこ
となく実行できる。
【0043】また、図3では、ワーク鍵KA ,ワーク鍵KB
およびワーク鍵KGは独立の鍵として説明したが、一個の
データ鍵KDから生成する構成としてもよい。図13にこの
一例を示す。この例では40ビットの基本鍵KD501から鍵
生成部502でKA, KB, KGを以下の方法にしたがって生成
している。 KA : KDの上位32ビットと下位32ビットとの加算をとっ
たものとする。 KB : KDの上位32ビットとする。 KG : KAの下位30ビットとする。
【0044】次に本発明の構成をソフトウェアで実現す
る例について図14を用いて説明する。
【0045】この例では、以下の9個のデータを用い
る。 L (32ビット): 暗号変換するデータ R (32ビット): 暗号変換するデータ KA (32ビット): ワーク鍵1(KA)のデータ KB (32ビット): ワーク鍵1(KB)のデータ KG (32ビット) : ワーク鍵2(KG)のデータ Q (8ビット) : 循環シフト生成部の内部状態値 N (8ビット) : カウンタ値 X (32ビット) : 作業用のデータ S (32ビット) : 作業用のデータ 以下、図14の処理内容を順を追って説明する。
【0046】(1)64ビットの平文C上位と下位32ビッ
トデータに分離し、それぞれL, Rに代入する。これは図
14の処理番号1001に対応する。
【0047】(2)カウンタ値Nを1にセットする。これ
は図14の処理番号1002に対応する。
【0048】(3)循環シフト生成部の内部変数初期化
ファンクションINIT(KG, N)の戻り値をQに代入する。こ
れは図14の処理番号1003に対応する。ここで、循環シフ
ト生成部の内部状態初期化ファンクションINIT(KG, N)
は図15に示す処理番号1101に従い、KG{3N-3}, KG{3N-2}
の値から戻り値が決定される。
【0049】(4)LとKAの排他的論理和をXに代入す
る。これは図14の処理番号1004に対応する。
【0050】(5)循環シフトおよび加算ファンクショ
ンの戻り値S = FUNC(X, KG, N, Q)と1との加算の結果を
Xに代入する。これは図14の処理番号1005に対応する。
【0051】(6)循環シフトおよび加算ファンクショ
ンの戻り値S = FUNC(X, KG, N, Q)をXに代入する。これ
は図14の処理番号1006に対応する。
【0052】(7)XとKBの加算の結果をXに代入する。
これは図14の処理番号1007に対応する。
【0053】(8)循環シフトおよび加算ファンクショ
ンの戻り値S = FUNC(X, KG, N, Q)をXに代入する。これ
は図14の処理番号1008に対応する。
【0054】(9)XとRの加算の結果をXに代入する。
これは図14の処理番号1009に対応する。
【0055】(10)Lの値をRに代入する。これは図14の
処理番号1010に対応する。
【0056】(11)Xの値をLに代入する。これは図14の
処理番号1011に対応する。
【0057】(12)Nが10以下か調べる。これは図14の
処理番号1012に対応する。
【0058】(13)Nが10以下ならば、Nの値を1増やし
て(3)に戻る。これは図14の処理番号1013に対応す
る。
【0059】(14)Nが10以下でなければ、LとRを結合
したものを暗号文Mとする。これは図14の処理番号1014
に対応する。
【0060】なお、循環シフトおよび加算ファンクショ
ンFUNC(X, KG, N, Q)は図16に示すフローチャートに従
う。以下処理内容を説明する。
【0061】(1)Qの値から2ビット、8ビット、14
ビットのいずれかの左循環シフトをXに対して行い、そ
の結果をSに保存する。これは図16の処理番号1201に対
応する。
【0062】(2)SとXの加算の結果をSに再び保存す
る。これは図16の処理番号1202に対応する。
【0063】(3)KG{3N-1}の値が0ならはQに1を加え
た結果を3で割った余りとし、KG{3N-1}の値が1ならはQ
から1を引いた結果を3で割った余りとしてQを更新す
る。これは図16の処理番号1203に対応する。
【0064】(4)Sの値を戻り値とする。これは図16
の処理番号1204に対応する。
【0065】ソフトウェアによる復号処理については、
図14の加算処理1009を減算処理とすることで実現できる
ことはこれまでの説明から明らかである。以上、ソフト
ウェア処理で暗号処理および復号処理を実現する実施例
について説明したが、このように簡単なソフトウェア構
造で高度な暗号処理が実現できるため、情報家電機器に
容易に実装可能である。
【0066】次に、図1で説明した暗号変換装置のブロ
ック暗号器106および端数暗号器110について図17を用い
て詳細に説明する。
【0067】図17において、暗号器3003は図1の暗号変
換器116に相当し、処理ENC1(3004)と処理E
NC2(3005)とから構成される。ここで、ENC1(3
004)は図2の変換部第1段201および循環シフト数生成部
第1段204から、変換部第N段202および循環シフト数生成
部第N段205までとし、ENC2(3005)は残った第N+1段から
変換部第10段203および循環シフト数生成部第10段206ま
でとする。図1において、平文データ107の長さは m, r
を任意の整数として(ただし r < 64)、64(m-1)+r ビ
ットと表せ、m-1個の64ビット長のブロック平文データ
と1個のrビットの端数平文データに分割されることか
ら、64ビット長のブロック平文データ3006をM[1]からM
[m-1]、端数平文データ3009をM[m]'、64ビット長のブロ
ック暗号文データ3008をC[1]からC[m-1]、端数暗号文デ
ータ3011をC[m]'とする。さらに、鍵K3002を図2のワー
ク鍵KA、ワーク鍵KBおよびワーク鍵KGに相当する。
【0068】まず、初期値I[-1]3001の鍵K3002によりEN
C1(3004)による暗号変換が行われ、その暗号変換結果I
[0]がレジスタ3012に置かれる。
【0069】その後、ブロック平文データ3006のうちの
最初の64ビットブロックM[1]が排他的論理和回路3007へ
入力されると、レジスタ3012内のI[0]とM[1]の排他的論
理和をとり処理ENC1(3004)で暗号変換された結果をデー
タI[1]とし、これをレジスタ3012に置く。
【0070】I[1]はさらに、鍵K3002によりENC2(3005)
による暗号変換が行われ、その結果が暗号文3008のうち
の最初の64ビットブロックC[1]として出力される。
【0071】その後、ブロック平文データ3006のうちの
2番目の64ビットブロックM[2]が排他的論理和回路3007
へ入力されると、レジスタ3012内のI[1]とM[2]の排他的
論理和をとり処理ENC1(3004)で暗号変換された結果をデ
ータI[2]とし、これをレジスタ3012に置く。
【0072】I[2]はさらに、鍵K3002によりENC2(3005)
による暗号変換が行われ、その結果が暗号文3008のうち
の2番目の64ビットブロックC[2]として出力される。
【0073】このような処理をブロック平文データ3006
の最後の64ビットブロックM[m-1]が入力されるまで繰り
返す。
【0074】そして、最後の64ビットブロックM[m-1]が
排他的論理和回路3007へ入力されると、レジスタ3012内
のI[m-2]とM[m-1]の排他的論理和をとり処理ENC1(3004)
で暗号変換された結果をデータI[m-1]とし、これをレジ
スタ3012に置く。
【0075】I[m-1]はさらに、鍵K3002によりENC2(300
5)による暗号変換が行われ、その結果が暗号文3008のう
ちの最後の64ビットブロックC[m-1]として出力される。
【0076】M[m-1]の後に、64ビット未満の端数ブロッ
クM[m]'が排他的論理和回路3010へ入力されると、レジ
スタ3012に置かれたI[m-1]のうちYと同じ長さのビット
列を上位桁から抽出して得られるI[m-1]'とM[m]'の排他
的論理和がとられ、C[m]'が暗号文の最後の一部として
出力される。
【0077】以上、ブロック暗号器106および端数暗号
器110についての詳細例を示し、平文の長さがブロック
長の整数倍でないときでも暗号処理の構成を複雑にする
ことなく端数処理を行えることを説明した。
【0078】次に、図12で説明した復号変換装置のブロ
ック復号器401および端数復号器403について図18を用い
て詳細に説明する。図18は前記の図17を用いて説明した
ブロック暗号器および端数暗号器で処理された暗号文を
もとの平文に戻す処理を行う。図18において、復号器31
14は図12のブロック暗号器401に相当し、処理DEC2(310
7)と処理DEC1(3108)とから構成される。処理DEC2(3107)
は図17における処理ENC2(3005)の逆変換を行うものであ
り、処理DEC1(3108)は図17における処理ENC1(3004)の逆
変換を行うものである。
【0079】まず、初期値I[-1]3001が鍵K3102と処理EN
C1(3103)により暗号化された結果I[0]3101をレジスタA3
115に置く。
【0080】その後、暗号文3105のうちの最初の64ビッ
トブロックC[1]が復号器3114へ入力されると、C[1]は鍵
K3106とDEC2(3107)による復号変換が行われ、その結果
得られたデータI[1]をレジスタB3104に置く。
【0081】I[1]は鍵K3106とDEC1(3108)により復号変
換が行われ、その結果が排他的論理和回路3109におい
て、レジスタA3115内のI[0]との排他的論理和がとられ
る。この結果が、平文3110のうちの最初の64ビットブロ
ックM[1]となる。
【0082】その後、暗号文3105のうちの2番目の64ビ
ットブロックC[2]が復号器3114へ入力されると、C[2]は
鍵K3106とDEC2(3107)による復号変換が行われ、その結
果であるデータI[2]を得るタイミングと同時にレジスタ
B3104内のデータI[1]をレジスタA3115に移し、データI
[2]をレジスタB3104に置く。
【0083】I[2]は鍵K3106とDEC1(3108)により復号変
換が行われ、その結果が排他的論理和回路3109におい
て、レジスタA3115内のI[1]との排他的論理和がとられ
る。この結果が、平文3110のうちの2番目の64ビットブ
ロックC[2]となる。このような処理を暗号文3105の最後
の64ビットブロックC[m-1]が入力されるまで繰り返す。
【0084】そして、最後の64ビットブロックC[m-1]が
復号アルゴリズム3114へ入力されると、C[m-1]は鍵K310
6とDEC2(3107)による復号変換が行われ、その結果であ
るデータI[m-1]を得るタイミングと同時にレジスタB310
4内のデータI[m-2]をレジスタA3115に移し、データI[m-
1]をレジスタB3104に置く。
【0085】I[m-1]は鍵K3106とDEC1(3108)により復号
変換が行われ、その結果が排他的論理和回路3109におい
て、レジスタA3115内のI[m-2]との排他的論理和がとら
れる。この結果が、平文3110のうちの最後の64ビットブ
ロックM[m-1]となる。
【0086】C[m-1]の後に、64ビット未満の端数ブロッ
クC[m]'3111が排他的論理和回路3112へ入力されると、
レジスタA3115内のI[m-1]のうちC[m]'と同じ長さのビッ
ト列を上位桁から抽出して得られるI[m-1]'とZの排他的
論理和M[n]'3113がとられ暗号文の最後の一部として出
力される。
【0087】以上、ブロック復号器401および端数復号
器403についての詳細例を示し、暗号文の長さがブロッ
ク長の整数倍でないときでも復号処理の構成を複雑にす
ることなく端数処理を行えることを説明した。
【0088】次に、前記の図18で説明したブロック復号
器および端数復号器例を実現するための装置について示
す。図19において、処理ENC1(3013)は例えばICカード用
チップのような比較的低速のプロセッサ3201によって実
現されている。一方、処理ENC1(3013)以外の機能はすべ
て高速処理用LSI3203によって実現されている。
【0089】プロセッサ3201には、別途実施される鍵共
有プロトコルを通じて別の装置と同じ鍵K3102が共有さ
れ設定されている。この後に、初期値I[-1]3101がプロ
セッサ3201に入力され、鍵3102とENC13103により暗号化
された結果をI[0]3101として、高速処理用LSI3203内の
レジスタA3115に置かれる。
【0090】この後の処理は図18と同様であり、暗号文
3105と端数暗号データZ3111が高速に復号され、その結
果、平文3110と端数平文データY3111が出力される。
【0091】以上、復号処理の運用方法の一例を実現す
るための装置例について示し、復号のための高速処理用
LSIの回路規模をほとんど増大させずに端数処理を高速
に行えることを説明した。
【0092】次に、端数暗号器および端数復号器の他の
実施例を図20および図21を用いて説明する。図20はブロ
ック暗号器および端数暗号器の他の実施例である。図20
において、平文M[1]からM[m-1]を暗号文C[1]からC[m-1]
に変換するのは前記図17で示したブロック暗号器の例と
同様であが、 端数ブロックM[m]'3009の処理が異なる。
この方法では、端数ブロック処理のためにブロック平文
データの適当なブロックを保持しており(ここではM[2]
3301を保持するものとする)、M[m]'が排他的論理和回
路3010へ入力されると、M[2]3301のうちM[m]'と同じ長
さのビット列を上位桁から抽出して得られるM[2]'との
排他的論理和がとられ、C[m]'として出力される。
【0093】また、図21はブロック復号器および端数復
号器の他の実施例であり、前記の図20の暗号変換による
暗号文をもとの平文に戻す処理を行う。図21において、
暗号文C[1]からC[m-1]を平文M[1]からM[m-1] に変換す
るのは前記図18で示したブロック復号器と同様であが、
端数ブロックC[m]'3111の処理が異なる。この方法で
は、端数ブロック処理のためにブロック平文データの適
当なブロックを保持しており(前記図20で示した暗号処
理に対応する復号処理なためM[2]3301を保持するものと
する)、C[m]'が排他的論理和回路3112へ入力される
と、M[2]のうちC[m]'と同じ長さのビット列を上位桁か
ら抽出して得られるM[2]'との排他的論理和がとられ、M
[m]'として出力される。
【0094】また、前記の図21で説明したブロック復号
器および端数復号器の例を実現するための装置例を図22
ついて示す。図22において、プロセッサ3201および高速
処理用LSI3203の構成は前記図18での説明と同様であ
る。
【0095】以上、復号処理および復号処理の運用方法
の他の実施例について示し、前記図17および図18の運用
方法例の説明と同様に、簡単な構成で端数処理を行え、
前記図19と同様に復号のための高速処理用LSIの回路規
模をほとんど増大させずに端数処理を高速に行えること
を説明した。
【0096】
【発明の効果】本発明によれば、平文および暗号文の長
さがブロック長の整数倍でないときでも暗号および復号
のための高速処理用LSIの回路規模をほとんど増大させ
ずに端数処理を高速に行うことが可能である。
【図面の簡単な説明】
【図1】本発明を用いた暗号変換装置の一実施例であ
る。
【図2】図1における暗号器の詳細構成図である。
【図3】図2における変換部第N段における変換処理の
一例を示す図である。
【図4】図3における制御信号G1,G2,G3と循環シフト数
Sの関係図である。
【図5】図3における暗号変換を実現する回路図であ
る。
【図6】図5における循環シフト器の配線図である。
【図7】図5における循環シフト器をスイッチングする
マルチプレクサの制御の説明図である。
【図8】図7における循環シフト数生成回路の初期値と
内部状態の関係である。
【図9】図7における循環シフト数生成回路の詳細図で
ある。
【図10】本発明の暗号変換における循環シフトのデー
タ拡散への効果 (case 1)を示す図である。
【図11】本発明の暗号変換における循環シフトのデー
タ拡散への効果 (case 2)である。
【図12】本発明を用いた暗号変換装置の一実施例であ
る。
【図13】本発明で用いる複数のワーク鍵を一つのデー
タ鍵から生成する一例である。
【図14】本発明の構成をソフトウェアで実現するフロ
ーの一例である。
【図15】図14の変換処理で用いる循環シフト生成部の
内部変数初期化ファンクションのフロー図である。
【図16】図14の変換処理で用いる循環シフトおよび加
算ファンクションのフロー図である。
【図17】本発明を用いたブロック暗号器および端数暗
号器に関する一実施例である。
【図18】本発明を用いたブロック復号器および端数復
号器に関する一実施例である。
【図19】図18におけるブロック復号器および端数復号
器の装置例である。
【図20】本発明を用いたブロック暗号器および端数暗
号器に関する他の実施例である。
【図21】本発明を用いたブロック復号器および端数復
号器に関する他の実施例である。
【図22】図21におけるブロック復号器および端数復号
器の装置例である。
【図23】RC5の暗号アルゴリズムの概要図である。
【符号の説明】
101…平文、102…ワーク鍵KA、103…ワーク鍵KB、104…
ワーク鍵KG、105…暗号文、106…暗号器、202…変換部
第N段、205…循環シフト数生成部第N段、401…復号器。
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成9年9月12日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0003
【補正方法】変更
【補正内容】
【0003】従来の暗号化技術としては、データ依存循
環シフト演算を用いたアルゴリズムであるRC5暗号( R.
L. Rivest, "The RC5 encryption algorithm", FAST SO
FTWARE ENCRYPTION, 2nd International Workshop, Spr
inger-Verlag, 1995. )がある。RC5は処理データ長wビ
ット、秘密鍵長bバイト、及び処理ラウンド数rが可変の
暗号アルゴリズムである。以下、RC5のアルゴリズムに
ついて説明する。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0020
【補正方法】変更
【補正内容】
【0020】(2)循環シフト数生成部第N段205の2ビ
ット出力値G1から図4にしたがって循環シフト数Sを定
め、X1をSビット左循環シフトしたものと、X1と1との
加算をとり、X2とする。これは図3の処理番号302に対
応する。 X2 = (X1 <<< S) + X1 + 1 ここで、演算表記 A <<< B はAを左方向にBビット循環
シフトすることを表しており、以下同様の意味で用い
る。また、演算表記A + B AとBの加算結果を2の32
乗で割った余りを表しており、以下同様の意味で用いる
ものとし、これを単に加算と呼ぶことにする。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0025
【補正方法】変更
【補正内容】
【0025】図7は、循環シフト器をスイッチングする
マルチプレクサ606の制御の説明図である。マルチプレ
クサは、左2ビット循環シフト器608、左8ビット循環
シフト器609、左14ビット循環シフト器610のそれぞれの
32ビット出力を入力データとし、2ビット制御入力G1,
G2, G3が順次入力されることで、3つの入力データから
一つを選択し、出力値とする。制御入力G1, G2, G3と出
力値の関係は図4に従う。マルチプレクサ606の制御入
力G1, G2, G3は、図7の循環シフト数生成回路701で計
算される(これは図2の循環シフト生成部に対応す
る)。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0026
【補正方法】変更
【補正内容】
【0026】循環シフト数生成回路701は順序回路とし
て実現され、この順序回路は3つの内部状態Q0, Q1, Q2
をもち、同期信号に伴って、入力P0が0ならば、Q0 → Q1 Q1 → Q2 Q2 → Q0 入力P0が1ならば、Q0 → Q2 Q1 → Q0 Q2 → Q1 と状態が遷移していく、3進加算/減算カウンタで表せ
る。この順序回路の出力値は図7の循環シフト数生成回
路701の状態図に示す。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0037
【補正方法】変更
【補正内容】
【0037】ブロック復号器401の出力であるブロック
平文データC101はスイッチ404によって順次平文結合器4
08に入力される。すべてのブロック平文データが入力さ
れた後、スイッチ404を切り替えて端数復号器403からの
出力である端数平文データC'109を平文結合器408に入力
する。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0045
【補正方法】変更
【補正内容】
【0045】この例では、以下の9個のデータを用い
る。 L (32ビット): 暗号変換するデータ R (32ビット): 暗号変換するデータ KA (32ビット): ワーク鍵KAのデータ KB (32ビット): ワーク鍵KBのデータ KG (32ビット) : ワーク鍵KGのデータ Q (8ビット) : 循環シフト生成部の内部状態値 N (8ビット) : カウンタ値 X (32ビット) : 作業用のデータ S (32ビット) : 作業用のデータ 以下、図14の処理内容を順を追って説明する。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0046
【補正方法】変更
【補正内容】
【0046】(1)64ビットの平文C上位と下位32ビ
ットデータに分離し、それぞれL, Rに代入する。これは
図14の処理番号1001に対応する。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0067
【補正方法】変更
【補正内容】
【0067】図17において、暗号器3003は図1の暗号変
換器116に相当し、処理ENC1(3004)と処理ENC2(3005)と
から構成される。ここで、ENC1(3004)は図2の変換部第
1段201および循環シフト数生成部第1段204から、変換部
第N段202および循環シフト数生成部第N段205までとし、
ENC2(3005)は残った第N+1段から変換部第10段203および
循環シフト数生成部第10段206までとする。図1におい
て、平文データ107の長さは m, rを任意の整数として
(ただし r < 64)、64(m-1)+r ビットと表せ、m-1個の
64ビット長のブロック平文データと1個のrビットの端
数平文データに分割されることから、64ビット長のブロ
ック平文データ3006をM[1]からM[m-1]、端数平文データ
3009をM[m]'、64ビット長のブロック暗号文データ3008
をC[1]からC[m-1]、端数暗号文データ3011をC[m]'とす
る。さらに、鍵K3002図2のワーク鍵KA、ワーク鍵KB
およびワーク鍵KGに相当する。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0076
【補正方法】変更
【補正内容】
【0076】M[m-1]の後に、64ビット未満の端数ブロッ
クM[m]'が排他的論理和回路3010へ入力されると、レジ
スタ3012に置かれたI[m-1]のうちM[m]'と同じ長さのビ
ット列を上位桁から抽出して得られるI[m-1]'とM[m]'の
排他的論理和がとられ、C[m]'が暗号文の最後の一部と
して出力される。
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0078
【補正方法】変更
【補正内容】
【0078】次に、図12で説明した復号変換装置のブロ
ック復号器401および端数復号器403について図18を用い
て詳細に説明する。図18は前記の図17を用いて説明した
ブロック暗号器および端数暗号器で処理された暗号文を
もとの平文に戻す処理を行う。図18において、復号器31
14は図12の復号変換器405に相当し、処理DEC2(3107)と
処理DEC1(3108)とから構成される。処理DEC2(3107)は図
17における処理ENC2(3005)の逆変換を行うものであり、
処理DEC1(3108)は図17における処理ENC1(3004)の逆変換
を行うものである。
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】0084
【補正方法】変更
【補正内容】
【0084】そして、最後の64ビットブロックC[m-1]が
復号変換器3114へ入力されると、C[m-1]は鍵K3106とDEC
2(3107)による復号変換が行われ、その結果であるデー
タI[m-1]を得るタイミングと同時にレジスタB3104内の
データI[m-2]をレジスタA3115に移し、データI[m-1]を
レジスタB3104に置く。
【手続補正13】
【補正対象書類名】明細書
【補正対象項目名】0086
【補正方法】変更
【補正内容】
【0086】C[m-1]の後に、64ビット未満の端数ブロッ
クC[m]'3111が排他的論理和回路3112へ入力されると、
レジスタA3115内のI[m-1]のうちC[m]'と同じ長さのビッ
ト列を上位桁から抽出して得られるI[m-1]'とC[m]'の排
他的論理和M[m]'3113がとられ暗号文の最後の一部とし
て出力される。
【手続補正14】
【補正対象書類名】明細書
【補正対象項目名】0090
【補正方法】変更
【補正内容】
【0090】この後の処理は図18と同様であり、暗号文
3105と端数暗号データC[m]'3111が高速に復号され、そ
の結果、平文3110と端数平文データM[m]'3113が出力さ
れる。
【手続補正15】
【補正対象書類名】明細書
【補正対象項目名】0092
【補正方法】変更
【補正内容】
【0092】次に、端数暗号器および端数復号器の他の
実施例を図20および図21を用いて説明する。図20はブロ
ック暗号器および端数暗号器の他の実施例である。図20
において、平文M[1]からM[m-1]を暗号文C[1]からC[m-1]
に変換するのは前記図17で示したブロック暗号器の例と
同様であが、 端数ブロックM[m]'3009の処理が異なる。
この方法では、端数ブロック処理のためにブロック平文
データの適当なブロックを保持しており(ここではM[2]
3301を保持するものとする)、M[m]'が排他的論理和回
路3010へ入力されると、M[2]3301のうちM[m]'と同じ長
さのビット列を上位桁から抽出して得られるM[2]'との
排他的論理和がとられ、C[m]'3011として出力される。
【手続補正16】
【補正対象書類名】明細書
【補正対象項目名】0093
【補正方法】変更
【補正内容】
【0093】また、図21はブロック復号器および端数復
号器の他の実施例であり、前記の図20の暗号変換による
暗号文をもとの平文に戻す処理を行う。図21において、
暗号文C[1]からC[m-1]を平文M[1]からM[m-1] に変換す
るのは前記図18で示したブロック復号器と同様であが、
端数ブロックC[m]'3111の処理が異なる。この方法で
は、端数ブロック処理のためにブロック平文データの適
当なブロックを保持しており(前記図20で示した暗号処
理に対応する復号処理なためM[2]3301を保持するものと
する)、C[m]'が排他的論理和回路3112へ入力される
と、M[2]3401のうちC[m]'と同じ長さのビット列を上位
桁から抽出して得られるM[2]'3113との排他的論理和が
とられ、M[m]'3113として出力される。
【手続補正17】
【補正対象書類名】明細書
【補正対象項目名】0095
【補正方法】変更
【補正内容】
【0095】以上、暗号処理および復号処理の運用方法
の他の実施例について示し、前記図17および図18の運用
方法例の説明と同様に、簡単な構成で端数処理を行え、
前記図19と同様に復号のための高速処理用LSIの回路規
模をほとんど増大させずに端数処理を高速に行えること
を説明した。
【手続補正18】
【補正対象書類名】明細書
【補正対象項目名】図面の簡単な説明
【補正方法】変更
【補正内容】
【図面の簡単な説明】
【図1】本発明を用いた暗号変換装置の一実施例であ
る。
【図2】図1における暗号器の詳細構成図である。
【図3】図2における変換部第N段における変換処理の
一例を示す図である。
【図4】図3における制御信号G1,G2,G3と循環シフト数
Sの関係図である。
【図5】図3における暗号変換を実現する回路図であ
る。
【図6】図5における循環シフト器の配線図である。
【図7】図5における循環シフト器をスイッチングする
マルチプレクサの制御の説明図である。
【図8】図7における循環シフト数生成回路の初期値と
内部状態の関係である。
【図9】図7における循環シフト数生成回路の詳細図で
ある。
【図10】本発明の暗号変換における循環シフトのデー
タ拡散への効果 (case 1)を示す図である。
【図11】本発明の暗号変換における循環シフトのデー
タ拡散への効果 (case 2)である。
【図12】本発明を用いた復号変換装置の一実施例であ
る。
【図13】本発明で用いる複数のワーク鍵を一つのデー
タ鍵から生成する一例である。
【図14】本発明の構成をソフトウェアで実現するフロ
ーの一例である。
【図15】図14の変換処理で用いる循環シフト生成部の
内部変数初期化ファンクションのフロー図である。
【図16】図14の変換処理で用いる循環シフトおよび加
算ファンクションのフロー図である。
【図17】本発明を用いたブロック暗号器および端数暗
号器に関する一実施例である。
【図18】本発明を用いたブロック復号器および端数復
号器に関する一実施例である。
【図19】図18におけるブロック復号器および端数復号
器の装置例である。
【図20】本発明を用いたブロック暗号器および端数暗
号器に関する他の実施例である。
【図21】本発明を用いたブロック復号器および端数復
号器に関する他の実施例である。
【図22】図21におけるブロック復号器および端数復号
器の装置例である。
【図23】RC5の暗号アルゴリズムの概要図である。
【手続補正19】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正内容】
【図1】
【手続補正20】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正内容】
【図5】
【手続補正21】
【補正対象書類名】図面
【補正対象項目名】図12
【補正方法】変更
【補正内容】
【図12】
フロントページの続き (72)発明者 是枝 浩行 神奈川県横浜市戸塚区吉田町292番地株式 会社日立製作所マルチメディアシステム開 発本部内 (72)発明者 古屋 聡一 神奈川県川崎市麻生区王禅寺1099番地株式 会社日立製作所システム開発研究所内 (72)発明者 佐々本 学 神奈川県横浜市戸塚区吉田町292番地株式 会社日立製作所マルチメディアシステム開 発本部内 (72)発明者 岡本 宏夫 神奈川県横浜市戸塚区吉田町292番地株式 会社日立製作所マルチメディアシステム開 発本部内 (72)発明者 野口 敬治 神奈川県横浜市戸塚区吉田町292番地株式 会社日立製作所マルチメディアシステム開 発本部内 (72)発明者 平畠 茂 神奈川県横浜市戸塚区吉田町292番地株式 会社日立製作所マルチメディアシステム開 発本部内

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】任意長の平文データを、0個以上の一定長
    のブロック平文データと、一個以下の一定長未満の端数
    平文データに分割して出力する平文ブロック分割手段
    と、 鍵と初期値と前記一定長のブロック平文データを入力
    し、一定長のブロック暗号文データを出力するブロック
    暗号変換手段と、 端数平文データと、任意の前記ブロック平文データある
    いは前記ブロック暗号変換手段によって途中で出力され
    るデータ11を入力し、端数暗号文データを出力する端
    数暗号変換手段と、 前記ブロック暗号文データと前記端数暗号文データを結
    合し任意長の暗号文を出力する暗号文結合手段と、 を有する暗号変換装置
  2. 【請求項2】前記ブロック暗号変換手段は、 前記初期値を前記鍵によって暗号方法1で変換してデー
    タ21を得る手段と、ブロック平文データのうちのブロ
    ック21とデータ21を融合して得られるデータを前記
    鍵によって前記暗号方法1で変換してデータ22を得る
    手段と、 データ22を暗号方法2で変換して得たデータをブロッ
    ク暗号文データとして出力する手段と、 ブロック平文データのうちのブロック22とデータ22
    を融合して得られるデータを前記鍵によって前記暗号方
    法1で変換したものをさらに前記暗号方法2で変換した
    データをブロック暗号文データとして出力する手段と、 ブロック平文データのうちのブロック23を変換して得
    られるデータを前記鍵によって前記暗号方法1で変換し
    てデータ23を得る手段と、 を有することを特徴とする前記請求項1記載の暗号変換
    装置。
  3. 【請求項3】前記データ21は事前に計算してメモリー
    に記録しておき、同じ鍵で暗号変換するときは、該メモ
    リーに記録されたデータ鍵を用いることを特徴とする請
    求項1記載の暗号変換装置。
  4. 【請求項4】前記端数暗号変換手段は、 前記端数平文データに対して、前記ブロック暗号変換手
    段から出力される前記データ21または前記データ23
    を新たな鍵として前記暗号方法1および前記暗号方法2
    とは異なる方式によって変換して得られるデータを端数
    暗号文データとして出力する手段を含むことを特徴とす
    る前記請求項1記載の暗号変換装置。
  5. 【請求項5】前記端数暗号変換手段は、 端数平文データに対して、前記ブロック平文データのう
    ちの特定のブロックを新たな鍵として前記暗号方法1お
    よび前記暗号方法2とは異なる方式によって変換して得
    られるデータを端数暗号文データして出力する手段を含
    むことを特徴とする前記請求項1記載の暗号変換装置。
  6. 【請求項6】前記暗号変換方法1および前記暗号変換方
    法2は、 左あるいは右に固定ビットだけ循環シフトする2個以上
    の異なる固定循環シフト処理手段と、 前記固定循環シフト処理手段を選択する循環シフト処理
    選択手段と、 鍵から前記循環シフト処理選択手段の選択順序を決定す
    る循環シフト順序決定手段と、 入力された平文データをデータ61とデータ62に分割
    し、データ61を変換して得られるデータ63に対して
    前記循環シフト処理選択手段を用いた循環シフトと変換
    処理を交互に繰り返してデータ64を生成し、前記デー
    タ64と前記データ62とを融合して得られるデータ6
    5をブロック暗号文として出力する手段と、を含むこと
    を特徴とする暗号変換方法および装置。
  7. 【請求項7】任意長の暗号文データを、0個以上の一定
    長のブロック暗号文データと、一個以下の一定長未満の
    端数暗号文データとを出力する暗号文ブロック分割手段
    と、 鍵と初期値と前記一定長のブロック平文データを入力
    し、一定長のブロック平文データを出力するブロック復
    号変換手段と、 端数暗号文データと、任意の前記ブロック暗号文データ
    あるいは前記ブロック復号変換手段によって途中で出力
    されるデータ71を入力し、端数平文データを出力する
    端数復号変換手段と、 前記ブロック平文データと前記端数平文データを結合し
    任意長の平文を出力する平文結合手段とを有する復号変
    換装置
  8. 【請求項8】前記ブロック復号変換手段は、 前記初期値を前記鍵によって前記暗号方法1で変換して
    データ81を得る手段と、ブロック暗号文データのうち
    のブロック81を前記鍵によって復号方法1で変換した
    データ82をさらに復号方法2で変換して得られるデー
    タとデータ81が融合して得られるデータをブロック平
    文データとして出力する手段と、 ブロック暗号文データのうちのブロック82を前記鍵に
    よって前記復号方法1で変換したデータをさらに前記復
    号方法2で変換したデータ83とデータ82を融合して
    得られるデータをブロック平文データの出力する手段
    と、 ブロック暗号文データのうちのブロック83を前記復号
    方法1で変換して得られるデータを鍵によって前記復号
    方法2で変換してデータ84を得る手段と、 を有することを特徴とする前記請求項7記載の復号変換
    装置。
  9. 【請求項9】前記データ81は事前に計算してメモリー
    に記録しておき、同じ鍵で復号するときは、該メモリー
    に記録されたデータ鍵を用いることを特徴とする請求項
    7記載の復号変換装置。
  10. 【請求項10】前記端数復号変換手段は、 前記端数暗号文データに対して、前記データ81または
    前記データ84を新たな鍵として前記復号方法1あるい
    は前記暗号方法2とは異なる方式によって変換して得ら
    れるデータを端数平文データとして出力する手段とを含
    むことを特徴とする前記請求項7記載の復号変換装置。
  11. 【請求項11】前記端数復号変換手段は、 前記端数暗号文データに対して、前記ブロック暗号文デ
    ータのうちの特定のブロックを新たな鍵として前記復号
    方法1あるいは前記暗号方法2とは異なる方式によって
    変換して得られるデータを端数平文データとして出力す
    る手段とを含むことを特徴とする前記請求項7記載の復
    号変換装置。
  12. 【請求項12】前記復号変換方法1および前記復号変換
    方法2は、 左あるいは右に固定ビットだけ循環シフトする2個以上
    の異なる固定循環シフト処理手段と、 前記固定循環シフト処理手段を選択する循環シフト処理
    選択手段と、 鍵から前記循環シフト処理選択手段の選択順序を決定す
    る循環シフト順序決定手段と、 入力された暗号文データをデータ121とデータ122
    に分割し、データ121を変換して得られるデータ12
    3に対して、前記循環シフト処理選択手段を用いた循環
    シフトと変換処理を交互に繰り返してデータ124を生
    成し、前記データ124と前記データ122を融合して
    得られるデータ125をブロック平文データとして出力
    する手段と、を含むことを特徴とする前記請求項7記載
    の復号変換装置。
JP9213328A 1997-08-07 1997-08-07 暗号変換方法および装置 Pending JPH1152850A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9213328A JPH1152850A (ja) 1997-08-07 1997-08-07 暗号変換方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9213328A JPH1152850A (ja) 1997-08-07 1997-08-07 暗号変換方法および装置

Publications (1)

Publication Number Publication Date
JPH1152850A true JPH1152850A (ja) 1999-02-26

Family

ID=16637345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9213328A Pending JPH1152850A (ja) 1997-08-07 1997-08-07 暗号変換方法および装置

Country Status (1)

Country Link
JP (1) JPH1152850A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002543460A (ja) * 1999-04-27 2002-12-17 ミスチェンコ、ヴァレンティン・アレクサンドロヴィッチ 情報を暗号化する方法およびその方法を実現するための装置
KR100456599B1 (ko) * 2002-11-12 2004-11-09 삼성전자주식회사 병렬 디이에스 구조를 갖는 암호 장치
JP2012169964A (ja) * 2011-02-16 2012-09-06 Kddi Corp アルゴリズム可変型暗号装置、アルゴリズム可変型復号装置、アルゴリズム可変型暗号方法、アルゴリズム可変型復号方法およびプログラム
JP5488608B2 (ja) * 2009-10-27 2014-05-14 日本電気株式会社 ブロック暗号装置、ブロック暗号化方法およびプログラム
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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002543460A (ja) * 1999-04-27 2002-12-17 ミスチェンコ、ヴァレンティン・アレクサンドロヴィッチ 情報を暗号化する方法およびその方法を実現するための装置
KR100456599B1 (ko) * 2002-11-12 2004-11-09 삼성전자주식회사 병렬 디이에스 구조를 갖는 암호 장치
JP5488608B2 (ja) * 2009-10-27 2014-05-14 日本電気株式会社 ブロック暗号装置、ブロック暗号化方法およびプログラム
US8891758B2 (en) 2009-10-27 2014-11-18 Nec Corporation Block encryption device and method and computer program
JP2012169964A (ja) * 2011-02-16 2012-09-06 Kddi Corp アルゴリズム可変型暗号装置、アルゴリズム可変型復号装置、アルゴリズム可変型暗号方法、アルゴリズム可変型復号方法およびプログラム
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

Similar Documents

Publication Publication Date Title
JP4127472B2 (ja) データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体
US5351299A (en) Apparatus and method for data encryption with block selection keys and data encryption keys
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US5623548A (en) Transformation pattern generating device and encryption function device
US5222139A (en) Cryptographic method and apparatus
JP2007041620A5 (ja)
JP4025722B2 (ja) データ暗号化のための方法および装置
KR20050078271A (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
JP2950485B2 (ja) ストリーム暗号処理装置
EP1059760A1 (en) Method for the block-encryption of discrete data
JPH1152850A (ja) 暗号変換方法および装置
RU2141729C1 (ru) Способ криптографического преобразования блоков двоичных данных
JPH0697930A (ja) ブロック暗号処理装置
JP2725610B2 (ja) 秘密鍵暗号方法及び装置
KR20020087331A (ko) 부분 라운드간 파이프라인 기법을 이용한 AES Rijndael암호 및 복호 회로
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
KR100350207B1 (ko) 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법
RU2140716C1 (ru) Способ криптографического преобразования блоков цифровых данных
JP3906574B2 (ja) 暗号変換方法、暗号変換装置、復号方法、復号装置及びデータ通信システム
JPH09251267A (ja) 暗号化装置及び暗号化方法
RU2140709C1 (ru) Способ криптографического преобразования блоков цифровых данных
JPH0736673A (ja) 乱数発生器、及びそれを用いた通信システム及びその方法
KR20030087893A (ko) 라운드 키의 온라인 계산 기능을 갖는 모듈화 구조의 AESRijndael 라운드 키 생성 회로
JP3013774B2 (ja) 循環演算にもとづく暗号化装置