JPH05344118A - データ攪乱装置 - Google Patents

データ攪乱装置

Info

Publication number
JPH05344118A
JPH05344118A JP4145964A JP14596492A JPH05344118A JP H05344118 A JPH05344118 A JP H05344118A JP 4145964 A JP4145964 A JP 4145964A JP 14596492 A JP14596492 A JP 14596492A JP H05344118 A JPH05344118 A JP H05344118A
Authority
JP
Japan
Prior art keywords
data
output
block
unit
input
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
JP4145964A
Other languages
English (en)
Inventor
Natsume Matsuzaki
なつめ 松崎
Makoto Tatebayashi
誠 館林
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 JP4145964A priority Critical patent/JPH05344118A/ja
Priority to US08/071,546 priority patent/US5351299A/en
Publication of JPH05344118A publication Critical patent/JPH05344118A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

(57)【要約】 【目的】 小規模なハードウェアで、攪乱効果が高くか
つ従来の最強力の差分攻撃に強いデータ攪乱装置を提供
する。 【構成】 入力データを複数のブロックに分割する。第
1の選択部にて、秘密のブロック選択鍵を用いて、分割
したブロックから1つ以上を選択する。その出力データ
を第1の融合部にて1ブロックに融合圧縮する。その出
力データを1ブロックのデータ攪乱装置Fに入力し、1
ブロックの出力値を得る。第2の選択部7〜10にて、
前記データ攪乱装置Fの出力を入力ブロック分用意し、
前記秘密のブロック選択鍵の否定を用いてそのうちから
1つ以上のブロックを選択する。第2の融合部11〜1
4にて、入力データと前記第2の選択部の出力とをブロ
ックごとに融合し、これを出力データとする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、有料放送、秘密通信等
における暗号化に関し、特にデータ攪乱装置に関する。
【0002】
【従来の技術】秘密通信、署名通信手段として送信すべ
きデータを受信側での復号可能性を保持しつつ攪乱する
方法の1つに、インボリューションと言われる方法があ
る。その構成を図7に示す。この方法は攪乱すべきデー
タを0と1のみからなるビットデータ化した上で例えば
64ビットずつに区切って取り出し、この取り出した各
64ビットの入力データを左右32ビットずつに分割し
て、右の32ビットのデータをあるデータ攪乱器たる関
数F部(単に、「データ攪乱関数」とも言われる)に入
力し、その結果を左のデータに排他的論理和で融合し、
更にこのあと左右データをいれかえるといった操作を多
段に、すなわち繰り返し行う。なお、ここに融合とは、
複数ブロックのデータを1ブロックに圧縮することをい
う。従って、融合結果の1ブロックには融合部の入力と
なる複数ブロックの影響が入っていることとなる。デー
タ攪乱関数Fには、攪乱の対象となる入力データのほか
に、通常鍵あるいは場合によっては秘密鍵、共有鍵等と
呼ばれる数値情報たるもう1つの入力がある。そして、
この鍵を使用して入力データに対し一定の処理、演算を
なすことにより攪乱を行うのであるが、この鍵の値を変
えることによって、データ攪乱関数Fの攪乱の仕方は全
く異なったものとなる。なお、図7においては、第i回
目(i=0,1,…)の繰り返しにおけるデータ攪乱関数F部
の鍵入力をKeyiと表している。また、本図で信号の流れ
を示す線に施した斜線「/」と「32」という数字は、
信号線が実際には32ビット幅であることを示し、この
意味は他図においても同様である。
【0003】さて、このインボリューション構成におい
ては、攪乱したデータをもとに戻す逆変換、すなわち復
号は、データを攪乱したときと同じ鍵を用いることによ
ってのみ可能である。従って、通常はこの鍵をデータ攪
乱する側とそれをもとに戻す側で秘密に共有あるいは同
じ物を別個に所有した上でデータの暗号化、復号に使用
する。そしてこれにより、第三者の盗聴詐称を完全に防
止することが困難な公開通信網を使用しての秘密通信や
署名通信を行うだけでなく、その他あらかじめ料金を納
付した者にのみこれらの鍵を組み込んだ復号装置を貸与
した上で同じ鍵を使用して秘密化した情報を放送する、
あるいは国際線の大型旅客機の座席に鍵を組み込んだテ
レビ受像機を固定して設けた上で旅客に有料で同じ鍵を
使用して暗号化した映像情報を組み込んだレーザーディ
スクの貸し出しを行う等の用途に使用される。
【0004】ところで、インボリューションでは、デー
タ攪乱関数Fおよび排他的論理和を備えた演算部を1つ
用意した上で、それを繰り返して用いるため、攪乱の実
現に必要なハードウェア量が少なくてすむ。(勿論、多
段に用いればハードウェアはその分多く必要であるが、
逆に処理速度は増加する。)さらに逆変換も、データ攪
乱の際に使用するのと同じハードウェアでなすことがで
きる。このことは、図7におけるデータ攪乱の結果OU
TL、OUTRをそれぞれINL、INRに入力して、
各段で入力する秘密の鍵を、Key(L-1)、…、Key1、Key0
と逆に入力しながら、データ攪乱と同じ関数Fを用いて
同じ操作を繰り返すことにより、OUTL、OUTRに
もとの入力値が復元して格納されることより示される。
【0005】さて、このインボリューション構成は、現
在米国で最も普及している暗号化方式であるDES(Da
ta Encryption Standard)にも、その後日本で開発され
たFEAL(Fast data Encipherment ALgorithm)にも採用
されている。そして、両者の違いはデータ攪乱関数Fの
中身である。なお、DESについては、FIPS PUB 46,NB
S Jan,1977に、FEALについては、A.Shimizu & S.Miyag
uchi:"Fast DataEncipherment algorithm FEAL",Advanc
es in Cryptology-EUROCRYPT '87 ,Springer-Verlag に
それぞれ詳細に述べられている。また、我国において
は、池野信一、小山謙二共著 電子通信学会発行 「現
代暗号理論」の第3章にDES及びこのインボリューシ
ョン構成が詳しい。
【0006】
【発明が解決しようとする課題】しかしながら、従来の
インボリューション構成のデータ攪乱方式一般に、すな
わちデータ攪乱関数Fの中身に拘わらずに一般的に適用
可能な攻撃が近年提案されている。ここで攻撃とは、攪
乱に用いられた鍵を知らない第3者(解読者)が鍵を求
め、これにより攪乱されたデータをもとに戻すことを意
味する。通常この新しい攻撃は「差分攻撃」と呼ばれて
いる。この攻撃は、解読者が指定する特定の差分(排他
的論理和)をもつ入力対、例えばInput TiとInput Ti+
δ、(ここにi=1、2、3…、δは差分。“+”は排
他的論理和演算を表すものとする。)をそれぞれデータ
攪乱方式+を用いて攪乱して、その出力対の差分すなわ
ち、f(Input Ti) +f(Input Ti+δ) を入手できるとき
に可能となる。原理的には、アルゴリズムの特性から入
力対の差分が出力対の差分に与える影響を統計的に解析
して鍵を発見するものである。このため、第三者が何等
かの手段でこのデータ攪乱装置を入手した場合には、特
に第三者の盗聴や詐称の完全防止が困難な公開通信回線
を使用しての秘密通信や署名通信が危険に曝される。こ
のため、この対策が研究され、その結果、現在では、D
ESは16段、FEALは32段以上繰り返す必要があると
されている。なお、この攻撃法のより具体的内容につい
ては、Eli Biham and Adi Shamir: "Differential Cryp
tanalysis of DES-LikeCryptosystems", Advances in C
ryptology-CRYPTO'90, Springer-Verlag に詳しく述べ
られているため、その説明は省略する。
【0007】さて、この差分攻撃を可能としている原因
の一部は、次にあげるインボリューションの構成自身に
ある。 (1)インボリューションの構成では、入力および出力
データと、各段のF関数に入力されるデータ間の関係が
容易に解析できる。例えば図7におけるインボリューシ
ョン構成では、まず1段目のF関数部の入力は入力デー
タINR、2段目の入力は入力データINLと1段目の
F関数部の出力の排他的論理和、3段目の入力はINR
に2段目のF関数の出力の排他的論理和となる。このイ
ンボリューションの性質は、解読者が入力データを自由
に選べ、かつその出力データを知りうる場合には、解読
に際しての大きな手掛かりとなる。
【0008】(2)インボリューションの構成では、F
関数部の出力をその他の入力データと排他的論理和で融
合している。しかし、排他的論理和は桁上げがないため
下のビットの変化が上のビットに影響を与えない。この
ため、差分の与える影響が拡大せず、ひいては差分攻撃
の解析が容易になる。 次に、インボリューション構成は、入力データの分割数
を前記の2からそれ以上に増加することによって拡張す
ることが可能である。入力データのビット数が同じ場
合、分割数を大きくすることによりデータ攪乱関数Fの
処理幅すなわち入出力するデータの幅が小さくなり、ハ
ードウェア量を削減する、すなわち小さなF関数のハー
ドウェアでの処理が可能となる。こういった試みは、例
えばY.Zheng and T.Matsumoto and H.Imai:"On the co
nstruction of block ciphersprovably secure and not
relying on any unproved hypotheses",Advances inCr
yptology-CRYPTO'89, Springer-Verlag でも述べられて
いる。以下これを図8を用いて説明する。
【0009】本図においては、入力データを64ビット
とし、これを16ビットずつの4つに分ける場合の拡張
インボリューション構成を示している。まず、一番右の
16ビットをデータ攪乱関数Fに入力して、この結果を
他の3ブロックに排他的論理和で融合する。そして、同
様に2番目、3番目、4番目のブロックをFに入力し、
その他の3ブロックと融合する操作を繰り返す。この場
合16ビット幅のデータ攪乱関数Fを備え、各ブロック
のデータを順次シフトしてF関数に入力する。この拡張
インボリューション構成は分割数が2の通常のインボリ
ューション構成と同様に、データ攪乱の逆変換を同じハ
ードウェアを用いて行なうことができる。ただし、この
場合も上記と同様に鍵の入力する順番を逆にする。
【0010】しかしながら、この構成では、データ攪乱
装置Fに64ビットの入力データすべてが入って全体が
攪乱できるのには、少なくとも4段繰り返すことが必要
である。従って、図7に示した分割数2の通常のインボ
リューションに比較した場合には、1段あたりの攪乱の
効果が低下することとなる。更に差分攻撃を可能とさせ
る前述の(1)、(2)の構成は基本的には何等改善されてい
ない。また、このため前記Eli Biham and Adi Shamirの
文献には、この拡張インボリューションの構成に対して
も前述の原理に基づく差分攻撃が可能であることが示さ
れている。
【0011】以上を要約すると従来のインボリューショ
ン構成には、いずれの形式であろうとも次のような課題
がある。 (1)入力および出力データが得られる場合には、各段
のF関数部に入力されるデータ間の関係が容易に解析で
きる。 (2)F関数部の出力を他のブロックと排他的論理和で
融合しているため、差分攻撃に対して弱い。
【0012】(3)従来のインボリューション構成にお
いてハードウェアの削減のため、分割数を増やす(拡張
インボリューションにする)と、同じ攪乱効果を生むた
めには逆に段数を増加させねばならない。 本発明は、上述の課題に鑑み、小さなハードウェア量で
攪乱効果が高く、かつ差分攻撃に強いデータ攪乱装置を
提供することを目的としてなされたものである。
【0013】
【課題を解決するための手段】上記目的を達成するため
に、請求項1の発明においては、M, Nをそれぞれ2以
上の正整数とするとき、入力データをM×Nビット毎に
取り出してこれをブロック選択鍵情報とデータ攪乱鍵情
報を用いて攪乱する装置を繰り返し若しくは多段にして
用いるデータ攪乱装置であって各段が、取り出した入力
データをMビットずつのNブロックに分割するデータ分
割部と、前記ブロック選択鍵情報に依存して前記N個の
ブロックから1個以上、N−1個以下のブロックを選択
する第1の選択部と、残りブロックを選択する第2の選
択部と、前記第1の選択部の出力を入力としてこれらを
融合し、Mビットの結果を出力する第1の融合部と、前
記第1の融合部のMビットの出力を前記データ攪乱鍵情
報を用いて攪乱した上で同じくMビットの出力を行なう
F関数部と、前記F関数部の出力を前記第2の選択部の
出力の各ブロックに排他的論理和で融合した上で出力す
る第2の融合部と、前記第1の選択部で選択された入力
データに対応する後段への出力を前記入力データそのま
まとして出力し、前記第2の選択部で選択された入力デ
ータに対応する後段への出力を前記第2の融合部の出力
データとして出力する出力部を有するデータ攪乱装置と
していることを特徴としている。
【0014】請求項2の発明においては請求項1の発明
を限定の上具体化したものであり、M, Nをそれぞれ2
以上の正整数とするとき、入力データをM×Nビット毎
に取り出してこれをNビットの数値からなり全てのビッ
ト値が0若しくは全てのビット値が1ではないブロック
選択鍵情報とデータ攪乱鍵情報を用いて攪乱する装置を
繰り返し若しくは多段にして用いるデータ攪乱装置であ
って各段が、入力データをMビットずつのNブロックに
分割するデータ分割部と、前記N個のブロックよりそれ
ぞれのブロックに対応する前記ブロック選択鍵情報のビ
ット値が1であるブロックを選択する第1の選択部と、
前記第1の選択部の出力を入力としてこれらを融合した
上で、Mビットの結果を出力する第1の融合部と、前記
Mビットの第1の融合部の出力を前記データ攪乱鍵情報
を用いて攪乱しMビットの出力を行なうF関数部と、前
記F関数部の出力をNブロック分用意しそれぞれのブロ
ックに対応する前記ブロック選択鍵情報のビット値が0
であるブロックを選択する前記第2の選択部と、前記第
2の選択部と前記入力データを排他的論理和で融合した
上で出力する第2の融合部と、前記入力データに対する
後段への出力を前記第2の融合部の出力として出力する
出力部を有するデータ攪乱装置としている。
【0015】請求項3の発明は請求項1又は請求項2の
発明における第1の選択部をNブロックの入力データの
各ビットとそのブロックに対応するブロック選択鍵情報
のビットとの論理積器とし、第2の選択部をF関数部の
出力をNブロック分用意すると共にこの各ビット値とそ
のブロックに対応するブロック選択鍵情報のビット値の
否定との論理積器としたことを特徴としている。
【0016】請求項4の発明は請求項1又は請求項2の
発明における第1の融合部を第1の選択部の各出力ブロ
ックの対応するビット値間の排他的論理和器としたこと
を特徴としている。請求項5の発明は請求項1又は請求
項2の発明における第1の融合部を、第1の選択部の各
出力を入力とした一方向性ランダム関数器としたことを
特徴としている。
【0017】請求項6の発明は請求項1又は請求項2の
発明における第2の融合部を加減算器としたことを特徴
としている。請求項7の発明は請求項6の発明における
加減算器を独立の複数の加減算器としたことを特徴とし
ている。請求項8の発明は請求項1又は請求項2の発明
における加減算器を一方の入力データたるビット値と減
算制御信号との排他的論理和をとり、減算制御信号を桁
上がり入力とし、前記排他的論理和の結果ともう片方の
入力データとの加算を行なう加算器としたことを特徴と
している。
【0018】請求項9の発明は請求項1又は請求項2又
は請求項6の発明におけるデータ攪乱装置において、あ
る段のデータを攪乱する装置のブロック選択鍵情報にそ
の1回前の段におけるブロック選択情報の否定の情報を
用いるようにしていることを特徴としている。
【0019】
【作用】上記構成により請求項1の発明においては、デ
ータ分割部が入力データをMビットずつのNブロック毎
に分割の上取り出す。第1の選択部がその分割結果から
ブロック選択鍵情報に依存して1個以上N−1個以下の
ブロックを選択する。第2の選択部は残りのブロックを
選択する。
【0020】第1の融合部は、第1の選択部の選択した
ブロックのデータを入力として融合(複数ブロックのデ
ータを1ブロックに圧縮すること。従って、1ブロック
のみ選択されたなら融合は、実質的にはなされない。)
してMビットのデータとして出力する。F関数部は、第
1の融合部の出力のMビットのデータをデータ攪乱鍵情
報を用いて攪乱(元のデータの復元が可能という条件を
維持しつつかき混ぜる)した上でMビットの出力を行
う。
【0021】第2の融合部はF関数部の出力を第2の選
択部の出力の各ブロックに排他的論理和で融合した上出
力する。出力部は次に続く後段への入力として、第1の
選択部で選択されたブロックの入力データに相応するデ
ータとにこの入力データをそのまま出力し、第2の選択
部で選択されたブロックの入力データに相応するデータ
として第2の融合部の出力データを出力する。
【0022】請求項2の発明においては、データ分割部
が入力データをMビットずつのNブロックに分割する。
第1の選択部がその分割結果からNビットの数値からな
り全てのビット値が0若しくは全てのビット値が1では
ないブロック選択鍵の対応するブロック選択鍵情報の桁
の値(ビット値)が1であるブロックを選択する。
【0023】第1の融合部は、第1の選択部の選択した
ブロックのデータを入力として融合(複数ブロックのデ
ータを1ブロックに圧縮すること。従って、1ブロック
のみ選択されたなら融合は実質的にはなされない)して
Mビットのデータとして出力する。F関数部は、第1の
融合部の出力のMビットのデータをデータ攪乱鍵情報を
用いて攪乱(元のデータの復元が可能という条件を維持
しつつかき流せる)した上でMビットの出力を行う。
【0024】第2の選択部はF関数部の出力をNブロッ
ク分用意し、それぞれのブロックに対応するブロック選
択鍵情報の桁の値(ビット値)が0であるブロックを選
択する。第2の融合部は、第2の選択部と入力データを
排他的論理和で融合した上出力する。
【0025】出力部は次に続く後段への入力データとし
て第2の融合部の出力データを出力する。請求項3の発
明においては、請求項2の発明において第1の選択部を
Nブロックの入力データの各ビットとそのブロックに対
応するブロック選択鍵情報のビットとの論理積器(従っ
て、ブロック選択鍵情報の対応する桁が0なら選択され
ないこととなる)とし、第2の選択部をF関数部の出力
をNブロック分用意した上でこの各ビット値とそのブロ
ックに対応するブロック選択鍵情報のビットの否定の論
理積器としている。
【0026】請求項4の発明においては、請求項1又は
請求項2のデータ攪乱装置において、第1の融合部を第
1の選択部の各出力ブロックの対応するビット値間の排
他的論理和器としている。請求項5の発明においては、
請求項1又は請求項2のデータ攪乱装置において、第1
の融合部を第1の選択部の各出力を入力とする一方向性
ランダム関数器としている。
【0027】請求項6の発明においては、請求項1又は
請求項2のデータ攪乱装置において、第2の融合部を加
減算器としている。請求項7の発明においては、請求項
6のデータ攪乱装置において、加減算器を独立複数の加
減算器で構成している。請求項8の発明においては、請
求項6又は請求項7のデータ攪乱装置において、加減算
器を一方の入力データたるビット値と減算制御信号との
排他的論理和をとり、減算制御信号を桁上がり入力と
し、前記排他的論理和の結果ともう片方の入力データと
の加算を行う加算器としている。
【0028】請求項9の発明においては、請求項1又は
請求項2又は請求項6のデータ攪乱装置において、各段
におけるブロック選択鍵情報として、その1回前の段の
ブロック選択鍵情報の否定を用いている。
【0029】
【実施例】以下、本発明を実施例に基づいて説明する。 (第1実施例)本実施例は請求項1及び2の発明に係る
ものである。そして、第1の選択部は請求項3の発明に
係るものを、第1の融合部は請求項4の発明に係るもの
を採用している。
【0030】図1は、本第1実施例の構成図である。本
実施例ではM=16、N=4であり、入力データを64
ビットずつ取り出すと共に、この取り出した各64ビッ
トの入力データaを16ビットずつの4つのブロックA
0,A1,A2,A3に分割している。本図においてK0,K1,K2,K3
はそれぞれ上記ブロックA0,A1,A2,A3 に対応する各1ビ
ットの、すなわち、全体としては、各桁の値(ビット
値)が1若しくは0の4ビットからなるブロック選択鍵
情報、Kはデータ攪乱鍵情報である。なお、ここでブロ
ック選択鍵情報K0,K1,K2,K3 はすべてのビット値が0ま
たはすべてが1とはならないようにとっている。1〜4
はそれぞれブロック選択鍵情報Ki(i=0,1,2,3 )が1の
時にはそれに対応するブロックAiを出力し、0の時には
0を出力する第1の選択部である。5は第1の選択部の
出力を融合して16ビットのデータを出力する第1の融
合部である。この例では融合はブロックの各ビットごと
の排他的論理和で構成している。6は16ビットの入力
データを同じく16ビットからなる数値情報たるデータ
攪乱鍵情報Kを用いて攪乱するデータ攪乱装置である。
なお、このデータ攪乱装置自身の構成や鍵の採用手法に
ついては本発明の範囲外なので説明は省略する。このデ
ータ攪乱装置の出力dは前記ブロック選択鍵それぞれに
対応した第2の選択部7〜10に接続している。第2の
選択部では、対応するブロック選択鍵情報Ki(i=0,1,2,
3 )が0の時に前記データ攪乱装置の出力dを出力し、
1の時には0を出力する。また、11〜14は前記第2
の選択部の出力と最初の入力データaを排他的論理和で
融合する第2の融合部を示している。この第2の融合部
の出力fが入力データaのブロック選択鍵K0,K1,K2,K3
およびデータ攪乱鍵Kによる攪乱結果である。更に、こ
のfが図示しない出力部を経て後の段の装置又は同じデ
ータ攪乱装置に繰り返して入力されることとなる。
【0031】次に、この図1を用いて、本データ攪乱装
置の動作について説明する。今、ブロック選択鍵情報が
K0=1、K1=0、K2=1、K3=0とする。 (1)第1の選択部では、入力された64ビットのデー
タaを16ビットずつ4つのブロックA0,A1,A2,A3 に分
割する。そして各ブロックAi(i=0,1,2,3 )の各ビット
値と、そのブロックに対応する各ブロック選択鍵情報Ki
のビット値との論理積を求める。このことによって、第
1の選択部の出力bは、ブロック選択鍵情報の対応する
桁の値が0である、つまりB1とB3のブロックについて
は、その各ビット値はすべて0になる。また、対応する
ブロック選択鍵情報の桁のビット値が1であるブロッ
ク、つまりB0,B2 のブロックについては、対応する入力
値A0,A2 がそれぞれそのまま出力されることとなる。従
って、第1の融合部5ではA0とA2の各ビット値ごとの排
他的論理和が求められる。
【0032】(2)データ攪乱装置F関数6では、第1
の融合部5の出力である16ビットのデータcをデータ
攪乱鍵情報Kを用いて攪乱する。 (3)第2の選択部では、前記各ブロック選択鍵情報Ki
(i=0,1,2,3 ) に対応して、前記F関数の出力データd
とブロック選択鍵情報Kiの否定の情報Ki(印字の都合で
 ̄を下線とする。他も同じ)との論理積を求める。この
