JP3053106B2 - 暗号化処理装置、及び復号化処理装置 - Google Patents

暗号化処理装置、及び復号化処理装置

Info

Publication number
JP3053106B2
JP3053106B2 JP2295351A JP29535190A JP3053106B2 JP 3053106 B2 JP3053106 B2 JP 3053106B2 JP 2295351 A JP2295351 A JP 2295351A JP 29535190 A JP29535190 A JP 29535190A JP 3053106 B2 JP3053106 B2 JP 3053106B2
Authority
JP
Japan
Prior art keywords
bits
data
encryption
register
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.)
Expired - Lifetime
Application number
JP2295351A
Other languages
English (en)
Other versions
JPH04170576A (ja
Inventor
和夫 宝木
勤 中村
正弘 山下
和夫 橋本
浩 松本
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 JP2295351A priority Critical patent/JP3053106B2/ja
Priority to US07/785,810 priority patent/US5222139A/en
Publication of JPH04170576A publication Critical patent/JPH04170576A/ja
Application granted granted Critical
Publication of JP3053106B2 publication Critical patent/JP3053106B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、コンピュータのメッセージ等を暗号化する
暗号化処理装置、及び、暗号処理方法に関する。
〔従来の技術〕
現在、多くの企業がビジネスの目的で情報ネットワー
ク設備を強化している。近い将来、一つの組織内ばかり
でなく様々な取引関係にある複数の組織の間で、情報交
換が頻繁に行なわれるようになると予想される。このよ
うな状況下で通信のセキュリティを確保するのに、暗号
は不可欠である。
暗号は、共通鍵暗号と公開鍵暗号という二種に大別さ
れる。共通鍵暗号は、大量データの暗号化,復号化を行
なったり、メッセージ認証コードを作成するのに用いら
れる。
公開鍵暗号は、通信し合う双方で共通鍵を秘密に配送
したり、ディジタル署名を行なったりするのに用いられ
る。また。共通鍵暗号は、送信者と受信者の間で同一の
鍵(共通鍵)が共有されたという前提のもとで、送信者
がメッセージを共通鍵で暗号化変換して送り、受信者は
受け取った暗号文を同じ共通鍵で復号化変換してもとの
メッセージに戻すような暗号化/復号化変換を行なうた
めに用いられる。
従来の共通鍵暗号のアルゴリズムとしては、DES(Dat
a Encryption Standard)とFEAL−8(Fast Encryption
Algorithm)が知られており、DESの関しては例えば、
(1)小山他、「現代暗号理論」、電子通信学会、pp.4
1〜49、昭和61年9月において、また、FEAL−8に関し
ては、(2)清水他、「高速データ暗号アルゴリズムFE
AL」、電子通信学会論文誌D.Vol.J70−D、No.7、pp.14
13〜1423、1987年7月において、それぞれ詳細に述べら
れている。
またデータ攪乱の効率と処理速度の向上を目的とした
ものとして、「マルチメディア向け高速暗号方式」(情
報処理学会、マルチメディア通信と分散処理研究会、19
89年1月19日)および、特開昭63−103919号に開示され
た暗号アルゴリズム(以下、MULTI2という)が知られて
いる。
MULTI2は、平文データ64ビットの上位32ビット,下位
32ビットに対し、第14図に示す基本関数(インボリュー
ション関数)π〜πを所定順序で実行することによ
って暗号文64ビットを得るようにしたものである。
尚、図中はビット毎の排他的論理和、+は232を法
とした加算、−は232を法とした演算、ROtnはnビット
の循環シフト、Vはビット毎の論理和を示す。
〔発明が解決しようとする課題〕
一般に、かなりのランダム性を有していると考えられ
る暗号アルゴリズムであっても、その暗号アルゴリズム
に任意に与えた平文とその平文から生成される暗号文を
解析ある手法(いわゆる選択平文攻撃)によって、暗号
鍵が推定でき、その結果暗号破りが成立する危険性があ
ることが知られている(Boer,“Crypto−analysis of
F.E.E.L.",Proc.EUROCRYPTO,1987参照)。
したがって、上述した従来のアルゴリズムも、将来に
わたって安全であるとは保証できない。
また選択平文攻撃に対しては、暗号鍵の変更周期を短
くする等の運用面での対策と、暗号アルゴリズム自体を
より複雑にして暗号破りを会いにくくする等の技術的対
策を併用することが有効である。後者の技術的対策とし
て、DES、EFEL−8、あるいは、MULTI2において、イン
ボルーション変換の回数を増やすことが提案されている
(宝木他、「マルチメディア向け高速暗号アルゴリズム
Hisecurity−Multi2の開発と利用方法」、電子情報通信
学会、WCIS'89−D2,August28−30,1989、および、H.J.H
ighland,“Cracking the DES?",Computers & Securit
y,8,1989,pp.274−275参照)。
しかし、最適なインボルーション繰り返し回数、すな
わち、この回数以上では安全であり、この回数未満では
安全でないというような最適なインボルーション回数は
知られていない。したがって、安全余裕を見て過度にイ
ンボルーション繰り返し回数を増やさざるを得ない。反
面、暗号変換速度は、インボルーション繰り返し回数が
増大するとそれに反比例して遅くなる。
本発明の目的は、高速な暗号処理をおこない、かつ、
高い安全性を保証しうる暗号処理装置、及び、暗号処理
方法を提供することにある。
〔課題を解決するための手段〕
上記の目的を達成するため、本発明の暗号処理装置
は、基本となる複数種のインボリューション処理プログ
ラムと任意の鍵データとを用いて、メッセージデータ
(平文)を暗号化するための暗号プログラムを生成する
手段と、上記暗号プログラムを実行することにより、上
記メッセージデータを暗号文に変換する手段とを備え
る。
また、上記インボリューション処理プログラムの一部
には、換字処理部と転置処理部とが含まれるため、上記
鍵データのビットパタンに応じて、各インボリューショ
ン処理プログラムの実行順序と、各インボリューション
処理プログラム内部の換字処理部及び転置処理部の実行
順序を決定する。
さらに、上記の複数の転置処理は、相異なる数XとY
に対して、Xビットだけ右または左に循環シフトすると
いう操作と、Yビットだけ右または左に循環シフトする
という操作を含み、該XとYの具体的数値、あるいは、
右か左かのいずれに循環シフトするかといか指示は、鍵
データよって与える。
また、上記の複数の換字処理は、右または左の循環シ
フト命令、および、モジュロ加算または減算命令を含
み、該命令をどのように組み合わせて該換字処理を構成
するかという指示は、鍵データによって与える。
〔作用〕
本発明によれば、鍵データによって、暗号アルゴリズ
ムを構成する関数の一部および関数の実行順序が変化す
る。これにより、関数の一部の変化個数と関数の実行順
の順列組合せの総数の積だけの膨大な数のアルゴリズム
変換形が生じ、暗号破りを飛躍的に困難にする。その結
果、従来の暗号方式と比べて暗号化、復号化変換速度を
ほとんど低下させることなしに、暗号破りに対する強度
の高い共通鍵暗号アルゴリズムを実現できる。
〔実施例〕
以下、本発明の実施例を詳細に説明する。
第1図は、システム構成、第2図は、システム処理手
順を示した図である。このシステムは、暗号プログラム
A,Bを実行する32ビットプロセッサ(106)と暗号プログ
ラムBを生成するサポートプロセッサ(101)からな
る。まず、システム全体の処理手順を説明する。
ステップ201:サポートプロセッサ(101)より暗号プロ
グラムA(102)を32ビットプロセッサ(106)に入力す
る。
ステップ202:64ビット長のアルゴリズム決定鍵A(10
5)および32ビット×8=256ビット長のシステム鍵A
(111)を32ビットプロセッサ106に入力する。
ステップ203:32ビットプロセッサ(106)を動作させ、6
4ビット長のアルゴリズム決定鍵B(107)を生成する。
ステップ204:生成された64ビット長のアルゴリズム決定
鍵B(107)をサポートプロセッサ(101)に送り、暗号
プログラム生成機能(104)を動作させる。
ステップ205:暗号プログラム生成機能(104)は64ビッ
ト長のアルゴリズム決定鍵B(107)をもとにして暗号
プログラムB(103)を生成する。そして、この暗号プ
ログラムB(103)を32ビットプロセッサ(106)に入力
する。
ステップ206:32ビットプロセッサ(106)は、暗号プロ
グラムB(103)による制御の下で、データ鍵(108)と
システム鍵B(112)をパラメータとして平文(109)を
暗号化し、その結果得られる暗号文(110)を出力す
る。
第3図は、32ビットプロセッサ(106)の構成を示し
た図である。32ビットプロセッサ(106)は、制御プロ
グラム部(303)、該制御プログラム部からの制御信号
に基づき演算処理を行なう演算部(302)、および、該
演算部への入力データを保持する入力バッファ(30
1)、および、該演算部からの出力データを保持する出
力バッファ(304)からなる。
第4図は演算部(302)の詳細、第5図は制御プログ
ラム部(303)に最初に格納される暗号プログラムA(1
02)の詳細を説明するための図である。
第2図のアルゴリズム決定鍵Bの生成(201〜203)の
処理手順を第4図,第5図と参照しつつさらに詳しく述
べる。
ステップ201において、32ビットプロセッサ(106)に
入力された暗号プログラムA(102)は、制御プログラ
ム部(303)に格納される。
ステップ202において、入力された64ビット長のアル
ゴリズム決定鍵A(105)は、上位32ビットと下位32ビ
ットとに分割され上位32ビットは演算部(302)の中の3
2ビットレジスタL(401)とX(402)にそれぞれ格納
され、下位32ビットはレジスタR(403)に格納され
る。
また、システムによって定められた32ビット×8=25
6ビット長のシステム鍵A(111)を32ビット毎に分割
し、入力バッファ(301)経由で32ビットレジスタW1(4
04)〜W8(411)にそれぞれ格納しておく。
上述したステップ203においては、第5図において示
されている暗号プログラムA(102)を1行ずつ実行す
る。尚、第5図と対応する流れ図については第6図に示
してある。
また、第5図中の記号については、次のように定義さ
れる。
Ln :データを左(下位ビット方向)にnビット循環
シフトする。
Rn :データを右(上位ビット方向)にnビット循環
シフトする。
EOR :レジスタXに格納されたデータと他のレジスタ
に格納されたデータとの排他論理和をとる。
+ :レジスタXに格納されたデータとゲートAに入
力されるデータとを用いた232を法としたモジュロ加
算。
− :レジスタXに格納されたデータとゲートAに入
力されるデータとを用いた232を法としたモジュロ減
算。
++1 :レジスタXに格納されたデータに1を加えたも
のと、他のデータとを用いた23を法としたモジュロ加
算。
+-1 :レジスタXに格納されたデータに−1を加えた
ものと、他のデータとを用いた23を法としたモジュロ加
算。
−+1 :レジスタXに格納されたデータに1を加えたも
のと、他のデータとを用いた23を法としたモジュロ減
算。
−-1 :レジスタXに格納されたデータに−1を加えた
ものと、他のデータとを用いた23を法としたモジュロ減
算。
∧ :ビットごとの論理和 ∧ :ビットごとの論理積 [Wn]:レジスタWnが鍵スケジュール時にのみ出力先と
なる。
第5図のステップ501の処理においては、レジスタR
(403)はゲートA(412)への入力となり、Rotationの
数は0であり、Rotation以外の演算はExclusive、ORで
あり、演算結果はレジスタR(403)に入力されること
を示している。
具体的な数値を用いると、次のようになる。ただし、
数値は16進数表示とする。64ビット長のアルゴリズム決
定鍵A(105)として、“0000000000000000",8個の32ビ
ット長のシステム鍵A(109)として、8個の“0000000
0"を与える。
つまり、レジスタL(401),X(402)に上位32ビット
長データ“00…0",レジスタR(403)に下位32ビット長
データ“00…0",レジスタW1(404)〜W8(411)に“00
…0"を格納する。
ステップ501において、レジスタX(402)、および、
R(403)に格納されているデータの排他的論理和がと
られ、その結果“00000000"がレジスタX(402)及びR
(403)に格納される。
ステップ502において、レジスタX(402)、および、
W1(404)に格納されているデータの和がとられ、その
結果“00000000"がレジスタXに格納される。
ステップ503において、レジスタX(402)に格納され
ているデータに−1を加算したデータと、レジスタXに
格納されているデータを左1ビット循環シフトしたデー
タとの和をとり、その結果“ffffffff"をレジスタX(4
02)に格納する。
ステップ504において、レジスタX(402)に格納され
ているデータと、レジスタX(402)に格納されている
データを左4ビット循環シフトしたデータとの排他的論
理和をとり、その結果“00000000"がレジスタX(402)
に格納する。
ステップ505において、レジスタX(402)に格納され
ているデータとレジスタL(401)に格納されているデ
ータとの排他的論理和をとり、その結果“00000000"が
レジスタX(402)、およびL(401)に格納する。但
し、暗号プログラムA(102)は、アルゴリズム決定鍵
Bを生成するためのもの(つまり、鍵スケジュールのプ
ログラム)であるので、レジスタW1(404)にも“00000
000"を格納するように設計される。
ステップ506において、レジスタX(402)に格納され
たデータとレジスタW2(405)に格納されたデータとの
和をとり、その結果“00000000"がレジスタXに格納す
る。
ステップ507において、レジスタX(402)に格納され
たデータに+1を加算したデータと、レジスタX(40
2)に格納されたデータを左2ビット循環シフトしたデ
ータとの和をとり、その結果“00000000"をレジスタX
に格納する。
ステップ508において、レジスタX(402)に格納され
たデータと、レジスタX(402)に格納されたデータを
左8ビット循環シフトしたデータとの排他的論理和をと
り、その結果“00000000"がレジスタX(402)に格納す
る。
ステップ509において、レジスタX(402)に格納され
たデータとレジスタW3(406)に格納されたデータとの
和をとり、その結果“00000101"がレジスタXに格納す
る。
ステップ510において、レジスタX(402)に格納され
たデータ左1ビット循環シフトしたデータと、レジスタ
X(402)に格納されたデータとの差をとり、その結果
“00000101"がレジスタX(402)に格納する。
ステップ511において、レジスタX(402)に格納され
たデータとレジスタL(401)に格納されたデータとの
ビット毎の論理和をとり、その結果“00000101"とレジ
スタXに格納されたデータを左16ビットシフトしたデー
タとの排他的論理和をとり、その結果“01010101"をレ
ジスタXに格納する。
ステップ512において、レジスタX(402)に格納され
たデータとレジスタR(403)に格納されたデータとの
排他的論理和をとり、その結果“01010101"をレジスタ
X(402)、および、R(403)に格納する。但し、鍵ス
ケジュールのフェーズであるので、レジスタW2にも“01
010101"を格納する。
ステップ513において、レジスタX(402)に格納され
たデータとレジスタW4(407)に格納されたデータとの
和をとり、その結果“01010101"をレジスタX(402)に
格納する。
ステップ514において、レジスタX(402)に格納され
たデータに+1を加算したデータと、レジスタX(40
2)に格納されたデータを左2ビット循環シフトしたデ
ータとの和をとり、その結果“05050506"をレジスタX
(402)に格納する。
ステップ515において、レジスタX(402)に格納され
たデータレジスタL(401)に格納されたデータとの排
他的論理和をとり、その結果“05050506"をレジスタX
(402)、およびL(401)に格納する。但し、鍵スケジ
ュールのフェーズであるので、レジスタW3(406)にも
“05050506"を格納する。
以下、同様の処理を繰り返し、さらに、インボリュー
ションπを実行する。この結果、レジスタW7(410),
W8(411)には第7図に示すようなデータが得られる。
このW7(410),W8(411)の計64ビットをアルゴリズム
決定鍵B(107)として出力する。
次に、第8図を用いて、暗号プログラムBの生成の処
理手順(204)について詳細に説明する。
前記ステップ204において、アルゴリズム決定鍵B(1
07)を用いて、次のアルゴリズム変換ルールに従って暗
号プログラムA(102)を変換する。アルゴリズム決定
鍵B(107)のうち、前記W7(410)に格納された32ビッ
トをL1,前記W8(411)に格納された32ビットをL2とす
る。L1およびL2の構成を第9図のように決める。
アルゴリズム変換ルールは次のとおりである。
ステップ601:L1の1ビット目〜5ビット目(701)を
見てMULTI2の前半をインボリューションπ〜πを決
定し、L2の1ビット目〜5ビット目によって後半のイン
ボルーションπ〜πの実行順序を決定する。例え
ば、1ビット目〜5ビット目(701)が“00000"のとき
は実行順序をππππとし、“0001"のときは
実行順序をππππとするように、1ビット目
〜5ビット目で表わさせる2進数が、1つ増える毎に、
インボルーションπ〜πの添字の順列が増加するよ
うに実行順序を決める。
尚、1ビット目〜5ビット目(701)が4!=“11000"
のとき、実行順序をππππに戻し、“11111"
のときππππが割り当てられるまで、同様の
割当てを行なう。
さらに、この結果、割当てられた各インボルーション
の実行順序が、初期の実行順序(π123)と
比較して偶数番目から奇数番目、あるいは、奇数番目か
ら偶数番目に変更した場合には、そのインボリューショ
ンの左右の各32ビットの入出力データを左右入れ換え
る。
ステップ602:L1の6ビット目〜16ビット目(702〜70
4)を見て、前半のインボルーションπ〜π内の各
関数(p21〜p23,p31〜p36,p41〜p42)の実行順序を決定
し、L2の6ビット目〜16ビット目によって、後半のイン
ボルーションπ〜π内の各関数の実行順序を決定す
る。具体的には6ビット目〜8ビット目(702)でπ
内の関数p21〜p23の実行順序を決め、9ビット目〜15ビ
ット目(703)でπ内の関数p31〜p36の実行関数を決
め、16ビット目(704)でπ内の関数p41〜p42の実行
順序を決める。この実行順序の決め方はステップ601と
同様である。すなわち、各ビットがすべてゼロの場合、
暗号プログラムA(102)と同じ実行順序であり、それ
を起点として、関数の添字の順列の数値自体が増加数列
となるように順次割り当てる。順列が一巡したら、次か
ら起点と同じ配列を割当て、以下、同様の割当てを行な
う。
ステップ603:L1の17ビット目〜32ビット目(705〜70
9)を見て、前半のインボルーションπ〜πの関数
内の一部を決定し、L2の17ビット目〜32ビット目によっ
て、後半のインボルーションπ〜πの関数内の一部
を換える。例えば、関数p22,p32,p35,p36,p42の演算子
を第10図に示すように各エリアのビットパターンにした
がって変更する。
ステップ604:アルゴリズム決定鍵A(105)の上位8
ビットを見て、インボルーションの繰り返し回数を決定
する。すなわち、上位8ビットが“00000000"のとき、
ステップ603までに決定された8個のインボルーション
を実行する。“00000001"のとき、該8個のインボルー
ションの後、さらに、前半4個のインボルーションを1
回繰り返す。以下、数値が1つ増える毎に前半または後
半4個のインボルーションを交互に追加する。上位8ビ
ットが“11111111"となったとき、ステップ603までに決
定された8個のインボルーションが128回繰り返された
後、前半4個のインボルーションがさらに1回繰り返さ
れることになる。
L1,L2として第7図のビット列を用いる場合、第11図
に示すようなアルゴリズムに変換される。また、このと
き、アルゴリズム決定鍵A(105)の上位8ビットは、
“00000000"であるので、8個のインボルーションが実
行される。つまり、マシーン命令30回で1ブロック64ビ
ットのデータを暗号化する処理となる。
以上のように決定された暗号プログラムは暗号プログ
ラムB(103)として、平文109の暗号化のため実行され
る。
次に、暗号化処理(205,206)について説明する。
第2図のステップ206は、更に、データ鍵(108)とシ
ステム鍵B(112)とからデータ実行鍵(K1〜K8)を生
成するプロセスと、そのデータ実行鍵を用いて平文(10
9)を暗号化するプロセスとに分けられる。
サポートプロセッサ101によって生成された暗号プロ
グラムBのうち、アルゴリズム決定鍵Bの上位32ビット
から作成された4つのインボリューション関数をπa
bcとし、アルゴリズム決定鍵Bの下位32ビット
から作成された4つのインボリューション関数をπe
fgとすると、データ実行鍵(K1〜K8)を生成す
るプロセスは、それらを合わせた9つのインボリューシ
ョン関数をπabcdefghで実
行される。データ実行鍵(K1〜K8)を生成するプロセス
の流れ図を第12図に示す。
尚、アルゴリズム決定鍵Bの上位ビット,下位ビット
を第7図に示すL1,L2とすると、データ実行鍵(K1
K8)を生成するプロセスは、π314213,
π24という9つのインボリューション関数で構
成されることになる。
データ実行鍵(K1〜K8)を生成するプロセスでは、ま
ず、システム鍵B(112)をJ1〜J8に分割して、予めレ
ジスタW1(404)〜W8(411)に格納し、データ鍵(10
8)の上位32ビットをレジスタL(401)とX(402)に
書き込み、下位32ビットをレジスタR(403)に書き込
む。第11図のプログラムにおいて、鍵スケジュールの処
理(出力として大括弧に書かれたレジスタ[WX]への書
き込みを行なう処理)を実行すると、レジスタW1(40
4)〜W8(411)には、データ実行鍵(K1〜K8)が得られ
る。
次に、暗号化プロセスの流れ図を第13図に示す。
第13図はインボリューションの繰り返しが複数回おこ
なわれる場合を示しており、最終段のインボリューショ
ン(π)は省略してある。
アルゴリズム決定鍵Aの上位8ビットが“00000000"
であるときには、第12図と同数のインボリューションと
なる。
処理の前提として、1ブロック64ビットと平文データ
の上位32ビットをレジスタL(401)とX(402)に書き
込み、下位32ビットをレジスタR(403)に書き込んだ
後、暗号プログラムB(出力として大括弧に書かれたレ
ジスタ[WX]への書き込みを行なう処理)を実行する。
結果として、L(401)に暗号文の上位32ビット、R(4
03)に暗号文の下記32ビットがそれぞれ得られる。
復号化は、暗号化プロセスで行なったインボルーショ
ンの実行順序を逆にして行なう。このようにすると、復
号化により元の平文を得られる。
尚、第4図において、32ビットレジスタ12個、32ビッ
ト演算回路3個からなるプロセッサを用いたが、本構成
とは異なる汎用プロセッサを用いて実施例と同様の処理
を行なうようソフトウェアを構成してもよい。
また、第5図、および、第11図においては、4ビッ
ト,8ビット、および、16ビットの左循環シフトを固定と
したが、4ビット,8ビット、および、16ビットの右循環
シフトにしてもよい。あるいは、5ビット,9ビット,17
ビットのようにビット攪乱の波及が効果的となる左また
は右の循環シフトビット数にしてもよい。更に、暗号プ
ログラム変換前は、4ビット,8ビット,16ビットの左循
環を含み、変換後は、3ビット,8ビット,18ビットの左
循環シフトを含むというように、プログラム変換によっ
て、±数ビットの変化が生じるようにしてもよい。
また、本実施例では、アルゴリズム決定鍵A(10
5)、および、データ鍵(108)のビット長を64ビットと
したが、その代り、128ビット長としてもよい。
すなわち、アルゴリズム決定鍵A(105)を128ビット
長とする場合、システム鍵A(111)、すなわち、32ビ
ット×8個のデータI1〜I8のうち、システムよって定ま
る任意の2個Iα,Iβを元のアルゴリズム決定鍵Aに追
加して、計128ビット長のアルゴリズム決定鍵Aとして
もよい。このとき、システム鍵Aは、残りの32ビット×
6個となる。
同様に、データ鍵(108)を128ビット長とする場合、
システム鍵B(112)、すなわち、32ビット×8個のデ
ータJ1〜J8のうち、システムによって定まる任意の2個
γ,Jδを元のデータに追加して、計128ビット長のデ
ータ鍵としてもよい。このとき、システム鍵Bは、残り
の32ビット×6個となる。
また、上述した実施例では、あるデータにインボルー
ション変換を実行し、さらにもう一度同じインボルーシ
ョン変換を実行すると、元のデータに戻るというインボ
ルーションの特徴を活かし、複数個のインボルーション
を実行することにより暗号化関数を、同じインボルーシ
ョンを逆の順序に実行することにより、復号化関数を実
現していた。
しかしながら、本発明を平文の暗号化,復号化以外の
目的、例えば、平文をシステム鍵A,Bとして用いること
により、圧縮コードを作成する場合等に用いるときには
代わり、演算子を変えることによって、インボルーショ
ンの特徴をなくし、一方向暗号関数としてもよい。例え
ば、入力データの上位、または、下位32ビットを関数変
換したものと、入力データの残りの上位、または、下位
32ビットとビット毎の排他的論理和をとる代わりにモジ
ュロ加算やモジュロ積あるいは他の演算を実施する。
〔発明の効果〕
本発明によれば、アルゴリズム決定鍵Aとデータ鍵に
基づき暗号化/復号化関数の決定を行なう処理と、デー
タの暗号化/復号化を行なう処理の2段階に分けること
によって暗号強度の強化が図れる。
尚、本発明で生成される暗号プログラムをインボルー
ション8個の処理に限定した場合においても、263個以
上のアルゴリズムのバリエーションが存在するため、選
択平文−暗号文攻撃に対して強固である。また、アルゴ
リズム鍵の上位8ビットのデータにより、インボルーシ
ョンの繰り返し回数を増やす場合には、暗号解読の手掛
かりは想像も付かない程複雑なものになる。
さらに、インボルーションの繰り返しが8回より大き
い場合には、一度使用したデータ実効鍵(K1〜K8)が繰
り返し使用されるので、ほとんどレジスタ−レジスタ間
の処理で、暗号化を行なうことができ、インボルーショ
ン繰り返し回数が増えたことによる暗号処理速度の低下
は軽減される。
例えば、日立ワークステーション2050/32(日立製作
所(株)製品)を用いて、1028個のインボルーション処
理を含むプログラムを実効すると、36kbps以上の暗号化
処理速度が得られる。これは、8個のインボルーション
処理からなる暗号プログラムを、同装置で実行した場合
に得られる2.7Mbpsから反比例計算によって予測される2
1Kbpsよりも速い。
【図面の簡単な説明】
第1図は本発明を実施する暗号装置のブロック構成図、
第2図は暗号変換の処理を示すフローチャートを示す
図、第3図は32ビットプロセッサ(106)の構成を示す
図、第4図は演算部(302)の詳細を示す図、第5図は
暗号プログラムAの詳細を説明するための図、第6図は
暗号プログラムAのフローチャートを示す図、第7図は
暗号プログラムAを実行することにより生成されたアル
ゴリズム決定鍵Bのビットパタンを示す図、第8図は暗
号プログラム生成機能の処理手順を示す図、第9図はア
ルゴリズム決定鍵Bの構成を示す図、第10図は演算子決
定部分に関する詳細を示した図、第11図は暗号プログラ
ムBの具体例を示す図、第12図及び第13図は暗号プログ
ラムBの一般的フローチャートを説明する図、第14図は
基本インボリューション関数を説明するための図であ
る。
フロントページの続き (72)発明者 中村 勤 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所システム開発研究所 内 (72)発明者 山下 正弘 神奈川県秦野市堀山下1番地 株式会社 日立製作所神奈川工場内 (72)発明者 橋本 和夫 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所システム開発研究所 内 (72)発明者 松本 浩 愛知県名古屋市中区栄3丁目10番22号 日立中部ソフトウエア株式会社内 (56)参考文献 特開 平2−7080(JP,A) 特開 平1−302289(JP,A) 特開 平1−276189(JP,A) (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 - 5/00 H04K 1/00 - 3/00 H04L 9/00 INSPEC(DIALOG) JICSTファイル(JOIS)

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】換字処理手段と転置処理手段とを備えた暗
    号化処理装置において、 同じ入力データに対して異なる結果を出力するn個(1
    <n、nは自然数)の暗号化関数手段と、 前記n個の暗号化関数手段を、k(1≦k≦n−1、k
    は自然数)段目の前記暗号化関数手段の出力をk+1段
    目の暗号化関数手段の入力とすることにより、順次実行
    させる制御手段と、 アルゴリズム鍵データを保持する保持手段と、 を備え、 前記制御手段は、前記保持されたアルゴリズム鍵データ
    によって、前記n個の暗号化関数手段の実行順序を決定
    することを特徴とする暗号化処理装置。
  2. 【請求項2】請求項第1項記載の暗号化処理装置におい
    て、 前記制御手段は、前記保持されたアルゴリズム鍵データ
    によって、前記換字処理手段の処理内容を決定すること
    を特徴とする暗号化処理装置。
  3. 【請求項3】換字処理手段と転置処理手段とを備えた暗
    号化処理装置において、 同じ入力データに対して異なる結果を出力するn個(1
    <n、nは自然数)の暗号化関数手段と、 前記n個の復号化関数手段を、k(1≦k≦n−1、k
    は自然数)段目の前記復号化関数手段の出力をk+1段
    目の復号化関数手段の入力とすることにより、順次実行
    させる制御手段と、 アルゴリズム鍵データを保持する保持手段と、 を備え、 前記制御手段は、前記保持されたアルゴリズム鍵データ
    によって、前記n個の復号化関数手段の実行順序を決定
    することを特徴とする復号化処理装置。
  4. 【請求項4】請求項第3項記載の復号化処理装置におい
    て、 前記制御手段は、前記保持されたアルゴリズム鍵データ
    によって、前記換字処理手段の処理内容を決定すること
    を特徴とする復号化処理装置。
JP2295351A 1990-11-02 1990-11-02 暗号化処理装置、及び復号化処理装置 Expired - Lifetime JP3053106B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2295351A JP3053106B2 (ja) 1990-11-02 1990-11-02 暗号化処理装置、及び復号化処理装置
US07/785,810 US5222139A (en) 1990-11-02 1991-10-31 Cryptographic method and apparatus

Applications Claiming Priority (1)

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

Related Child Applications (3)

Application Number Title Priority Date Filing Date
JP32365599A Division JP2000112350A (ja) 1999-11-15 1999-11-15 暗号処理装置、及び、暗号処理方法
JP32365399A Division JP2000112348A (ja) 1999-11-15 1999-11-15 暗号化装置、および復号化装置
JP32365499A Division JP2000112349A (ja) 1999-11-15 1999-11-15 暗号処理装置、及び、暗号処理方法

Publications (2)

Publication Number Publication Date
JPH04170576A JPH04170576A (ja) 1992-06-18
JP3053106B2 true JP3053106B2 (ja) 2000-06-19

Family

ID=17819486

Family Applications (1)

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

Country Status (2)

Country Link
US (1) US5222139A (ja)
JP (1) JP3053106B2 (ja)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2677200B1 (fr) * 1991-05-30 1993-09-17 Besnard Christian Dispositif de securisation de donnees numeriques.
US5517614A (en) * 1992-05-29 1996-05-14 Kabushiki Kaisha Toshiba Data compression/encryption processing apparatus
JPH0812537B2 (ja) * 1993-03-11 1996-02-07 日本電気株式会社 暗号化装置
US6201869B1 (en) 1995-09-05 2001-03-13 Mitsubishi Denki Kabushiki Kaisha Data transformation apparatus and data transformation method
US5931968A (en) 1996-02-09 1999-08-03 Overland Data, Inc. Digital data recording channel
AU733663B2 (en) * 1996-02-09 2001-05-17 Overland Storage, Inc. Encoder for digital data storage
AU771221B2 (en) * 1996-02-09 2004-03-18 Overland Storage, Inc. Encoder for digital data storage
US5815514A (en) * 1996-02-09 1998-09-29 Overland Data, Inc. Variable rate bit inserter for digital data storage
US6167550A (en) * 1996-02-09 2000-12-26 Overland Data, Inc. Write format for digital data storage
US6543024B2 (en) 1996-02-09 2003-04-01 Overland Storage, Inc. Write format for digital data storage
JPH09233066A (ja) * 1996-02-23 1997-09-05 Sony Corp 暗号化/解読化方法および装置
US5742686A (en) * 1996-06-14 1998-04-21 Finley; Phillip Scott Device and method for dynamic encryption
JP3088337B2 (ja) 1997-05-30 2000-09-18 三菱電機株式会社 暗号処理装置、icカード及び暗号処理方法
US6606385B1 (en) * 1997-08-07 2003-08-12 Hitachi, Ltd. Data encrypting/decrypting conversion methods and apparatuses and data communication system adopting the same
JP4556252B2 (ja) * 1998-05-29 2010-10-06 株式会社日立製作所 暗号変換装置、復号変換装置、暗号通信装置および自動料金徴収システムに用いられるicカード、車載機および路側機
JP2000049770A (ja) 1998-07-31 2000-02-18 Hitachi Ltd 暗号化通信方法、暗号アルゴリズム共有管理方法、暗号アルゴリズム変換方法、ネットワーク通信システム
US6597526B1 (en) 1998-08-14 2003-07-22 Overland Storage, Inc. Magnetic tape drive apparatus including a variable rate encoder
US6845159B1 (en) * 1998-10-07 2005-01-18 Protego Information Ab Processing method and apparatus for converting information from a first format into a second format
JP4763866B2 (ja) * 1998-10-15 2011-08-31 インターシア ソフトウェア エルエルシー 2重再暗号化によりデジタルデータを保護する方法及び装置
WO2000065767A1 (en) * 1999-04-27 2000-11-02 Mischenko Valentin Alexandrovi Method for encrypting information and device for realization of the method
US6269164B1 (en) * 1999-05-17 2001-07-31 Paul Pires Method of and system for encrypting messages
DE19932769A1 (de) * 1999-07-14 2001-03-08 Roellgen Bernd Während der Laufzeit veränderbare kryptographische Methode
DE19963407A1 (de) * 1999-12-28 2001-07-12 Giesecke & Devrient Gmbh Tragbarer Datenträger mit Zugriffsschutz durch Nachrichtenverfremdung
JP4502461B2 (ja) * 2000-05-29 2010-07-14 Geヘルスケア・ジャパン株式会社 暗号通信方法およびシステム
US7539875B1 (en) * 2000-06-27 2009-05-26 Microsoft Corporation Secure repository with layers of tamper resistance and system and method for providing same
US20020076044A1 (en) * 2001-11-16 2002-06-20 Paul Pires Method of and system for encrypting messages, generating encryption keys and producing secure session keys
US20040083373A1 (en) * 2002-10-28 2004-04-29 Perkins Gregory M. Automatically generated cryptographic functions for renewable tamper resistant security systems
US20050147244A1 (en) * 2003-12-30 2005-07-07 Alexander Moldovyan Method for cryptographic transformation of binary data blocks
JP4774509B2 (ja) 2005-05-13 2011-09-14 国立大学法人お茶の水女子大学 擬似乱数発生システム
JP2007199156A (ja) * 2006-01-24 2007-08-09 Sony Corp 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
CN101689993B (zh) * 2007-07-11 2013-02-27 株式会社东芝 组署名系统、装置和方法
JP5024999B2 (ja) * 2007-09-28 2012-09-12 東芝ソリューション株式会社 暗号管理装置、暗号管理方法、暗号管理プログラム
JP4993733B2 (ja) * 2007-09-28 2012-08-08 東芝ソリューション株式会社 暗号クライアント装置、暗号パッケージ配信システム、暗号コンテナ配信システム及び暗号管理サーバ装置
JP2009118257A (ja) * 2007-11-07 2009-05-28 Kawamura Electric Inc 暗号化処理及び復号化処理のシステム
US9846789B2 (en) 2011-09-06 2017-12-19 International Business Machines Corporation Protecting application programs from malicious software or malware
US8819446B2 (en) * 2009-06-26 2014-08-26 International Business Machines Corporation Support for secure objects in a computer system
US9298894B2 (en) 2009-06-26 2016-03-29 International Business Machines Corporation Cache structure for a computer system providing support for secure objects
US8954752B2 (en) 2011-02-23 2015-02-10 International Business Machines Corporation Building and distributing secure object software
US9954875B2 (en) 2009-06-26 2018-04-24 International Business Machines Corporation Protecting from unintentional malware download
US8578175B2 (en) * 2011-02-23 2013-11-05 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US9864853B2 (en) 2011-02-23 2018-01-09 International Business Machines Corporation Enhanced security mechanism for authentication of users of a system
JP5268010B2 (ja) * 2011-03-19 2013-08-21 国立大学法人お茶の水女子大学 暗号化システム及び復号化システム
JP5268011B2 (ja) * 2011-03-19 2013-08-21 国立大学法人お茶の水女子大学 暗号化システム及び復号化システム
US9223965B2 (en) 2013-12-10 2015-12-29 International Business Machines Corporation Secure generation and management of a virtual card on a mobile device
US9235692B2 (en) 2013-12-13 2016-01-12 International Business Machines Corporation Secure application debugging

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2760799B2 (ja) * 1988-04-28 1998-06-04 株式会社日立製作所 暗号方式

Also Published As

Publication number Publication date
JPH04170576A (ja) 1992-06-18
US5222139A (en) 1993-06-22

Similar Documents

Publication Publication Date Title
JP3053106B2 (ja) 暗号化処理装置、及び復号化処理装置
Kumar et al. Development of modified AES algorithm for data security
US7697681B2 (en) Parallelizable integrity-aware encryption technique
JP5229315B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
KR20110120837A (ko) 이산화된 카오스 함수를 이용한 암호 시스템
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
Mohan et al. Revised aes and its modes of operation
AbuJoodeh Exploring and Adapting AES Algorithm for Optimal Use as a Lightweight IoT Crypto Algorithm
JP2002510058A (ja) 2進データ・ブロックの暗号変換のための方法
Tarawneh Cryptography: Recent Advances and Research Perspectives
Kothandan Modified Blowfish Algorithm to Enhance its Performance and Security
JP2000047580A (ja) 暗号変換装置、復号変換装置、暗号通信装置および自動料金徴収装置
Jintcharadze et al. Implementation and Comparative Analysis of Symmetric Encryption Model Based on Substitution Cipher Techniques
Henricksen Tiny Dragon-an encryption algorithm for wireless sensor networks
JP2001142395A (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
JP2000112348A (ja) 暗号化装置、および復号化装置
JP5500277B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
JP2000112350A (ja) 暗号処理装置、及び、暗号処理方法
JPH10153954A (ja) 暗号装置
JP2000112349A (ja) 暗号処理装置、及び、暗号処理方法
Odunayo Improving Advanced Encryption Standard Performance with Residue Number System
ODUNAYO SCHOOL OF POSTGRADUATE STUDIES (SPGS)
Bale et al. Modification of Vigenère Cipher to Overcome Kasiski and Friedman Attacks
Hattab et al. Developing the Complexity and Security of the Twofish Algorithm Through a New Key Scheduling Design
Oguntunde et al. A comparative study of some traditional and modern cryptographic techniques

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080407

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090407

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090407

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100407

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110407

Year of fee payment: 11

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110407

Year of fee payment: 11