JPH06118872A - データ撹乱装置 - Google Patents

データ撹乱装置

Info

Publication number
JPH06118872A
JPH06118872A JP4271273A JP27127392A JPH06118872A JP H06118872 A JPH06118872 A JP H06118872A JP 4271273 A JP4271273 A JP 4271273A JP 27127392 A JP27127392 A JP 27127392A JP H06118872 A JPH06118872 A JP H06118872A
Authority
JP
Japan
Prior art keywords
data
block
output
unit
selection
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
JP4271273A
Other languages
English (en)
Inventor
Natsume Matsuzaki
なつめ 松崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP4271273A priority Critical patent/JPH06118872A/ja
Priority to US08/071,546 priority patent/US5351299A/en
Publication of JPH06118872A publication Critical patent/JPH06118872A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 小規模なハードウェアで、撹乱効果が高くか
つ現在最も強力である差分攻撃に強いデータ撹乱装置を
提供する。 【構成】 入力データを複数のブロックに分割する。第
1の選択部(図中に示していない)で1個以上のブロッ
クを選択する。ブロック選択信号生成器1で第1の選択
部の出力とブロック選択鍵を用いて、ブロック選択信号
を生成する。第2の選択部2〜4でブロック選択信号を
用いて、第1の選択部以外の入力ブロックから1個以上
のブロックを選択する。第1の融合部5で第1、第2の
選択部の出力を1ブロックに融合圧縮する。その出力デ
ータを1ブロックのデータ撹乱装置F6に入力し、1ブ
ロックの出力を得る。第3の選択部7〜9で前記Fの出
力を入力ブロック分用意し、前記ブロック選択信号の否
定を用いて、1個以上のブロックを選択する。第2の融
合部10〜12で入力データと前記第3の選択部の出力
を排他的論理和で融合し、これを置換部13で置換して
出力データとする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、有料放送、秘密通信等
における暗号化に関し、特にハードウェア量を削減して
効果の高い撹乱を実現するデータ撹乱装置に関する。
【0002】
【従来の技術】
(第1の従来例)秘密通信、署名通信において、受信側
での復号可能性を保持しつつ、データを撹乱する方法の
1つに、インボリューションと言われる方法がある。こ
の方法では、撹乱したデータをもとに戻す逆変換、すな
わち復号はデータを撹乱したときと同じ鍵を用いること
によってのみ可能である。従って、通常はこの鍵をデー
タ撹乱する側とそれをもとに戻す側で秘密に共有した上
でデータの暗号化、復号に使用する。そして、このこと
によって第3者の盗聴を防止することができる。構成を
図4に示す。この方法は例えば64ビットの入力データ
を左右32ビットづつの2ブロックに分割して、右のブ
ロックをあるデータ撹乱関数Fに入力し、その結果を左
のブロックに排他的論理和で融合し、さらにこの後左右
データを入れ替えるといった操作を繰り返し用いる。な
お、ここで融合とは、F関数の結果である1ブロックと
左の1ブロックのビットごとの排他的論理和を求めて、
この出力1ブロックを入力の左ブロックに対応させるこ
とを示す。以降では一般的に融合とは、複数のブロック
を1ブロックに圧縮することを指すものとする。そして
この場合には、融合結果には入力となる複数ブロックの
影響が含まれていることになる。
【0003】データ撹乱関数Fには、撹乱の対象となる
入力データのほかに「鍵」または「秘密鍵」または「共
有鍵」と呼ばれる数値情報であるもう1つの入力があ
る。図3においては、第i回目の繰り返しにおけるデー
タ撹乱関数Fの鍵を、Keyiと表している。また、本図で
信号の流れを示す線に施した斜線「/」と「32」とい
う数字は、信号線が32ビット幅であることを示してい
る。
【0004】通常、インボリューションを実現する際に
は、データ撹乱関数Fおよび排他的論理和を備えた1段
分の演算部を用意しておいて、これを繰り返して用い
る。そのため、撹乱に必要となるハードウェア量が少な
くてすむ。さらに、データ撹乱の逆変換も同じハードウ
ェアを用いて行なうことができる。つまり、図4におけ
るデータ撹乱の結果OUTL、OUTRをそれぞれINL、INRに入
力して、各段で入力する秘密の鍵を、Key(L-1)、…、Ke
y1、Key0と逆に入力しながら、データ撹乱と同じ関数F
を用いて同じ操作を繰り返すことにより、OUTL、OUTRに
もとの入力値が復元して格納される。
【0005】このインボリューション構成は、現在米国
で最も普及している暗号化方式であるDES(Data Encryp
tion Standard)にも、その後日本で開発されたFEAL(F
astdata Encipherment ALgorithm)にも採用されてい
る。両者の違いはデータ撹乱関数Fの中身である。な
お、DESについては、FIPS PUB 46,NBS Jan,1977に、FEA
Lについては、A.Shimizu & S.Miyaguchi:"Fast Data En
cipherment algorithm FEAL",Advances in Cryptology-
EUROCRYPT '87 , Springer-Verlag(シミス゛ トミヤク゛チ:"ファース
トテ゛ータエンシフェルメント アルコ゛リス゛ム エフイーエーエル”,アト゛ハ゛ンス イン ク
リフ゜トロシ゛ーヨーロクリフ゜ト'87スフ゜リンカ゛ー フェルラク゛)にそれぞれ詳
細に述べられている。また、池野信一、小山謙二共著
電子通信学会発行「現代暗号理論」の第3章にもDESお
よびインボリューション構成について述べられている。
【0006】ところで、最近インボリューション構成の
データ撹乱方式一般、つまりデータ撹乱関数Fの中身に
関わらずに適応できる攻撃が提案されている。通常この
攻撃は「差分攻撃」と呼ばれ、解読者が指定する特定の
差分(排他的論理和、'+'で表す)をもつ入力対をそれ
ぞれ撹乱して、その出力対の差分を入手できるときに可
能となる。つまり、例えば入力TiとTi+δそれぞれを、
ある秘密の固定の鍵k(この場合インボリューションの
各段の鍵をあわせて考える)を入力とするデータ撹乱器
(fkとする)に入力して、その出力の差分、つまりfk
(Ti)+fk(Ti+δ)を入手する。そしてこのTiの数値
を変えて複数個のデータをとり、入力対の差分δが出力
対の差分に与える影響を解析して統計的に秘密の鍵kを
発見する。なお、このときのδも変更してデータをと
る。
【0007】この差分攻撃を無効にするためには、イン
ボリューション構成の繰り返しを増加する必要がある。
現在、DESは16段、FEALは32段以上繰り返す必要が
あるとされている。なお、この攻撃法のより具体的な内
容については、Eli Biham and Adi Shamir:"Differenti
al Cryptanalysis of DES-Like Cryptosystems", Advan
ces in Cryptology-CRYPT O'90, Springer-Verlag(エリヒ゛
ハム アント゛ アチ゛シャミル"テ゛ィファレンシャル クリフ゜タナリシス オフ゛ テ゛ィエイーエス
ライク クリフ゜トシステムス゛"アト゛ハ゛ンス イン クリフ゜トロシ゛ークリフ゜ト'90スフ゜リン
カ゛ー フェルラク゛)に詳しく述べられているため、その説明
は省略する。
【0008】差分攻撃を無効にするために繰り返し回数
を増加すると、それに比例して処理時間がかかる。そこ
で、いかに繰り返し回数が少ない構成を考えるかが課題
となる。さて、この差分攻撃を可能としている1つの原
因は、インボリューションの構成自身にある。つまり、
インボリューションの構成では、入力及び出力データ
と、各段のF関数に入力されるデータの関係が容易に解
析されうる。例えば図4におけるインボリューション構
成ではまず、1段目のF関数の入力は入力データINR、
2段目の入力は入力データINLと1段目のF関数の出力
の排他的論理和、3段目の入力はINRと2段目のF関数
の出力の排他的論理和という簡単な構造になっている。
このインボリューションの性質は、今仮定している状況
のように、解読者が入力データを自由に選び、かつその
出力データを知りうる場合には、解読に関して大きな手
掛かりとなる。
【0009】(第2の従来例)インボリューション構成
は、入力データの分割数を前記の2からそれ以上に増加
することによって拡張することが可能である。入力デー
タのビット数が同じ場合、分割数を大きくすることによ
りデータ撹乱関数Fの処理幅が小さくなり、ハードウェ
ア量を削減することができる。こういった試みは、例え
ばY. Zheng andT.Matsumoto and H.Imai:"On the const
ruction of block ciphers provably secure and not r
elying on any unproved hypotheses",Advances in Cry
ptology-CRYPT O'89, Springer-Verlag (ワイツェンク゛ アント゛
ティーマツモト アント゛ エッチイマイ "オン サ゛ コンストラクション オフ゛ フ゛ロックシファー
ス゛ フ゜ロハ゛フ゛リー セクア アント゛ ノット リラインク゛ オン エニー アンフ
゜ルーフ゛ト゛ ハイホ゜セ゛シス "アト゛ハ゛ンス イン クリフ゜トロシ゛ークリフ゜ト'89スフ
゜リンカ゛ー フェルラク゛)でも述べられている。
【0010】図5は、入力データを64ビットとし、こ
れを16ビットづつの4つに分ける場合の拡張されたイ
ンボリューション構成を示している。まず、一番右の1
6ビットをデータ撹乱関数Fに入力して、この結果を他
の3ブロックに排他的論理和で融合する。そして、同様
に2番目、3番目、4番目のブロックをFに入力し、そ
の他の3ブロックと融合する操作を繰り返す。この構成
では通常、1つのデータ撹乱関数Fを備え、各ブロック
のデータを順次シフトしてF関数に入力することによっ
て実現する。また、この方法も分割数が2である通常の
インボリューション構成と同様に、復号を同じハードウ
ェアを用いて行なうことができる。ただし、復号の場合
は鍵の入力する順番を暗号の場合とは逆の順番に入力す
る。
【0011】しかしながら、この構成では、データ撹乱
装置Fにすべての入力データが入力されて全体が撹乱で
きるのに、少なくとも4段繰り返すことが必要である。
従って、図4に示した分割数2の通常のインボリューシ
ョンに比べて1段あたりの撹乱の効果が低下する。ま
た、上記Eli Bihamらの文献に、この拡張インボリュー
ションの構成にも上記の差分攻撃が適用できることが示
されている。
【0012】(第3の従来例)そこで、発明者は出願番
号4ー145964において、図6に示すデータ撹乱装
置を発明した。この方法は入力データを2以上に分割し
て撹乱する方法であり、1段の撹乱の効果が低下せず
に、かつ差分攻撃を困難にする構成になっている。
【0013】以下図4に基づいてこの方法の説明を行な
う。この例では64ビットの入力データAを16ビット
づつの4つのブロックA0,A1,A2,A3に分割する場合につ
いて示している。なお、同図においてa63はデータAの6
3ビット目を表すものとする。他の記号も同様である。
【0014】同図において101〜104はブロック選
択鍵情報K0〜K3(各1ビット)それぞれに対応するブロ
ックのうち鍵の値が1であるものを選択する第1の選択
部である。105は第1の選択部の出力を融合して1ブ
ロック16ビットのデータを出力する第1の融合部であ
る。この例では融合はブロックの各ビットごとの排他的
論理和で構成している。106は16ビットの入力デー
タをデータ撹乱鍵情報Kを用いて撹乱し、16ビットの
データを出力する任意のデータ撹乱装置Fである。この
F自身の構成については本発明の範囲外なので省略す
る。107〜110は前記データ撹乱装置Fの出力を4
ブロック分用意して、それぞれに対応するブロック選択
鍵情報K0〜K3の値が0であるものを選択する第2の選択
部である。また、111〜114は前記第2の選択部の
出力と最初の入力データAを排他的論理和で融合する第
2の融合部を示している。
【0015】次にブロック選択鍵情報が例えばK0=1、
K1=0、K2=1、K3=0の場合における、このデータ撹
乱装置の動作について説明する。
【0016】(1)第1の選択部では、4つの入力ブロ
ックA0〜A3と対応するブロック選択鍵情報K0〜K3との論
理積を求める。このことによって、第1の選択部の出力
は対応する鍵情報が0であるデータ、つまりC1とC3の各
ビットはすべて0になる。また、C0,C2はそれぞれA0,A2
と同じになる。
【0017】(2)第1の融合部105では、上記C0,C
1,C2,C3のビットごとの排他的論理和を求める。従っ
て、上記のことより第1の融合部105の出力Dは、A2
とA0のビットごとの排他的論理和となる。
【0018】(3)データ撹乱装置F関数106では、
第1の融合部105の出力Dを入力のデータ撹乱鍵情報
Kを用いて撹乱し、1ブロック16ビットの出力値Eを
出力する。
【0019】(4)第2の選択部では、前記F関数の出
力データを4ブロック分用意し、このデータEと各ブロ
ックに対応するブロック選択鍵情報の否定との論理積を
求める。このことによって、第2の選択部の出力は対応
する鍵情報が1であるデータ、つまりG0,G2の各ビット
はすべて0になる。また、対応する鍵情報が0である1
番目と3番目のブロックには前記F関数の出力データE
が出力される。
【0020】(5)第2の融合部では、入力データAと
それに対応する第2の選択部の出力データのビットごと
の排他的論理和を求める。このことによって本実施例に
おけるデータ撹乱装置の出力データB0,B2は、それぞれ
対応する入力データA0,A2と同じになり、B1,B3は対応す
る入力データA1,A3と前記F関数の出力Eの排他的論理
和となる。
【0021】以上の(1)〜(5)をまとめると、この
データ撹乱装置では、入力Aを、AL=(A1,A3)とAR=(A0,A
2)の2つに分けて、ARを1ブロック幅に圧縮融合した後
データ撹乱装置Fに入力し、その結果EをAL=(A1,A3)の
各ブロックに排他的論理和で融合している。従って、出
力Bは(B0,B1,B2,B3)=(A0,A1+E,A2,A3+E)となる。な
お、ここで'+'は排他的論理和を示す演算子とする。
【0022】従って、入力tのブロック選択鍵情報を各
繰り返しごとに変化させて、データ撹乱を行なうことに
より、このデータ撹乱装置は左右のビット数とビット位
置が可変であるインボリューションに近似した構成とな
る。また、撹乱されたデータをもとに戻す復号において
も従来のインボリューション構成と同様に、同じハード
ウェアを用いて鍵の順序をデータ撹乱の際と逆に入力す
ればよい。
【0023】そして、この方法は、従来例1、従来例2
の問題点を以下のとおり解決している。
【0024】(1)データを複数のブロックに分割し
て、このブロック単位で入力データを2つに分けてい
る。この分割には秘密のブロック選択鍵を用いる。秘密
の鍵を知らない解読者には、入力及び出力と各段のF関
数に入力されるデータの関係を解析することさえ困難で
ある。
【0025】(2)F関数入力の前に、データAを1ブ
ロック幅に融合圧縮する第1の融合部を付加している。
そのため、ハードウェアとしては1ブロック幅のデータ
撹乱装置Fだけを用意すればよい。加えてこのF関数に
は圧縮はされているがデータA全体が入力されているた
め、特にAとして2ブロック以上ある場合、従来例2に
比べて撹乱効果が高い。
【0026】
【発明が解決しようとする課題】以上説明したように、
従来例3は、従来例1、従来例2の問題点を解決してい
る。ところが従来例3における次の点は、場合によって
は問題になる。
【0027】(1)ブロック選択鍵だけに依存して入力
データの分割を行なっている。差分攻撃では、鍵を固定
にして解析を行なっている。従来例3の方法ではブロッ
ク選択鍵を固定にすると、ある一定の流れにしたがって
分割、撹乱される。データの流れ自身は第3者に分から
ないため、従来例1に比べると解析は困難である。しか
しながら、ある特定の差分に対して大きな確率で特徴が
現われてくるようなF関数を選んだ場合には、従来例
1、2と同様に解析される可能性が高い。
【0028】(2)F関数の前に第1の融合部を備え、
入力を一定のビット数に圧縮している。
【0029】第1の融合部とF関数をまとめて1つのデ
ータ撹乱関数と考えると、一般にこの関数は2ブロック
以上のデータを入力とするため、F関数をどんなに選ん
でも単射になりえない。そのため、出力ビットの0/1
のバランスのとれた撹乱関数の設計が困難である。出力
ビットに0または1が偏って出現すると、鍵を総当たり
で1つ1つ代入する攻撃(総当たり法という)に対して
弱くなってしまう。
【0030】また、従来例3では1ブロックの幅(上記
の例では16ビット)とF関数の入出力の幅が一致して
いることが必要である。そのため、例えば安全性を向上
するためにF関数だけの入力幅を倍にしたい場合には対
応できない。
【0031】本発明は、従来例における上述の課題に鑑
みて試されたもので、ハードウェアで実現することを前
提に、撹乱効果が高く、差分攻撃に強く、そして撹乱に
おいて出力ビットの0/1の偏りを生じないデータ撹乱
装置を提供することを目的とする。
【0032】
【課題を解決するための手段】上記目的を達成するため
に、請求項1の発明においては、M,Nをそれぞれ2以上
の正整数とするとき、M×Nビットの入力データをブロッ
ク選択鍵情報とデータ撹乱鍵情報を用いて撹乱する装置
を繰り返し用いるデータ撹乱装置、もしくは、多段に備
えて用いるデータ撹乱装置であって、各段が、入力デー
タをMビットずつのNブロックに分割するデータ分割部
と、ここから1個以上のLブロックの入力データを選択
する第1の選択部と、前記第1の選択部の出力と前記ブ
ロック選択鍵情報に依存して、残りのN-Lブロックから
1個以上、N-L-1個以下のブロックを選択する第2の選
択部と、前記第1、第2の選択部で選択されなかった残
りブロックを選択する第3の選択部と、前記第1、第2
の選択部の出力を入力としてこれらを融合し、1ブロッ
クMビットの結果を出力する第1の融合部と、前記第1
の融合部の出力を前記データ撹乱鍵情報を用いて撹乱
し、Mビットの出力を行なうF関数部と、前記F関数部
の出力を前記第3の選択部の出力の各ブロックに排他的
論理和で融合した上で出力する第2の融合部と、前記第
1、第2の選択部で選択された入力データ、および前記
第3の選択部の出力を置換して後段への出力とする出力
部を有していることを特徴としたデータ撹乱装置として
いる。
【0033】請求項2の発明は、請求項1の発明におけ
る第1の選択部で、前記ブロック選択鍵情報とは独立な
第2のブロック選択鍵情報を用いて、入力データを選択
することを特徴としたデータ撹乱装置としている。
【0034】請求項3の発明は、請求項1の発明におけ
る第1の選択部の出力の、全ビットもしくは一部のビッ
トとブロック選択鍵情報を入力として、N-Lビットのブ
ロック選択信号を生成するブロック選択信号生成器を設
け、前記ブロック選択信号生成器の出力は、そのうち1
ビット以上N-L-1ビット以下が1であり、前記第2の選
択部を、前記第1の選択部以外のN-L個の入力ブロック
に前記ブロック選択信号の各1ビットをそれぞれ対応さ
せて、ブロック内のデータと対応するブロック選択信号
との論理積器で構成し、前記第3の選択部を、前記F関
数部の出力をN-Lブロック分用意し、これらに前記ブロ
ック選択信号の各1ビットをそれぞれ対応させて、ブロ
ックのデータ内と対応するブロック選択信号の否定との
論理積器で構成したデータ撹乱装置としている。
【0035】請求項4の発明は、請求項1の発明におけ
る第1の融合部を、第1の選択部の出力および、第2の
選択部の出力の対応するビット間の排他的論理和で実現
したデータ撹乱装置としている。
【0036】請求項5の発明は、請求項1の発明におけ
る出力部を、第1、第2の選択部で選択された入力デー
タに対応する出力を前記入力データそのままとし、前記
第3の選択部で選択された入力データに対応する出力を
前記第2の融合部の出力データとする出力整頓部と、こ
れをブロック単位でローテート置換する置換器で実現し
たデータ撹乱装置としている。
【0037】請求項6の発明は、M,Nをそれぞれ2以上
の正整数とするとき、M×Nビットの入力データをブロッ
ク選択鍵情報とデータ撹乱鍵情報を用いて撹乱する装置
を繰り返し用いるデータ撹乱装置、もしくは、多段に備
えて用いるデータ撹乱装置であって、各段が、入力デー
タをMビットずつのNブロックに分割する第1のデータ分
割部と、このブロックをL個の大ブロックに分割する第
2のデータ分割部と、前記ブロック選択鍵情報に依存し
て、各大ブロックからそれぞれ1個づつのブロックを選
択する第1の選択部と、残りのブロックを選択する第2
の選択部と、前記第1の選択部の出力Lブロックを前記
データ撹乱鍵情報を用いて撹乱し、Lブロックの出力を
行なうF関数部と、前記F関数部の出力を前記L個の大
ブロックに対応してL個に分配する分配部と、前記各大
ブロックにおいて、前記分配部によって分配されたF関
数部の1ブロックの出力データを、前記第2の選択部の
出力に排他的論理和で融合した上で出力する融合部と、
第1の選択部で選択された入力データに対応する出力を
前記入力データそのままとし、前記第2の選択部で選択
された入力データに対応する出力を前記融合部の出力デ
ータとする出力部を有することを特徴としたデータ撹乱
装置としている。
【0038】請求項7の発明は、請求項6の発明におけ
るブロック選択鍵情報を、入力データの一部と前記ブロ
ック選択鍵情報に依存して生成するデータ撹乱装置とし
ている。
【0039】請求項8の発明は、請求項6の発明におけ
る融合部を、各大ブロックにおいて、前記F関数部の1
ブロック分の出力をその大ブロックに含まれるブロック
分用意し、前記ブロック選択鍵情報を用いて、これらか
ら前記第2の選択部に対応したブロックを論理積で選
び、これと入力データとの排他的論理和で実現したデー
タ撹乱装置としている。
【0040】
【作用】上記構成による請求項1の発明においては、デ
ータ分割部が入力データをMビットづつのNブロックに分
割する。第1の選択部がその中からLブロックを選択す
る。そして第2の選択部が、第1の選択部の出力とブロ
ック選択鍵情報に依存して、残りのN-Lブロックから1
個以上N-L-1ブロック以下のブロックを選択する。第1
の融合部では第1、第2の選択部の出力を1ブロックに
融合する。F関数部はデータ撹乱鍵情報を用いて前記融
合結果を撹乱して、Mビットの出力を行なう。この撹乱
はもとのデータへの復元を保証しなくてもよい。第2の
融合部では、このF関数部の出力を前記第1、第2で選
ばれなかった入力データに排他的論理和で融合したうえ
で出力する。出力部は次に続く後段の入力として第1、
第2の選択部の出力はそのまま、残りの部分は第2の融
合部の出力を配し、あるいはこれを置換して出力する。
【0041】請求項2の発明においては、第1の選択部
でのデータの選択を、第2のブロック選択鍵情報を用い
て行なう。
【0042】請求項3の発明においては、第2の選択部
を、第1の選択部の出力とブロック選択鍵で定まるN-L
ビットのブロック選択信号を用いて、この信号と入力デ
ータの論理積器で構成する。従って、対応するブロック
選択信号が1であるブロックが選ばれる。
【0043】また、第3の選択部は、前記ブロック選択
信号の否定とF関数の出力の論理積器で構成する。従っ
て、対応するブロック選択信号が0であるブロックに、
F関数の出力値が配される。
【0044】請求項4の発明においては、第1の融合部
をブロックの対応するビット間の排他的論理和で実現し
ている。
【0045】請求項5の発明においては、出力部の置換
をブロック単位でのローテート置換としている。
【0046】請求項6の発明においては、第1のデータ
分割部が入力データをMビットづつのNブロックに分割す
る。第2のデータ分割部がこれをさらにL個の大ブロッ
クに分割する。そして第1の選択部が、ブロック選択鍵
情報に依存して、それぞれの大ブロックからそれぞれ1
ブロックづつ、計Lブロックを選択する。そしてF関数
部はこのデータ撹乱鍵情報を用いて前記Lブロックを撹
乱して、Lブロックの出力を行なう。この撹乱はもとの
データへの復元を保証しなくてもよい。分配部ではF関
数の出力Lブロックを、前記大ブロックに対応してL個に
分割する。融合部では、各大ブロックごとにこのF関数
部の出力1ブロックを前記第1の選択部で選ばれなかっ
た入力ブロックに排他的論理和で融合したうえで出力す
る。出力部は次に続く後段の入力として第1の選択部の
出力はそのまま、残りの部分は融合部の出力を配して出
力する。
【0047】請求項7の発明においては、第6の発明に
おける第1の選択での選択信号に入力データの一部を用
いる。
【0048】請求項8の発明においては、融合部が、各
大ブロックごとに前記第1の選択部で選ばれたブロック
位は0、それ以外はF関数の出力をもとの入力に排他的
論理和で融合する。
【0049】
【実施例】図1は、第1の実施例におけるデータ撹乱装
置の構成図である。この例では64ビットの入力データ
を16ビットづつのA0,A1,A2,A3の4つに分割する場合
について示している。
【0050】同図において1は、入力データA3とブロッ
ク選択鍵を入力としてブロック選択信号K0〜K2(各1ビ
ット)を出力するブロック選択信号生成部である。この
例では入力データからブロック選択信号生成部に入力す
るブロックを選択する、請求項1の発明における第1の
選択部(図示していない)は、入力ブロックA3を選択し
ているものとする。また、2〜4はブロック選択信号そ
れぞれに対応するブロックのうち、ブロック選択信号の
値が1であるものを選択する第2の選択部である。5は
第1の選択部の出力A3と第2の選択部の出力を融合し
て、1ブロック16ビットのデータを出力する第1の融
合部である。この例では融合はブロック間のビットごと
の排他的論理和で構成している。6は16ビットの入力
データをデータ撹乱鍵Kを用いて撹乱する任意のデータ
撹乱装置F(以降F関数と表す)である。このF関数自
身の構成については本発明の範囲外なので省略する。7
〜9は前記F関数の出力を入力A0〜A2に対応して3ブロ
ック分用意し、対応する前記ブロック選択信号鍵K0〜K2
の値が0であるものを選択する第3の選択部である。ま
た、10〜12は前記第3の選択部の出力と最初の入力
データA0〜A2を排他的論理和で融合する第2の融合部を
示している。13は、前記A3を次の段のA0の位置である
B0に、そして第2の融合部10の出力を次の段のA1の位
置B1に、以下同様に、融合部11の出力をB2に、融合部
12の出力をB3というように、ブロック単位で右にロー
テートする置換部である。
【0051】次に図1を用いて、このデータ撹乱装置の
動作について説明する。 (1)ブロック選択信号生成器1では、入力ブロックA3
の全ビットまたは一部ビットとブロック選択鍵情報を用
いて、ブロック選択信号K0〜K2を生成する。ここではK0
=1,K1=0,K2=0であるとする。
【0052】(2)第2の選択部2〜4では、入力ブロ
ックA0〜A2とそれに対応するブロック選択信号K0〜K2と
の論理積を求める。このことによって、第2の選択部の
出力はブロック選択信号が0であるデータ、つまりC1,C
2の各ビットはすべて0になる。また、ブロック選択信
号が1であるC0はデータA0と同じになる。
【0053】(3)第1の融合部では、入力ブロックA3
と第2の選択部の出力の排他的論理和を求める。従っ
て、出力Dは、A0とA3のビットごとの排他的論理和とな
る。
【0054】(4)F関数6では、前記16ビットのデ
ータDをデータ撹乱鍵情報Kを用いて撹乱し、16ビッ
トの値Eを出力する。
【0055】(5)第3の選択部7〜9では、前記F関
数の出力データEを3ブロック分用意し、このデータと
各ブロックに対応する前記ブロック選択信号K0〜K2の否
定との論理積を求める。このことによって、第3の選択
部の出力Gは対応するブロック選択鍵信号が1であるG0
が0になる。また、対応するブロック選択鍵信号が0で
あるG2,G3は前記F関数の出力データEとなる。
【0056】(6)第2の融合部10〜12では、入力
データAと第3の選択部の出力データGの対応するブロ
ック間の排他的論理和を求める。このことによって出力
データH0は、対応する入力データA0と同じになり、H1,H
2は対応する入力データA1,A2と前記F関数の出力Eの排
他的論理和となる。
【0057】(7)ブロック置換部13では、第2の融
合部の出力と入力A3をあわせて、ブロック単位で右にロ
ーテート置換している。その結果、このデータ撹乱装置
1段の出力Bは(B0,B1,B2,B3)=(A3,H0,H1,H2)となる。
【0058】以上をまとめると、(1)から(7)の動
作は図2で示すとおりになる。A3とブロック選択鍵情報
によって決定したブロック選択信号によって、入力A
を、AL=(A1,A2)とAR=(A0,A3)の2つに分ける。そして、
ARを1ブロック幅に融合した後F関数に入力し、その結
果をALに排他的論理和で融合している。その後1ブロッ
ク右にローテートしている。このことによって、出力B
は(B0,B1,B2,B3)=(A3,A0,A1+E,A2+E)となる。ここ
で'+'は排他的論理和を示す演算子とする。
【0059】以上の説明より、このデータ撹乱装置を出
力Bを再びAに代入して繰り返し用いることにより、左
右のビット位とビット数が可変であるインボリューショ
ン構成が実現されている。そして、その左右への分割は
入力A3とブロック選択鍵情報によって決定される。な
お、置換部13におけるローテートは、繰り返しにおい
てブロック選択信号生成部に入力するブロックを変化す
るために行なう。これは、次に述べるように復号も同じ
ハードウェアで実現するために、ブロック選択信号生成
器に入力するデータを、そのままの形で後段に入力する
からである。前記したとおり、データ撹乱の際ブロック
選択信号生成器に入力するデータは、必ずB0の位置にそ
のままの形で残る。そのため、復号においても、同じハ
ードウェアを用いることができる。つまり、対応する段
のデータ撹乱の際と同じ入力データをブロック選択信号
生成器に代入して、同じ左右へのデータの分割を行なう
ことができるため、うまくこの構成を逆にたどることが
できる。ただし復号の際には、各段のブロック選択鍵情
報及びデータ撹乱鍵情報の入力順序をデータ撹乱の際と
逆にする。また、復号の際に置換等の処理なしで同じハ
ードウェアを用いるためには、段数すなわち繰り返し回
数を4の倍数にしておく。
【0060】このデータ撹乱装置を用いると、従来例3
とは異なり、入力データがどのように左右に分けられて
いるかが入力される秘密のブロック選択鍵情報のみなら
ず、入力データによっても決定する。従って、鍵を固定
にして行なう差分攻撃においても、攻撃に用いるための
データを集めるために、データを変化させるとデータの
流れも変化する。従って、秘密の鍵を知らない解読者に
とっては、攻撃が非常に困難になる。
【0061】図3は第2の実施例におけるデータ撹乱装
置の構成図である。この例では第1の実施例と同様に6
4ビットの入力データを16ビットづつのA0,A1,A2,A3
の4つに分割し、さらにこれらをA0,A1の第1の大ブロ
ック、およびA2,A3の第2の大ブロックに分割する場合
について示している。
【0062】同図において21、22はそれぞれ、ブロ
ック選択鍵K0によって第1の大ブロックから、A0または
A1を選択する第1の選択部(上位)、ブロック選択鍵K1
によって第2の大ブロックから、A2またはA3を選択する
第1の選択部(下位)を示している。23は、前記2
1、22の出力をあわせた32ビット入力データを、デ
ータ撹乱鍵を用いて撹乱し、32ビットのデータを出力
するデータ撹乱装置(F関数)である。24、25は各
大ブロック内のブロックに対応してF関数の出力を2ブ
ロック分用意し、対応する前記ブロック選択鍵が0のブ
ロックを選択する第2の選択部である。また、26〜2
9は前記第2の選択部の出力と最初の入力データA0〜A3
を排他的論理和で融合する融合部を示している。
【0063】次に図3を用いて、第2の実施例における
データ撹乱装置の動作について説明する。なお、この例
においてブロック選択鍵情報K0,K1はそれぞれK0=0,K1=1
とする。
【0064】(1)第1の選択部(上位)21では、対
応するブロック選択鍵情報K0によって、第1の大ブロッ
クA0,A1のうちからA1が選択される。また第1の選択部
(下位)22では、対応するブロック選択鍵情報K1によ
って、第2の大入力ブロックA2,A3のうちからA2が選択
される。
【0065】(2)第1の選択部で選択されたデータを
結合してF関数に入力する。今の場合A1を上位16ビッ
ト、A2を下位16ビットに配して32ビットのデータと
してF関数に入力する。
【0066】(3)F関数23では、前記32ビットの
データCをデータ撹乱鍵情報Kを用いて撹乱し、32ビ
ットの値Dを出力する。
【0067】(4)第2の選択部(上位)24では、前
記F関数23の出力データDの上位16ビットDHを2ブ
ロック分用意し、前記ブロック選択信号K0の否定を入力
する。このことによって、第2の選択部の出力E0はDH、
E1は0となる。
【0068】また、第2の選択部(下位)25では、前
記F関数の出力データDの下位16ビットDLを2ブロッ
ク分用意し、前記ブロック選択信号K1の否定を入力す
る。このことによって、E2は0、E3はDLとなる。
【0069】(5)融合部26〜29では、入力データ
Aと第2の選択部の出力データEのブロックごとの排他
的論理和を求める。このことによって本実施例における
データ撹乱装置の出力データBは、(B0,B1,B2,B3)=(A0+
DH,A1,A2,A3+DL)となる。
【0070】以上をまとめると、(1)から(5)の動
作は次のようになる。ブロック選択鍵情報によって入力
Aを、AR=A1 || A2とAL=A0 || A3 の2つに分ける。こ
こで、' || 'は2データを横に並べて1つのデータとす
る結合を示している。そして、ARをデータ撹乱装置Fに
入力し、その撹乱結果をALに排他的論理和で融合してい
る。
【0071】以上の説明より、このデータ撹乱装置を繰
り返して用いることにより、左右のビット位が可変であ
るインボリューション構成を実現している。そして、そ
の左右への分割はブロック選択鍵情報によって決定され
る。また、従来のインボリューション、従来例3、実施
例1と同様に復号においても、同じハードウェアを用い
ることができる。
【0072】そして、このデータ撹乱装置は従来例3や
実施例1とは異なり、第1の融合部を取り除き、F関数
の出力に影響を及ぼす入力ブロックサイズを一定にして
いる。そのため、F関数を単射の関数に選ぶと、その出
力ビットの0/1の偏りがなく良好な撹乱特性を示す。
なお、この方法では大ブロックの分割数Lが、F関数へ
入力されるブロック数を示している。
【0073】以上本発明を実施例に基づき説明したが、
本発明はなにも上記実施例に限定されないのは勿論であ
る。すなわち、 (1)実施例1、2における64ビット、4分割等はあ
くまでも、請求項1に記載したM,Nの具体例の1つであ
り、処理すべき信号の性質や他の設備との接続に応じ
て、適宜最良の値が採用される。
【0074】(2)ハードウェアとしてではなく、ソフ
ト的にこのアルゴリズムを実現してもよい。
【0075】(3)第1の実施例において、ブロック選
択信号生成器への入力はA3としていたが、これも請求項
1に記載したLの具体例の1つであり、A3以外のブロッ
クであってもよいし複数ブロックであってもよい。また
請求項2にしめすとおり、どのブロックを入力とするか
を秘密のブロック選択鍵情報を用いて決定してもよい。
【0076】(4)実施例1では請求項3に示すとおり
ブロック選択信号を各ブロックごとに1ビット割り当て
ていたが、これは1ビットに限定されるものではない。
【0077】(5)実施例1では請求項4に示すとおり
第1の融合部を排他的論理和で構成したが、この部分は
入力ブロックを1ブロックに圧縮する一般的な圧縮関数
であってもよい。
【0078】(6)実施例1では請求項5に示すとおり
置換器をローテート置換で実現したが、この部分は任意
の置換であってもよい。
【0079】(7)実施例2ではブロック選択鍵を用い
て第1の選択部の選択を行なったが、この部分は実施例
1のように入力データも用いて選択してよい。
【0080】(8)実施例2では大ブロックを2ブロッ
クづつの2つとしていたが、これは請求項6に記載した
Lの具体例の1つであり、また各大ブロック内のブロッ
ク数が同じである必要もない。
【0081】
【発明の効果】以上の説明から明らかなように、第1の
本発明は、入力データを複数のブロックに分割して、秘
密のブロック選択信号によって入力データを、ブロック
単位で左右2つに分けている。そして左右のビット位と
ビット数が可変であるインボリューション構成を実現し
ている。勿論、従来のインボリューションの持ってい
る、繰り返し処理または復号を同じハードウェア用いて
できる等の特性は保っている。ブロック選択信号は秘密
であるため、それぞれの選択部で選ばれるデータがそれ
ぞれが入力データのどの部分であるか、またそれぞれ何
ビットづつあるのか、秘密の鍵を知らない解読者にはデ
ータ撹乱関数Fの入力値を解析することさえ困難であ
る。そのうえ、本発明では、従来例3とは異なり、入力
データがどのように左右に分けられているかが入力され
る秘密のブロック選択鍵情報のみならず、入力データに
よっても決定する。従って、鍵を固定にして行なう差分
攻撃においても、攻撃に用いるためのデータを集めるた
めに、データを変化させるとデータの流れも変化する。
従って、秘密の鍵を知らない解読者にとっては、攻撃が
なお一層困難になる。
【0082】また、第2の本発明は、第1の本発明にあ
った第1の融合部を取り除き、F関数の出力に影響を及
ぼす入力ブロックサイズを一定にしている。そのため、
F関数を単射の関数に選ぶと、その出力ビットの0/1
の偏りがなく良好な撹乱特性を示す。また大ブロックの
分割Lを変化させることによってF関数の入力幅を変更
することができる。
【0083】なお、第1、第2の本発明において、従来
例3と比べてのハードウェア増加量はほとんどない。
【図面の簡単な説明】
【図1】本発明の第1の実施例におけるデータ撹乱装置
の構成図
【図2】本発明の第1の実施例におけるデータ撹乱装置
の動作例を示した図
【図3】本発明の第2の実施例におけるデータ撹乱装置
の構成図
【図4】従来のインボリューション構成図
【図5】従来の別の、入力データを4つに分けて行なう
拡張インボリューション構成図
【図6】従来のさらに他のデータ撹乱装置の構成図
【符号の説明】
1 ブロック選択信号生成器 2〜4 第2の選択部 5 第1の融合部 6、23、106 データ撹乱装置F関数 7〜9 第3の選択部 10〜12 第2の融合部 13 置換部 21、22 第1の選択部 24、25 第2の選択部 26〜29 融合部 101〜104 第1の選択部 105 第1の融合部 107〜110 第2の選択部 111〜114 第2の融合部

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】M,Nをそれぞれ2以上の正整数とすると
    き、M×Nビットの入力データをブロック選択鍵情報とデ
    ータ撹乱鍵情報を用いて撹乱する装置を繰り返し用いる
    データ撹乱装置、もしくは、多段に備えて用いるデータ
    撹乱装置であって、各段が、 入力データをMビットずつのNブロックに分割するデータ
    分割部と、ここから1個以上のLブロックの入力データ
    を選択する第1の選択部と、前記第1の選択部の出力と
    前記ブロック選択鍵情報に依存して、残りのN-Lブロッ
    クから1個以上、N-L-1個以下のブロックを選択する第
    2の選択部と、前記第1、第2の選択部で選択されなか
    った残りブロックを選択する第3の選択部と、前記第
    1、第2の選択部の出力を入力としてこれらを融合し、
    1ブロックすなわちMビットの結果を出力する第1の融
    合部と、前記第1の融合部の出力を前記データ撹乱鍵情
    報を用いて撹乱し、Mビットの出力を行なうF関数部
    と、前記F関数部の出力を前記第3の選択部の出力の各
    ブロックに排他的論理和で融合した上で出力する第2の
    融合部と、前記第1、第2の選択部で選択された入力デ
    ータ、および前記第3の選択部の出力を置換して後段へ
    の出力とする出力部を有していることを特徴としたデー
    タ撹乱装置。
  2. 【請求項2】前記第1の選択部で、前記ブロック選択鍵
    情報とは独立な第2のブロック選択鍵情報を用いて、入
    力データを選択することを特徴とした請求項1記載のデ
    ータ撹乱装置。
  3. 【請求項3】前記第1の選択部の出力の全ビットもしく
    は一部のビットとブロック選択鍵情報を入力として、N-
    Lビットのブロック選択信号を生成するブロック選択信
    号生成器を設け、前記ブロック選択信号生成器の出力
    は、そのうち1ビット以上N-L-1ビット以下が1であ
    り、前記第2の選択部を、前記第1の選択部以外のN-L
    個の入力ブロックに前記ブロック選択信号の各1ビット
    をそれぞれ対応させて、ブロック内のデータと対応する
    ブロック選択信号との論理積器で構成し、前記第3の選
    択部を、前記F関数部の出力をN-Lブロック分用意し、
    これらに前記ブロック選択信号の各1ビットをそれぞれ
    対応させて、ブロックのデータ内と対応するブロック選
    択信号の否定との論理積器で構成した請求項1項記載の
    データ撹乱装置。
  4. 【請求項4】前記第1の融合部を、第1の選択部の出力
    および、第2の選択部の出力の対応するビット間の排他
    的論理和で実現した請求項1記載のデータ撹乱装置。
  5. 【請求項5】前記出力部を、第1、第2の選択部で選択
    された入力データに対応する出力を前記入力データその
    ままとし、前記第3の選択部で選択された入力データに
    対応する出力を前記第2の融合部の出力データとする出
    力整頓部と、これをブロック単位でローテート置換する
    置換器で実現した請求項1記載のデータ撹乱装置。
  6. 【請求項6】M,Nをそれぞれ2以上の正整数とすると
    き、M×Nビットの入力データをブロック選択鍵情報とデ
    ータ撹乱鍵情報を用いて撹乱する装置を繰り返し用いる
    データ撹乱装置、もしくは、多段に備えて用いるデータ
    撹乱装置であって、各段が、 入力データをMビットずつのNブロックに分割する第1の
    データ分割部と、このブロックをL個の大ブロックに分
    割する第2のデータ分割部と、前記ブロック選択鍵情報
    に依存して、各大ブロックからそれぞれ1個づつのブロ
    ックを選択する第1の選択部と、残りのブロックを選択
    する第2の選択部と、前記第1の選択部の出力Lブロッ
    クを前記データ撹乱鍵情報を用いて撹乱し、Lブロック
    の出力を行なうF関数部と、前記F関数部の出力を前記
    L個の大ブロックに対応してL個に分配する分配部と、前
    記各大ブロックにおいて、前記分配部によって分配され
    たF関数部の1ブロックの出力データを、前記第2の選
    択部の出力に排他的論理和で融合した上で出力する融合
    部と、第1の選択部で選択された入力データに対応する
    出力を前記入力データそのままとし、前記第2の選択部
    で選択された入力データに対応する出力を前記融合部の
    出力データとする出力部を有することを特徴としたデー
    タ撹乱装置。
  7. 【請求項7】前記ブロック選択鍵情報を、入力データの
    一部と前記ブロック選択鍵情報に依存して生成する請求
    項6記載のデータ撹乱装置。
  8. 【請求項8】前記融合部を、各大ブロックにおいて、前
    記F関数部の1ブロック分の出力をその大ブロックに含
    まれるブロック分用意し、前記ブロック選択鍵情報を用
    いて、これらから前記第2の選択部に対応したブロック
    を論理積で選び、これと入力データとの排他的論理和で
    実現した請求項6項記載のデータ撹乱装置。
