JP2000112350A - 暗号処理装置、及び、暗号処理方法 - Google Patents

暗号処理装置、及び、暗号処理方法

Info

Publication number
JP2000112350A
JP2000112350A JP32365599A JP32365599A JP2000112350A JP 2000112350 A JP2000112350 A JP 2000112350A JP 32365599 A JP32365599 A JP 32365599A JP 32365599 A JP32365599 A JP 32365599A JP 2000112350 A JP2000112350 A JP 2000112350A
Authority
JP
Japan
Prior art keywords
data
processing
encryption
bits
key
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
JP32365599A
Other languages
English (en)
Inventor
Kazuo Takaragi
和夫 宝木
Tsutomu Nakamura
勤 中村
Masahiro Yamashita
正弘 山下
Kazuo Hashimoto
和夫 橋本
Hiroshi Matsumoto
浩 松本
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
Hitachi Chubu Software Ltd
Original Assignee
Hitachi Ltd
Hitachi Chubu Software 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, Hitachi Chubu Software Ltd filed Critical Hitachi Ltd
Priority to JP32365599A priority Critical patent/JP2000112350A/ja
Publication of JP2000112350A publication Critical patent/JP2000112350A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】高速かつ高い安全性を保証しうる暗号処理装置
を提供すること。 【解決手段】基本となる複数種のインボリューション処
理手段と任意の鍵データとを用いて、メッセージデータ
を暗号文に変換する手段を備え、上記鍵データのビット
パタンに応じて、各インボリューション処理手段の実行
順序と、各インボリューション処理手段内の換字処理手
段及び転置処理手段の実行順序を決定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータのメ
ッセージ等を暗号化する暗号化処理装置、及び、暗号処
理方法に関する。
【0002】
【従来の技術】現在、多くの企業がビジネスの目的で情
報ネットワーク設備を強化している。近い将来、一つの
組織内ばかりでなく様々な取引関係にある複数の組織の
間で、情報交換が頻繁に行なわれるようになると予想さ
れる。このような状況下で通信のセキュリティを確保す
るのに、暗号は不可欠である。
【0003】暗号は、共通鍵暗号と公開鍵暗号という二
種に大別される。共通鍵暗号は、大量データの暗号化,
復号化を行なったり、メッセージ認証コードを作成する
のに用いられる。
【0004】公開鍵暗号は、通信し合う双方で共通鍵を
秘密に配送したり、ディジタル署名を行なったりするの
に用いられる。また、共通鍵暗号は、送信者と受信者の
間で同一の鍵(共通鍵)が共有されたという前提のもと
で、送信者がメッセージを共通鍵で暗号化変換して送
り、受信者は受け取った暗号文を同じ共通鍵で復号化変
換してもとのメッセージに戻すような暗号化/復号化変
換を行なうために用いられる。
【0005】従来の共通鍵暗号のアルゴリズムとして
は、DES(Data Encryption Standard)とFEAL−
8(Fast Encryption Algorithm)が知られており、D
ESの関しては例えば、(1)小山他、「現代暗号理
論」、電子通信学会、pp.41〜49、昭和61年9
月において、また、FEAL−8に関しては、(2)清
水他、「高速データ暗号アルゴリズムFEAL」、電子
通信学会論文誌D.Vol.J70−D、No.7、p
p.1413〜1423、1987年7月において、そ
れぞれ詳細に述べられている。
【0006】またデータ攪乱の効率と処理速度の向上を
目的としたものとして、「マルチメディア向け高速暗号
方式」(情報処理学会、マルチメディア通信と分散処理
研究会、1989年1月19日)および、特開昭63−
103919号に開示された暗号アルゴリズム(以下、
MULTI2という)が知られている。
【0007】MULTI2は、平文データ64ビットの上位3
2ビット,下位32ビットに対し、図18に示す基本関
数(インボリューション関数)π〜πを所定順序で
実行することによって暗号文64ビットを得るようにし
たものである。
【0008】尚、図中に現われる記号(〇と+を重ねた
もの)
【0009】
【数1】
【0010】はビット毎の排他的論理和、+は232
法とした加算、−は232を法とした演算、Rotnは
nビットの循環シフト、Vはビット毎の論理和を示す。
【0011】
【発明が解決しようとする課題】一般に、かなりのラン
ダム性を有していると考えられる暗号アルゴリズムであ
っても、その暗号アルゴリズムに任意に与えた平文とそ
の平文から生成される暗号文を解析ある手法(いわゆる
選択平文攻撃)によって、暗号鍵が推定でき、その結果
暗号破りが成立する危険性があることが知られている。
(Boer,“Crypto-analysis of F.E.E.L.”,Proc. EUR
OCRYPTO,1987参照)。
【0012】したがって、上述した従来のアルゴリズム
も、将来にわたって安全であるとは保証できない。
【0013】また選択平文攻撃に対しては、暗号鍵の変
更周期を短くする等の運用面での対策と、暗号アルゴリ
ズム自体をより複雑にして暗号破りに会いにくくする等
の技術的対策を併用することが有効である。後者の技術
的対策として、DES、EFEL−8、あるいは、MU
LTI2において、インボルーション変換の回数を増や
すことが提案されている(宝木他、「マルチメディア向
け高速暗号アルゴリズムHisecurity-Multi2の開発と利
用方法」、電子情報通信学会、WCIS’89−D2,
August28-30,1989、および、H.J. Highland,“Crack
ing the DES ?”,Computers & Security,8,1989,p
p.274−275参照)。
【0014】しかし、最適なインボルーション繰り返し
回数、すなわち、この回数以上では安全であり、この回
数未満では安全でないというような最適なインボルーシ
ョン回数は知られていない。したがって、安全余裕を見
て過度にインボルーション繰り返し回数を増やさざるを
得ない。反面、暗号変換速度は、インボルーション繰り
返し回数が増大するとそれに反比例して遅くなる。
【0015】本発明の目的は、高速な暗号処理をおこな
い、かつ、高い安全性を保証しうる暗号処理装置、及
び、暗号処理方法を提供することにある。
【0016】
【課題を解決するための手段】上記の目的を達成するた
め、本発明の暗号処理装置は、基本となる複数種のイン
ボリューション処理プログラムと任意の鍵データとを用
いて、メッセージデータ(平文)を暗号化するための暗
号プログラムを生成する手段と、上記暗号プログラムを
実行することにより、上記メッセージデータを暗号文に
変換する手段とを備える。
【0017】また、上記インボリューション処理プログ
ラムの一部には、換字処理部と転置処理部とが含まれる
ため、上記鍵データのビットパタンに応じて、各インボ
リューション処理プログラムの実行順序と、各インボリ
ューション処理プログラム内部の換字処理部及び転置処
理部の実行順序を決定する。
【0018】さらに、上記の複数の転置処理は、相異な
る数XとYに対して、Xビットだけ右または左に循環シ
フトするという操作と、Yビットだけ右または左に循環
シフトするという操作を含み、該XとYの具体的数値、
あるいは、右か左かのいずれに循環シフトするかといか
指示は、鍵データよって与える。
【0019】また、上記の複数の換字処理は、右または
左の循環シフト命令、および、モジュロ加算または減算
命令を含み、該命令をどのように組み合わせて該換字処
理を構成するかという指示は、鍵データによって与え
る。
【0020】本発明によれば、鍵データによって、暗号
アルゴリズムを構成する関数の一部および関数の実行順
序が変化する。これにより、関数の一部の変化個数と関
数の実行順の順列組合せの総数の積だけの膨大な数のア
ルゴリズム変換形が生じ、暗号破りを飛躍的に困難にす
る。その結果、従来の暗号方式と比べて暗号化、復号化
変換速度をほとんど低下させることなしに、暗号破りに
対する強度の高い共通鍵暗号アルゴリズムを実現でき
る。
【0021】
【発明の実施の形態】以下、本発明の実施例を詳細に説
明する。
【0022】図1は、システム構成、図2は、システム
処理手順を示した図である。このシステムは、暗号プロ
グラムA,Bを実行する32ビットプロセッサ(10
6)と暗号プログラムBを生成するサポートプロセッサ
(101)からなる。まず、システム全体の処理手順を
説明する。
【0023】ステップ201:サポートプロセッサ(1
01)より暗号プログラムA(102)を32ビットプ
ロセッサ(106)に入力する。
【0024】ステップ202:64ビット長のアルゴリ
ズム決定鍵A(105)および32ビット×8=256
ビット長のシステム鍵A(111)を32ビットプロセ
ッサ106に入力する。
【0025】ステップ203:32ビットプロセッサ
(106)を動作させ、64ビット長のアルゴリズム決
定鍵B(107)を生成する。
【0026】ステップ204:生成された64ビット長
のアルゴリズム決定鍵B(107)をサポートプロセッ
サ(101)に送り、暗号プログラム生成機能(10
4)を動作させる。
【0027】ステップ205:暗号プログラム生成機能
(104)は64ビット長のアルゴリズム決定鍵B(1
07)をもとにして暗号プログラムB(103)を生成
する。そして、この暗号プログラムB(103)を32
ビットプロセッサ(106)に入力する。
【0028】ステップ206:32ビットプロセッサ
(106)は、暗号プログラムB(103)による制御
の下で、データ鍵(108)とシステム鍵B(112)
をパラメータとして平文(109)を暗号化し、その結
果得られる暗号文(110)を出力する。
【0029】図3は、32ビットプロセッサ(106)
の構成を示した図である。32ビットプロセッサ(10
6)は、制御プログラム部(303)、該制御プログラ
ム部からの制御信号に基づき演算処理を行なう演算部
(302)、および、該演算部への入力データを保持す
る入力バッファ(301)、および、該演算部からの出
力データを保持する出力バッファ(304)からなる。
【0030】図4は演算部(302)の詳細、図5、図
6は制御プログラム部(303)に最初に格納される暗
号プログラムA(102)の詳細を説明するための図で
ある。
【0031】図2のアルゴリズム決定鍵Bの生成(20
1〜203)の処理手順を図4,図5、図6と参照しつ
つさらに詳しく述べる。
【0032】ステップ201において、32ビットプロ
セッサ(106)に入力された暗号プログラムA(10
2)は、制御プログラム部(303)に格納される。
【0033】ステップ202において、入力された64
ビット長のアルゴリズム決定鍵A(105)は、上位3
2ビットと下位32ビットとに分割され上位32ビット
は演算部(302)の中の32ビットレジスタL(40
1)とX(402)にそれぞれ格納され、下位32ビッ
トはレジスタR(403)に格納される。
【0034】また、システムによって定められた32ビ
ット×8=256ビット長のシステム鍵A(111)を
32ビット毎に分割し、入力バッファ(301)経由で
32ビットレジスタW(404)〜W(411)に
それぞれ格納しておく。
【0035】上述したステップ203においては、図
5、図6において示されている暗号プログラムA(10
2)を1行ずつ実行する。尚、図5、図6と対応する流
れ図については図7、図8に示してある。
【0036】また、図5、図6中の暗号については、次
のように定義される。
【0037】Ln:データを左(下位ビット方向)にn
ビット循環シフトする。
【0038】Rn:データを右(上位ビット方向)にn
ビット循環シフトする。
【0039】EOR:レジスタXに格納されたデータと
他のレジスタに格納されたデータとの排他論理和をと
る。
【0040】+:レジスタXに格納されたデータとゲー
トAに入力されるデータとを用いた232を法としたモ
ジュロ加算。 ―:レジスタXに格納されたデータとゲートAに入力さ
れるデータとを用いた232を法としたモジュロ減算。 ++1:レジスタXに格納されたデータに1を加えたもの
と、他のデータとを用いた2を法としたモジュロ加
算。 +-1:レジスタXに格納されたデータに−1を加えたも
のと、他のデータとを用いた2を法としたモジュロ加
算。 −+1:レジスタXに格納されたデータに1を加えたもの
と、他のデータとを用いた2を法としたモジュロ減
算。 −-1:レジスタXに格納されたデータに−1を加えたも
のと、他のデータとを用いた2を法としたモジュロ減
算。 ∨:ビットごとの論理和 ∧:ビットごとの論理積 [Wn]:レジスタWnが鍵スケジュール時にのみ出力
先となる。
【0041】図5、図6のステップ501の処理におい
ては、レジスタR(403)はゲートA(412)への
入力となり、Rotationの数は0であり、Rotation以外の
演算はExclusive、ORであり、演算結果はレジスタR
(403)に入力されることを示している。
【0042】具体的な数値を用いると、次のようにな
る。ただし、数値は16進数表示とする。64ビット長
のアルゴリズム決定鍵A(105)として、“00000000
00000000”,8個の32ビット長のシステム鍵A(10
9)として、8個の“00000000”を与える。
【0043】つまり、レジスタL(401),X(40
2)に上位32ビット長データ“00…0”,レジスタ
R(403)に下位32ビット長データ“00…0”,
レジスタW(404)〜W(411)に“00…
0”を格納する。
【0044】ステップ501において、レジスタX(4
02)、および、R(403)に格納されているデータ
の排他的論理和がとられ、その結果“00000000”がレジ
スタX(402)及びR(403)に格納される。ステ
ップ502において、レジスタX(402)、および、
(404)に格納されているデータの和がとられ、
その結果“00000000”がレジスタXに格納される。ステ
ップ503において、レジスタX(402)に格納され
ているデータに−1を加算したデータと、レジスタXに
格納されているデータを左1ビット循環シフトしたデー
タとの和をとり、その結果“ffffffff”をレジスタX
(402)に格納する。ステップ504において、レジ
スタX(402)に格納されているデータと、レジスタ
X(402)に格納されているデータを左4ビット循環
シフトしたデータとの排他的論理和をとり、その結果
“00000000”がレジスタX(402)に格納する。
【0045】ステップ505において、レジスタX(4
02)に格納されているデータとレジスタL(401)
に格納されているデータとの排他的論理和をとり、その
結果“00000000”がレジスタX(402)、およびL
(401)に格納する。但し、暗号プログラムA(10
2)は、アルゴリズム決定鍵Bを生成するためのもの
(つまり、鍵スケジュールのプログラム)であるので、
レジスタW(404)にも“00000000”を格納するよ
うに設計される。ステップ506において、レジスタX
(402)に格納されたデータとレジスタW(40
5)に格納されたデータとの和をとり、その結果“0000
0000”がレジスタXに格納する。
【0046】ステップ507において、レジスタX(4
02)に格納されたデータに+1を加算したデータと、
レジスタX(402)に格納されたデータを左2ビット
循環シフトしたデータとの和をとり、その結果“000000
00”をレジスタXに格納する。ステップ508におい
て、レジスタX(402)に格納されたデータと、レジ
スタX(402)に格納されたデータを左8ビット循環
シフトしたデータとの排他的論理和をとり、その結果
“00000000”がレジスタX(402)に格納する。
【0047】ステップ509において、レジスタX(4
02)に格納されたデータとレジスタW(406)に
格納されたデータとの和をとり、その結果“00000101”
がレジスタXに格納する。ステップ510において、レ
ジスタX(402)に格納されたデータ左1ビット循環
シフトしたデータと、レジスタX(402)に格納され
たデータとの差をとり、その結果“00000101”がレジス
タX(402)に格納する。ステップ511において、
レジスタX(402)に格納されたデータとレジスタL
(401)に格納されたデータとのビット毎の論理和を
とり、その結果“00000101”とレジスタXに格納された
データを左16ビットシフトしたデータとの排他的論理
和をとり、その結果“01010101”をレジスタXに格納す
る。
【0048】ステップ512において、レジスタX(4
02)に格納されたデータとレジスタR(403)に格
納されたデータとの排他的論理和をとり、その結果“01
010101”をレジスタX(402)、および、R(40
3)に格納する。但し、鍵スケジュールのフェーズであ
るので、レジスタWにも“01010101”を格納する。
【0049】ステップ513において、レジスタX(4
02)に格納されたデータとレジスタW(407)に
格納されたデータとの和をとり、その結果“01010101”
をレジスタX(402)に格納する。ステップ514に
おいて、レジスタX(402)に格納されたデータ+1
を加算したデータと、レジスタX(402)に格納され
たデータを左2ビット循環シフトしたデータとの和をと
り、その結果“05050506”をレジスタX(402)に格
納する。ステップ515において、レジスタX(40
2)に格納されたデータレジスタL(401)に格納さ
れたデータとの排他的論理和をとり、その結果“050505
06”がレジスタX(402)、およびL(401)に格
納する。但し、鍵スケジュールのフェーズであるので、
レジスタW(406)にも“05050506”を格納する。
【0050】以下、同様の処理を繰り返し、さらに、イ
ンボリューションπを実行する。この結果、レジスタ
(410),W(411)には図7に示すような
データが得られる。このW(410),W(41
1)の計64ビットをアルゴリズム決定鍵B(107)
として出力する。
【0051】次に、図8を用いて、暗号プログラムBの
生成の処理手順(204)について詳細に説明する。前
記ステップ204において、アルゴリズム決定鍵B(1
07)を用いて、次のアルゴリズム変換ルールに従って
暗号プログラムA(102)を変換する。アルゴリズム
決定鍵B(107)のうち、前記W(410)に格納
された32ビットをL,前記W(411)に格納さ
れた32ビットをLとする。LおよびLの構成を
図11のように決める。
【0052】アルゴリズム変換ルールは次のとおりであ
る。ステップ601:Lの1ビット目〜5ビット目
(701)を見てMULTI2の前半のインボルーションπ
〜π を決定し、Lの1ビット目〜5ビット目によっ
て後半のインボルーションπ 〜πの実行順序を決定
する。例えば、1ビット目〜5ビット目(701)が
“00000”のときは実行順序をππππとし、
“00001”のときは実行順序をππππとする
ように、1ビット目〜5ビット目で表わさせる2進数
が、1つ増える毎に、インボルーションπ〜πの添
字の順列が増加するように実行順序を決める。
【0053】尚、1ビット目〜5ビット目(701)が
4!=“11000”のとき、実行順序をππππ
に戻し、“11111”のときππππが割り当て
られるまで、同様の割当てを行なう。
【0054】さらに、この結果、割当てられた各インボ
ルーションの実行順序が、初期の実行順序(π
π,π,π)と比較して偶数番目から奇数番目、
あるいは、奇数番目から偶数番目に変更した場合には、
そのインボリューションの左右の各32ビットの入出力
データを左右入れ換える。
【0055】ステップ602:Lの6ビット目〜16
ビット目(702〜704)を見て、前半のインボルー
ションπ〜π内の各関数(p21〜p23,p31
〜p36,p41〜p42)の実行順序を決定し、L
の6ビット目〜16ビット目によって、後半のインボル
ーションπ〜π内の各関数の実行順序を決定する。
具体的には6ビット目〜8ビット目(702)でπ
の関数p21〜p23 の実行順序を決め、9ビット目〜
15ビット目(703)でπ内の関数p31 〜p36
の実行関数を決め、16ビット目(704)でπ内の
関数p41〜p42の実行順序を決める。この実行順序
の決め方はステップ601と同様である。すなわち、各
ビットがすべてゼロの場合、暗号プログラムA(10
2)と同じ実行順序であり、それを起点として、関数の
添字の順列の数値自体が増加数列となるように順次割り
当てる。順列が一巡したら、次から起点と同じ順列を割
当て、以下、同様の割当てを行なう。
【0056】ステップ603:Lの17ビット目〜3
2ビット目(705〜709)を見て、前半のインボル
ーションπ〜πの関数内の一部を決定し、Lの1
7ビット目〜32ビット目によって、後半のインボルー
ションπ〜πの関数内の一部を換える。例えば、関
数p22,p32,p35,p36,p42の演算子を
図12に示すように各エリアのビットパターンにしたが
って変更する。
【0057】ステップ604:アルゴリズム決定鍵A
(105)の上位8ビットを見て、インボルーションの
繰り返し回数を決定する。すなわち、上位8ビットが
“00000000”のとき、ステップ603までに決定された
8個のインボルーションを実行する。
【0058】“00000001”のとき、該8個のインボルー
ションの後、さらに、前半4個のインボルーションを1
回繰り返す。以下、数値が1つ増える毎に前半または後
半4個のインボルーションを交互に追加する。上位8ビ
ットが“11111111”となったとき、ステップ603まで
に決定された8個のインボルーションが128回繰り返
された後、前半4個のインボルーションがさらに1回繰
り返されることになる。
【0059】L,Lとして図7のビット列を用いる
場合、図13、図14、図15に示すようなアルゴリズ
ムに変換される。また、このとき、アルゴリズム決定鍵
A(105)の上位8ビットは、“00000000”であるの
で、8個のインボルーションが実行される。つまり、マ
シーン命令30個で1ブロック64ビットのデータを暗
号化する処理となる。
【0060】以上のように決定された暗号プログラムは
暗号プログラムB(103)として、平文109の暗号
化のため実行される。
【0061】次に、暗号化処理(205,206)につ
いて説明する。
【0062】図2のステップ206は、更に、データ鍵
(108)とシステム鍵B(112)とからデータ実行
鍵(K〜K)を生成するプロセスと、そのデータ実
行鍵を用いて平文(109)を暗号化するプロセスとに
分けられる。
【0063】サポートプロセッサ101によって生成さ
れた暗号プログラムBのうち、アルゴリズム決定鍵Bの
上位32ビットから作成された4つのインボリューショ
ン関数をπ,π,π,πとし、アルゴリズム決
定鍵Bの下位32ビットから作成された4つのインボリ
ューション関数をπ,π,π,πとすると、デ
ータ実行鍵(K〜K)を生成するプロセスは、それ
らを合わせた9つのインボリューション関数をπ,π
,π,π,π,π,π,π,πで実行
される。データ実行鍵(K〜K)を生成するプロセ
スの流れ図を図16に示す。
【0064】尚、アルゴリズム決定鍵Bの上位ビット,
下位ビットを図7に示すL,L とすると、データ実
行鍵(K〜K)を生成するプロセスは、π
π,π,π,π,π,π,π,πとい
う9つのインボリューション関数で構成されることにな
る。
【0065】データ実行鍵(K〜K)を生成するプ
ロセスでは、まず、システム鍵B(112)をJ〜J
に分割して、予めレジスタW(404)〜W(4
11)に格納し、データ鍵(108)の上位32ビット
をレジスタL(401)とX(402)に書き込み、下
位32ビットをレジスタR(403)に書き込む。図1
3、図14、図15のプログラムにおいて、鍵スケジュ
ールの処理(出力として大括弧に書かれたレジスタ[W
]への書き込みを行なう処理)を実行すると、レジス
タW(404)〜W(411)には、データ実行鍵
(K〜K)が得られる。
【0066】次に、暗号化プロセスの流れ図を図17に
示す。
【0067】図17はインボリューションの繰り返しが
複数回おこなわれる場合を示しており、最終段のインボ
リューション(π)は省略してある。
【0068】アルゴリズム決定鍵Aの上位8ビットが
“00000000”であるときには、図16と同数のインボリ
ューションとなる。
【0069】処理の前提として、1ブロック64ビット
の平文データの上位32ビットをレジスタL(401)
とX(402)に書き込み、下位32ビットをレジスタ
R(403)に書き込んだ後、暗号プログラムB(出力
として大括弧に書かれたレジスタ[W]へ書き込みを
行なう処理)を実行する。結果として、L(401)に
暗号文の上位32ビット、R(403)に暗号文の下位
32ビットがそれぞれ得られる。
【0070】復号化は、暗号化プロセスで行なったイン
ボルーションの実行順序を逆にして行なう。このように
すると、復号化により元の平文を得られる。
【0071】尚、図4において、32ビットレジスタ1
2個、32ビット演算回路3個からなるプロセッサを用
いたが、本構成とは異なる汎用プロセッサを用いて実施
例と同様の処理を行なうようソフトウェアを構成しても
よい。
【0072】また、図5、図6、および、図13、図1
4、図15においては、4ビット,8ビット、および、
16ビットの左循環シフトを固定としたが、4ビット,
8ビット、および、16ビットの右循環シフトにしても
よい。あるいは、5ビット,9ビット,17ビットのよ
うにビット攪乱の波及が効果的となる左または右の循環
シフトビット数にしてもよい。更に、暗号プログラム変
換前は、4ビット,8ビット,16ビットの左循環を含
み、変換後は、3ビット,8ビット,18ビットの左循
環シフトを含むというように、プログラム変換によっ
て、±数ビットの変化が生じるようにしてもよい。
【0073】また、本実施例例では、アルゴリズム決定
鍵A(105)、および、データ鍵(108)のビット
長を64ビットとしたが、その代わり、128ビット長
としてもよい。
【0074】すなわち、アルゴリズム決定鍵A(10
5)を128ビット長とする場合、システム鍵A(11
1)すなわち、32ビット×8個のデータI〜I
うち、システムよって定まる任意の2個Iα,Iβを元
のアルゴリズム決定鍵Aに追加して、計128ビット長
のアルゴリズム決定鍵Aとしてもよい。このとき、シス
テム鍵Aは、残りの32ビット×6個となる。
【0075】同様に、データ鍵(108)を128ビッ
ト長とする場合、システム鍵B(112)、すなわち、
32ビット×8個のデータJ〜Jのうち、システム
よって定まる任意の2個Jγ,Jδを元のデータに追加
して、計128ビット長のデータ鍵としてもよい。この
とき、システム鍵Bは、残りの32ビット×6個とな
る。
【0076】また、上述した実施例では、あるデータに
インボルーション変換を実行し、さらにもう一度同じイ
ンボルーション変換を実行すると、元のデータに戻ると
いうインボルーションの特徴を活かし、複数個のインボ
ルーションを実行することにより暗号化関数を、同じイ
ンボルーションを逆の順序に実行することにより、復号
化関数を実現していた。
【0077】しかしながら、本発明を平文の暗号化,復
号化以外の目的、例えば、平文をシステム鍵A,Bとし
て用いることにより、圧縮コードを作成する場合等に用
いるときには代わり、演算子を変えることによって、イ
ンボルーションの特徴をなくし、一方向暗号関数として
もよい。例えば、入力データの上位、または、下位32
ビットを関数変換したものと、入力データの残りの上
位、または下位32ビットとビット毎の排他的論理和を
とる代わりにモジュロ加算やモジュロ積あるいは他の演
算を実施する。
【0078】
【発明の効果】本発明によれば、アルゴリズム決定鍵A
とデータ鍵に基づき暗号化/復号化関数の決定を行なう
処理と、データの暗号化/復号化を行なう処理の2段階
に分けることによって暗号強度の強化が図れる。
【0079】尚、本発明で生成される暗号プログラムを
インボルーション8個の処理に限定した場合において
も、263個以上のアルゴリズムのバリエーションが存
在するため、選択平文−暗号文攻撃に対して強固であ
る。また、アルゴリズム鍵の上位8ビットのデータによ
り、インボルーションの繰り返し回数を増やす場合に
は、暗号解読の手掛かりは想像も付かない程複雑なもの
になる。
【0080】さらに、インボルーションの繰り返しが8
回より大きい場合には、一度使用したデータ実効鍵(K
〜K)が繰り返し使用されるので、ほとんどレジス
タ−レジスタ間の処理で、暗号化を行なうことができ、
インボルーション繰り返し回数が増えたことによる暗号
処理速度の低下は軽減される。
【0081】例えば、日立ワークステーション2050
/32(日立製作所(株)製品)を用いて、1028個
のインボルーション処理を含むプログラムを実行する
と、36Kbps以上の暗号化処理速度が得られる。これ
は、8個のインボルーション処理からなる暗号プログラ
ムを、同装置で実行した場合に得られる2.7Mbpsから
反比例計算によって予測される21Kbpsよりも速い。
【図面の簡単な説明】
【図1】本発明を実施する暗号装置のブロック構成図。
【図2】暗号変換の処理を示すフローチャートを示す
図。
【図3】32ビットプロセッサ(106)の構成を示す
図。
【図4】演算部(302)の詳細を示す図。
【図5】暗号プログラムAの詳細を説明するための図。
【図6】暗号プログラムAの詳細を説明するための図。
【図7】暗号プログラムAのフローチャートを示す図。
【図8】暗号プログラムAのフローチャートを示す図。
【図9】暗号プログラムAを実行することにより生成さ
れたアルゴリズム決定鍵Bのビットパタンを示す図。
【図10】暗号プログラム生成機能の処理手順を示す
図。
【図11】アルゴリズム決定鍵Bの構成を示す図。
【図12】演算子決定部分に関する詳細を示した図。
【図13】暗号プログラムBの具体例を示す図。
【図14】暗号プログラムBの具体例を示す図。
【図15】暗号プログラムBの具体例を示す図。
【図16】暗号プログラムBの一般的フローチャートを
説明する図。
【図17】暗号プログラムBの一般的フローチャートを
説明する図。
【図18】基本インボリューション関数を説明するため
の図。
【符号の説明】
103…暗号プログラムB、 106…32ビットプロセッサ、 107…アルゴリズム決定鍵、 108…データ鍵、 109…平文、 110…暗号文、 112…システム鍵B、 301…入力バッファ、 302…演算部、 304…出力バッファ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中村 勤 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 山下 正弘 神奈川県秦野市堀山下1番地 株式会社日 立製作所神奈川工場内 (72)発明者 橋本 和夫 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 松本 浩 愛知県名古屋市中区栄三丁目10番22号 日 立中部ソフトウエア株式会社内

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】データ攪乱のための複数の換字処理と転置
    処理を組み合わせて一定長のデータを暗号化するための
    暗号処理方法において、鍵データで上記換字処理または
    転置処理の実行順序、または、処理の繰返し回数を変更
    することを特徴とする暗号処理方法。
  2. 【請求項2】データ攪乱のための複数の換字処理と転置
    処理を組み合わせて一定長のデータを暗号化する暗号処
    理方法において、一定回数以上換字処理と転置処理を繰
    り返す場合、同じ鍵データを繰り返し用いることを特徴
    とする暗号処理方法。
  3. 【請求項3】前記転置処理は、相異なる数XとYに対し
    て、Xビットだけ右または左に循環シフトするという操
    作と、Yビットだけ右または左に循環シフトするという
    操作とを含み、 該XとYの具体的数値、あるいは、右か左かのいずれに
    循環シフトするかといか指示は、鍵データよって与えら
    れることを特徴とする請求項1記載の暗号処理方法。
  4. 【請求項4】前記換字処理は、右または左の巡回シフト
    処理、モジュロ加算処理、モジュロ減算処理、ビット毎
    の排他的論理和処理、ビット毎の論理和処理、または、
    ビット毎の論理積処理を含み、 該処理をどのように組み合わせて該換字処理を構成する
    かという指示は、鍵データによって与えられることを特
    徴とする請求項1記載の暗号処理方法。
  5. 【請求項5】データ攪乱のための複数の換字処理と転置
    処理を組み合わせてのデータを一方向暗号化する一定方
    向暗号方式において、鍵データで上記換字処理または転
    置処理の実行順序、または、処理の繰返し回数を変更す
    ることを特徴とする一方向暗号方式。
  6. 【請求項6】データ攪乱のための複数の換字処理と転置
    処理を組み合わせてのデータを一方向暗号化する一方向
    暗号方式において、一定回数以上換字処理と転置処理を
    繰り返す場合、同じ鍵データを繰り返し用いることを特
    徴とする一方向暗号方式。
  7. 【請求項7】複数の鍵データを用いて、メッセージデー
    タを所定ビットごとに暗号化するための暗号処理装置に
    おいて、複数種の基本インボリューションプログラム
    を、第1の鍵データに応じた実行順序で組合せることに
    よって、暗号プログラムを生成する手段と、第2の鍵デ
    ータを用いて上記暗号プログラムを実行することによ
    り、上記メッセージデータを暗号文に変換する手段とを
    備えることを特徴とする暗号処理装置。
  8. 【請求項8】複数の鍵データを用いて、メッセージデー
    タを所定ビットごとに暗号化するための暗号処理方法に
    おいて、予め記録された複数種の基本インボリューショ
    ンプログラムを、第1の鍵データに応じた実行順序で組
    合わせることによって、暗号プログラムを生成し、第2
    の鍵データを用いて上記暗号プログラムを実行すること
    により、上記メッセージデータを暗号文に変換すること
    を特徴とする暗号処理方法。
JP32365599A 1999-11-15 1999-11-15 暗号処理装置、及び、暗号処理方法 Pending JP2000112350A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32365599A JP2000112350A (ja) 1999-11-15 1999-11-15 暗号処理装置、及び、暗号処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32365599A JP2000112350A (ja) 1999-11-15 1999-11-15 暗号処理装置、及び、暗号処理方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2295351A Division JP3053106B2 (ja) 1990-11-02 1990-11-02 暗号化処理装置、及び復号化処理装置

Publications (1)

Publication Number Publication Date
JP2000112350A true JP2000112350A (ja) 2000-04-21

Family

ID=18157140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32365599A Pending JP2000112350A (ja) 1999-11-15 1999-11-15 暗号処理装置、及び、暗号処理方法

Country Status (1)

Country Link
JP (1) JP2000112350A (ja)

Similar Documents

Publication Publication Date Title
JP3053106B2 (ja) 暗号化処理装置、及び復号化処理装置
Kumar et al. Development of modified AES algorithm for data security
JP5229315B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
KR100800468B1 (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
Sharma et al. DES: The oldest symmetric block key encryption algorithm
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
JP4586163B2 (ja) 暗号化システム
Acholli et al. VLSI implementation of hybrid cryptography algorithm using LFSR key
AbuJoodeh Exploring and Adapting AES Algorithm for Optimal Use as a Lightweight IoT Crypto Algorithm
Saudagar et al. Image Encryption based on Advanced Encryption Standard (AES)
JP2002510058A (ja) 2進データ・ブロックの暗号変換のための方法
JP2000112348A (ja) 暗号化装置、および復号化装置
JP2000112350A (ja) 暗号処理装置、及び、暗号処理方法
JP2000112349A (ja) 暗号処理装置、及び、暗号処理方法
JP3389210B2 (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
JPH10153954A (ja) 暗号装置
JP5500277B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
Odunayo Improving Advanced Encryption Standard Performance with Residue Number System
JPH1152850A (ja) 暗号変換方法および装置
ODUNAYO SCHOOL OF POSTGRADUATE STUDIES (SPGS)
Verma et al. Design and Development of Robust Algorithm for Cryptography using Improved AES Technique
JP2870532B2 (ja) 暗号変換装置
Dappuri et al. Implementation of modified advanced encryption standard using pipelined S-box
Abed et al. Design of New Efficient Stream Key Generator to Protect the Classified Information
JP3371981B2 (ja) ブロック暗号作成装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Effective date: 20040330

Free format text: JAPANESE INTERMEDIATE CODE: A02

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040528

A711 Notification of change in applicant

Effective date: 20040617

Free format text: JAPANESE INTERMEDIATE CODE: A712

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Effective date: 20040622

Free format text: JAPANESE INTERMEDIATE CODE: A911

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20041217