JP3029381B2 - データ変換装置 - Google Patents

データ変換装置

Info

Publication number
JP3029381B2
JP3029381B2 JP6318221A JP31822194A JP3029381B2 JP 3029381 B2 JP3029381 B2 JP 3029381B2 JP 6318221 A JP6318221 A JP 6318221A JP 31822194 A JP31822194 A JP 31822194A JP 3029381 B2 JP3029381 B2 JP 3029381B2
Authority
JP
Japan
Prior art keywords
input
data
output
bit
transposition
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 - Fee Related
Application number
JP6318221A
Other languages
English (en)
Other versions
JPH08227269A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP6318221A priority Critical patent/JP3029381B2/ja
Priority to GB9500437A priority patent/GB2285562B/en
Priority to US08/370,881 priority patent/US5623548A/en
Publication of JPH08227269A publication Critical patent/JPH08227269A/ja
Application granted granted Critical
Publication of JP3029381B2 publication Critical patent/JP3029381B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、暗号化における変換
パターン生成機構及び暗号関数機構に関し、特に撹乱効
果の高い並列攪乱処理によってデータの暗号化及び復号
化を行うための変換パターン生成機構及び暗号関数機構
に関する。
【0002】
【従来の技術】コンピュータシステムとそれを結ぶネッ
トワークが急速に普及しつつある今日、通信データ及び
コンピュータ・データを盗聴や改ざんから保護するた
め、ネットワークにおけるセキュリティを確保すること
は重要であり、特に、データ暗号化技術はその中核的技
術として必要不可欠である。
【0003】軍事や外交ではなく、民間分野のビジネス
や研究開発でのデータ通信に暗号化技術を利用する場
合、誰でも自由に暗号装置や暗号化機構を組みこんだソ
フトウェア等を入手できる可能性があり、そのため暗号
化アルゴリズムは多くの人に知られるおそれがある。
【0004】そこで、アルゴリズムを秘密にしておくこ
とを安全性の根拠にした暗号化を使うことは危険である
ため、アルゴリズムの詳細を公開して誰もが使用でき、
秘密の鍵を安全性の根拠にした暗号化技術が提案されて
いる。その一例として、DES(Data Encryption Stand
ard;National Bureau of Standard,Federal Informatio
n Processing Standards Publications,46 Jan.1977)が
挙げられる。
【0005】図12に、DESの暗号化方式の一例の説
明図を示す。DESでは、入力された暗号化すべき平文入
力を上位ビットL0(たとえば32ビット)と下位ビッ
トR0(たとえば32ビット)に分割し、下位ビットあ
るいは、排他的論理和(EOR)の演算が行われたビッ
ト列のデータに対して暗号化関数fによるデータ攪乱処
理を行う。この処理によって得られたビット列に対して
さらに同図に示すように、排他的論理和(EOR)及び
暗号化関数fによるデータ攪乱処理を数回繰り返し行
い、最終的に暗号化されたデータを得る。
【0006】ここでDESの暗号化関数内の処理の一例
の模式図を図13に示す。この暗号化関数内部では、外
部から与えられる鍵、すなわち秘密にされたデータのビ
ット列を用いて前記平文データのビット列に対して拡大
転置(E)、換字テーブル(S−Box)、平衡転置
(P)及び排他的論理和などの処理がほどこされる。こ
れらの処理は、予め設定され固定化された処理である。
この暗号化関数は公開されており、このアルゴリズムは
だれもが知りえるが、ただ鍵が秘密となっていて容易に
は鍵を特定することができない構成を持っている。
【0007】このようなDESのように、暗号化関数と
呼ばれるデータ攪乱要素を繰り返し適用するという構成
になっている暗号方式は、インボリューション型の暗号
と呼ばれる。インボリューション型の暗号の例として
は、DESの他にFEAL(Fast Data Encryption Algo
rithm)(清水ほか、高速データ暗号アルゴリズムFEA
L,電子情報通信学会論文誌D.vol.J70-D,No.7,pp.1413
-1423,1987,7)が挙げられる。
【0008】
【発明が解決しようとする課題】しかし、これらの暗号
化方式に対して解読を行う手法が提案されており、暗号
化の安全性の確保は十分とは言えない。たとえば、イン
ボリューション型の暗号一般に適用できる解読方式とし
て、既知の差分攻撃法といわれる平文攻撃がよく使用さ
れている。この差分攻撃法は、暗号化データと平文デー
タから暗号化に使用される秘密の鍵を推定するものであ
るが、BihamとShamirによるDiffrential Cryptanalysis
of DES-like Cryptosystem,Journal of Cryptolog
y,Vol.4,pp.3-72,1991において詳しく述べられている。
【0009】差分攻撃とは、以下のような原理に基づい
ている。固定された差分値(排他的論理和値)Δを持っ
た2系列の平文列をN段のインボリューション型暗号ア
ルゴリズムで暗号化したとき、N-1段の結果の差分値に
はいろいろな可能性があるが、特にΔ’であるとする。
このようなΔとΔ’の組を差分値対(characteristic)
という。ある差分値対(Δ,Δ’)が有意な確率で起こ
るならば、Δ’と暗号文列から最終段(N段目)の鍵が
総当たりによって求められる。
【0010】DESにおいては、前記したような特定の
差分値対が起こる確率は比較的容易に計算できる。図1
3に示すように、DESで用いられている暗号化関数
は、転置、blockごとの換字、および鍵との排他的論理
和からなっており、さらに転置および換字は常に固定の
ままである。そのため、特定の差分入力に対する差分出
力の可能性を数えあげることが比較的容易にでき、差分
値対が起こる確率は比較的容易に計算できる。
【0011】差分攻撃に対抗するため、差分値対の確率
を下げる提案が種々なされている。例えば、段数を増や
せば、差分値対の確率を下げることができる。しかしな
がら、段数を増やしたとしても差分値対の確率を計算す
ることはでき、手間は増えるかもしれないが依然として
差分攻撃を考えることは可能である。
【0012】この発明は、以上のような事情を考慮して
なされたものであり、暗号化関数の内部の転置機構又は
換字テーブル構造を鍵に依存して変化させることによっ
て、差分攻撃を困難とし、差分攻撃では事実上解読が不
可能となる暗号化における変換パターン生成機構及び暗
号関数機構を提供することを目的とする。
【0013】
【課題を解決するための手段】この発明は、複数ビット
からなるデータと暗号化のための鍵を入力する入力部
と、入力されたデータを変換するための変換パターンを
生成する変換パターン生成部と、入力されたデータを前
記変換パターンに従って変換するデータ変換部とからな
り、前記鍵が前記変換パターンに対応する通し番号であ
り、前記変換パターンが、入力データのビット配列をビ
ットごとに転置する転置パターン、あるいは入力データ
の値を所定の値に変換する換字表であり、前記データ変
換部が、m個(mは偶数)の入力切替スイッチ(SF1
…SFm)と、m個の出力先切替スイッチ(SR1…S
Rm)と、m個のメモリ・テーブル(M1…Mm)と、
m個のエクスクルシブ・オア回路(EOR1…EOR
m)と、m個の入力端子とm個の出力端子とを持つ転置
回路(VT)と、m個の入力端子とm個の出力端子とを
持つビット回転シフト機構(ROT)とを備え、j番目
(jは1,…,m)の入力切替スイッチ(SFj)は、
一方の状態にある場合には、入力データをm分割して得
られるm個のミニブロックのうちのj番目のミニブロッ
クを出力し、他方の状態にある場合には、j番目の出力
先切替スイッチ(SRj)から送られてくるミニブロッ
クを出力し、j番目の出力先切替スイッチ(SRj)
は、一方の状態にある場合には、ビット回転シフト機構
(ROT)のj番目のミニブロックを外部に送出し、他
方の状態にある場合には、ビット回転シフト機構(RO
T)のj番目のミニブロックをj番目の入力切替スイッ
チ(SFj)に送り、k番目(kは1,…,m/2)の
メモリ・テーブル(Mk)のアドレスにはk番目の入力
切替スイッチ(SFk)の出力が入力され、k番目のエ
クスクルシブ・オア回路には、k番目のメモリ・テーブ
ル(Mk)の出力とm/2+k番目のメモリ・テーブル
(M m/2+k )の出力とが入力され、m/2+k番目のメ
モリ・テーブル(M m/2+k )のアドレスにはm/2+k
番目のエクスクルシブ・オア回路(EOR m/2+k )の出
力が入力され、m/2+k番目のエクスクルシブ・オア
回路(EOR m/2+k )には、m/2+k番目の入力切替
スイッチ(SF m/2+k )の出力とk番目のメモリ・テー
ブル(Mk)の出力が入力され、転置回路(VT)のk
番目の入力端子にはk番目のエクスクルシブ・オア回路
(EORk)の出力が入力され、 転置回路(VT)のm
/2+k番目の入力端子にはm/2+k番目のメモリ・
テーブル(M m/2+k )の出力が印加され、転置回路(V
T)のj番目の出力はビット回転シフト機構(ROT)
のj番目の入力端子に入力され、ビット回転シフト機構
(ROT)は、1番目,…,m番目の入力端子に入力さ
れたデータを一纏まりとして回転シフトすることを特徴
とするデータ変換装置を提供するものである。この発明
によれば、入力データをミニブロックに分割し、入力ミ
ニブロックの相互組替え操作およびランダム換字テーブ
ル操作等を行い得るように暗号関数を構成したので、攪
乱効果の高い暗号関数を実現することが出来ると共に、
差分攻撃を行っても事実上解読不可能なデータ変換装置
を提供することが出来る。
【作用】 図15はこの発明のデータ変換部、すなわち暗
号関数機構の原理説明図である。同図においては、説明
を簡単にするためにm=4とされている。初期状態にお
いては、入力切替スイッチSF1,…,SF4は実線の
状態にあり、出力先切替スイッチSR1…SR4は点線
の状態にあり、各単位換字テーブルM1,…,M4の出
力は、オール0である。16ビットの入力データは4分
割され、4ビット構成の4個のミニブロックが生成され
る。 入力データの1番目のミニブロックはメモリ・テー
ブルM1のアドレスに入力され、入力データの2番目の
ミニブロックはメモリ・テーブルM2のアドレスに入力
される。 メモリ・テーブルM1の出力がオール0である
ので、入力データの3番目のミニブロックはそのままメ
モリ・テーブルM3のアドレスに入力され、メモリ・テ
ーブルM2の出力がオール0であるので、入力データの
4番目のミニブロックはそのままメモリ・テーブルM4
のアドレスに入力される。 各メモリ・テーブルM1,
…,M4に1回目の読出指示を与えると、各メモリ・テ
ーブルM1,…,M4から4ビットのデータが読み出さ
れる。メモリ・テーブルM1からの読出データとメモリ
・テーブルM3の読出データはエクスクルシブ・オア回
路EOR1でエクスクルシブ・オアされ、その結果が転
置回路VTの1番目の入力端子に入力され、メモリ・テ
ーブルM2からの読出データとメモリ ・テーブルM4か
らの読出データはエクスクルシブ・オア回路EOR2で
エクスクルシブ・オアされ、その結果が転置回路VTの
2番目の入力端子に入力される。メモリ・テーブルM3
とM4の読出データはそれぞれそのまま転置回路VTの
3番目と4番目の入力端子に入力される。なお、1回目
の読出しが行われた後、入力切替スイッチSF1,…,
SF4は点線の状態に切り替えられる。 転置回路VTの
出力は、ビット回転シフト機構ROTに入力される。1
回目の回転シフト指示を与えると、ビット回転シフト機
構ROTは指示されたシフト量だけ入力データを回転シ
フトする。ビット回転シフト機構ROTの1番目の出力
端子から出力される4ビットのデータは1番目の入力切
替スイッチSF1から出力され、2番目の出力端子から
出力される4ビットのデータは2番目の入力切替スイッ
チSF2から出力され、3番目の出力端子から出力され
る4ビットのデータは3番目の入力切替スイッチSF3
から出力され、4番目の出力端子から出力される4ビッ
トのデータは4番目の入力切替スイッチSF4から出力
される。 この時点では、メモリ・テーブルM1のアドレ
スには入力切替スイッチSF1からのデータがそのまま
入力され、メモリ・テーブルM2のアドレスには入力切
替スイッチSF2からのデータがそのまま入力される。
エクスクルシブ・オア回路EOR3は、入力切替スイッ
チSF3からのデータと、メモリ・テーブルM1の出力
(1回目の読出データ)とをエクスクルシブ・オアす
る。その結果はメモリ・テーブルM3のアドレスに入力
される。エクスクルシブ・オア回路EOR4は、入力切
替スイッチSF4からのデータと、メモリ・テーブルM
2の出力(1回目の読出データ)とをエクスクルシブ・
オアする。その結果はメモリ・テーブルM4のアドレス
に入力される。 各メモリ・テーブルM1,…,M4に2
回目の読出指示を与えると、新たなデータが転置回路V
Tの各入力端子に与えられ、新たなデータが転置回路V
Tの各出力端子から出力され、新たなデータがビット回
転シフト機構ROTに入力される。ビット回転シフト機
構ROTに2回目の回転シフト指示を与えると、ビット
回転シフト機構ROTの各出力端子から新たなデータが
出力され、これらが入力側にフィードバックされる。
モリ・テーブルM1,…,M4からのデータの読出し→
ビット回転シフト機 構による回転シフトと言う一連の処
理が、指定された回数だけ行われた後、出力先切替スイ
ッチSR1,…,SR4は点線の状態に切り替えられ
る。
【0014】
【実施例】 図1、図2及び図3に、この発明の基本構成
ブロック図を示す。 図1において、この発明は、暗号化
のための鍵を入力する鍵入力部102と、入力データを
変換するための変換パターンを生成する変換パターン生
成部103と、生成された変換パターンを出力する出力
部104を備え、鍵入力部102に予め設定された前記
変換パターンに対応する通し番号が前記鍵として入力さ
れた場合に、変換パターン生成部103が、その通し番
号に対応する変換パターンを生成し、出力することを特
徴とする変換パターン生成機構101を提供するもので
ある。 また、この発明は、データ及び鍵を入力する入力
部105と、前記変換パターン生成機構101と、与え
られた鍵を種として前記変換パターン生成機構101が
生成した変換パターンに従って、データを変換する変換
部106とを備えることを特徴とする暗号関数機構11
0を提供するものである。
【0015】また、この発明の前記変換パターン生成機
構101は、前記鍵として入力される通し番号が、入力
データのビット配列をビットごとに転置する転置パター
ンに対応するものである場合に、前記変換パターン生成
部103が、その通し番号に対応する転置パターンを生
成し、入力データの各ビットに対して転置ビット位置を
定めた規則を出力するものであることが好ましい。
【0016】また、この発明の前記変換パターン生成機
構101は、前記鍵入力部102にn桁からなる数字で
表された通し番号が入力され、通し番号のi桁目(i=
1,2,……,n)に存在する数字Siが、nビットか
らなる入力データのiビット目を転置させるビット位置
を示すものとして、前記変換パターン生成部103が、
入力データと転置後のデータとの転置の対応関係を示す
転置パターンを生成するように構成されることが好まし
い。
【0017】また、この発明は、複数ビットからなるデ
ータ及び鍵を入力する入力部105と、前記したような
変換パターン生成機構101と、複数ビットからなる入
力データのビット配列をビットごとに転置する転置部1
07とを備え、与えられた鍵を種として前記変換パター
ン生成機構101が生成した転置パターンに従って、転
置部107が入力データのビット配列を転置することを
特徴とする暗号関数機構110を提供するものである。
【0018】また、この発明は、前記鍵として入力され
る通し番号が、入力データの値を所定の値に変換するた
めの換字表に対応するものである場合に、変換パターン
生成部103が、その通し番号に対応する換字表を生成
し、各入力データごとに換字すべき値を定めた規則を出
力することを特徴とする変換パターン生成機構101を
提供するものである。
【0019】また、この発明は、前記鍵入力部にn桁か
らなる数字で表された通し番号が入力され、入力データ
の値がi(i=1,2,…,n)である場合に、この入
力データiを通し番号のi桁目に存在する数字Siに換
字するものとして、前記変換パターン生成部103が、
入力データを換字後のデータとの換字の対応関係を示す
換字表を生成する変換パターン生成機構101を提供す
るものである。
【0020】また、この発明は、複数ビットからなるデ
ータ及び鍵を入力する入力部105と、前記変換パター
ン生成機構101と、複数ビットからなる入力データを
所定の値に変換する換字部108とを備え、与えられた
鍵を種として前記変換パターン生成機構101が生成し
た換字表に従って、換字部108が入力データの値を換
字することを特徴とする暗号関数機構110を提供する
ものである。
【0021】また、図2においてこの発明は、暗号化の
ための鍵を入力する鍵入力部102と、入力された鍵を
種として複数個の乱数からなる疑似乱数系列を発生する
乱数生成部111と、前記疑似乱数系列によって入力デ
ータのビット配列を転置する転置パターンを生成する転
置パターン生成部112を備え、転置パターン生成部1
12が、疑似乱数系列の各乱数に対応する転置パターン
をそれぞれ生成することを特徴とする変換パターン生成
機構101を提供するものである。
【0022】また、図3においてこの発明は、複数ビッ
トからなるデータ及び鍵を入力する入力部105と、前
記変換パターン生成機構101と、複数個の暗号関数機
構110とを備え、前記暗号関数機構110が、複数ビ
ットからなる入力データのビット配列をビットごとに転
置する転置部をその内部に備え、前記変換パターン生成
機構101によって生成された各転置パターンが前記各
暗号関数機構110に与えられ、各暗号関数機構110
の前記転置部が与えられた転置パターンに従って入力デ
ータのビット配列を転置することを特徴とする暗号装置
を提供するものである。
【0023】また、この発明は、暗号化のための鍵を入
力する鍵入力部102と、入力された鍵を種として複数
個の乱数からなる疑似乱数系列を発生する乱数生成部1
11と、前記疑似乱数系列によって入力データを変換す
るための基準となる換字表を生成する換字表生成部11
3を備え、換字表生成部113が、疑似乱数系列の各乱
数に対応する換字表をそれぞれ生成することを特徴とす
る変換パターン生成機構101を提供するものである。
【0024】また、この発明は、データ及び鍵を入力す
る入力部105と、前記変換パターン生成機構101
と、複数個の暗号関数機構110とを備え、前記暗号関
数機構110が、入力データの値を変換する換字部をそ
の内部に備え、前記変換パターン生成機構101によっ
て生成された各換字表が前記各暗号関数機構110に与
えられ、各暗号関数機構110の前記換字部が与えられ
た換字表に従って入力データを換字することを特徴とす
る暗号装置を提供するものである。
【0025】ここで、鍵入力部102とは、入力データ
に対して暗号化処理を実行するために、種となるデータ
である鍵が入力される部分であり、利用者等がキー入力
により鍵を入力してもよいが、ICカード、フロッピー
ディスクなどの記憶媒体に書込まれた鍵をこの記憶媒体
を読み取ることによって入力することが好ましい。ま
た、この発明では、入力される鍵は、入力データの変換
規則に対して付与された通し番号として取扱われ、この
通し番号に基づいて予め対応づけされている変換パター
ンが生成される。
【0026】変換パターン生成部103は、入力された
鍵から入力データの変換パターンを生成するものである
が、この生成方法は、所定の規則、たとえば転置又は換
字等によって行われるが、予めどの規則を用いるか設定
されるものべきものであるので、論理回路を組み合わせ
たハードウェアロジックまたはCPUを中心としたマイ
クロコンピュータ及び制御プログラムによって実現され
ることが好ましい。
【0027】出力部104は、変換パターン生成部10
3で生成された変換パターンすなわち入力データの変換
規則をテーブルデータとして出力したり、あるいは、変
換制御ソフトウェアとして出力するものであり、これら
は、たとえば後述する暗号関数機構の変換部106や転
置部107、換字部108に出力される。
【0028】また、入力データの変換規則としては、た
とえば、入力データのビット配列をビットごとに転置す
る転置や、入力データの値を所定の値に変換する換字な
どが用いられるがこれに限定するものでなく、他の変換
規則を用いてもよい。また転置には、入力データと転置
後のデータのビット数が同数となる平衡転置、入力デー
タのビット数よりも転置後のデータのビット数が大きく
なる拡大転置などが用いられる。
【0029】変換部106は、ハードウェアロジック又
はCPUを中心としたマイクロコンピュータ及び制御プ
ログラムによって実現されることが好ましく、変換パタ
ーン生成機構101で生成された変換パターンに基づい
て暗号化を目的としてデータを変換するものである。こ
の変換部106は、より具体的には、転置や換字という
変換動作を行う転置部107や換字部108を意味す
る。
【0030】乱数生成部111は、公知の乱数生成手法
を用いればよく特に限定されないが、たとえばDES、
FEAL、あるいはM系列というよく知られた手法を用
いることができ、これによって疑似乱数系列が生成され
る。また転置パターン生成部112及び換字表生成部1
13は、ハードウェアロジック又はCPU及び制御ソフ
トウェアにより実現されることが好ましく、疑似乱数系
列を入力として所定の手順により転置パターン又は換字
表を出力するものである。
【0031】
【0032】この発明のデータ変換装置は、特に、各種
暗号装置として利用できる。また、この発明の暗号装
、m個のメモリ・テーブル(M1…Mm)の内容が
力される鍵データに応じて変更されることを特徴とす
るものである。
【0033】また、この発明の暗号装置は、転置回路
(VT)の転置の態様が、入力される鍵データに応じて
変更されることを特徴とするものである。
【0034】また、この発明の暗号装置は、ビット回転
シフト機構(ROT)のシフト量が入力される鍵データ
に応じて変更されることを特徴とするものである。
【0035】また、この発明の暗号装置は、m個の出力
先切替スイッチ(SR1…SRm)からm個の入力切替
スイッチ(SF1…SFm)にデータを帰還する回数
、入力される鍵データに応じて変更されることを特徴
とするものである。
【0036】この発明によれば、暗号化の鍵として通し
番号を入力し、その通し番号に対応する変換パターンが
生成されるように変換パターン生成機構を構成している
ので、変換パターンが予め設定された固定的なものでな
く鍵に依存させて変更することができ、差分攻撃に強い
暗号関数機構を提供することができる。
【0037】すなわち、この変換パターン生成機構を用
いることで、暗号関数機構におけるデータ変換、たとえ
ば転置又は換字を可変とすることができるので、特定の
差分入力に対する差分出力の可能性を数え上げることは
非常に困難であり、差分攻撃を適用してこの発明の暗号
関数機構を用いた暗号文を解読することは事実上不可能
と言うことができる。
【0038】また、変換パターン生成機構が転置パター
ンまたは換字表を可変的に生成する場合にも、同様に、
差分攻撃に強い暗号関数機構を提供することができる。
また、N段の暗号機構からなる暗号装置の場合、差分攻
撃によってN−1段の差分値対に有意な偏りが発見でき
たとしても、N段目に対する鍵の総当たりは事実上不可
能と言える。たとえば、4bitの入出力データに対す
る換字表は16の階乗通りあるが、これらを表現する通
し番号(鍵)としては約30bitの長さのものが必要
である。
【0039】したがってこのような換字表を2個用いた
暗号関数機構においては、約60bitの長さの鍵が用
いられていると考えることができ、従来におけるDES
の1段あたりの暗号関数機構に対する鍵の長さである4
8bitを上回っているので、従来の暗号化方式と比べ
て、明らかに差分攻撃に強いと言うことができる。
【0040】また、ある固定鍵を1つ種として乱数生成
器に与え、乱数系列を生成することによって、複数個か
らなる各段の暗号化関数の換字表又は転置パターンをす
べて決定することができるので、複数個の換字表や転置
パターンを決めるために鍵のbit長さを長くする必要
がなくなり、さらに鍵を記憶する領域を少なくすること
ができる。
【0041】
【0042】
【0043】
【0044】
【0045】
【0046】
【0047】
【0048】以下、図面に示す実施例に基づいてこの発
明を詳述する。なお、これによって、この発明が限定さ
れるものではない。図4に、この発明で用いるインボリ
ューション型暗号方式の構造を示すブロック図で4段の
暗号機構を使用した例を示し、まずこれについて説明す
る。
【0049】ここで暗号化されるデータは64bitで、64b
itの暗文が出力されるとする。入力データは上位32bit
と下位32bitに分けられ、下位32bitは各段ごとに異なる
鍵を用いる暗号化関数によって攪乱され、入力上位32bi
tとbitごとに排他的論理和をとる。さらに、排他的論理
和の結果を次段の入力下位32bit、またもともとの入力
の下位32bitを次段の入力上位32bitとして、同様の手続
きを4回繰り返す。ただし、最終段では、上位32bitと
下位32bitの交換は行わない。この発明は、このような
構造を示すインボリューション型暗号化方式における暗
号化関数内部の構成に係るものである。
【0050】第1実施例:図5に、この発明の第1実施
例の暗号化関数の構成図を示す。これは、8bitのデ
ータの入出力の転置のみから構成されるものである。こ
こで、転置パターンとは、たとえば図6に示すような
表、すなわち通し番号として表現される。
【0051】図6において、最も左側に‘1’となって
いるのは、入力データの0ビット目は、出力データの1
bit目に出力することを意味しており、次の‘4’
は、入力データの1ビット目は出力データの4bit目
に出力することを意味している。以下、同様に、入力の
2bit目は出力の7ビット目に、入力の3bit目は
出力の6ビット目に、入力の4bit目は出力の2ビッ
ト目に、入力の5bit目は出力の3ビット目に、入力
の6bit目は出力の5ビット目に、入力の7bit目
は出力の0ビット目に対応させて出力することを意味す
る。
【0052】ところで、この図6に示した転置パターン
を左側からの連続する数字として読み“1476235
0”という番号がこの転置パターンの通し番号であると
する。このように転置パターンに通し番号を付与するこ
とにすれば、その通し番号に対応する8bit入出力デ
ータの転置パターンが一意的に決定される。すなわち、
与える通し番号によって転置パターンを変更することが
できる。
【0053】したがって、転置の方法が予め与えられる
ような固定したものでなく、必要に応じて可変すること
ができるので、特定の差分入力に対する差分出力の可能
性を数え上げることは非常に困難ということができる。
たとえば、4bit入出力の転置であれば、16の階乗
通りのパターンがあるので、すべての転置が平等に選ば
れるなら、事実上4bit入出力の転置に対する差分出
力の可能性を数え上げることは事実上不可能である。
【0054】次に、このようにして作成される暗号化関
数を前記したインボリューション型暗号方式に適用され
た場合を考える。ここでも暗号化関数は図6に示す転置
パターンのみから構成されるとする。この暗号化関数の
入力bitパターンが“10101010”、すなわち
入力の0ビット目が“1”、1ビット目が“0”、最後
の7ビット目が“0”となっている場合、図6に従え
ば、入力の0ビット目の“1”は1ビットに転置され、
入力の1ビット目の“0”は4ビット目に転置され、さ
らに入力の7ビット目の“0”は0ビット目に転置され
て、出力bitパターンは“01100101”、すな
わち、0ビット目が“0”で始まり、最後の7ビットが
“1”で終わるビット列となる。以上のように、入力デ
ータを攪乱すれば、差分攻撃に対して強い暗号化を実現
することができる。
【0055】なお、ここでは説明のために一例として8
bitデータを用いたが、これに限定するものではな
く、32bit、64bitのデータにも利用でき、任
意の大きさのデータの転置に適用できる。また、ここで
は、転置のみを用いる暗号化関数を示したが、換字表、
逆転置などを組合わせて用いてもよい。
【0056】第2実施例:図7に、この発明の第2実施
例の暗号化関数の構成図を示す。これは、4bitのデ
ータの入出力の換字表のみから構成される暗号化関数で
ある。なお、ここでは説明のため4bitに限定した
が、任意のビット数の入力データについてこの換字表が
適用できる。
【0057】ここで、換字表とは、たとえば、図8に示
すような表として表現される。図8には、16通りの数
字が並んでいるが、左上の位置を0番地として、以下右
方向に1、2、3番地とし、2段目は左から右へ4、
5、6、7という番地をふり、3段目は左から右へ8、
9、10、11、4段目は左から右へ12、13、1
4、15という番地がふられていると考える。
【0058】この番地が、入力bitパターンの値に相
当すると考え、各番地に記入されている数字が16進数
の出力bitパターンの値に相当すると考える。たとえ
ば、入力bitが“0000”、すなわち、16進数で
“0”である場合、出力bitパターンは“100
0”、すなわち16進数で“8”とすることを意味す
る。
【0059】また、3段目の8番地に相当する位置に
は、“4”が記入されているが、これは、入力bitパ
ターンが16進数で“8”(=1000)の場合に、出
力bitパターンを“4”すなわち“0100”とする
ことを意味する。また、第1実施例で示したように、こ
の換字表そのものについて通し番号を付与する。すなわ
ち、この図8に示した換字表を左から右、上から下に連
続する数字として読み、“813FA6C5490EB
27D”という番号が、この換字表の通し番号とする。
このように、換字表に通し番号を付与することにすれ
ば、その通し番号に対応する4bit入出力の換字表が
決定される。
【0060】したがって、換字表を必要に応じて変化さ
せれば、第1実施例と同様に、差分出力の可能性をすべ
て数え上げることは事実上不可能と言うことができる。
次に、このようにして作成される暗号化関数を、前記し
たインボリューション型暗号方式に適用した場合を考え
る。
【0061】ここでも、暗号化関数は、図8に示す換字
表のみから構成されるとする。この暗号化関数の入力b
itパターンが“0000”、すなわち、図8の換字表
の0番地位置を示す場合には、出力bitパターンは0
番地の位置に記入された数字である“1000”(=
“8”)となる。以上のように入力データを攪乱すれ
ば、差分攻撃に対して強い暗号化を実現できる。
【0062】第3実施例:ここでは、図13に示したD
ESの暗号化関数に、第1実施例又は第2実施例に示し
た通し番号を付与した転置又は換字表を適用した例を示
す。すなわち、図13に示したDESの暗号化関数の各
段において、関数内部の構成は変更せずに、拡大転置パ
ターン(E)、換字表(S−Box)又は転置パターン
(P)のうち1つ以上を通し番号で決定するようにす
る。たとえば、従来のDESで与えられていた鍵に加え
て、換字表又は転置パターン(E,P,S−Box)を
決定するための通し番号を新たな鍵として与えるように
する。
【0063】このようにすれば、DESの(E)、(S
−Box)、(P)の各処理は予め設定されて固定され
たものであったが、外部から与えられる鍵によって各処
理の内部構成を容易に変更することができるので、差分
攻撃に対して強い暗号化方式を提供することができる。
【0064】第4実施例:第3実施例では、転置パター
ンや換字表の通し番号を鍵として与える実施例を説明し
たが、ここでは、通し番号によって特定される転置パタ
ーンや換字表を用いるのではなく、予め定められた鍵を
乱数生成器に与え、この乱数生成器により生成された疑
似乱数系列を用いて転置パターンや換字表を決定する場
合について述べる。
【0065】そして、決定された転置パターンや換字表
は、インボリューション型暗号の各段で用いられている
暗号化関数として利用できる。また、以下に述べる方法
で決定された転置パターンや換字表に対して通し番号を
付与し、前記した第1、第2及び第3の実施例に適用す
ることも可能である。
【0066】図9は、この第4実施例において、転置パ
ターン又は換字の表を決定するための構成ブロック図を
示している。ここで、インボリューション型暗号処理モ
ジュールは、図13で示したようなDESの暗号化関数
に相当する。まず、予め定められた固定的な鍵を乱数生
成の種として乱数生成器に与える。乱数生成器として
は、たとえば、公知のCBCモードで動作したDESを
用いることができる。
【0067】この乱数生成器によって得られる疑似乱数
系列を用いて表生成器にて転置パターン表または換字表
を生成する。表生成の実施例は後述する。そして、この
表生成器で生成された表を、インボリューション型の暗
号処理モジュールの各段で用いられる暗号化関数に適用
する。この適用方法としては、たとえば、第1実施例の
ような各表に対応する通し番号として暗号化関数に与え
れればよい。
【0068】次に、表生成器の実施例として、4bit
の換字表の生成について説明する。まず、乱数生成器
(DES)に固定の鍵として、たとえば、K=“039
649c539313965”を与える。次に、乱数の
種として、たとえば、システムの立ち上げからのCPU
時間r0=“1000000000000000”を与
える。このとき、第1の乱数r1は、r0を鍵Kで暗号
化したr1=“2c976076a7058d44”と
して得られる。
【0069】さらに、第2の乱数r2は、r1を鍵Kで
暗号化して得るというふうに、第nの乱数rnは、rn-1
を暗号化して得る。ここで、各乱数の各数字は、4bi
tで表されるものとし、たとえば、r1の先頭の“2”
は、“0010”という4bitデータと考える。この
ようにして得られた疑似乱数系列r1,r2……rn
利用して表生成器において換字表を作成する。
【0070】図10に、4bitの換字表を生成するフ
ローを示す。予め、0から15までの16個の数字の要
素リスト(list)を用意しておく。要素は、0から
15まで、この数字の順に並んでいるものとする。すな
わち、1番目の要素は“0”、2番目の要素は“1”
で、16番目の要素が“15”である。
【0071】乱数riの最初のbitのR0(=
“2”)、次の4bitをR1(=“c”)というよう
に、16個の数字から構成される乱数を16個の4bi
tの乱数列(R0,R1,……R15)に分割する。初
期値をi=0として、i=0から15までについて、以
下の処理を実行し、その都度、4bitの換字表の16
個のすべての項を決定していく。16個の数字のリスト
(list)から、〔Ri mod(16−i)〕番目
に相当する要素を取り出し、換字表の項のi番目の出力
とする。
【0072】たとえば、r1が用いられたとすると(i
=1),R0=“2”であるので、換字表の0番目の要
素は、〔R0 mod15〕=2、すなわち、list
の2番目の要素である1となる。同様に、R1=“c”
(=12)であるので、換字表の1番目の要素は、〔R
1 mod14〕=12、すなわちlistの12番目
の要素である13となる。
【0073】このようにして、換字表の0番目から15
番目までのすべての項をうめれば、4bitの換字表が
生成できる。また、複数の換字表を作成する場合は、ま
ず乱数riから一つの換字表を上記の方法で生成し、次
に乱数ri+1から別の換字表を生成するようにすれば
よい。以上は、換字表についての実施例を示したが、同
様な方法で転置パターンについても生成することができ
る。
【0074】このように、ある固定鍵を1つ種として乱
数生成器に与え、疑似乱数系列を生成することによっ
て、複数個からなる各段の暗号化関数の換字表又は転置
パターンをすべて決定することができるので、複数個の
換字表や転置パターンを決めるために鍵のbit長さを
長くする必要がなくなり、さらに鍵を記憶する領域を少
なくすることができる。なお、ここでは疑似乱数系列を
生成するために、DESを用いることにしたが、他の方
式、たとえば、FEALやM系列という方式を用いても
よい。
【0075】第5実施例:第1実施例から第4実施例で
説明した転置パターンや換字表を組み合わせることによ
って、より差分攻撃に強い暗号化システムを構築するこ
とができ、暗号化の安全性を高めることができる。図1
1に、転置パターン、換字表を組み合わせた暗号化関数
の例を示す。ここで入力データは32bitである。
【0076】ここでMiはそれぞれ4bit入出力の換
字表であり、VTは4bitを一つのブロックとした転
置パターンである。また、これらは、前記した通し番号
を鍵として与えられることによってそれぞれの表を決定
することができる。Bit rotate shifterは、入力データ
を回転シフトするものである。
【0077】第6実施例:次に、暗号関数機構の一実施
例についての詳細構成とその動作について詳説する。図
16はインボリューション型の暗号装置の基本処理構成
を示す図である。図16の左側は暗号化処理部を示して
いる。暗号化処理部においては、ブロック化された入力
データを転置処理した後、出力を2分割し、このうち右
半分を暗号関数fに入力する一方、左半分を暗号関数出
力と排他的論理和処理を行い、右半分のサブブロックは
次に左側へスワップし、排他的論理和処理出力を右半分
にスワップする基本処理を複数回繰り返して、この左右
ブロック・データを逆転置した後、最終暗号出力を作り
出す。
【0078】図16の右側は復号処理部を示している。
暗号化処理部の構造と復号処理部の構造は略ぼ同じであ
る。暗号化処理部における1段目の鍵をK1,2段目の
鍵をK2,…,n段目の鍵をKnとすると、復号処理部
においては、1段目の鍵はKn,2段目の鍵はKn−
1,…,n段目の鍵はK1となる。
【0079】復号処理部におけるj段目の暗号関数は、
暗号化処理部におけるn−j+1段目の暗号関数が有す
る換字テーブルと逆の換字を行う逆換字テーブル、暗号
処理部におけるn−j+1段目の暗号関数が有する転置
と逆の転置を行う逆転置、暗号処理部におけるn−j+
1段目の暗号関数が有するビット回転シフト機構と逆の
回転シフトを行う逆ビット回転シフト機構などを有して
いる。
【0080】図17は暗号関数部fのブロック構成を示
す図である。同図において、SELiは入力セレクタ、
VSは可変換字テーブル、VTは可変転置回路、ROT
は可変ビット・ローテート・シフタ、SELoは出力セ
レクタを示している。入力セレクタSELiは、外部か
らの入力データを選択したり、出力セレクタSELoか
らのデータを選択出力したりするものであり、複数の入
力切替スイッチから構成されている。可変換字テーブル
VSは、複数のエクスクルシブ・オア回路と複数の単位
換字テーブルから構成されている。可変転置回路は、転
置を行うものである。ビット・ローテート・シフタRO
Tは、入力データを回転シフトするものである。出力セ
レクタSELoは、入力データを外部に出力したり、入
力セレクタSELiにフィートバックしたりするもので
あり、複数の出力先切替スイッチから構成されている。
【0081】可変換字テーブルVSの内容を鍵データに
よって更新することが出来る。可変転置回路VTの転置
の態様も鍵データによって変化させることも出来る。ビ
ット・ローテート・シフタROTの回転シフト量も鍵デ
ータによって変化させることが出来る。出力側から入力
側にデータをフィードバックする回数も、鍵データによ
って変化させることが出来る。
【0082】暗号関数部fに入力されたサブブロックは
入力セレクタSELiを経由して可変換字テーブルVS
のアドレスへ入力され、可変換字テーブルの内容を索引
出力する。この出力を可変転置回路VTに入力し、ここ
で、ミニブロック単位の転置処理が行われる。
【0083】組替えられたミニブロック単位出力はサブ
ブロックとして一本化され、可変ビット・ローテート・
シフタROTに与えられ、この出力を出力セレクタSE
Loに入力して、再び入力セレクタSELi側へ帰還
し、鍵データの値にしたがって上記の操作をj回くり返
し、最終的に暗号関数出力を作り、図16に示したエク
スクルシブ・オア回路に与える。
【0084】ここで、入力セレクタSELi,出力セレ
クタSELo,可変換字テーブルVS,可変転置回路V
T,可変ビット・ローテート・シフタROTに対する鍵
の操作は、要求される安全性のレベルに応じて、最低レ
ベルではスワッピング処理単位に無関係に全て固定化す
る場合から、スワッピング処理単位毎に帰還回数,可変
換字テーブルVSの値,可変転置回路VTの転置の態
様,可変ビット・ローテート・シフタROTの初期シフ
ト量を変えていく場合まである。この際、帰還回数毎の
可変換字テーブルVS値,可変転置回路VTの転置の態
様,可変ビット・ローテート・シフタROTの初期値の
変更も含まれる。
【0085】図18および図19は本発明の暗号関数部
の1実施例を示す図である。同図において、EOR1な
いしEORmはエクスクルシブ・オア回路、M1ないし
Mmは単位換字テーブル、SF1ないしSFmは入力切
替スイッチ、SR1ないしSRmは出力先切替スイッチ
をそれぞれ示している。なお、図20と同一符号は同一
物を示す。
【0086】入力切替スイッチSF1ないしSFmは入
力セレクタSELiを構成しており、出力先切替スイッ
チSR1ないしSRmは出力セレクタSELoを構成し
ている。単位可変換字テーブルM1ないしMmとエクス
クルシブ・オア回路EOR1ないしEORmは、可変換
字テーブルVSを構成している。mは偶数であり、i−
1はm/2である。
【0087】暗号関数部fへの入力データはm個のミニ
ブロックに分割され、m個のミニブロックは上位グルー
プと下位グループに2分割される。上位グループに属す
るk番目(kは1,…,i−1)のミニブロックは、実
線の状態にある入力切替スイッチSFkを経由して単位
換字テーブルMkのアドレスに入力され、単位換字テー
ブルMkから入力ミニブロックの値に対応したデータが
読み出される。なお、単位換字テーブルは、平衡換字を
行うものであり、書換え可能なメモリ装置から構成され
ている。単位換字テーブルMkからの読出データは単位
換字テーブルMi+k−1からの読出データと排他的論
理和され、その結果は可変転置回路VTのk番目の入力
端子に印加される。
【0088】下位グループに属するi+k−1番目のミ
ニブロックは、実線の状態の入力切替スイッチSFi+
k−1を経由してエクスクルシブ・オア回路EORi+
k−1に入力され、単位換字テーブルMkからの読出デ
ータとエクスクルシブ・オアされる。エクスクルシブ・
オア回路EORi+k−1の出力は単位換字テーブルM
i+k−1のアドレスに入力され、単位換字テーブルM
i+k−1から入力ミニブロックの値に対応したデータ
が読み出される。単位換字テーブルMi+k−1からの
読出データは、可変転置回路VTのi+k−1番目の入
力端子に印加される。
【0089】可変転置回路VTは、各入力端子に入力さ
れたデータを鍵kの値によって定まる出力端子へ導く。
可変転置回路VTの各出力は、可変ビット・ローテート
・シフタROTの対応する入力端子に入力される。可変
ビット・ローテート・シフタROTは、1番目の入力端
子ないしm番目の入力端子に入力されたデータを一纏ま
りのデータとして、鍵kの値によって定まる量だけ所定
方向(例えば、右方向)に回転シフトする。
【0090】可変ビット・ローテート・シフタROTの
k番目の出力端子から出力されるデータは、点線の状態
にある出力先切替スイッチSRkおよび点線の状態にあ
る入力切替スイッチSFkを経由して、単位換字テーブ
ルMkのアドレス端子に入力される。可変ビット・ロー
テート・シフタROTのi+k−1番目の出力端子から
出力されるデータは、点線の状態にある出力先切替スイ
ッチSRi+k−1および点線の状態にある入力切替ス
イッチSFi+k−1を経由して、エクスクルシブ・オ
ア回路EORi+k−1に入力される。
【0091】単位換字テーブルM1ないしMmからのデ
ータの読出し→可変ビット・ローテート・シフタにより
回転シフトと言う一連の処理を、鍵kの値によって決ま
る回数jだけ行った後、出力先切替スイッチSR1,S
R2,…,SRmを実線の位置に切り替え、可変ビット
・ローテート・シフタROTからのデータを外部に出力
する。
【0092】単位換字テーブルM1ないしMmの内容の
書換えは、プロセッサによって行われる。可変転置回路
VTは入力端子を何れの出力端子に接続すべきかを示す
制御データを格納する制御レジスタを有しているが、こ
の制御レジスタの書換えもプロセッサによって行われ
る。ビット・ローテート・シフタROTは回転シフト量
を保持するシフト量保持レジスタを有しているが、この
シフト量保持レジスタの書換えもプロセッサによって行
われる。入力切替スイッチSF1ないしSFmの切替制
御、単位換字テーブルM1ないしMmに対する読出指
示、ビット・ローテート・シフタROTに対する回転シ
フト指示、出力先切替スイッチSR1ないしSRmの切
替制御なども、プロセッサによって行われる。
【0093】図20は組替え系列発生器の構成例を示す
図である。同図において、1は乱数発生器、2は制御回
路、3はメモリ、4は比較器をそれぞれ示している。制
御回路2は、乱数発生器1やメモリ2の制御を行う。ま
た、制御回路2は、比較器4の比較結果を参照すること
が出来る。乱数発生器1の出力は、メモリ3の書込デー
タ端子に送られると共に、比較器4の一方の入力端子に
送られる。メモリ3からの読出データは、比較器4の他
方の入力端子に送られる。
【0094】図20の組替え系列発生器の動作について
説明する。 i) 乱数発生器からの1番目のデータを無条件に採用
し、これをメモリに格納する。 ii) 乱数発生器からの2番目のデータとメモリの1番目
のデータを比較器で比較し、両者が異なれば2番目のデ
ータを採用し、これを1番目のデータと共にメモリに格
納する。もしも、両者が一致すれば、乱数発生器から次
の3番目のデータと取り出し、これとメモリの1番目の
データを比較器で比較する。この操作を、乱数発生器か
ら取り出したデータとメモリの1番目のデータが異なる
まで継続する。
【0095】iii)乱数発生器からの3番目のデータ(メ
モリに書き込まれた2番目のデータの次に生成されたデ
ータ)とメモリの1番目のデータ,2番目のデータとを
比較し、これらが異なれば3番目の値を採用し、メモリ
に格納する。もしも一致すれば、乱数発生器から次の4
番目の値を取り出し、メモリの1番目のデータ,2番目
のデータと比較する。この操作は、取り出した値とメモ
リの1番目のデータ,2番目のデータとが互いに異なる
まで継続する。
【0096】iv) 一般に、乱数発生器からのk番目のデ
ータ(メモリに書き込まれたk−1番目のデータの次に
生成されたデータ)はメモリのk−1番目,k−2番
目,…,1番目のデータと比較され、これらが異なれば
k番目のデータを採用し、メモリに格納する。もしも一
致すれば、乱数発生器から次にk+1番目のデータを取
り出し、取り出したデータをメモリのk−1番目,k−
2番目,…,1番目のデータと比較する。この操作は、
乱数発生器から取り出したデータと、メモリのk−1番
目,k−2番目,…,1番目のデータが互いに異なるま
で継続する。 v) 出来上がった順列乱数系列をブロック化し、換字表
Miへの書込み,転置回路のデコーダの入力に使用す
る。
【0097】図21は組替え系列を使った換字表(テー
ブル)の例を示す図である。乱数発生系列が例えばD,
3,6,F,A,3,A,1,6,2,8,…の場合
は、メモリに書き込まれる順列乱数処理系列はD,3,
6,F,A,1,2,8,…となる。3×3の換字テー
ブルに上記の順列乱数処理系列を書き込んでいくと、図
示のような換字表が作成される。
【0098】図22は組替え系列を使った転置回路の制
御例を示す図である。同図において、5はデコーダ、6
はm対mのセレクタ回路をそれぞれ示している。デコー
ダ5には、順列乱数処理系列D,3,6,F,A,1…
が入力される。図示の例では、セレクタ回路6の1番目
の入力端子がD番目の出力端子に接続され、2番目の入
力端子が3番目の出力端子に接続され、3番目の入力端
子が6番目の出力端子に接続される。入力データは、こ
のようにセレクタ回路6内で組み換えられ、外部出力さ
れる。
【0099】
【発明の効果】この発明によれば、暗号化の鍵として通
し番号を入力し、その通し番号に対応する変換パターン
が生成されるように変換パターン生成機構を構成してい
るので、変換パターンが予め設定された固定的なもので
なく鍵に依存させて変更することができ、差分攻撃に強
い暗号関数機構を提供することができる。
【0100】また、ある固定鍵を1つ種として乱数生成
器に与え、乱数系列を生成することによって、複数個か
らなる各段の暗号化関数の換字表又は転置パターンをす
べて決定することができるので、複数個の換字表や転置
パターンを決めるために鍵のbit長さを長くする必要
がなくなり、さらに鍵を記憶する領域を少なくすること
ができる。
【0101】さらに、本発明によれば、入力データをミ
ニブロックに分割し、入力ミニブロックの相互組替え操
作およびランダム換字テーブル操作等を行い得るように
暗号関数を構成したので、攪乱効果の高い暗号関数を実
現することが出来ると共に、差分攻撃を行っても事実上
解読不可能な暗号装置を提供することが出来る。
【図面の簡単な説明】
【図1】この発明の基本構成ブロック図である。
【図2】この発明の基本構成ブロック図である。
【図3】この発明の基本構成ブロック図である。
【図4】インボリューション型暗号方式の暗号化の構造
ブロック図である。
【図5】第1実施例の暗号化関数の構成図である。
【図6】転置パターンの一例の説明図である。
【図7】第2実施例の暗号化関数の構成図である。
【図8】換字表の一例の説明図である。
【図9】第4実施例における表決定の構成ブロック図で
ある。
【図10】4bitの換字表を生成するフローチャート
である。
【図11】第5実施例におけるの暗号化関数の例の説明
図である。
【図12】従来におけるDESの暗号化方式の説明図で
ある。
【図13】従来のDESの暗号化関数内の処理の模式図
である。
【図14】換字テーブル(S1)の一例を示した説明図
である。
【図15】この発明の暗号関数機構の原理説明図であ
る。
【図16】暗号装置の基本構成を示す図である。
【図17】この発明の暗号関数fのブロック構成を示す
図である。
【図18】この発明の暗号関数部の1実施例を示す図で
ある。
【図19】この発明の暗号関数部の1実施例(続き)を
示す図である。
【図20】組替え系列発生器の構成例を示す図である。
【図21】組替え系列を使った換字表の例を示す図であ
る。
【図22】組替え系列を使った転置回路の制御例を示す
図である。
【符号の説明】
EOR1ないしEORm エクスクルシブ・オア回路 M1ないしMm 単位換字テーブル ROT ビット・ローテート・シフ
タ SF1ないしSFm 入力切替スイッチ SR1ないしSRm 出力先切替スイッチ VT 可変転置回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 内海 研一 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 昭61−261773(JP,A) 特開 昭62−239636(JP,A) 特開 昭62−169540(JP,A) 特開 平6−75524(JP,A) (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 H04L 9/00

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数ビットからなるデータと暗号化のた
    めの鍵を入力する入力部と、入力されたデータを変換す
    るための変換パターンを生成する変換パターン生成部
    と、入力されたデータを前記変換パターンに従って変換
    するデータ変換部とからなり、 前記鍵が前記変換パターンに対応する通し番号であり、
    前記変換パターンが、入力データのビット配列をビット
    ごとに転置する転置パターン、あるいは入力データの値
    を所定の値に変換する換字表であり、 前記データ変換部が、m個(mは偶数)の入力切替スイ
    ッチ(SF1…SFm)と、m個の出力先切替スイッチ
    (SR1…SRm)と、m個のメモリ・テーブル(M1
    …Mm)と、m個のエクスクルシブ・オア回路(EOR
    1…EORm)と、m個の入力端子とm個の出力端子と
    を持つ転置回路(VT)と、m個の入力端子とm個の出
    力端子とを持つビット回転シフト機構(ROT)とを備
    え、 j番目(jは1,…,m)の入力切替スイッチ(SF
    j)は、一方の状態にある場合には、入力データをm分
    割して得られるm個のミニブロックのうちのj番目のミ
    ニブロックを出力し、他方の状態にある場合には、j番
    目の出力先切替スイッチ(SRj)から送られてくるミ
    ニブロックを出力し、 j番目の出力先切替スイッチ(SRj)は、一方の状態
    にある場合には、ビット回転シフト機構(ROT)のj
    番目のミニブロックを外部に送出し、他方の状態にある
    場合には、ビット回転シフト機構(ROT)のj番目の
    ミニブロックをj番目の入力切替スイッチ(SFj)に
    送り、 k番目(kは1,…,m/2)のメモリ・テーブル(M
    k)のアドレスにはk番目の入力切替スイッチ(SF
    k)の出力が入力され、 k番目のエクスクルシブ・オア回路には、k番目のメモ
    リ・テーブル(Mk)の出力とm/2+k番目のメモリ
    ・テーブル(M m/2+k )の出力とが入力され、m/2+
    k番目のメモリ・テーブル(M m/2+k )のアドレスには
    m/2+k番目のエクスクルシブ・オア回路(EOR
    m/2+k )の出力が入力され、 m/2+k番目のエクスクルシブ・オア回路(EOR
    m/2+k )には、m/2+k番目の入力切替スイッチ(S
    m/2+k )の出力とk番目のメモリ・テーブル( Mk)
    の出力が入力され、 転置回路(VT)のk番目の入力端子にはk番目のエク
    スクルシブ・オア回路(EORk)の出力が入力され、 転置回路(VT)のm/2+k番目の入力端子にはm/
    2+k番目のメモリ・テーブル(M m/2+k )の出力が印
    加され、 転置回路(VT)のj番目の出力はビット回転シフト機
    構(ROT)のj番目の入力端子に入力され、 ビット回転シフト機構(ROT)は、1番目,…,m番
    目の入力端子に入力されたデータを一纏まりとして回転
    シフトする ことを特徴とするデータ変換装置。
  2. 【請求項2】 m個のメモリ・テーブル(M1…Mm)
    の内容が、前記入力される鍵に応じて変更されることを
    特徴とする請求項1のデータ変換装置。
  3. 【請求項3】 転置回路(VT)の転置の態様が、前記
    入力される鍵に応じて変更されることを特徴とする請求
    項1または請求項2のデータ変換装置。
  4. 【請求項4】 ビット回転シフト機構(ROT)のシフ
    ト量が、前記入力される鍵に応じて変更されることを特
    徴とする請求項1、2または3のデータ変換装置。
  5. 【請求項5】 m個の出力先切替スイッチ(SR1…S
    Rm)からのm個の入力切替スイッチ(SF1…SF
    m)にデータを帰還する回数が、前記入力される鍵に応
    じて変更されることを特徴とする請求項1,2,3また
    は4のデータ変換装置。
  6. 【請求項6】 前記入力された鍵を種として、複数個の
    乱数からなる擬似乱数系列を発生する乱数生成部と、前
    記擬似乱数系列によって前記転置パターンを生成する転
    置パターン生成部を、さらに備えることを特徴とする請
    求項1記載のデータ変換装置。
  7. 【請求項7】 前記擬似乱数系列によって前記換字表を
    生成する換字表生成部を、さらに備えることを特徴とす
    る請求項6記載のデータ変換装置。
  8. 【請求項8】 前記入力された鍵を種として、複数個の
    乱数からなる擬似乱数系列を発生する乱数生成部と、前
    記擬似乱数系列によって前記換字表を生成する換字表生
    成部を、さらに備えることを特徴とする請求項1記載の
    データ変換装 置。
JP6318221A 1994-01-10 1994-12-21 データ変換装置 Expired - Fee Related JP3029381B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP6318221A JP3029381B2 (ja) 1994-01-10 1994-12-21 データ変換装置
GB9500437A GB2285562B (en) 1994-01-10 1995-01-10 Transformation pattern generating device and encryption function device
US08/370,881 US5623548A (en) 1994-01-10 1995-01-10 Transformation pattern generating device and encryption function device

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP99794 1994-01-10
JP6-314879 1994-12-19
JP31487994 1994-12-19
JP6-997 1994-12-19
JP6318221A JP3029381B2 (ja) 1994-01-10 1994-12-21 データ変換装置

Publications (2)

Publication Number Publication Date
JPH08227269A JPH08227269A (ja) 1996-09-03
JP3029381B2 true JP3029381B2 (ja) 2000-04-04

Family

ID=27274712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6318221A Expired - Fee Related JP3029381B2 (ja) 1994-01-10 1994-12-21 データ変換装置

Country Status (3)

Country Link
US (1) US5623548A (ja)
JP (1) JP3029381B2 (ja)
GB (1) GB2285562B (ja)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100250803B1 (ko) * 1995-09-05 2000-04-01 다니구찌 이찌로오 데이타 변환장치 및 데이타 변환방법
US5838794A (en) * 1996-01-11 1998-11-17 Teledyne Electronic Technologies Method and apparatus for inter-round mixing in iterated block substitution systems
KR100389902B1 (ko) * 1997-06-23 2003-09-22 삼성전자주식회사 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법
KR100434558B1 (ko) * 1997-12-09 2004-09-30 삼성전자주식회사 고속블록암호화방법및이를위한키스케쥴링방법
AU2557399A (en) * 1998-01-02 1999-07-26 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
US7587044B2 (en) * 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
FR2776445A1 (fr) * 1998-03-17 1999-09-24 Schlumberger Ind Sa Procede de securisation de donnees mettant en oeuvre un algorithme cryptographique
CA2299538C (en) * 1998-06-02 2004-08-03 Nippon Telegraph And Telephone Corporation Apparatus and method for evaluating randomness of functions, random function generating apparatus and method, and recording medium having recorded thereon programs for implementing the methods.
EP1090480B1 (en) 1998-06-03 2019-01-09 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
AU5458199A (en) * 1998-07-02 2000-01-24 Cryptography Research, Inc. Leak-resistant cryptographic indexed key update
US6292762B1 (en) * 1998-07-13 2001-09-18 Compaq Computer Corporation Method for determining a random permutation of variables by applying a test function
DE19837808A1 (de) * 1998-08-20 2000-02-24 Orga Kartensysteme Gmbh Verfahren zur Ausführung eines Verschlüsselungsprogramms zur Verschlüsselung von Daten in einem mikroprozessorgestützten, tragbaren Datenträger
AU738210B2 (en) * 1998-09-01 2001-09-13 Peter William Ross Encryption via user-editable multi-page file
US6820198B1 (en) 1998-09-01 2004-11-16 Peter William Ross Encryption via user-editable multi-page file
AUPP559898A0 (en) * 1998-09-01 1998-09-24 Ross, Peter William Large user-editable data file enabling both a character rotation which is variable and custom encryption/decryption programs
DE19841676A1 (de) * 1998-09-11 2000-03-16 Giesecke & Devrient Gmbh Zugriffsgeschützter Datenträger
JP3679936B2 (ja) * 1998-11-27 2005-08-03 東芝ソリューション株式会社 暗復号装置及び記憶媒体
AU2001286383A1 (en) 2000-05-05 2001-11-26 Ruby B. Lee A method and system for performing permutations with bit permutation instructions
US7277542B2 (en) * 2000-09-25 2007-10-02 Broadcom Corporation Stream cipher encryption application accelerator and methods thereof
US20020087359A1 (en) * 2000-11-24 2002-07-04 Siegfried Bocionek Medical system architecture with computer workstations having a device for work list management
EP1376922B1 (en) * 2001-04-03 2014-09-03 Mitsubishi Denki Kabushiki Kaisha Encrypting device
US7536546B2 (en) * 2001-08-28 2009-05-19 Acme Packet, Inc. System and method for providing encryption for rerouting of real time multi-media flows
JP3730926B2 (ja) * 2002-03-14 2006-01-05 京セラ株式会社 ヘリカル型アンテナの設計方法
JP4173768B2 (ja) 2002-05-21 2008-10-29 松下電器産業株式会社 回路装置およびその動作方法
EP1576763B1 (en) * 2002-12-19 2015-09-30 NTT Communications Corp. Secret sharing scheme using exclusive or calculation
US7346160B2 (en) * 2003-04-23 2008-03-18 Michaelsen David L Randomization-based encryption apparatus and method
US8352726B2 (en) * 2003-11-07 2013-01-08 Netapp, Inc. Data storage and/or retrieval
US20050147244A1 (en) * 2003-12-30 2005-07-07 Alexander Moldovyan Method for cryptographic transformation of binary data blocks
EP1714423B1 (en) * 2004-02-10 2017-03-29 NTT Communications Corp. Secret information management scheme based on secret sharing scheme
US7899190B2 (en) 2004-04-16 2011-03-01 Research In Motion Limited Security countermeasures for power analysis attacks
US8520851B2 (en) * 2004-04-30 2013-08-27 Blackberry Limited Wireless communication device with securely added randomness and related method
JP2005338942A (ja) * 2004-05-24 2005-12-08 Freescale Semiconductor Inc レジスタユニット
US7848514B2 (en) * 2004-05-24 2010-12-07 Research In Motion Limited Table masking for resistance to power analysis attacks
US20090249085A1 (en) * 2004-06-29 2009-10-01 Nagracard S.A. Security module and personalization method for such a security module
EP1612637A1 (fr) * 2004-06-29 2006-01-04 Nagracard S.A. Module de sécurité et méthode de personnalisation d'un tel module de sécurité
US20090228714A1 (en) * 2004-11-18 2009-09-10 Biogy, Inc. Secure mobile device with online vault
US8209751B2 (en) * 2004-11-18 2012-06-26 Biogy, Inc. Receiving an access key
DE602005023166D1 (de) * 2005-09-09 2010-10-07 Sap Ag System und Verfahren zur Verschlüsselung von Tastenanschlägen bezüglich eines Passworts
JP5000365B2 (ja) * 2006-04-27 2012-08-15 株式会社日立製作所 ハッシュ値生成装置、プログラム及びハッシュ値生成方法
JP2007298847A (ja) * 2006-05-02 2007-11-15 Kddi Corp プログラム内データの保護装置、保護方法およびプログラム
JP5203594B2 (ja) * 2006-11-07 2013-06-05 株式会社東芝 暗号処理回路及び暗号処理方法
JP4851947B2 (ja) * 2007-01-29 2012-01-11 株式会社東芝 論理回路
KR20080100673A (ko) * 2007-05-14 2008-11-19 삼성전자주식회사 암호화 기반의 프로세서 보안 방법 및 장치
US20090067629A1 (en) * 2007-09-06 2009-03-12 Paltronics, Inc. Table-based encryption/decryption techniques for gaming networks, and gaming networks incorporating the same
CA2688592C (en) * 2007-10-01 2014-04-15 Research In Motion Limited Substitution table masking for cryptographic processes
JP4687775B2 (ja) * 2008-11-20 2011-05-25 ソニー株式会社 暗号処理装置
US20100303229A1 (en) * 2009-05-27 2010-12-02 Unruh Gregory Modified counter mode encryption
WO2011101994A1 (ja) * 2010-02-22 2011-08-25 株式会社東芝 暗号化装置
US9152779B2 (en) 2011-01-16 2015-10-06 Michael Stephen Fiske Protecting codes, keys and user credentials with identity and patterns
US10268843B2 (en) 2011-12-06 2019-04-23 AEMEA Inc. Non-deterministic secure active element machine
WO2013134306A1 (en) 2012-03-05 2013-09-12 Michael Fiske One-time passcodes with asymmetric keys
CN103427987B (zh) * 2012-05-25 2016-05-18 纬创资通股份有限公司 数据加密的方法、数据验证方法及电子装置
US9237006B2 (en) * 2013-09-30 2016-01-12 Protegrity Corporation Table-connected tokenization
KR101525895B1 (ko) * 2013-12-16 2015-06-04 숭실대학교산학협력단 일련 번호 산출기 및 그 방법
US20170085371A1 (en) * 2015-04-07 2017-03-23 Secure Channels Sa System and method for an enhanced xor cipher through extensions
KR101914453B1 (ko) * 2015-10-29 2018-11-02 삼성에스디에스 주식회사 암호화 장치 및 방법
KR101834504B1 (ko) * 2016-01-15 2018-03-06 단국대학교 산학협력단 암복호화 장치 및 방법
KR101834522B1 (ko) 2016-04-22 2018-03-06 단국대학교 산학협력단 데이터 확인 장치 및 이를 이용하여 데이터를 확인하는 방법
KR101933649B1 (ko) * 2016-05-27 2018-12-28 삼성에스디에스 주식회사 화이트박스 암호 알고리즘을 이용한 공개키 암호화를 위한 장치 및 방법
US11190498B1 (en) 2018-01-11 2021-11-30 Secure Channels, Inc. System and method for use of filters within a cryptographic process
US20200366459A1 (en) * 2019-05-17 2020-11-19 International Business Machines Corporation Searching Over Encrypted Model and Encrypted Data Using Secure Single-and Multi-Party Learning Based on Encrypted Data
US11804955B1 (en) 2019-09-13 2023-10-31 Chol, Inc. Method and system for modulated waveform encryption
KR20210048698A (ko) * 2019-10-24 2021-05-04 삼성에스디에스 주식회사 암복호화를 위한 장치 및 방법
JP7103334B2 (ja) * 2019-12-09 2022-07-20 株式会社村田製作所 平文暗号化復号化方法および平文暗号化復号化装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4274085A (en) * 1979-06-28 1981-06-16 Motorola, Inc. Flexible mode DES system
DE3003998A1 (de) * 1980-02-04 1981-09-24 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt System zur ver- und entschluesselung von daten
US4447672A (en) * 1980-10-06 1984-05-08 Nippon Electric Co., Ltd. Device for encrypting each input data bit by at least one keying bit decided by a code pattern and a bit pattern of a predetermined number of preceding encrypted bits
US4663500A (en) * 1982-02-22 1987-05-05 Nec Corporation Cryptographic system
US4802217A (en) * 1985-06-07 1989-01-31 Siemens Corporate Research & Support, Inc. Method and apparatus for securing access to a computer facility
US4760599A (en) * 1985-11-07 1988-07-26 Nec Corporation Data encryptor
US4731843A (en) * 1985-12-30 1988-03-15 Paradyne Corporation Method and device of increasing the execution speed of cipher feedback mode of the DES by an arbitrary multiplier
DE3789769T2 (de) * 1986-07-31 1994-08-11 Advance Kk System zur erzeugung eines gemeinsamen geheimübertragungsschlüssels und kommunikationssystem unter verwendung des gemeinsamen geheimübertragungsschlüssels.
JPH0727325B2 (ja) * 1987-02-13 1995-03-29 沖電気工業株式会社 暗号化装置
FR2611962B1 (fr) * 1987-03-06 1989-06-09 Trt Telecom Radio Electr Systeme et procede pour cryptographie avec application
GB8807020D0 (en) * 1988-03-24 1988-08-24 Racal Guardata Ltd Data-processing apparatus
FR2643529B1 (fr) * 1989-02-22 1991-06-07 Kudelski Sa Fabr Enregistr Nag Systeme de television a peage utilisant une carte a memoire associee a un decodeur
FR2650457A1 (fr) * 1989-07-25 1991-02-01 Trt Telecom Radio Electr Procede de traitement de donnees par compression et permutation pour carte a microcircuit
US5003597A (en) * 1989-12-21 1991-03-26 Xerox Corporation Method and apparatus for data encryption
NZ238651A (en) * 1990-07-20 1994-04-27 Ericsson Ge Mobile Communicat Encryption system for digital cellular communications
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption

Also Published As

Publication number Publication date
GB9500437D0 (en) 1995-03-01
US5623548A (en) 1997-04-22
JPH08227269A (ja) 1996-09-03
GB2285562B (en) 1998-02-18
GB2285562A (en) 1995-07-12

Similar Documents

Publication Publication Date Title
JP3029381B2 (ja) データ変換装置
US5003596A (en) Method of cryptographically transforming electronic digital data from one form to another
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US5351299A (en) Apparatus and method for data encryption with block selection keys and data encryption keys
US5425103A (en) Variable-key cryptography system
KR100389902B1 (ko) 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법
US7801307B2 (en) Method of symmetric key data encryption
KR100435052B1 (ko) 암호화장치
US6125182A (en) Cryptographic engine using logic and base conversions
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
KR20090094086A (ko) 암호 처리 장치, 암호 처리 방법과 컴퓨터 프로그램
JPH08179690A (ja) プロダクト暗号装置
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
KR20010041202A (ko) 이산 데이터 블록 암호화 방법
JPH0697930A (ja) ブロック暗号処理装置
EP1202488B1 (en) Encryption sub-key generation circuit
KR100350207B1 (ko) 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법
Islam et al. Data encryption standard
JPH09251267A (ja) 暗号化装置及び暗号化方法
JPH1152850A (ja) 暗号変換方法および装置
JP2001142395A (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
JPH10153954A (ja) 暗号装置
JP3906574B2 (ja) 暗号変換方法、暗号変換装置、復号方法、復号装置及びデータ通信システム
EP1179243A1 (en) Cryptographic engine using base conversion, logic operations and prng in data arrays to increase dispersion in ciphertext
JP2001042766A (ja) データ暗号化装置及びその方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000118

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

Free format text: PAYMENT UNTIL: 20080204

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090204

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090204

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100204

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110204

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110204

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120204

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees