JPH088897A - データの暗号化・復号処理方法及び暗号装置 - Google Patents

データの暗号化・復号処理方法及び暗号装置

Info

Publication number
JPH088897A
JPH088897A JP6132932A JP13293294A JPH088897A JP H088897 A JPH088897 A JP H088897A JP 6132932 A JP6132932 A JP 6132932A JP 13293294 A JP13293294 A JP 13293294A JP H088897 A JPH088897 A JP H088897A
Authority
JP
Japan
Prior art keywords
key
data
encryption
expanded key
partial
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
JP6132932A
Other languages
English (en)
Inventor
Hiroyuki Matsumoto
博幸 松本
Yoko Kato
洋子 加藤
Katsuhiko Aoki
克彦 青木
Katsuichi Oyama
勝一 大山
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.)
N T T ELECTRON TECHNOL KK
Nippon Telegraph and Telephone Corp
NTT ElectronicsTechno Corp
Original Assignee
N T T ELECTRON TECHNOL KK
Nippon Telegraph and Telephone Corp
NTT ElectronicsTechno Corp
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 N T T ELECTRON TECHNOL KK, Nippon Telegraph and Telephone Corp, NTT ElectronicsTechno Corp filed Critical N T T ELECTRON TECHNOL KK
Priority to JP6132932A priority Critical patent/JPH088897A/ja
Publication of JPH088897A publication Critical patent/JPH088897A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 本発明の目的は、レジスタの容量が内部回転
段数の制約を受けず、且つ、同一のハードウェアあるい
はソフトウェアで実現できるデータ暗号化及び復号処理
方法及び暗号装置を提供することである。 【構成】 本発明は、部分拡大鍵生成手段が攪拌手段が
最初の回に必要な部分拡大鍵を生成し、部分拡大鍵生成
手段が部分拡大鍵の生成を完了すると、データ攪拌手段
に対して最初の回の動作と、データ攪拌手段が次の回に
必要な部分拡大鍵を生成し、部分拡大鍵生成手段が部分
拡大鍵の生成を完了すれば、指定された回転段数に従っ
て部分拡大鍵を生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データの暗号化・復号
処理方法及び暗号装置に係り、特に、通信データや計算
機データの送受信の安全性を高めるためのデータの暗号
化・復号処理方法及び暗号装置に関する。
【0002】詳しくは、暗号アルゴリズムにFEAL
(FEALについては「FEAL暗号の拡張」(NT
T,R&D,Vol.39 No.10, 1990) を参照) 及びDES
(DESについては「現代暗号理論」(池野信一、小山
謙二共著、電子情報通信学会、pp.41 〜62) を参照) 等
の慣用暗号アルゴリズムを用いて暗号処理を行うデータ
の暗号化・復号処理方法及び暗号装置に関する。
【0003】
【従来の技術】従来の暗号化・復号処理の例として、暗
号アルゴリズムにFEALを用いた「汎用高速暗号装
置」(特願平4−294622)がある。図15は、従
来の汎用高速暗号装置の構成を示す。同図において、こ
の例は、高速性を実現するために鍵処理部1001にお
いて、拡大鍵を予め生成し、拡張鍵レジスタ1002に
保持し、データランダム化処理に必要な部分拡大鍵を当
該レジスタよりデータランダム化部1003に適宜出力
している。
【0004】同図に示す暗号装置は、回転段数Nが4以
上で4の倍数であればいずれの値でも適用可能である。
【0005】
【発明が解決しようとする課題】しかしながら、上記従
来の暗号装置は、以下のような問題がある。 ・拡大鍵を保持するために、(N+8)×2バイトの鍵
拡張レジスタが必要となり、回転段数Nに依存する。 ・ハードウェアの構成により、回転段数Nの値が制限さ
れる。 ・拡大鍵を保持するためのレジスタ容量の制限を受ける
ため、回転段数Nの上限値が制限される。
【0006】本発明は、上記の点に鑑みなされたもの
で、上記従来の問題点を解決し、レジスタの容量が回転
段数の制約を受けず、且つ、同一のハードウェアあるい
はソフトウェアで実現できるデータ暗号化・復号処理方
法及び暗号装置を提供することである。
【0007】更なる本発明の目的は、小規模なハードウ
ェアで高速に暗号化・復号を実現できるデータ暗号化・
復号処理方法及び暗号装置を提供することである。
【0008】
【課題を解決するための手段】本発明のデータ暗号化・
復号処理方法は、通信データや計算機データの守秘性を
高めるために用いる汎用暗号アルゴリズムを実現する暗
号化・復号処理方法において、データの暗号化・復号処
理の過程で、与えられた暗号鍵又は、既に生成された部
分拡大鍵から次の暗号化・復号処理に必要な新たな部分
拡大鍵を生成する。
【0009】また、本発明のデータ暗号化・復号処理方
法は、与えられた暗号鍵又は既に生成された部分拡大鍵
から次の暗号化・復号処理に必要な新たな部分拡大鍵の
生成において、拡大鍵生成関数及び該拡大鍵生成関数の
逆関数を用いて、順方向または、逆方向に部分拡大鍵を
生成する。
【0010】また、本発明のデータ暗号化・復号処理方
法は、通信データや計算機データの守秘性を高めるため
に用いる任意の回転段数を指定可能な汎用暗号アルゴリ
ズムを実現する暗号化・復号処理方法において、入力デ
ータを攪拌するデータランダム化処理と並行して、当該
データランダム化処理に必要な部分拡大鍵を、暗号化・
復号処理を開始する前に与えられた暗号鍵または、既に
生成された部分拡大鍵から次の暗号化・復号処理に必要
な新たな部分拡大鍵を、拡大鍵生成関数及び拡大鍵生成
関数の逆関数を用いて生成する。
【0011】また、本発明の暗号装置は、通信データや
計算機データの守秘性を高めるために用いる任意の回転
段数が指定可能な暗号装置において、入力データを複数
回に分けて攪拌してデータランダム化処理を行うデータ
攪拌手段と、与えられた暗号鍵または、既に生成された
部分拡大鍵から、拡大鍵生成関数及び拡大鍵生成関数の
逆関数を用いて順方向または逆方向に新たな部分拡大鍵
を生成する部分拡大鍵生成手段と、暗号化または、復号
の指示により部分拡大鍵生成手段に対してデータ攪拌手
段が最初の回に必要な部分拡大鍵を生成する制御を行
い、部分拡大鍵生成手段が部分拡大鍵の生成を完了すれ
ば、データ攪拌手段に対して最初の回の動作制御と、部
分拡大鍵生成手段に対してデータ攪拌手段が次の回に必
要な部分拡大鍵を生成する制御を行い、部分拡大鍵生成
手段が部分拡大鍵の生成を完了すれば、指定された回転
段数に従い、データ攪拌手段に対してi回目の動作制御
と、部分拡大鍵生成手段に対してデータ攪拌手段がi+
1回目に必要な部分拡大鍵を生成する制御動作を繰り返
すように制御する制御手段を有する。
【0012】
【作用】本発明は、既に生成された部分拡大鍵から次の
新たな部分拡大鍵を生成する際に、拡大鍵生成関数を用
いて順方向及び逆方向に部分拡大鍵を生成する処理をデ
ータの暗号化・復号処理の両方に適用する。従って、1
つのハードウェア及びソフトウェアで実現される。
【0013】さらに、データの攪拌処理と並行してデー
タの攪拌に必要な部分拡大鍵を生成することにより、任
意の回転段数Nの設定が可能である。即ち、部分拡大鍵
の生成処理が完了すると、部分拡大鍵生成処理を任意の
指定された回転段数に基づいて、データ攪拌処理(i回
目)に対応する処理、さらに、次回(i+1回目)に対
応する処理を行うことにより、回転段数はインクリメン
トされる値を用いるため、任意に設定可能となる。ま
た、このようにデータの攪拌処理と部分拡大鍵生成処理
が並行して実行されることにより、処理時間が短縮され
る。
【0014】
【実施例】以下、図面と共に本発明の実施例を詳細に説
明する。
【0015】以下、実施例の記載においては、『平文を
暗号文に変換すること』を『暗号化』、『暗号文を平文
に変換すること』を『復号』、暗号化と復号の総称を
『暗号』、拡大鍵の一部を『部分拡大鍵』と定義する。
また、『N』は、回転段数を、『暗号鍵』は拡大鍵を生
成する際に用いる初期データブロックを示す。また、表
記法は、MSB(Most Significant Byte)から順に記
す。
【0016】また、以下では、暗号アルゴリズムは、F
EALを例に説明する。
【0017】まず、最初に各構成を説明する。なお、以
下に示す汎用高速暗合装置の各構成中にあるセレクタ
は、信号線の値が“0”のとき、S0側に入力された値
を、“1”の時S1側に入力された値を出力するものと
する。
【0018】図1は、本発明の一実施例の汎用高速暗号
装置の構成を示す。
【0019】同図に示す汎用高速暗号装置は、暗号鍵を
保持する8バイトのレジスタ1、6組の部分拡大鍵を保
持する12バイトのレジスタ2、8バイトの平文(暗号
文)にデータランダム化処理を行い、8バイトの暗号文
(平文)を出力するデータランダム化部3、順方向(K
[0]からK[N−1]の方向)又は、逆方向(K[N
−1]からK[0]の方向)に部分拡大鍵を生成する鍵
スケジューリング部4、一連の暗号処理を制御する状態
制御部5、平文(暗号文)を入力する8バイト幅のデー
タ線11と、暗号文(平文)を出力する8バイト幅のデ
ータ線12、レジスタ1の出力である8バイト幅のデー
タ線13、レジスタ2の出力である12バイト幅のデー
タ線14、鍵スケジューリング部4の出力である12バ
イト幅のデータ線15と、鍵スケジューリング部4から
出力してレジスタ2の入力となる12バイト幅のデータ
線16、“0”のとき、レジスタ2は、データ線16の
値を保持する制御信号の1ビット幅の制御線21、鍵ス
ケジューリング部4の制御を行う1ビット幅の制御線2
2、23、24と、平文(暗号文)のデータランダム化
処理の制御を行う1ビット幅の制御線25、26とから
構成される。
【0020】また、上記のデータ線及び制御線は、状態
制御部5により制御される。
【0021】なお、上記のデータランダム化部3は、特
許請求の範囲における請求項4のデータ攪拌手段に対応
し、鍵スケジューリング部4は、同様に部分鍵生成手段
に対応し、状態制御部5は、制御手段に対応するものと
する。
【0022】鍵スケジューリング部4は、部分鍵生成関
数及びその逆関数を用いて、新たな部分拡大鍵を生成す
る。鍵スケジューリング部4が新たな部分拡大鍵の生成
を完了すると、状態制御部5は、指定された回転段数に
従い、データランダム化部3に対して次の回(i回目)
の動作制御を行い、鍵スケジューリング部4がさらに次
の回(i+1回目)に必要な部分拡大鍵を生成するよう
に制御する。
【0023】図2は、本発明の一実施例のデータランダ
ム化部の構成を示す。同図中、図1と同一構成部分に
は、同一符号を付し、その説明は省略する。同図に示す
データランダム化部3は、前後処理モジュール32、中
処理モジュール33、セレクタ101、102、4バイ
ト幅のデータ線407、408、409、8バイト幅の
データ線301、302、303、304、305によ
り構成される。このデータランダム化部3は、前処理、
中処理、後処理を行い、前後処理モジュール32では前
処理及び後処理の両方の処理を行う。
【0024】図3は、本発明の一実施例の前後処理モジ
ュールの詳細を示す。前後処理モジュール32は、セレ
クタ103、3組の4バイト幅の入出力を持つ排他的論
理和演算子とで構成される。
【0025】図4は、本発明の一実施例の中処理モジュ
ール33の詳細を示す。中処理モジュール33は、4バ
イト幅及び2バイト幅の2入力と4バイト幅の1出力を
持つ2組のf関数(f関数については、「FEAL暗号
の拡張」(NTT,R&D ,Vol.39 No.10 1990) を参
照) と、4バイトのデータを一時的に保持するバッファ
73、バッファ74、2組の4バイト幅の入出力を持つ
排他的論理和演算回路とで構成される。
【0026】図5は、本発明の一実施例の鍵スケジュー
リング部の詳細を示す。鍵スケジューリング部4は、拡
大鍵生成モジュール42と、セレクタ104〜107、
拡大鍵生成モジュール42の入力である4バイト幅のデ
ータ線401、402、403、拡大鍵生成モジュール
42の出力である4バイト幅のデータ線404、40
5、406、セレクタ106、107の出力である4バ
イト幅のデータ線407、408、409により構成さ
れる。
【0027】図6は、本発明の一実施例の拡大鍵生成モ
ジュールの詳細を示す。鍵スケジューリング部4の拡大
鍵生成モジュール42は、順方向に動作する場合は、部
分拡大鍵 K[x−6]、K[x−5]、K[x−4]、K[x−
3]、K[x−2]、K[x−1] から部分拡大鍵 K[x−4]、K[x−3]、K[x−2]、K[x−
1]、K[x]、K[x+1] を生成し、逆方向に動作する場合は、部分拡大鍵 K[x+1]、K[x+2]、K[x+3]、K[x+
4]、K[x+5]、K[x+6] から部分拡大鍵 K[x−1]、K[x]、K[x+1]、K[x+
2]、K[x+3]、K[x+4] を生成する。
【0028】拡大鍵生成モジュール42は、4バイト幅
の2入力と4バイト幅の1出力を持つfk/fk-1関数
生成器43と、4バイトのレジスタ44、レジスタ4
5、レジスタ46と、セレクタ108〜セレクタ112
と2組の4バイト幅の入出力を持つ排他的論理和演算回
路と、fk/fk-1関数生成器43の出力である4バイ
ト幅のデータ線430により構成される。
【0029】図7は、本発明の一実施例のfk/fk-1
関数生成器の構成を示す。fk/fk-1関数生成器43
は、1バイト幅の2入力と1バイト幅の1出力を持つ2
組のS0/S0-1ボックスと、1バイト幅の2入力と1
バイト幅の1出力を持つ2組のS1/S1-1ボックス
と、セレクタ113〜セレクタ123と、10組の1バ
イト幅の入出力を持つ排他的論理和演算回路と、1バイ
ト幅のデータ線411、412、413、414、42
1、422、423、424、431、432、43
3、434で構成される。
【0030】次に、本発明の暗号化・復号の動作の概要
を説明する。
【0031】図8は、本発明の一実施例のFEALにお
けるデータランダム化部の論理構成を示し、図9は、本
発明の一実施例のFEALにおける鍵スケジューリング
部の論理構成を示す。慣用暗号アルゴリズムを用いた暗
号処理において、鍵スケジューリング部からデータラン
ダム化処理に必要な部分拡大鍵を当該データランダム化
部へ順序正しく引き渡されると、データランダム化部
は、前処理、中処理、後処理の3段階の処理を行う。
【0032】図8において、ランダム化部の中処理のブ
ロックは、回転段数N段の同一処理で構成されているこ
とから、Aで示す部分(以下、この部分をブロックAと
呼ぶ)を一つのモジュールと見做し、中処理では、ブロ
ックAのN回の繰り返し処理を行う。
【0033】同様に、図9において、鍵スケジューリン
グ部4は、「N/2+4」段の同一処理で構成されてい
ることから、Bで示す部分(以下、この部分をブロック
Bと呼ぶ)を一つのモジュールと見做し、鍵スケジュー
リング処理をブロックBの「N/2+4」回の繰り返し
で処理を行う。また、図9の鍵スケジューリング部にお
いて、ブロックBの処理1段毎に2組の部分拡大鍵が生
成される。
【0034】従って、図8のデータランダム化部のブロ
ックAの処理を2回繰り返す毎に図9の鍵スケジューリ
ング部のブロックBの処理を1段進めることができる。
【0035】図8のデータランダム化部の中処理におい
て、図9の鍵スケジューリング部から図8のデータラン
ダム化部への部分拡大鍵の引き渡しは、暗号化の場合に
は、順方向(K[0]→K[N−1]の方向)に、復号
の場合は、逆方向(K[N−1]→K[0]の方向)に
行わなければならない。従って、鍵スケジューリング部
は、部分拡大鍵を暗号化の場合は若番から老番へ、復号
の場合は老番から若番へ順次生成する。
【0036】順方向の鍵スケジューリングは(暗号化処
理)、拡大鍵生成関数fkにより次式のようになる。但
し、fk()は拡大鍵生成関数を、K[x]はx番目の
部分拡大鍵を表す。また、初期値K[0]、K[1]、
K[2]、K[3]、K[4]、K[5]は8バイト与
えられた暗号鍵から生成する。 順方向:K[x],K[x+1] =fk(K[x−6],K[x−5],K[x−4],
K[x−3],K[x−2],K[x−1]) また、逆方向の鍵スケジューリング(復号処理)は、部
分拡大鍵を老番から若番へ生成する。
【0037】逆方向:K[x−1],K[x] =fk-1 (K[x+1],K[x+2],K[x+
3],K[x+4],K[x+5],K[x+6]) 逆方向の鍵スケジューリング方法は、図10の通りとな
る。図10は、本発明の一実施例の部分拡大鍵を逆方向
に生成する鍵スケジューリング部の論理構成を示す。拡
大鍵生成逆関数fk-1と排他的論理和の逆演算により次
式のようになる。但し、fk-1()は拡大鍵生成逆関
数、K[x]は、x番目の部分拡大鍵を表す。また、初
期値 K[N+2],K[N+3],K[N+4],K[N+
5],K[N+6],K[N+7] は、予め暗号鍵から鍵スケジューリング処理を行って生
成する。
【0038】以下に、排他的論理和の逆演算は排他的論
理和であることを照明する。但し、X,Y,Zは入出力
値、EOR は排他的論理和演算子を示す。
【0039】(証明) Z =X EOR Y (1) であるとき、その逆演算が、 Z-1 =X=Z EOR Y (2) であるとする。(2)式を(1)式に代入すると、 Z =X EOR Y=Z EOR Y EOR Y=Z より、合理である。従って、 Z-1=X=Z EOR Y (3) は、真である。以上により、部分拡大鍵を逆方向に生成
することができ、復号が可能である。
【0040】次に、上記で用いられている拡大鍵生成関
数であるfk関数及び拡大鍵生成逆関数fk-1関数につ
いて説明する。fk-1関数は、fk関数の逆関数であ
る。図11は、本発明の一実施例のFEALにおけるf
k/fk-1関数の論理構成を示す。同図より、fk関数
とfk-1関数は、同一モジュールで実現可能である。即
ち、データランダム化部3の中処理モジュール33にお
いて使用することができる。
【0041】また、同図中のS0/S0-1ボックスは、
S0関数(S0関数については、「FEAL暗号の拡
張」(NTT,R&D , Vol.39 No.10 1990) を参照)
とS0 -1関数を同一モジュールで実現した関数、S1/
S1-1ボックスはS1関数(S1関数については、「F
EAL暗号の拡張」(NTT,R&D,Vol.39, No.101
990) を参照) とS1-1関数を同一モジュールで実現し
た関数で、次式の通り定義する。ここで、S0-1関数は
S0関数の逆関数、S1-1関数はS1関数の逆関数であ
る。但し、X,Y,Zは8ビットの入出力値、+は加
算、−は減算(2の補数表現)、Zmod 256 は、Zを2
56で除算したその剰余、LRot2(Z)は8ビットデ
ータの左2ビット回転、RRot2(Z)は8ビットデー
タの右2ビット回転を表す。
【0042】S0/S0-1ボックス:S0関数は次式で
与えられている。
【0043】 Z=S0(X,Y)=LRot2((X+Y)mod 256 ) 上記の式により、S0-1関数を次式の通り定義する。
【0044】X=S0-1(Y,Z)=(RRot2(Z)
−Y)mod 256 S1/S1-1ボックス:S1関数は次式で与えられてい
る。
【0045】Z=S1(X,Y)=LRot2((X+Y
+1)mod 256 ) 上記の式によりS1-1関数を次式の通り定義する。
【0046】X=S1-1(Y,Z)=(RRot2(Z)
−Y−1)mod 256 また、S0-1はS0の逆関数であることの証明、S1-1
は、S1の逆関数であることの証明を、以下の例で示
す。
【0047】 [S0-1がS0の逆関数であることの証明] X=00000001 Y=00000010とする。
【0048】Z=S0(X,Y) =LRot2((X+Y)mod 256 ) =LRot2((00000001+00000010)
mod 256 ) =LRot2(00000011) =00001100 X=S0-1(Y,Z) =(RRot2(Z)−Y)mod 256 =(RRot2(00001100)−00000010
mod 256 =(00000011−00000010)mod 256 =(00000001)mod 256 =00000001 この値は、初期値X=00000001と等しい。従っ
て、S0-1は、S0の逆関数である。
【0049】 [S1-1がS1の逆関数であることの証明] X=100000001,Y=10000010とす
る。
【0050】Z=S0(X,Y) =LRot2((X+Y+1)mod 256) =LRot2((10000001+10000010
+00000001)mod 256) =LRot2(00000100) =00010000 X=S0-1(Y,Z) =(RRot2(Z)−Y−1)mod 256 =(RRot2(00010000)−1000001
0−00000001)mod 256 =(00000100−10000010−00000
001)mod 256 =(10000010−00000001)mod 256 =00000001 この値は、初期値X=00000001と等しい、従っ
て、S0-1は、S0の逆関数である。
【0051】fk/fk-1関数を用いて鍵スケジューリ
ングを行うことにより、データランダム化処理と並行し
て必要な部分拡大鍵を適宜スケジューリングすることが
可能である。
【0052】また、初期値として最低6組の部分鍵が必
要であるが、6組の部分拡大鍵を保持するレジスタ容量
は、回転段数Nに係わらず12バイトとなる。
【0053】次に、本発明の鍵スケジューリングとデー
タランダム化を含む一連の暗号処理の動作を説明する。
【0054】図12は、本発明の一実施例の共通処理の
動作を示す図である。 (1)共通処理 共通処理では、レジスタ1に入力された8バイトの暗号
鍵を基にして、初期値である6組の部分拡大鍵 K[N]、K[N+1]、K[N+2]、K[N+
3]、K[N+4]、K[N+5] を生成する。
【0055】[共通処理フェーズ1]レジスタ1の内容
を鍵スケジューリング部4に入力し、鍵スケジューリン
グ処理を順方向に1段階行う。
【0056】ステップ1)図1及び以下の表1に示すよ
うに、制御線22、制御線23、制御線24を“0”に
する。
【0057】
【表1】
【0058】図5において、セレクタ104、105
は、S0側を出力し、データ線401、402、403
は、レジスタ1からの出力値、即ち、データ線13の値
となる。
【0059】ステップ2)図6において、セレクタ10
5からのデータ線401、402、403を介して値を
データ線410、420の値に変換し、fk/fk-1
数生成器43に入力する。図7において、fk/fk-1
関数生成器43は、データ線411、412、413、
414、421、422、423、424の入力を得
て、1バイト幅のデータ線431、432、433、4
34を出力する。なお、4バイト幅のデータ線430
は、データ線431、432、433、434から構成
される。
【0060】図6において、fk/fk-1関数生成器4
3により新たに、生成された部分拡大鍵を一時的にレジ
スタ44、45、46に保持する。レジスタ44、4
5、46の内容は、それぞれのデータ線404、40
5、406に出力される。この処理を行った後は、デー
タ線406の値は、K[0]、K[1]になる。
【0061】[共通処理フェーズ2]鍵スケジューリン
グ部4は、鍵スケジューリング処理を順方向に「N/2
+3」段階行い、得られた6組の部分拡大鍵をレジスタ
2に保持する。
【0062】ステップ101)図1において、上記の表
1に示すように、制御線21、制御線24は“0”、制
御線23は、“1”にする。
【0063】ステップ102)図5において、拡大鍵生
成モジュール42は、データ線404、405、406
からの入力を得て、上記の共通処理フェーズ1のステッ
プ2と同様の手順を行う。この処理を行った後は、デー
タ線405の値は、K[0]、K[1]、データ線40
6の値は、K[2]、K[3]となる。
【0064】ステップ103)鍵スケジューリング部4
は、上記ステップ102と同様の処理をさらに「N/2
+2」回繰り返す。
【0065】ステップ104)図5において、データ線
16は、データ線404、405、406で構成され
る。図1において、状態制御部5からの制御信号が制御
線21より入力されると、レジスタ2はデータ線16の
値を保持する(この時、レジスタ2が保持する値は、K
[N]、K[N+1]、K[N+2]、K[N+3]、
K[N+4]、K[N+5]になる)。 (2) 暗号化処理 図13は、本発明の一実施例の暗号化処理動作を示す。
【0066】(2−1)暗号化前処理 データランダム化部3に入力された平文(8バイト)に
暗号化前処理を施す。
【0067】[暗号化処理フェーズ1]データランダム
化部3の前後処理モジュール32は、入力された8バイ
トの平文と、レジスタ2から入力される4組の部分拡大
鍵K[N]、K[N+1]、K[N+2]、K[N+
3]との排他的論理和を取る。
【0068】ステップ201)図1において、表1に示
すように、制御線22、25、26は“0”、制御線2
1は“1”にする。
【0069】ステップ202)図5において、セレクタ
106は、S0側を出力し、鍵スケジューリング部4の
出力結果は、データ線407、408、409に現れる
(このとき、データ線408の値はK[N]、K[N+
1]、データ線409の値は、K[N+2]、K[N+
3]になる)。
【0070】ステップ203)図2において、データラ
ンダム化部3のセレクタ101は、S0側を出力し、デ
ータ線301は、データ線11の値になる。
【0071】図3において、前後処理モジュール32
は、データ線301、407、409からの入力を得て
データ線302に結果を出力する。図2において、セレ
クタ102は、S0側を出力し、データ線305は、デ
ータ線302と等しい値になる。
【0072】(2−2)暗号化中処理 上記の暗号化処理フェーズ1の処理で得られたデータブ
ロックに、中処理モジュール33において暗号化中処理
を施す。
【0073】[暗号化処理フェーズ2]図13の暗号化
処理フェーズ2において、レジスタ1の内容を鍵スケジ
ューリング部4に入力し、順方向に部分拡大鍵を生成
し、データランダム化部3によりデータランダム化を1
段階行う。
【0074】ステップ301)図1において、前述の表
1に示すように、制御線22、23、24を“0”、制
御線21、25、26を“1”にする。
【0075】ステップ302)図5において、データラ
ンダム化部3のセレクタ104、105はS0側の値を
出力し、データ線401、402、403はデータ線1
3からの値となる。鍵スケジューリング部4の拡大鍵生
成モジュール42は、上記の共通処理フェーズ1のステ
ップ2と同様の手順を行う。拡大鍵生成モジュール42
の出力結果はデータ線404、405、406に現れ
る。セレクタ107は、S0側を出力し、データ線40
7、408、409に鍵スケジューリング部4の出力結
果が現れる(このとき、データ線408の値は、K
[0]、K[1]になる)。
【0076】ステップ303)図2において、セレクタ
101は、S1側を出力し、データ線303は、データ
線305の値となる。図4において、データランダム化
部3の中処理モジュール33は、データ線303、40
8の値が入力され、結果をバッファ73、74に保持
し、バッファ73、74の内容をデータ線304に出力
する。図2において、セレクタ102は、S1側を出力
し、データ線305は、データ線304と等しい値にな
る。
【0077】[暗号化処理フェーズ3]図13に示す暗
号化処理フェーズ3において、鍵スケジューリング部で
順方向に部分拡大鍵を生成し、データランダム化を「N
/2−1」段行う。
【0078】ステップ401)図1において、表1に示
す通り、制御線24は、“0”、制御線21、23、2
5、26は“1”にする。
【0079】ステップ402)図5において、鍵スケジ
ューリング部4のセレクタ105は、S1側を出力し、
データ線401、402、403は、データ線404、
406と等しい値になる。鍵スケジューリング部4の拡
大鍵生成モジュール42は、データ線401、402、
403からの入力を得て、共通処理フェーズ1のステッ
プ2と同様の手順を行う。拡大鍵生成モジュール42の
出力結果は、データ線404、405、406に現れ
る。
【0080】セレクタ107は、S0側を出力し、デー
タ線407、408、409に鍵スケジューリング部4
の出力結果が現れる(本ステップを施した後、データ線
408の値は、K[2]、K[3]になる)。
【0081】ステップ403)暗号化処理フェーズ2の
ステップ303と同様の手順を行う。
【0082】ステップ404)上記ステップ402〜4
03の手順をさらに「N/2−2」回繰り返す。
【0083】(2−3) 暗号化後処理 図13の暗号化処理フェーズ3の処理で得られたデータ
ブロックに同図の暗号化処理フェーズ4に示す暗号化後
処理を施す。
【0084】[暗号化処理フェーズ4]図13に示す暗
号化処理フェーズ4において後処理を行う。データラン
ダム化部3は、暗号化処理フェーズ3の処理で得られた
データブロックと、レジスタ2及び鍵スケジューリング
4から得られた4組の部分拡大鍵 K[N+4],K[N+5],K[N+6],K[N+
7] との排他的論理和を取る。
【0085】ステップ501)図1において、表1に示
すように、制御線23、24、26は“0”、制御線2
1、22、25は“1”にする。
【0086】ステップ502)図5において、セレクタ
106は、S1側を出力し、鍵スケジューリング部4の
出力結果はデータ線407、408、409に現れる
(このとき、データ線407の値は、K[N+4]、K
[N+5]、データ線409の値は、K[N+6]、K
[N+7]になる)。
【0087】ステップ503)図2において、データラ
ンダム化部3のセレクタ101は、S1側を出力し、デ
ータ線301は、データ線305の値となる。図3にお
いて、前後処理モジュール32は、データ線301、4
07、409からの入力を得て、データ線302に結果
を出力する。図2において、セレクタ102は、S0側
を出力し、データ線12は、データ線302と等しい値
となる。以上のステップを施した後に、データ線12の
値は、暗号化されたデータブロック(暗号文)になる。
【0088】(3)復号処理 (3−1) 復号前処理 入力された暗号文に復号前処理を施す。図14は、本発
明の一実施例の復号処理動作を示す。
【0089】[復号処理フェーズ1]図14の復号処理
フェーズ1において、データランダム化部3は、入力さ
れた暗号文とジレスタ2及び鍵スケジューリング部4か
ら得られた4組の部分拡大鍵 K[N+4],K[N+5],K[N+6],K[N+
7] との排他的論理和を取る。
【0090】ステップ601)図1において、表1に示
すように、制御線23、24、25、26は“0”、制
御線21、22は“1”にする。
【0091】ステップ602)図5において、セレクタ
106は、S1側を出力し、鍵スケジューリング部4の
出力結果は、データ線407、408、409に現れる
(このとき、データ線407の値は、K[N+4]、K
[N+5]、データ線409の値は、K[N+6]、K
[N+7]になる)。
【0092】ステップ603)図2において、データラ
ンダム化部3のセレクタ101は、S0側を出力し、デ
ータ線301は、データ線305の値となる。図3にお
いて、前後処理モジュール32は、データ線301、4
07、409からの入力を得てデータ線302に結果を
出力する。図2において、セレクタ102は、S0側を
出力し、データ線305は、データ線302と等しい値
となる。
【0093】(3−2) 復号中処理 復号処理フェーズ1の処理で得られたデータブロック
に、復号中処理を施す。
【0094】[復号処理フェーズ2]図14の復号処理
フェーズ2において、レジスタ2から初期値となる6組
の部分拡大鍵を鍵スケジューリング部4に入力し、鍵ス
ケジューリング部4が逆方向に部分拡大鍵を生成し、デ
ータランダム化を1段階行う。
【0095】ステップ701)図1において、表1に示
す通り、制御線23は“0”、制御線21、22、2
4、25、26は“1”にする。
【0096】ステップ702)図5において、セレクタ
104は、S1側を、セレクタ105は、S0側を出力
し、データ線401、402、403は、データ線14
の値となる。拡大鍵生成モジュール42は、データ線4
01、402、403の入力を得て、共通処理フェーズ
1のステップ2と同様の手順の処理を行う。拡大鍵生成
モジュール42の出力結果はデータ線404、405、
406に現れる。セレクタ107は、S1側を出力し、
データ線407、408、409に鍵スケジューリング
部4の出力結果が現れる(この時、データ線408の値
は、K[N−1]、K[N−2]になる)。
【0097】ステップ703)暗号化処理フェーズ2の
ステップ303と同様の手順の処理を行う。
【0098】[復号処理フェーズ3]図14の復号フェ
ーズ3において、鍵スケジューリング部4で逆方向に部
分拡大鍵を生成し、データランダム化を「N/2−1」
段行う。
【0099】ステップ801)図1において、表1に示
す通り、制御線21、23、24、25、26は“1”
にする。
【0100】ステップ802)図5において、セレクタ
105はS1側を出力し、データ線401、402、4
03は、データ線404、405、406と等しい値と
なる。拡大鍵生成モジュール42は、データ線401、
402、403の入力を得て、共通処理フェーズ1のス
テップ2と同様の手順の処理を行う。拡大鍵生成モジュ
ール42の出力結果はデータ線404、405、406
に現れる。セレクタ107は、S1側を出力し、データ
線407、408、409に鍵スケジューリング部4の
出力結果が現れる(この時、データ線408の値は、K
[N−3]、K[N−4]になる)。
【0101】ステップ803)暗号化処理フェーズ2の
ステップ303と同様の手順の処理を行う。
【0102】ステップ804)上記のステップ802〜
803の手順をさらに「N/2−2」回繰り返す。
【0103】(3−3)復号後処理 復号処理フェーズ3の処理で得られたデータブロックに
復号後処理を施す。
【0104】[復号処理フェーズ4]図14の復号処理
フェーズ4において、データランダム化部3の前後処理
モジュール32は、復号処理フェーズ3の処理で得られ
たデータブロックと、レジスタ2からの4組部分拡大鍵 K[N],K[N+1],K[N+2],K[N+3] との排他的論理和を取る。
【0105】ステップ901)図1において、表1に示
すように、制御線22、26は“0”、制御線21、2
5は“1”にする。
【0106】ステップ902)図5において、セレクタ
106は、S0側を出力し、データ線407、408、
409に鍵スケジューリング部4の出力結果が現れる
(このとき、データ線407の値は、K[N]、K[N
+1]、データ線409の値は、K[N+2]、K[N
+3]になる)。
【0107】ステップ903)図2において、セレクタ
101はS1側を出力し、データ線301はデータ線3
05の値となる。図3において、前後処理モジュール3
2はデータ線301、407、409からの入力を得
て、結果をデータ線302に出力する。図2において、
セレクタ102はS0側を出力し、データ線12はデー
タ線302と等しい値となる。
【0108】以上のステップを施した後に、データ線1
2の値は復号されたデータブロック(平文)になる。
【0109】なお、上記の実施例では、FEALについ
て適用して述べたが、この例に限定されることなく、D
ES等の慣用暗号アルゴリズムにおいても適用可能であ
る。
【0110】なお、本発明は、上記の例に限定されるこ
となく、特許請求の範囲内で種々変更、応用が可能であ
る。
【0111】
【発明の効果】上述のように本発明によれば、以下のよ
うな効果が得られる。
【0112】(1)本発明を同一構造のハードウェアや
ソフトウェアで実現した場合に、任意の回転段数を選択
することが可能である。また、部分拡大鍵を保持するレ
ジスタの容量は、Nの値に依存せずに一定となる。
【0113】(2)本発明により、データランダム化部
及び鍵スケジューリング部をモジュー化できる。
【0114】(3)本発明の鍵スケジューリング部は、
暗号化と復号の場合に依らず、同一ハードウェア構成で
実現できる。
【0115】(4)本発明は、小規模なLSIで実現で
き、安価に製品化することができる。
【0116】(5)本発明は、鍵スケジューリンチ処理
とデータランダム化処理を並行して同時に行うため、高
速な暗号処理が実現できる。
【0117】(6)本発明は、FEALのみならず、D
ES等の慣用暗号アルゴリズムに適用可能である。
【図面の簡単な説明】
【図1】本発明の一実施例の汎用高速暗号装置の構成図
である。
【図2】本発明の一実施例のデータランダム化部の構成
図である。
【図3】本発明の一実施例の前後処理モジュールの構成
図である。
【図4】本発明の一実施例の中処理モジュールの構成図
である。
【図5】本発明の一実施例の鍵スケジューリング部の構
成図である。
【図6】本発明の一実施例の拡大鍵生成モジュールの構
成図である。
【図7】本発明の一実施例のfk/fk-1関数生成器の
構成図である。
【図8】本発明の一実施例のFEALにおけるデータラ
ンダム化部の論理構成図である。
【図9】本発明の一実施例のFEALにおける鍵スケジ
ューリング部の論理構成図である。
【図10】本発明の一実施例の部分拡大鍵を逆方向に生
成する鍵スケジューリング部の論理構成図である。
【図11】本発明の一実施例のFEALにおけるfk/
fk-1関数の論理構成図である。
【図12】本発明の一実施例の共通処理の動作を示す図
である。
【図13】本発明の一実施例の暗号化処理動作を示す図
である。
【図14】本発明の一実施例の暗号化処理動作を示す図
である。
【図15】従来の汎用高速暗号装置の構成図である。
【符号の説明】
1、2 レジスタ 3 データランダム化部 4 鍵スケジューリング部 5 状態制御部 11,12,13,14,15,16,301,30
2,303,304,305,404,405,40
6,407,408,409、410、411,41
2,413,414,420、421,422,42
3,424,430,431,432,433,434
データ線 21,22,23,24,25,26 制御線 32 前後処理モジュール 33 中処理モジュール 43 fk関数、fk- 関数生成器 44,45,46 レジスタ 42 拡大鍵生成モジュール 73,74 バッファ 101,102,104,105,106,107,1
08,109,110,111,112,113,11
4,115,116,117,118,119,120
セレクタ 1001 鍵処理部 1002 鍵拡張鍵 1003 データランダム化部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 加藤 洋子 東京都千代田区内幸町1丁目1番6号 日 本電信電話株式会社内 (72)発明者 青木 克彦 東京都武蔵野市吉祥寺本町1丁目14番5号 エヌティティエレクトロニクステクノロ ジー株式会社 (72)発明者 大山 勝一 東京都武蔵野市吉祥寺本町1丁目14番5号 エヌティティエレクトロニクステクノロ ジー株式会社

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 通信データや計算機データの守秘性を高
    めるために用いる汎用暗号アルゴリズムを実現する暗号
    化・復号処理方法において、 データの暗号化・復号処理の過程で、与えられた暗号鍵
    又は、既に生成された部分拡大鍵から次の暗号化・復号
    処理に必要な新たな部分拡大鍵を生成することを特徴と
    するデータ暗号化・復号処理方法。
  2. 【請求項2】 前記与えられた暗号鍵又は既に生成され
    た部分拡大鍵から次の暗号化・復号処理に必要な新たな
    部分拡大鍵の生成において、 該部分拡大鍵を生成するための拡大鍵生成関数及び該拡
    大鍵生成関数の逆関数を用いて、順方向または、逆方向
    に部分拡大鍵を生成する請求項1記載のデータ暗号化・
    復号処理方法。
  3. 【請求項3】 通信データや計算機データの守秘性を高
    めるために用いる任意の回転段数を指定可能な汎用暗号
    アルゴリズムを実現する暗号化・復号処理方法におい
    て、 入力データを攪拌するデータランダム化処理と並行し
    て、当該データランダム化処理に必要な部分拡大鍵を、
    前記暗号化・復号処理の過程で与えられた暗号鍵また
    は、既に生成された部分拡大鍵から次の暗号化・復号処
    理に必要な新たな部分拡大鍵を、拡大鍵生成関数及び該
    拡大鍵生成関数の逆関数を用いて生成する請求項1及び
    2記載のデータ暗号化・復号処理方法。
  4. 【請求項4】 通信データや計算機データの守秘性を高
    めるために用いる任意の回転段数が指定可能な暗号装置
    において、 入力データを複数回に分けて攪拌してデータランダム化
    処理を行うデータ攪拌手段と、 与えられた暗号鍵または、既に生成された部分拡大鍵か
    ら、拡大鍵生成関数及び該拡大鍵生成関数の逆関数を用
    いて順方向または逆方向に新たな部分拡大鍵を生成する
    部分拡大鍵生成手段と、 暗号化または、復号の指示により該部分拡大鍵生成手段
    に対して該データ攪拌手段が最初の回に必要な部分拡大
    鍵を生成する制御を行い、 該部分拡大鍵生成手段が該部分拡大鍵の生成を完了すれ
    ば、該制御手段は、該データ攪拌手段に対して最初の回
    の動作制御と、該部分拡大鍵生成手段に対して該データ
    攪拌手段が次の回に必要な部分拡大鍵を生成する制御を
    行い、 該部分拡大鍵生成手段が該部分拡大鍵の生成を完了すれ
    ば、該制御手段は、指定された回転段数に従い、該デー
    タ攪拌手段に対してi回目の動作制御と、該部分拡大鍵
    生成手段に対して該データ攪拌手段がi+1回目に必要
    な部分拡大鍵を生成する制御動作を繰り返すように制御
    する制御手段を有することを特徴とする暗号装置。