ことによって、第2の選択部の各出力は対応するブロッ
ク選択鍵情報の値が1であるデータ、つまりE0とE2のデ
ータは、各ビット値がすべて0になる。また、対応する
ブロック選択鍵情報の桁の値が0である第2の選択部の
出力E1,E3 のデータとしては、前記データ攪乱装置F関
数の出力データdが出力される。
【0033】(4)第2の融合部では、入力データaと
第2の選択部の出力データeの各ビット値ごとの排他的
論理和を求める。このことによって本実施例におけるデ
ータ攪乱装置の出力データF0とF2は、それぞれ対応する
入力データA0,A2 と同じになり、F1とF3は対応する入力
データA1,A3と前記F関数の出力dの排他的論理和とな
る。
【0034】(1)から(4)までの動作を図示する
と、図2に示すとおりになる。つまり入力aを、AL=(A
1,A3)とAR=(A0,A2)の2つに分けて、ARを1ブロック幅
に融合した後データ攪乱装置Fに入力し、その結果dをA
L=(A1,A3)それぞれに排他的論理和で融合している。従
って、出力f=(F0,F1,F2,F3)=(A0,A1 + d,A2,A3 + d)
となる。ここで「+」は排他的論理和を示す演算子とす
る。
【0035】以上の説明より、この秘密のブロック選択
鍵情報K0,K1,K2,K3 を各繰り返し(段)毎に変化させて
データ攪乱を行うことにより、このデータ攪乱装置は図
3で示すように、左右のビット位とビット数が可変であ
るインボリューションに近似した構成となる。つまり、
1段目はK0,K1,K2,K3 を用いて入力データをLとRに分
け、RをF関数に入力しその結果をLと融合する。2段
目は1段目の結果を別のブロック選択鍵情報K0',K1',K
2',K3'を用いてL’とR’に分け、R’をF関数に入力
して、L’に融合する。以下この操作を繰り返す。ま
た、攪乱されたデータをもとに戻すには、同じアルゴリ
ズムを用いて、鍵の順序をデータ攪乱の際と逆に入力す
る。
【0036】なお、ブロック選択鍵情報をすべて0とす
ると、F関数には0が入力され、入力相互の攪乱が行な
われない。また、ブロック選択鍵情報をすべて1とする
と、前記第2の選択部の出力がすべて0になるため、出
力が入力そのものになって攪乱効果がない。従って、ブ
ロック選択鍵の選定にあたっては、各桁の値がすべて0
またはすべて1にならないように注意する必要がある。
【0037】さて、このデータ攪乱装置においては、従
来のものとは異なり、入力データの左右への振分が入力
される秘密のブロック選択鍵情報により決定される。従
って、この秘密のブロック選択鍵を知らない解読者にと
っては、仮に入力データを自由に選べたとしても各段の
F関数の入力が不明であり、また各段のデータの関係が
不明となるため、差分攻撃を代表とする解読が非常に困
難となる。
【0038】次に、本実施例を実現するハードウェア量
について説明する。図1において、データ攪乱装置6を
除く部分は、64ビットの入力データの各ビットに対応
したハードウェアが必要であるが、それぞれが論理積や
排他的論理和などのゲート数の小さな素子で実現され、
全体として大きなハードウェア量にはならない。これに
対しデータ攪乱装置6は、一般的には、シフタや全加算
器、またはメモリなどで構成され、そのハードウェア規
模は入出力のデータのビット数に大きく依存する。しか
るに、本実施例の場合には、データ攪乱装置6への入出
力のデータは16ビットですむため、小さなハードウェ
アで実現可能である。
【0039】なお、本実施例においては、最大3ブロッ
ク(48ビット)がこの16ビット幅のF関数で攪乱さ
れることとなる。そのため、1ブロックだけが同じ16
ビット幅のF関数によって攪乱されていた従来技術に係
る拡張インボリューション構成(図8)に比較して、攪
乱効果が大きくなる。 (第2実施例)本実施例は請求項6の発明に係るもので
ある。
【0040】図4は、本第2実施例たるデータ攪乱装置
の構成図である。先の第1実施例との相違は、第2の融
合部15〜18を加減算で実現していることにあり、他
は同じである。このため、第1実施例と同じ構成の他の
要素については、同じ番号を付してある。次に本図を用
いて、この第2実施例の動作を説明する。なお、この場
合も第1実施例と同様にK0=1、K1=0、K2=1、K3=
0とする。
【0041】(1)(2)(3)はそれぞれ第1実施例
の動作と同じであるため、その説明は省略する。 (4)第2の融合部では、データ攪乱の手段として、そ
れぞれの入力ブロックデータAi(i=0,1,2,3 )と対応す
る第2の選択部の出力ブロックEiを算術加算する。これ
により、本実施例におけるデータ攪乱装置の出力ブロッ
クF0とF2は、それぞれ対応する入力ブロックA0,A2 と同
じになり、F1とF3は対応する入力ブロックA1,A3 それぞ
れと前記F関数の出力dの和となる。
【0042】また、攪乱したデータをもとに戻す際に
は、第2の融合部においてそれぞれの入力ブロックデー
タAiから対応する第2の選択部の出力ブロックEiを減算
する。以上説明したことから、この第2実施例のデータ
攪乱用の装置を繰り返し若しくは多段にして用いること
により、図5に示す左右のビット位とビット数が可変と
なる繰り返し構成が実現可能であるのがわかる。そし
て、この構成は、F関数の出力との融合を排他的論理和
ではなく加算で行なっているため、データ攪乱の逆変換
は鍵の入力順序を逆にし加算部を減算にすることにより
なされる。なお、ここで加算と減算は216を法として行
なう。つまり、各ブロック間の桁上げは無視する。
【0043】ここで、請求項8の発明について説明す
る。図6に、第2実施例における加減算器、すなわち図
4における加減算器15の構成を示す。本図において、
19は減算制御信号が1のときに入力E0を反転するため
の排他的論理和、20は16ビット幅の桁上がり入力付
きの全加算器である。この図を用いて動作を説明する。
まず、加算のとき(第2実施例においてはデータ攪乱の
際)は、減算制御信号が0である。従って、g15 〜g0は
E0と同一の値となり、16ビット全加算器19にはA0と
E0、そしてCin =0が入力される。また、減算のとき
(第2実施例においてはデータ攪乱の逆変換の際)は、
減算制御信号が1である。従って、g15 〜g0はE0の否定
E0になり、16ビット全加算器19にはE0とA0、そして
Cin =1が入力される。
【0044】ここで、請求項7の発明について説明す
る。上記実施例では16ビットの全加算器を用いている
が、これを例えば4ビットの全加算器4つで実現しても
よい。ただし、各全加算器ごとに減算制御信号をCin に
入力する。その際、減算制御信号をCin に入力するた
め、下のブロックからの桁上がり信号は無視する。
【0045】例えば4ビットの全加算器を用いたときの
上記加減算器の動作を具体的な数値で説明する。a=11
01、e=0111とする。加算の際の結果はf=a+e=01
00となる。加算の際の最上位ビットからの桁上げ信号は
無視する。また、このfをaに代入してeを減算制御を
行なうと、eの否定とa、そしてCin =1が全加算器
に入力されるので、結果はf++1=0100+1000+1
=1101となり、もとのaを復元できる。
【0046】この第2の実施例におけるデータ攪乱装
置、すなわち請求項6の発明の特別な場合として、入力
データを2ブロックに分割し、この分割に用いるブロッ
ク選択鍵をK0=1、K1=0の固定にしたものが考えられる。
この構成は図7で示すインボリューションの各F関数の
出力値との融合を、従来の排他的論理和の代わりに加算
で行なう場合に相当する。
【0047】本実施例における融合部の加算における桁
上げ信号は、差分攻撃における入力差分を拡散する働き
をもつため、攻撃は困難となる。次に、請求項5の発明
について説明する。前記第1、第2の実施例における第
1の融合部は、第1の選択部の出力ブロックの排他的論
理和で実現した。これにより入力が0および1の偏りの
ないランダムなデータの場合、それに対する出力がラン
ダムになる。しかし、この部分はこのランダム性さえ保
持されれば、何も排他的論理和である必然性はない。む
しろ、この部分を出力が同じになる入力対を求めること
が困難である関数、すなわち一方向性ランダム関数とす
ることにより、安全性は一層強化される。
【0048】これは、もし逆に、入力対の差分が出力対
の差分に影響を与えない場合が容易に見つかったとする
と、このことが前記差分攻撃を行なう際の解読の手がか
りになりうるからである。なお、一方向性ランダム関数
としては例えば、次の2の条件を充たすハッシュ関数が
ある。
【0049】(1)「hは通信文の分割単位であるブロッ
クごとに独立に計算するのではなく、通信文のすべての
ビットに依存した方法で計算する。」 (2)「任意の与えられた通信文Mとh(M)に対し、h
(M)=h(X)となるような他の通信文Xを見つける
ことが非常に困難である。」 実際の秘密通信、署名通信等においては、秘密鍵暗号の
DESをCBCモードで繰り返し用いる方法等が採用さ
れている。ただし、これらは前述の「現代暗号理論」6
9〜73頁、224頁等に記載されているいわば周知の
ものであるため、これ以上の説明は省略する。
【0050】次に、請求項9の発明について説明する。
また、上記第1、及び第2の実施例におけるデータ攪乱
装置を繰り返し用いる際に、2回目の繰り返しに1回目
に用いたブロック選択鍵情報の否定を用い、3回目の繰
り返しに1回目のブロック選択鍵情報を用いることによ
って、3段の最小の繰り返し段数で、入力の全ブロック
が出力の全ブロックに影響する。例えば、入力を4つに
わけそれぞれを、 A0,A1,A2,A3とする。そして、ブロッ
ク選択鍵情報がK0=1、K1=0、K2=1、K3=0の場合
について説明する。まず、1段目のデータ攪乱関数Fの
出力は対応するブロック選択鍵情報が1である入力A0,A
2 の影響を受ける。従って、1段目の出力ブロックをB
0,B1,B2,B3 とすると、B0はA0、B1はA0,A1,A2、B2はA
2、B3はA0,A2,A3の影響を受ける。次に2段目には上記
ブロック選択鍵情報の否定が用いられるので、データ攪
乱関数Fの出力はB1,B3の影響を受ける。従って、2段
目の出力ブロックをC0,C1,C2,C3 とすると、C0はB1,B3
の影響つまり、A0,A1,A2,A3 の影響を受ける。同様にC1
はA0,A1,A2、C2はA0,A1,A2,A3 、C3はA0,A2,A3の影響を
受ける。次に3段目には上記1段目と同じブロック選択
鍵情報が用いられる。従って、F関数の出力はC0,C2 の
影響つまり入力のA0,A1,A2,A3 全ブロックの影響を受け
る。このことによって、3段目の各出力ブロックは入力
の全ブロックの影響を受けることになる。なお、上記で
は分割数が4である場合について説明したが、分割数が
増加しても最小の3段の繰り返しで、各出力ブロックは
全入力ブロックの影響を受ける。
【0051】以上本発明を実施例に基づき説明したが、
本発明は何も上記実施例に限定されないのは勿論であ
る。すなわち例えば、 (1)実施例における64ビット、4分割等はあくまでも
請求項1等に記載したM、Nの具体例の一であり、処理
すべき信号の性質や他の設備との接続に応じて、適宜最
適な他の値が採用される。
【0052】ことに、1ブロックの桁が多いと、桁上げ
による差分分散の効果が増大するため、内容が重要な通
信において、Mとしては大きな数が採用される。 (2)送信されるべき本来の情報はアナログ情報であって
もよい。その場合は、単位時間毎の波高をとる等の処理
により送信情報をディジタル化した上で本発明に係る処
理を行う。
【0053】(3)ハード的でなく、大型計算機にプログ
ラムとして組み込まれ、ソフト的に本発明に係る処理を
なすようにしてもよい。 (4)用途は秘密通信、署名通信だけでなく、あらかじめ
料金を納付することにより復号装置を貸与されている者
に対する有料放送、磁気ディスクの有料貸し出し等であ
ってもよい。
【0054】(5)データ攪乱の繰り返しは、鍵は各繰り
返しに応じて変化させるが、ハードは同じであり、この
同じハードに繰り返しデータを流す、ハードを多段に装
備する等その手法を問わない。
【0055】
【発明の効果】以上の説明から明らかなように、請求項
1及び請求項2の発明においては、入力データを複数の
ブロックに分割し、ブロック単位で第1の選択部で選択
されるものとそうでないものに分けることにより、イン
ボリューション類似の構成としているが、この際、各段
での分割には異なったブロック選択用秘密鍵を用いてい
る。このため、このブロック選択用秘密鍵を知らない解
読者にとっては、インボリューションの左または右の部
分に入力データのどの部分が相当するか、またそれぞれ
何ビットずつあるのか不明となり、データ攪乱関数Fの
入力値の解析が一層困難となる。
【0056】また、本発明ではデータ攪乱関数Fの入力
の前に、第1の選択部で選択されるデータを1ブロック
幅に融合圧縮する第1の融合部を付加している。そのた
め、実現するハードウェアの大きな部分を占めるデータ
攪乱装置Fとしては1ブロック幅のものだけを用意すれ
ばよい。また、第1の選択部で選択されるデータが2ブ
ロック以上あれば、それら全体が1ブロック幅のF関数
で攪乱されたことになり、少ないハードウェアで高い効
果の攪乱を行える。
【0057】請求項3の発明においては、請求項1及び
請求項2の発明が簡易かつ効果的に実施可能となる。請
求項4の発明においては、請求項1及び請求項2の発明
が簡易かつ、効果的に実現可能となる。請求項5の発明
においては、請求項1及び請求項2の発明の安全性が向
上する。
【0058】また、請求項6の発明においては、第2の
融合部において排他的論理和に替えて加算若しくは減算
によってF関数の出力とその他のデータの融合を行い、
逆変換の場合には制御によって加算と減算の切り替えが
可能としているため同じハードウェアの使用が可能であ
る。また加算の桁上げ信号は差分を拡散する作用を有す
るため、差分攻撃が一層困難である。
【0059】請求項7の発明においては、独立の複数の
加減算器で各加減算器間の桁上げを無視して演算をなす
ため請求項6の発明に加えて更に、並行演算による処理
の高速化が図れる。請求項8の発明においては、桁上げ
信号が差分を拡散するため請求項6及び請求項7の発明
の効果に加えて安全性が向上する。
【0060】請求項9の発明においては、各段のブロッ
ク選択用秘密鍵を2段目は1段目の否定とし、3段目は
1段目と同じとすることにより、分割数を増加しても、
最小の3段で全出力ブロックが全入力ブロックに関与す
ることとなるため、ハードウェアの削減が図れる。
【図面の簡単な説明】
【図1】本発明に係るデータ攪乱装置の第1実施例の構
成図である。
【図2】上記第1実施例の作動の概念図である。
【図3】上記第1実施例の作動の説明図である。
【図4】本発明に係るデータ攪乱装置の第2実施例の構
成図である。
【図5】上記第2実施例の作動の説明図である。
【図6】上記第2実施例の加減算器の構成図である。
【図7】従来技術に係るデータ攪乱のインボリューショ
ン構成を示している。
【図8】データ攪乱を入力データを4つに分けて行う従
来技術に係る拡張インボリューション構成図である。
【符号の説明】
1〜4 第1の選択部 5 第1の融合部 6 データ攪乱部F 7〜10 第2の選択部 11〜14 第1実施例における第2の融合部(排他的
論理和器) 15〜18 第2実施例における第2の融合部(加減算
器) 19 排他的論理和 20 16ビット全加算器

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 M, Nをそれぞれ2以上の正整数とする
    とき、入力データをM×Nビット毎に取り出してこれを
    ブロック選択鍵情報とデータ攪乱鍵情報を用いて攪乱す
    る装置を繰り返し若しくは多段にして用いるデータ攪乱
    装置であって各段が、 取り出した入力データをMビットずつのNブロックに分
    割するデータ分割部と、 前記ブロック選択鍵情報に依存して前記N個のブロック
    から1個以上、N−1個以下のブロックを選択する第1
    の選択部と、 残りブロックを選択する第2の選択部と、 前記第1の選択部の出力を入力としてこれらを融合し、
    Mビットの結果を出力する第1の融合部と、 前記第1の融合部のMビットの出力を前記データ攪乱鍵
    情報を用いて攪乱した上で同じくMビットの出力を行な
    うF関数部と、 前記F関数部の出力を前記第2の選択部の出力の各ブロ
    ックに排他的論理和で融合した上で出力する第2の融合
    部と、 前記第1の選択部で選択された入力データに対応する後
    段への出力を前記入力データそのままとして出力し、前
    記第2の選択部で選択された入力データに対応する後段
    への出力を前記第2の融合部の出力データとして出力す
    る出力部を有していることを特徴とするデータ攪乱装
    置。
  2. 【請求項2】 M, Nをそれぞれ2以上の正整数とする
    とき、入力データをM×Nビット毎に取り出してこれを
    Nビットの数値からなり全てのビット値が0若しくは全
    てのビット値が1ではないブロック選択鍵情報とデータ
    攪乱鍵情報を用いて攪乱する装置を繰り返し若しくは多
    段にして用いるデータ攪乱装置であって各段が、 入力データをMビットずつのNブロックに分割するデー
    タ分割部と、 前記N個のブロックよりそれぞれのブロックに対応する
    前記ブロック選択鍵情報のビット値が1であるブロック
    を選択する第1の選択部と、 前記第1の選択部の出力を入力としてこれらを融合した
    上で、Mビットの結果を出力する第1の融合部と、 前記Mビットの第1の融合部の出力を前記データ攪乱鍵
    情報を用いて攪乱した上で同じくMビットの出力を行う
    F関数部と、 前記F関数部の出力をNブロック分用意しそれぞれのブ
    ロックに対応する前記ブロック選択鍵情報のビット値が
    0であるブロックを選択する前記第2の選択部と、 前記第2の選択部と前記入力データを排他的論理和で融
    合した上で出力する第2の融合部と、 前記入力データに対する後段への出力を前記第2の融合
    部の出力として出力する出力部を有することを特徴とす
    るデータ攪乱装置。
  3. 【請求項3】 前記第1の選択部をNブロックの入力デ
    ータの各ビットとそのブロックに対応するブロック選択
    鍵情報のビットとの論理積器とし、 第2の選択部をF関数部の出力をNブロック分用意する
    と共にこの各ビット値とそのブロックに対応するブロッ
    ク選択鍵情報のビット値の否定との論理積器としたこと
    を特徴とする請求項2記載のデータ攪乱装置。
  4. 【請求項4】 前記第1の融合部を第1の選択部の各出
    力ブロックの対応するビット値間の排他的論理和器とし
    たことを特徴とする請求項1又は請求項2記載のデータ
    攪乱装置。
  5. 【請求項5】 前記第1の融合部を第1の選択部の各出
    力を入力とした一方向性ランダム関数器としたことを特
    徴とする請求項1又は請求項2記載のデータ攪乱装置。
  6. 【請求項6】 前記第2の融合部を加減算器としたこと
    を特徴とする請求項1又は請求項2記載のデータ攪乱装
    置。
  7. 【請求項7】 前記加減算器を独立の複数の加減算器と
    したことを特徴とする請求項6記載のデータ攪乱装置。
  8. 【請求項8】 前記加減算器を一方の入力データたるビ
    ット値と減算制御信号との排他的論理和をとり、減算制
    御信号を桁上がり入力とし、前記排他的論理和の結果と
    もう片方の入力データとの加算を行なう加算器としたこ
    とを特徴とする請求項6又は請求項7記載のデータ攪乱
    装置。
  9. 【請求項9】 請求項1、請求項2又は請求項6のデー
    タ攪乱装置において、ある段のブロック選択鍵情報にそ
    の1回前の段におけるブロック選択情報の否定の情報を
    用いるようにしていることを特徴とするデータ攪乱装
    置。