JP4271273A 1992-06-05 1992-10-09 データ撹乱装置 Pending JPH06118872A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP4271273A JPH06118872A (ja) 1992-10-09 1992-10-09 データ撹乱装置
US08/071,546 US5351299A (en) 1992-06-05 1993-06-04 Apparatus and method for data encryption with block selection keys and data encryption keys

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4271273A JPH06118872A (ja) 1992-10-09 1992-10-09 データ撹乱装置

Publications (1)

Publication Number Publication Date
JPH06118872A true JPH06118872A (ja) 1994-04-28

Family

ID=17497786

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4271273A Pending JPH06118872A (ja) 1992-06-05 1992-10-09 データ撹乱装置

Country Status (1)

Country Link
JP (1) JPH06118872A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012132620A1 (ja) * 2011-03-28 2012-10-04 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5488608B2 (ja) * 2009-10-27 2014-05-14 日本電気株式会社 ブロック暗号装置、ブロック暗号化方法およびプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
WO2012132620A1 (ja) * 2011-03-28 2012-10-04 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP2012215813A (ja) * 2011-03-28 2012-11-08 Sony Corp 暗号処理装置、および暗号処理方法、並びにプログラム
US8983062B2 (en) 2011-03-28 2015-03-17 Sony Corporation Encryption processing device, encryption processing method, and programme