JP6132932A 1994-06-15 1994-06-15 データの暗号化・復号処理方法及び暗号装置 Pending JPH088897A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6132932A JPH088897A (ja) 1994-06-15 1994-06-15 データの暗号化・復号処理方法及び暗号装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6132932A JPH088897A (ja) 1994-06-15 1994-06-15 データの暗号化・復号処理方法及び暗号装置

Publications (1)

Publication Number Publication Date
JPH088897A true JPH088897A (ja) 1996-01-12

Family

ID=15092874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6132932A Pending JPH088897A (ja) 1994-06-15 1994-06-15 データの暗号化・復号処理方法及び暗号装置

Country Status (1)

Country Link
JP (1) JPH088897A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010126647A3 (en) * 2009-02-27 2010-12-29 Atmel Rousset S.A.S. Key recovery mechanism for cryptographic systems
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010126647A3 (en) * 2009-02-27 2010-12-29 Atmel Rousset S.A.S. Key recovery mechanism for cryptographic systems
US8233620B2 (en) 2009-02-27 2012-07-31 Inside Secure Key recovery mechanism for cryptographic systems
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
AU767323B2 (en) Block encryption device using auxiliary conversion
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US4731843A (en) Method and device of increasing the execution speed of cipher feedback mode of the DES by an arbitrary multiplier
EP0221538B1 (en) Data randomization equipment and method
US5724428A (en) Block encryption algorithm with data-dependent rotations
US7039184B2 (en) Encryption/decryption unit and storage medium
US7639797B2 (en) Apparatus and method of performing AES Rijndael algorithm
KR19990084419A (ko) 블록 데이터 암호화 장치
JP4025722B2 (ja) データ暗号化のための方法および装置
JP3824121B2 (ja) 暗号データの復号化処理方法および装置
US6108421A (en) Method and apparatus for data encryption
JP2950485B2 (ja) ストリーム暗号処理装置
JPH0697930A (ja) ブロック暗号処理装置
JP2825205B2 (ja) 暗号装置
JPH088897A (ja) データの暗号化・復号処理方法及び暗号装置
JP2725610B2 (ja) 秘密鍵暗号方法及び装置
JPH05249891A (ja) 暗号処理装置およびこれを用いる暗号処理方法
JP2000075785A (ja) 高速暗号処理回路および処理方法
JPH09269727A (ja) 暗号化方法および暗号化装置
JP3517063B2 (ja) 暗号化装置及び暗号化方法
JPH10153954A (ja) 暗号装置
JPH09251267A (ja) 暗号化装置及び暗号化方法
JPH1152850A (ja) 暗号変換方法および装置
JP3295887B2 (ja) 暗号/復号装置
JP2005529365A (ja) Aesミックスカラム変換

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040406