JP4145964A 1992-06-05 1992-06-05 データ攪乱装置 Pending JPH05344118A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP4145964A JPH05344118A (ja) 1992-06-05 1992-06-05 データ攪乱装置
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
JP4145964A JPH05344118A (ja) 1992-06-05 1992-06-05 データ攪乱装置

Publications (1)

Publication Number Publication Date
JPH05344118A true JPH05344118A (ja) 1993-12-24

Family

ID=15397086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4145964A Pending JPH05344118A (ja) 1992-06-05 1992-06-05 データ攪乱装置

Country Status (1)

Country Link
JP (1) JPH05344118A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19707288A1 (de) * 1997-02-24 1998-08-27 Andreas Kuehnl Mittel zur sicheren Chiffrierung jeglicher Art von Daten
US6504931B1 (en) 1996-02-28 2003-01-07 Hitachi, Ltd. Method and apparatus for encrypting data
US7965841B2 (en) 2005-01-31 2011-06-21 Fujitsu Limited Method and apparatus for compressing and decompressing data, and computer product

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6504931B1 (en) 1996-02-28 2003-01-07 Hitachi, Ltd. Method and apparatus for encrypting data
DE19707288A1 (de) * 1997-02-24 1998-08-27 Andreas Kuehnl Mittel zur sicheren Chiffrierung jeglicher Art von Daten
US7965841B2 (en) 2005-01-31 2011-06-21 Fujitsu Limited Method and apparatus for compressing and decompressing data, and computer product