Similar Documents

Publication Publication Date Title
US5351299A (en) Apparatus and method for data encryption with block selection keys and data encryption keys
JP3029381B2 (ja) データ変換装置
US5222139A (en) Cryptographic method and apparatus
KR100435052B1 (ko) 암호화장치
EP1860630B1 (en) Data converting apparatus and data converting method
US6606385B1 (en) Data encrypting/decrypting conversion methods and apparatuses and data communication system adopting the same
KR100377172B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러
KR100377176B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
US6732271B1 (en) Method of deciphering ciphered data and apparatus for same
JP2002505452A (ja) 個々のデータをブロック暗号化するための方法
EP0932273B1 (en) Executing permutations
JPH06118872A (ja) データ撹乱装置
JP3547474B2 (ja) 暗号演算回路
JP4515716B2 (ja) 拡大鍵生成装置、暗号化装置および暗号化システム
Golić DeKaRT: A new paradigm for key-dependent reversible circuits
KR20190037980A (ko) 퍼베이시브 컴퓨팅을 위한 효과적인 초경량 블록 암호 시스템
JP3782210B2 (ja) 暗号装置
JPH1124558A (ja) 暗号装置
JP2000075785A (ja) 高速暗号処理回路および処理方法
JPH05344118A (ja) データ攪乱装置
Ramesh et al. Side channel analysis of sparx-64/128: Cryptanalysis and countermeasures
JP3906574B2 (ja) 暗号変換方法、暗号変換装置、復号方法、復号装置及びデータ通信システム
KR100316025B1 (ko) 데이터 암호 표준 알고리즘을 이용한 암호 및 복호 장치
JPH10153954A (ja) 暗号装置
KR100546777B1 (ko) Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리 방법, 이에 적합한 f함수 처리기