Similar Documents

Publication Publication Date Title
US5351299A (en) Apparatus and method for data encryption with block selection keys and data encryption keys
US5222139A (en) Cryptographic method and apparatus
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
Merkle A fast software one-way hash function
US6069954A (en) Cryptographic data integrity with serial bit processing and pseudo-random generators
CN107196763A (zh) Sm2算法协同签名及解密方法、装置与系统
EP0725511A2 (en) Method for data encryption/decryption using cipher block chaining (CBC) and message authetication codes (MAC)
US6606385B1 (en) Data encrypting/decrypting conversion methods and apparatuses and data communication system adopting the same
JPH09233066A (ja) 暗号化/解読化方法および装置
JP2000162965A (ja) 暗復号装置及び記憶媒体
CA2749961A1 (en) Cryptography circuit protected against observation attacks, in particular of a high order
JP2683022B2 (ja) データ秘匿方式
Guo et al. An image encryption algorithm based on logistic-fibonacci cascade chaos and 3D bit scrambling
Achkoun et al. SPF-CA: A new cellular automata based block cipher using key-dependent S-boxes
JPH05344118A (ja) データ攪乱装置
JP3389210B2 (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
KR101845554B1 (ko) 암호 함수 수행을 위한 방법 및 장치
JPH1124558A (ja) 暗号装置
KR100494560B1 (ko) Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법
US6785388B1 (en) Encryption method, decryption method, encryption/decryption method, cryptographic communications system, and computer usable medium
JPH06118872A (ja) データ撹乱装置
Appaji et al. Recent Advancements on symmetric cryptography techniques-A comprehensive Case Study
JP3906574B2 (ja) 暗号変換方法、暗号変換装置、復号方法、復号装置及びデータ通信システム
KR100262384B1 (ko) 암호화 방법 및 장치(Encryption Method and Apparatus)
JP3371981B2 (ja) ブロック暗号作成装置