JP3464797B2 - 非線形動的置換装置及びブロック置換の方法 - Google Patents

非線形動的置換装置及びブロック置換の方法

Info

Publication number
JP3464797B2
JP3464797B2 JP50381493A JP50381493A JP3464797B2 JP 3464797 B2 JP3464797 B2 JP 3464797B2 JP 50381493 A JP50381493 A JP 50381493A JP 50381493 A JP50381493 A JP 50381493A JP 3464797 B2 JP3464797 B2 JP 3464797B2
Authority
JP
Japan
Prior art keywords
equations
modulo
different
bit
sum
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
JP50381493A
Other languages
English (en)
Other versions
JPH07501187A (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.)
LITTONSYSTEMS, INC.
Original Assignee
LITTONSYSTEMS, INC.
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 LITTONSYSTEMS, INC. filed Critical LITTONSYSTEMS, INC.
Publication of JPH07501187A publication Critical patent/JPH07501187A/ja
Application granted granted Critical
Publication of JP3464797B2 publication Critical patent/JP3464797B2/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
    • 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
    • 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

Description

【発明の詳細な説明】 関連出願 この出願は1989年10月4日出願の出願番号第07/416,9
53号の一部継続出願である。
発明の背景 1.発明の分野 本発明は暗号化装置及び暗号化方法の分野に関し、特
に、ブロック置換暗号化方法及びその装置に関する。
2.従来の技術 多くの場合、デジタル形態の情報を1つの場所から別
の場所へ受信者には明確で、あいまいではないが、その
間に介入して来た者には理解できないような方式で通信
することが望まれる。従って、多くの場合に、何らかの
所定の暗号化プロセスにより通信されるべき情報を暗号
化し、暗号化形態の情報を伝送し、次に受信場所で情報
を解読するのが一般的である。どのようなレベルの暗号
化であっても、送信は偶然に介入して来た者にとって意
味のないものとなるので、希望する機密保護の程度に応
じて、相対的に単純で、容易に解ける暗号を使用して良
い。別の状況においては、希望する機密保護の程度によ
って、暗号解読により解読するのがより困難であるか、
又は言うまでもなくできれば最高レベルの機密保護をも
って、ほぼ解読が不可能になるような暗号化技法を使用
することが指示されることもあるだろう。そのような暗
号化技法の適用用途としては、製造工場間、銀行の支店
間などの機密を含む通信のような商業分野での用途や、
IFF(敵味方識別)のみに限定されないが、IFFを含む軍
事への適用がある。場合によっては、暗号化の主たる目
的は通信中の情報を介入者が解読するのを阻止すること
であるが、別の場合には、IFFのように、介入者自身が
同じ暗号化方式によって偽情報を発信して、所期の受信
者を欺くのを防止することを主たる目的とすることもあ
る。多くの用途で、双方の目的が存在している場合が多
い。
ブロック置換は、2進数のシーケンスの形態をとるク
リアテキストメッセージを暗号化するために使用される
方法である。その方法に従えば、シーケンスは何らかの
所定のブロック長nを有する複数のブロックに分割さ
れ、ブロック置換装置はクリアテキスト中の各々のブロ
ックを2進数から成る一意の新ブロックと置き換える。
置換ブロックは暗号化メッセージ又は暗号文を構成し、
各々の置換ブロックはクリアテキストブロックのあいま
いさのない1対1変換を表わしている。従来の技術で
は、そのような置換は一般にルックアップテーブル、ス
イッチング構成又はフィードバックシフトレジスタによ
って起こる。ところが、実際に設置しうるスイッチング
構成の数はごく限られており、また、シフトレジスタを
繰り返し循環されるのには長い時間を要する。パターン
又はバイアスをそれ自体の中に含んでいない置換を発見
するときに、付加的な問題が発生する。現時点では、可
能なシステマティックパターンのコンピュータシミュレ
ーションにより、競合する置換を検査するが、場合によ
っては、それを補正するために追加の回路を使用する。
従来の技術では、様々な種類の暗号化機器や暗号化方
法が良く知られている。たとえば、米国特許第3,796,83
0号、第3,798,359号、第4,078,152号、第4,195,200号、
第4,255,811号、第4,316,055号及び第4,520,232号を参
照。一般に、ブロック置換に関する限り、それらのシス
テムはキー依存暗号化・解読システムであり、本発明に
おけるように、1つの並び換え済み数字の加法的集合を
別の並換え数字の加法的集合にモジュロ2加算によるブ
ロック置換に基づくものではない。
親出願においては、ブロック置換技法によるモジュロ
2加算に基づく暗号化の方法及び装置が開示されてお
り、それによれば、相対的に単純なハードウェアによっ
て置き換え方式を使用することができる。nビット2進
数のそれ自体への1対1マッピングであるブロック置換
は、nビット2進数のいくつかの順列が1つの並べ換え
済み数字の集合から別の数字の集合へのモジュロ2加算
によるブロック置換を定義すること、並びにそれらの1
部分集合はベクトルとして見たときに加法関係を有する
方程式を定義することに基づいており、それにより、集
合の残る部分を限定された方程式の部分集合から生成で
きるであろう。これは、頻繁な変換の単純変更を可能に
する。変換及びそれを使用する方法の様々な特性が開示
されている。ところが、方程式集合の残る部分を限定さ
れた方程式の部分集合から生成し得ることによって、暗
号解読がいくつかの用途で希望されるより容易になって
しまうであろう。
従って、本発明は、方程式を(整然とした、容易に可
変であるやり方により)非線形化して、方程式集合の残
りの部分を、限定された方程式の部分集合から生成し得
ないようにする装置を提供する。
発明の簡単な説明 本発明は、相対的に単純なハードウェアによってブロ
ック置換方式の使用が可能であり、暗号解読をさらに困
難にするように、ブロック置換方式のモジュロ2加算に
基づく暗号化の非線形化を行う装置を提供することにあ
る。nビット2進数のそれ自体への1対1マッピングで
ある基本ブロック置換は、nビット2進数のいくつかの
順列が1つの並び換え済み数字の集合から別の数字の集
合へのモジュロ2加算によるブロック置換を定義するこ
とと、それらの一部分集合はベクトルとして見たときに
加法関係を有する方程式を定義することとに基づいてい
る。これは、頻繁な変換の単純変更を可能にする。そこ
で、方程式は同様に順序正しく、容易に可変な方式で非
線形化されるので、方程式集合の残り部分を限定された
方程式の部分集合からもはや生成しえなくなる。変換及
びそれを使用する方法の様々な特性を開示する。
図面の簡単な説明 図1は、1つの3ビット2進数の集合から別の2進数
の集合へのモジュロ2加算による多数対1変換を示す。
図2は、1つの3ビット2進数の集合から別の2進数
の集合へのモジュロ2加算による1対1変換を示す。
図3は、第1の方程式を除いて再順序付けされてお
り、第1の列の3桁数を先行する行の第2の列にある3
桁数と同じにする図2の変換方程式を提示する。第1の
方程式を除くと、この場合、各々の列は同じ順序である
が、異なる開始位置を有する。
図4は、図3に対応しているが、第1及び第3の列は
第2の列に関して縦にシフトしている。それらのシフト
は、それぞれ、下方へ位置6つ分と、2つ分である。第
1の方程式を除いて、各々の列は同じ順序のままである
が、その開始位置は異なっている。
図5は、図4に対応しており、暗号化を目的として
と=の記号が入れ替わっている。
図6は、データを暗号化する装置のブロック線図であ
る。
図7は、図6の装置により暗号化されたデータを解読
する装置のブロック線図である。
図8は、図6を使用する暗号化の1例である。
図9は、図7を使用する解読の1例である。
図10は、列1及び列2に固定語001が加算されてい
る、図4の変換方程式に対応する変換方程式の集合を提
示する。第1の方程式を除いて、列1及び列2は同じ順
序であるが、開始位置は異なっている。
図11は、図10の変換方程式のような変換方程式の集合
に従ってデータを暗号化する装置のブロック線図であ
る。
図12は、図11の装置によって暗号化されたデータを解
読する装置のブロック線図である。
図13は、図11を使用する暗号化の1例である。
図14は、図12を使用する解読の1例である。
図15は、図2の方程式の一般形態Xn-1Xn=Znへの再
配列を示す。
図16は、本発明に従った暗号化及び解読のためのシス
テムのブロック線図である。
図17は、付録2のA12ページに提示されている方程式
の集合の第1の列及び第2の列にオフセット0101を加算
することにより取り出される暗号化及び解読に有用な方
程式の集合を示す。
発明の詳細な説明 本発明は親出願の中で詳細に説明されているブロック
置換によってモジュロ2加算に基づく暗号化を非線形化
する方法及び装置を含むものであるので、本発明の改良
の基礎を示すために、ここで、親出願の開示を今一度挙
げておく。親出願の中に記載されている通り、以下に続
く説明の中では、まず、nの値が3である場合のnビッ
ト2進数のブロックに関して親出願の方法及び装置を説
明する。次に、その方法と装置を一般的にnビットブロ
ックに拡張させ、n=8までのブロックのいくつかの特
性を提示する。n=3とした以下の例を提示することに
より、さらに多くの組合わせを有するより大形のブロッ
クを使用する場合と比べて元の発明の概念をより良く理
解できるであろうと考えられる。
ブロック置換は、nビット2進数のそれ自体への1対
1マッピングに通常適用される用語である。このマッピ
ングを2n個のnビット数のペアリングとして書き表わす
ことができる: この中で、各々の列は同じ2n個の別個のnビット数の集
合ではあるが、異なる順序で書き表わされている。従っ
て、このマッピングを: と書き表わされるnビット数の順列、すなわち、何らか
の索引の集合に対して(X1XiXj)であると考えることが
できる。この順列の通常の表記法は、単に、X1→Xi,Xi
−→Xj等々を意味している。
列表記法に戻ると、元の集合とそのイメージから1組
の単純な方程式を定義することができるであろう: この中で、はモジュロ2加算(すなわち、桁上げのな
い対応する数字の加算)を意味する。一般に、集合
(Y1,Y2,...)は全て別個であるとは限らないが、状況
によっては全てが別個である。元の発明に従えば、集合
が別個であるとき、従来の手段ではなく、モジュロ2加
算によってブロック置換を生成できる。主要なタスク
は、この方式が機能する状況があればその状況と、置換
をどのようにして急速に変更できるかということと、バ
イアスの欠如とを確定することである。
ブロック置換をモジュロ2加算により生成できること
は自明ではない。たとえば、3ビット2進数の1つの配
列を図1に示すモジュロ2加算によって別の配列と置換
える試みについて考える。右側の列3では、011と100は
それぞれ2回現れるが、001と110は全く現れない。中心
の列2の数に作用する左側の列1の数は、列1の3ビッ
ト2進語の集合のそれ自体への変換を生じさせる。これ
は多数対1の変換であり、変換されたブロック011及び1
00について元のブロックを回復しようとしたときに結果
として生じるあいまいさがあるために、ブロック置換に
対しては役に立たない。
図2に示すように別の配列を試行すれば、異なる結果
が得られる。この場合、どの対の列も1対1の変換を構
成している。詳細にいえば、変換は列3の3ビット2進
数(クリアテキスト)からそれ自体、列1の暗号化テキ
ストへの1対1の変換である。各々の列は、厳密に一度
現れる3ビット数から全て構成されている。
任意の3桁2進ブロックを暗号化2進ブロックに変換
するために図2の変換を使用できることは自明であろう
し、また、言うまでもなく、同じ方程式を使用して、列
1の暗号化語を発見し、次に、同じ行、図2の列3の対
応するクリアテキスト語を選択することにより、暗号化
メッセージを解読することができるであろう。これは、
図5に示すようにと=が入れ替わった場合に最も好都
合である。暗号化語を元のクリアテキスト語に変換する
ための等価の変換は、列1の語を列2の語に加算して列
3の語を求めれば得られる。
再び図2を参照すると、ここに示す変換、この点につ
いては、ここで関心ある種類のあらゆる変換の興味ある
特性が見られるであろう。詳細にいえば、3つの2進数
から成る8つのブロックのうち、下位の4つのブロック
000,001,010及び011は下位の4つのうちの2つのブロッ
ク、すなわち、000及び001と、上位の4つのうちの2つ
のブロック、すなわち、110及び111とにマッピングされ
る。同様に、8つのうち大きいほうの4つのブロックが
下位の4つの中のブロックと、上位の4つの中のブロッ
クとに2つずつマッピングされるのは当然である。同様
に、偶数ブロック000,010,100及び110は2つの偶数ブロ
ック000及び010と、2つの奇数ブロック001及び011とに
マッピングされている。4つの奇数ブロックについて
は、半分が奇数ブロックに、残る半分は偶数ブロックに
マッピングされている。解読時にも同じことが当てはま
るのは自明である。従って、大形である、小形である、
偶数である、奇数であるなどの暗号化ブロックの何らか
の特性を知っても、非暗号化ブロックの特性を同じよう
に知ることにはつながらない。このため、暗号化はバイ
アスなしであるという。その点について、各ブロックの
真ん中の数字を考慮しただけでも、真ん中の数字として
零を有する図2の4つのブロックは同様に真ん中の数字
として零を有するブロックに2つ、真ん中の数字として
1を有する2つのブロックに2つ、それぞれマッピング
されていることに注意すべきである。同様に、真ん中の
数字として1を有する4つのブロックのうち2つが真ん
中の数字として1を有するブロックに、残る2つは真ん
中の数字として零を有するブロックにマッピングされて
いることは言うまでもない。この特性はあらゆるブロッ
クサイズに適用され、代数学的には最大サブグループと
して特徴づけて良いあらゆるブロックの集合に均等に分
割することに延長される。この暗号化のバイアスなし特
性は、特に暗号化が時間の経過に伴って頻繁に変化する
ような状況に関連して、ここで開示する暗号化方式の非
常に有益な特性である。
詳細にいえば、当然のことながら、実際のどの暗号化
装置においても、パターンがそのパターンの暗号解読を
可能にするのに十分な長さの時間維持されないほど頻繁
に暗号化方式を変更できることが望まれる場合もあるだ
ろう。この目的のために、図2の行を図3に示すように
再配列することにより、図2の方程式のいくつかの特性
を認識できるであろう。行をどのように再配列しても、
各々の方程式はそれ独自の完全性を別個に、表の中の位
置とは関係なく維持するので、変換に対する影響が全く
ないことはもちろんである。本質的には、図3の第2の
行は図2の第4の行であり、また、図3の第3の行は図
2の第5の行であって、連続する各々の行は、連続する
各々の行の左側の列が先行する行の第2の列と同じ3ビ
ット数を含むように配列されている。そのように配列す
ると、第1の行、すなわち、全て同一である行を無視し
た場合、3つの列は、それぞれ、ラップアラウンドを伴
って3ビット2進数の同じシーケンスを含んでいること
がわかる。詳細にいえば、第1の列は第2の列と同じシ
ーケンスを有するが、第2の列と比べて下方へ位置1つ
(上方へは位置6つ)ずれており、また、第3の列は第
2の列と同じシーケンスを有するが、第2の列のシーケ
ンスと比べて下方へ位置3つ(上方へは位置4つ)ずれ
ている。
図3の第1の行、すなわち、全て同一である行を今一
度無視すると、列1の3ビット2進数を第2の列に関し
てラップアラウンドを伴って合わせて位置6つ分下方へ
シフトした場合でも、図4に示すように、依然として1
対1の変換が起こることがわかる。同一の行を除いて、
変換は図3の変換とは全く異なる。1例を挙げると、列
3の111は図3では列1の011にマッピングされ、図4で
は列1の100にマッピングされている。ところが、それ
に加えて、図4の列1及び列3の3桁の数のシーケンス
(同一の行を除く)は図3及び図4の列2におけるシー
ケンスと依然として同じであるが、それぞれ、列2と比
較してラップアラウンドを伴ってシフトされているとい
う点に注意することは重要である。すなわち、単に、図
3の第1の列の数を第2の列の数に関してシフトするこ
とにより、図3の変換は図4の新たな変換に変化してお
り、第3の列の数も第2の列の数に関してシフトしてい
るのであるが、その量はモジュロ2加算方程式の完全性
を維持するために異なっている。ここでも、解読時に
は、図4の記号及び=を図5に示すように入れ替える
ことができる。
どのブロックサイズに対してもより普遍的にいえば、
方程式の集合を次のように書き表わすことができる。
ブロックサイズnに対して、m=2n−1である。θ=
00...00、全て零から構成されるnビット語である。
列1を列2に関して位置S個だけずらすと、モジュロ
2加算方程式の完全性を維持するために、列3は異なる
量Psだけシフトされる。所定のシフトSに対して、Ps
シフトプログラマにより確定される。
次に図6を参照すると、これまで説明した暗号化技法
と解読技法に従って暗号化を実行するシステムのブロッ
ク線図が見られるであろう。
クリアテキスト語はメモリIのそのアドレスへ送信さ
れる。これは、θ以外の列3からの語Xk-Psを選択する
ことに対応している。概念はその語を列2にある相手方
に加算するというものである。Xk-Psがθ以外であり且
つそれをXkに加算すべき場合、これは、列3の順序デー
タK−Psをもつ語を同じように列3にある順序K−Ps
Ps=Kをもつ語に加算することと等価である。従って、
クリアテキスト語の順序データK−PsはPsに加算される
ために加算器24,26へ送信されることになる。新たな順
序数はメモリIIのそのアドレスへ送信される。そのアド
レスの内容をクリアテキスト語にモジュロ2加算して、
列1で暗号化語Xk-sを得る。クリアテキスト語がθであ
れば、その暗号試験画像は同一である。
順序データの加算を実行するのは桁上げ加算器(C)
と、最下位ビット加算器(LSB)の2つである。桁上げ
加算器は数を従来通りに桁上げを伴って加算する。たと
えば、001+011=100となる。しかしながら、加算がn
個を越える数字を要求する場合、すなわち、1をn+1
位置に桁上げする場合には、その代わりに、その余分の
1を第1の位置に加算する。たとえば、100+110=1010
=>011となる。これはLBS加算器により実行される。こ
れは、単に、m=2n−1とするモジュロm加算である。
この例では、n=3、m=7であり、10進項で表わされ
る加算は4+6=10≡3 mod 7となる。尚、100=>、11
0=>6及び011=>3である。
解読に関わるブロック線図を図7に示す。暗号テキス
ト語はメモリIのそのアドレスへ送信される。これは、
θ以外の列1からの語Xk-sを選択することに対応してい
る。概念はそれを相手方である列2にあるXkに加算する
というものである。これは、列1のXk-sを同じように列
1にある順序データK−S+S=Kをもつ語に加算する
ことと等価である。従って、暗号テキスト語の順序デー
タK−Sは加算器へ送信されて、Sに加算されることに
なる。新たな順序数は、メモリIIのそのアドレスへ送信
される。そのアドレスの内容を暗号テキスト語にモジュ
ロ2加算して、列3の暗号化語Xk-Psを得る。暗号テキ
スト語がθであれば、それをθとして解読する。
順序データK−S+S及びK−Ps+Psの加算はモジュ
ロmであるか又はラップアラウンドを伴うと理解され
る。すなわち、順序データが最終位置より大きければ、
順序データからmを減算するのである。暗号テキスト語
がθであれば、それを同じ語として解読する。
シフトプログラムは、列3の対応するPsシフトSと共
に列1のシフトSを使用する順序を確定する。所望のど
のような順序も使用できる。シフトSは基本順列の累乗
に対応しており、これは加算による置換を確定する。
そこで、例を挙げると、図8において、クリアデータ
値が010であれば、メモリIのそのアドレスは順序デー
タ001を与え、これは010がメモリIのシーケンスの中の
位置1(方程式集合の列3)にあることの2進表記であ
る。プログラムの中の第1のシフト位置はS=6であ
り、このとき、P6=2となる。010の位置であるk−P6
=1にP6=2を加算する。2進表記法では、001+010=
011となる。メモリIIのアドレス011に対応するのは数10
0である。(これは、100が列3の位置3にあるというの
と等価である。)暗号テキスト語は110=100010であ
る。これは、図5の加法方程式のうち第1のものを表わ
している。
解読時には、暗号テキスト語は110である。図9にお
いては、メモリIのそのアドレスは順序データ100を与
える。すなわち、メモリIのシーケンス中の位置4とい
うことになる。プログラム中の第1のシフト位置はS=
6である。110の位置であるK−6=4に6、2進表記
法では110を加算する。4+6=10である。m=7によ
る減算で10−7=3となり、ラップアラウンドを伴う位
置3となる。2進表記法においては、100+110=011モ
ジュロ7である。メモリIIのアドレス011に対応するの
は数100である。110100=010。これは、図4の加法方
程式のうち第1のものを表わす。
図4の第1及び第2の列に固定数をモジュロ2加算す
る場合。さらに別の1対1変換が結果として起こる。
次に図11及び図12を参照すると、任意のブロックサイ
ズについて、零語であるθ以外の固定語を使用して暗号
化と解読を実行するブロック線図が見てとれるであろ
う。その手続きは本質的には先のと同じであり、ただ
し、暗号化プロセスでは固定語をモジュロ2加算する追
加過程を最終過程として含み、解読プロセスにおいては
その過程を第1の過程として含んでいる。
1例を図13及び図14に示す。この場合、000はもはや
固定したままではなく、001に変換される。そこで、110
はそれ自体に変換されるので、この場合には固定される
ことになる。
固定語加算器は、利用者によって選択された順序での
nビットのいずれか、又は全てを引きつづき加算でき
る。
次に1例として図8を参照すると、これまで論じた暗
号化技法及び解読技法に従って暗号化を実行するシステ
ムのブロック線図が見られるであろう。図示する通り、
000を除くあらゆる値のクリアデータ20がアドレスとし
てメモリ22に提供される。様々なメモリアドレスには、
クリアデータ値の順序データ、すなわち、図4(並びに
図5及び図10)の右側のカラムの順序付けされたシーケ
ンスにおけるそのクリアデータ値の、2進数として表わ
される位置が記憶されている。この位置は、メモリ22の
出力として、加算器24及び26の組合わせとして示されて
いる加算器に供給される。加算器は、シフトプログラマ
28によって制御されるように、メモリの出力をシフトPS
の値に加算するために結合される。この加算はモジュロ
2加算ではなく、最上位ビットからの桁上げが最下位ビ
ットのキャリーインに結合することを1つの例外とする
正規の2進加算である。従って、加算器は111より大き
い和1として1000又は単なる000ではなく、結果001を提
供する。そこで、加算器の出力は順序データシーケンス
の中では量PSだけシフトされた新たな3ビット2進数で
あることがわかるであろう。次に、この新たな位置をメ
モリ30のアドレスとして使用し、メモリ30はその出力と
して、図4の列2の値に対応する3ビット2進数、ある
いは、図3の対応するクリアデータ値を提供する。そこ
で、例を挙げると、クリアデータ値が010である場合、
その値はメモリIへのアドレスとしてシーケンス中の00
1のその値の場所を表わす。シフトプログラムがS=6
を選択すると、P6=2となり、列3は列2から位置2つ
分、すなわち、量010だけ下方へシフトされる。その場
合に010のクリアデータ値に隣接するであろう3ビット
2進数は、図5におけるように100である。このクリア
データ010へのモジュロ2加算は、図5に示す値に対応
する110の暗号化値を与える。ところが、クリアテキス
トデータが000である場合には、その値はメモリIへの
アドレスとしてシーケンス中の000の値の場所を表わ
す。この値はシフトされず、メモリ30において順序デー
タとして変化しないまま提供される。従って、それ自体
に加算される000は固定したままである。
図5の列2の基本順序データと比較した図5の列3の
シーケンスの下方へのシフトPSが、相補する上方へのシ
フトに対応するのは言うまでもない。従って、nビット
ブロックに関しては、PSの下方へのシフトはm−PSの上
方へのシフトと等価である。また、3ビットブロックに
ついては、零、並びに7及びその倍数の第2の列に関す
る第1の列のシフトを除いて、起こりうるシフトの全て
の値は所望の1対1マッピングを与えるということにも
注意する。これは、そのようなシフトが各々の行を第1
の列の対応する行と同じにしたマトリクス中の第2の列
を形成すると考えられるためであり、それ自身にどの数
をモジュロ2加算しても零となる。従って、7又はその
倍数のシフトに対しては、あらゆるクリアデータ値は暗
号化の目的には役に立たない000にマッピングされる。
しかしながら、通常は、3ビットを越えるnビットのブ
ロックについては、零並びにmの整数倍以外のあらゆる
シフトは所望の結果をもたらし、従って、元の発明に従
って使用可能であることが後にわかるであろう。
図7に従った解読のブロック線図を図9に示す。ハー
ドウェアの観点からいえば、この線図は暗号化に関わる
図8の線図と厳密に同じであるが、解読の場合には、暗
号化に関わる所定のシフトPSに対して適用可能なシフト
Sのみが異なる。9ページの例と同様に、暗号化に関わ
る2のシフトPSに代わり、シフト6が図8及び図9の表
に示すように適正な解読を行わせ、以下も同様である。
暗号化ハードウェアと解読ハードウェアが解読時に適正
な回復すべきクリアデータについて関連するシフトを使
用していなければならないことは自明であるが、実質的
に不可能でなければ、暗号解読を非常に難しくするため
に、適用可能なシフトを両端で頻繁に変化させても良
い。
図5のどの1対の列に固定数をモジュロ2加算して
も、依然としてさらに1対1の変換が起こる。例を挙げ
ると、図10では、図5の第1の列と第2の列に固定数00
1がモジュロ2加算されている。そこで、クリアテキス
ト語としての010は暗号化語111にマッピングされ、これ
に対し、図8の例では、010は110にマッピングされる。
固定語加算器を使用する暗号化に関わるブロック線図
の1例が図13に見られる。この図は、第1の列の010と
同じ第2の列の行にある値に対応するメモリ30の出力に
固定語(この例では001)を加算するために、固定語加
算器32が含まれていることを除いて、図8と同一であ
る。すなわち、固定語加算器は列2の値に固定語(この
例では001)を加算するだけであり、その後にクリアテ
キスト後をモジュロ2加算して、暗号化データを得る。
同じようにこの例についても、メモリ22へのアドレスと
して010のクリアデータを使用すると、メモリの出力は0
01になる。図8の例で同じシフト010を使用すると、001
にPS=2を加算することになって、メモリ30に対するア
ドレスは011になる。この結果、メモリ30からの出力は1
00となり、これに固定語加算器は固定語001をモジュロ
2加算して、101を得る。このクリアテキスト語へのモ
ジュロ2加算は、図10に示すように暗号化語111を与え
る。
図13の暗号化に関わるブロック線図に対応する解読時
のブロック線図を図14に示す。図からわかるように、図
14は図13と同一であり(ただし、この場合にも、解読時
のシフトは暗号化のときのシフトとは異なる)、メモリ
22への印加の前に、固定語加算器が暗号化データにも固
定語をモジュロ2加算するという点が異なっている。暗
号化語を得るために固定語の1度目のモジュロ2加算は
図11で実行されていたので、このモジュロ2加算は本質
的には固定語の2度目のモジュロ2加算である。すなわ
ち、同じ語の2度目のモジュロ2加算は、実際には、1
度目のモジュロ2加算を無効にしてしまうので、図12の
暗号化データに固定語がモジュロ2加算された後、その
モジュロ2加算の結果を解読を目的として図10の方程式
と共に使用して良い。従って、例を挙げると、図13の例
の暗号化語111を使用するとき、図14のメモリ22へのア
ドレスとしては111001=110となる。これにより、メ
モリ出力は100となり、これにS=6、すなわち、110の
値を加算する。ラップアラウンドを伴うと、100+110=
1010=>011である。そこで、この結果として、メモリ3
0へのアドレスは011となり、すなわち、その出力は100
となって、それに、メモリ22へのアドレスである110を
モジュロ2加算して、クリアテキストデータ010を回復
するのである。さらに、図13及び図14の固定語加算器は
固定語001を使用していたが、他のどのような3ビット
固定語を使用しても良いことはもちろんであり、事実、
固定語は時間の経過に伴ってシフトの変化と共に、ある
いは、シフトの変化とは別個に変更されても良く、000
の固定語はシステムの動作を図8及び図9の動作に本質
的に縮小させる。
図6、図7、図11及び図12に関連して説明した方法を
プログラム制御の下でマイクロプロセッサ利用システム
と共に容易に実行しうることは自明である。あるいは、
本質的にはルックアップテーブルとして使用される読取
り専用メモリでメモリを容易に事前プログラムできるで
あろうし、また、暗号化・解読システムの少なくとも主
要な素子を高速の個別の構成要素において実現できるか
又はカスタム集積チップを介して実現できるように、加
算器及びモジュロ2加算器を従来通りの加算器とするこ
とは容易に可能であろう。シフトプログラムも、シフト
が希望される回数、シフト順序それ自体が変更される範
囲などに応じて様々な形態をとりうるであろうし、希望
に応じたシフトレジスタの実現形態を含めて、マイクロ
プロセッサ利用集積回路又は他の実現形態を容易に適用
することができる。
以下の付録1の中では、ここまで説明した変換をさら
に解析しており、その様々な特性と特徴を記載してい
る。付録2では、親出願のブロック置換の方法のいくつ
かの面を検討し、非線形性と、クリアテキストから暗号
化テキストへの(そして、その逆の)非線形マッピング
の概念を提示している。この意味で、非線形性は、クリ
アテキストから暗号化テキストへの(及び暗号化テキス
トからクリアテキストへの)マッピングがビットごとの
モジュロ2加算の演算の下で非線形であることを意味し
ている。その点に関して、図1は1つの3ビット2進数
の集合から別の2進数の集合へのモジュロ2加算による
多数対1変換を示すことを指摘した。この特定の例は、
第1の列の3ビット数の8つのとりうる値を8つのとり
うる組合わせの中の6つを表わしている列3の6つの3
ビット数にモジュロ2加算によってマッピングしてお
り、この場合、2つ(100及び011)はそれぞれ2度繰り
返されている。2つの3ビット数(010及び101)が同じ
3ビット数(100)にマッピングされており且つ他の2
つの3ビット数(100及び110)は同じ3ビット数(01
0)にマッピングされているので、逆のマッピングはあ
いまいさを呈し、図1に示すマッピングを暗号化及び解
読の目的には不適切なものにしてしまう。
これに対し、図2から図5は、8つのとりうる3ビッ
トクリアテキスト語(列1)を対応する、あいまいさの
ない暗号化テキスト語(列3)に暗号化するための方程
式の集合を提示する。それらの方程式は列1と列3との
入れ替えによって有効なままであり、従って、この入れ
替えを伴って、入れ替え前の方程式が暗号化の方程式を
形成するのと同じように、対応する解読のための方程式
を形成する。しかしながら、図2から図5の各々に示す
方程式の集合は、所定の方程式の集合(図2から図5に
おけるような3ビット数に関わる8つの方程式)の中の
どの2つの方程式の加算もその集合の方程式の中の1つ
であるという意味で線形である。たとえば、図2では、
第1の方程式、すなわち、零方程式の別のどの方程式に
加算しても、結果はその別の方程式となり、従って、加
算は自明なものであり、一方、第2の方程式と第3の方
程式の加算は第4の方程式をもたらし、第3の方程式と
第4の方程式の加算は第2の方程式をもたらし、第4の
方程式と第5の方程式の加算は第8の方程式をもたらす
等々となっている。1つの方程式をそれ自体にモジュロ
2加算したときでも、8つの方程式の中の1つ、すなわ
ち、零方程式が得られ、これは、3つ以上の方程式、た
とえば、方程式2、3及び4をモジュロ2加算するとき
にも起こるであろう。その場合、方程式2と方程式3の
加算は方程式4をもたらし、方程式4をそれ自体に加算
すれば、零方程式となるからである。その点に関して
は、2つの方程式をモジュロ2加算するとき、加算され
る方程式のいずれか一方又は双方を2つ又は3つ以上の
他の方程式の和であると考えて良いので、そのモジュロ
2加算をより大きい任意の数の方程式を加算することと
等価であると考えても良い。さらに、所定の集合の中に
は、和が別の方程式とならない方程式の組合わせは存在
しない。暗号解読の観点から最も重大であるのは、零方
程式以外の7つの方程式のうち右の3つを与えたとき、
既知の3つの方程式の組合わせの適切な和によって残る
4つの方程式を確定しうるということである。たとえ
ば、図2の方程式3及び方程式4の2つの方程式の和の
組合わせを使用して残りの方程式を生成することは不可
能であり、そこでは、方程式2、3又は4と、5、6、
7又は8とを使用することができる。例として、方程式
2、4及び8を取り上げると、方程式2と方程式4の和
は方程式3を形成し、方程式2と方程式8の和は方程式
7を形成し、方程式2、方程式4及び方程式8の和は方
程式6を形成し、方程式4と方程式8の和は方程式5を
形成する。また、当然のことながら、上記の規則は他の
ビット長をもつ語の暗号化にも適用され、4ビット語の
暗号化のための16個の方程式についての生成方程式は4
つの独立した方程式の様々な組合わせをモジュロ2加算
することにより確定される。
図10の方程式の集合に関しては、どの2つの方程式を
加算しても、その集合の第3の方程式は得られず、図10
の左側の列の各々に001を加算することによって、零方
程式と、図5の方程式の集合の残り部分とが得られるよ
うになっており、その集合は集合の中の任意の3つの独
立した方程式により生成可能である。本発明が回避しよ
うとしているのは、独立した方程式から成る基本集合か
ら方程式の残りを生成するこの能力であり、本発明は、
線形方程式の基本集合を元の出願に開示されている様々
な方式によって時間の経過に伴って又は動的に変更しう
るのみならず、その結果得られる基本集合を変動する範
囲で、様々な組合わせで時間の経過に伴って又は動的に
非線形化することもでき、暗号解析を以前よりはるかに
困難にするように、そのような能力の排除を順序正し
く、論理的な方式によって実行する。
再び図2を参照すると、方程式の順序を再配列した場
合、列1の数の列3の数へのマッピングの変化が全くな
いことはもちろんである。従って、図2の式を図15に示
すように再配列できるであろう。詳細にいえば、零方程
式を無視すると、列2に現れる第1の数(001)は列1
の次の行で起こり、列2の第2の数(111)は列1の第
3の行で起こり、以下も同様である。列2の最後の数
(101)で結果として起こるラップアラウンドは(同様
に零方程式を無視すれば)列1の第1の行に至る。その
結果得られる方程式の編成は付録2のセクション3.2に
最初に記載されている1組の式に示す形態であり、図15
においては、X1は001、Xmは101である。1つの零方程式
と、2n−1個の零でない方程式とを有する任意のビット
長の語(数)に関わるどのような方程式の集合も、それ
により定義されるマッピングの変更を伴わずにそのよう
に配列できるのであるが、それは、そのような配列が方
程式の出願順序の変更であるにすぎず、方程式それ自体
のいずれかの変更ではないためである。
付録2のセクション3.2には、そのような方程式から
成るいくつかの方程式群を列1及び列2に現れる語の再
配列により変更して、対応して新しいモジュロ2加算方
程式を得ても良いことが示されており、それらの新たな
方程式を元の方程式の集合の中の元の方程式群と置換え
たときにも、1対1のマッピングは依然として維持され
ており、従って、新たな方程式は暗号化及び解読に適し
ている。その点に関して、1対1のマッピングが維持さ
れるのは、選択された方程式群の列1及び列2に現れる
マルチビット語の順序は変わるが、語それ自体は変わら
ないために、マッピングされる語の群と、それらを選択
された方程式によってマッピングしてゆく語の群とは変
わらないが、それら2つの語群の中では、列1のどの語
が列3のどの語にマッピングされるかは変わっているか
らである。それらの変更後の方程式の正味の効果は、そ
れらの方程式がもはや変更前の方程式の線形延長ではな
くなる、すなわち、変更前の方程式の中の2つまたは3
つ以上により変更後の方程式を生成できなくなるという
ことである。従って、これにより、元の集合の線形性は
破断して、暗号解読を希望に応じてさらに困難にするの
であるが、その破断が可能な範囲については後に論じ
る。
付録2のセクション3.2には、ある条件の下では、所
定の集合の中の方程式群を変更し、それらを使用して、
集合全体について1対1マッピングを維持するように元
の集合の中の対応する元の方程式群と置換えても良く、
また、同時に、先に述べたように方程式の集合の線形特
性を破断させるようにしても良いことが示されている。
それらの条件は付録2のセクション3.3に方程式の形で
さらに詳細に示されており、そこには、実行可能な2つ
の変更が方程式の形で示されている。その基本概念は、
元の方程式の集合の連続する3つずつの行の和をとると
いうものであり、付録2のセクション3.2における解析
によれば、セクション3.3に述べてあるように、そのよ
うな連続する3つずつの行をとることによる非線形化は
元の集合の3つ又は4つの連続する行のみを1組として
使用する場合に、そして、その場合に限って作用するこ
とがわかる。3つの連続する行を使用する場合には、実
際には4つの行、すなわち、元の集合の3つの連続する
行と共に、それら3つの連続する行のベクトルモジュロ
2和に対応する第4の行を変更することになる。その変
更は、下記の式を4つの行の各々にベクトル加算するこ
とにより得られる: (x1x2)(x1x2)=θ 元の線形方程式の集合の4つの連続する行を使用する
場合には、元の方程式の集合の6つの行、すなわち、そ
れら4つの連続する行と共に、4つの連続する行のうち
初めの3つのベクトル和を表わす行及び元の集合の4つ
の連続する行の終わりの3つのベクトル和に対応する行
(たとえば、付録2のセクション3.3に示すように、行
1、2及び3の和に対応する行と、行2、3及び4の和
に対応する行)が変更される。この場合の変更は、対応
する6つの行に次のようにしてベクトル加算することに
より得られる: 行1及びqには(x1x2)(x1x2)=θ 行2及び3には(x1x3)(x1x3)=θ 行4及びq+1には(x2x3)(x2x3)=θ 上記の式と、付録2のセクション3.3に示した元の方
程式の形態は、元の線形方程式の集合の第1の行、第2
の行、第3の行及び他の1つの行を取り上げた場合、あ
るいは、元の線形方程式の集合の第1の行、第2の行、
第3の行、第4の行及び他の2つの行を取り上げた場合
に非線形化が作用することを示している。その方法は、
変更のために選択した元の集合の中の方程式がそれら自
体の中では線形であるために作用するので、本発明の方
法によって一度非線形化した方程式を非線形化プロセス
の一部として再度使用することはできないであろう。こ
れは、このプロセスにより非線形化しうる方程式は4つ
又は6つだけであることを示唆しようとするものであ
り、言うまでもなく、より大きな語サイズに関わる全方
程式の中ではごくわずかな数である(たとえば、4ビッ
ト語は16個の方程式を要求し、8ビット語は256個の方
程式等々となっている。)。ところが、再び図15を参照
すると、x1として零でない行から列2のどの語、すなわ
ち、どの数を選択すべきかは任意であることに注意しな
ければならない。例を挙げると、x1として001ではな
く、011を選択したならば、本質的には下方の5つの方
程式を上へシフトし且つ上の2つの零でない方程式をラ
ップアラウンドすることになって、第3の零でない行は
第1の行となり、第4の零でない行は第2の行になり、
第5の零でない行は第3の行となり、第6の零でない行
は第4の行となり、第7の零でない行は第5の行とな
り、第1の零でない行は第6の行となるであろうし、そ
れ以降も同様であり、その結果、方程式自体も、方程式
の順序付けも変わらないが、そのシーケンスにおける開
始点のみが変わるのである。そのような方程式の配列は
図3に示されており、そこでは、X1=100、Xm(=X7
=011であった。従って、付録2の10ページに提示され
ている方程式は、3つの連続する行と、それら3つの連
続する行の和に対応する行とを変更(非線形化)すべき
場合に、選択される3つの行も、それら3つの行の和に
対応する行のいずれも先の選択の結果として先に非線形
化できるものではなかったということのみを制限とし
て、どの3つの連続する行もそのように選択しうるとい
う意味で一般的である。同様に、4つの連続する行に先
に説明した2つの和の行を加えたものを選択する場合に
は、同じように、それらの選択される4つの行と、2つ
の和の行がいずれも先にこのプロセスにより非線形化で
きていなかったと仮定すれば、どの4つの連続する行を
使用しても良い。非線形化に際して方程式を一般化する
ためには、X1が選択された3つ又は4つの連続する行の
中の第1の行の第2の列の値であると考えると共に、各
々の列の値をそれに従って再び番号付けするだけで良
い。
非線形化プロセスは零方程式以外の方程式について実
行されることに注意する。使用する語のビット長をnと
するとき、2n−1個のそのような方程式が存在している
ので、nの値にかかわらず、非線形化のために利用でき
る方程式は必然的に奇数になるのであるが、非線形化プ
ロセスは一度に偶数個(4つ又は6つ)の方程式を非線
形化する(高速システムにおいては、所定の線形方程式
の集合の中の重複しない方程式群に関わる非線形化プロ
セスは、どのプロセスを使用するかにかかわらず、完全
に互いに無関係であるので、異なる重複しない方程式群
を同時に非線形化するように構成されても良い)。従っ
て、何らかの線形集合が与えられたとき、その集合の中
の全ての方程式が非線形化されるとは限らないというこ
とは明らかである。そこで、どれほどの数の方程式を非
線形化しうるか及び非線形化に際して方程式を選択する
論理的な方式が存在するか否かに関して疑問がある。そ
れらの考慮事項は付録2のセクション3.4から3.6で論じ
られている。一般に、全ての方程式を非線形化できるわ
けではないが、通常、4ビット以上の語サイズについて
は大半の方程式を非線形化でき、残っているほどんど重
大ではない非線形化方程式があれば、それは暗号解析の
観点からはおそらく誤解を招くものである。さらに、非
線形すべき行の数とID、並びにどの非線形化技法を使用
するかということを時間の経過に伴って変更する又は動
的に変更することは暗号解読の問題をさらに増大させる
のであるが、そのような時変非線形化又は動的に変化す
る非線形化は、ハードウェアの観点(ソフトウェア制御
の下で実行されるのであれば、ソフトウェアの観点)か
らは、開始時の線形方程式の集合(先に述べた通り、そ
れ自体、時間の経過に伴って又は動的に変更されても良
い)を単純で、容易に可変の生成関数から生成しうるの
で困難ではなく、その方程式の集合は論理的プロセスを
利用して方式と範囲の双方で非線形でき、その方式と範
囲も、それぞれ、それ自体、時間の経過に伴って又は動
的に変更されて良いことに注意すべきであることは当然
である。
以上の説明の1例として、4ビット数、すなわち、4
ビット語から別の4ビット数、すなわち、別の4ビット
語への特定の生成関数を利用する線形マッピングのため
の16個の方程式を示す付録2の付録Aの表1に注目す
る。それらの16個の方程式は付録2のセクション3.3に
元の方程式で示される方式で編成されている。付録2の
付録Aに記載してある通り、16個の方程式の中のいずれ
か2つの和が、ここで使用する線形性の概念に従えばそ
れら16個の方程式の中の別のものであることは容易に確
認される。この表1は非線形化され、その非線形化形態
は付録2の付録の表15示されている。詳細にいえば、そ
の非線形化は第1の方法に従っている、すなわち、(零
方程式を無視して)元の方程式の集合の3つの連続する
行と、それに加えて、初めの3つの行の和を表わす行と
を利用している。その点に関して、列1の初めの3つの
零でない数(1001、0001及び0010)のモジュロ2加算の
和は1010に等しく、これは零でない方程式の第11の行の
値である。そこで、行1、2、3及び11は、それらの列
1及び列2の各々にx1x2をモジュロ2加算することに
より非線形化される。さらに具体的には、x1は0001に等
しく、x2は0010に等しいので、x1x2=0011となる。00
11を第1の方程式の列1および列2にモジュロ2加算す
ると、付録2の付録の表15に示すように、10100010=
1000となる(1000は第1の方程式に関わる列3の元の値
である)。行2、3及び11にある方程式についての同じ
加算は、それら4つの行に関する変換を実行する。同様
に、零でない方程式の行5、6及び7に加算をする場合
には、零でない方程式の行15(表1の最後)の方程式が
得られる。それら4つの行は行1、2、3及び11と同じ
ようにして非線形化されるが、適用される式は実際には
次のようになる: (x5x6)(x5x6)=θ(θは0.00...) 付録2の付録の表15にある16個の方程式から成る集合
をさらに非線形化することに関しては、表の中に、考慮
しうる3つの連続する方程式から成る他の2つの方程式
列、特定すれば、行8、9及び10と、行12、13及び14と
がある。ところが、行8、9及び10のモジュロ2加算の
和は既に使用した行である零でない方程式の中の行3を
形成し、また、行12、13及び14のモジュロ2加算の和は
既に使用したもう1つの行である行7を形成する。従っ
て、3つの連続する行、すなわち、3つの連続する方程
式から成る方程式群が、他に2つ存在しているのである
が、それらの方程式群のいずれについても、その和は既
に非線形化されている行、すなわち、方程式であるの
で、それらの方程式群を別の非線形化に使用することは
できない。
もう1つの例として、付録2の付録の表4を参照す
る。この線形方程式の集合(セット)は同一の生成関数
を使用するが、新たな基底に適用されるものであり(付
録2の付録3ページの最下部、即ち、x1=0011,x2=011
0,x3=1100,x4=1000、を参照)、先の例と同じ方程式
の集合(方程式1、2、3、5、6、7、及び15)を使
用して非線形化されたときには、付録2の付録の表4に
記載されている非線形方程式集合を与える。
最後に、第3の例として、付録2の付録の表17を含む
段落の次の段落に記載されている例を表18に示す非線形
化方程式に注目する。この例は、付録2の付録の表1に
示されている15個の方程式の表(零方程式を伴う)の別
の非線形化の例であり、異なる基礎、特定すれば、4つ
の連続する(零でない)方程式1、2、3及び4に1、
2及び3の和、すなわち、方程式11と、方程式2、3及
び4の和、すなわち、方程式12とを加え、さらには、3
つの連続する方程式13、14及び15と、その和である方程
式8とを加えたものを使用して非線形化されるのであ
る。4つの連続する方程式並びにその2つのモジュロ2
加算の和の方程式を非線形化するための方程式は、言う
までもなく先に挙げたものであり、付録2のセクション
3.3に記載されている。詳細にいえば、行1及びqにつ
いて1つ、行2及び3について1つ、行4及びq+1に
ついて1つの3つの異なる方程式を使用することにな
る。例を挙げると、行1の場合、列3に零を加算し、列
1及び2の各々にx1x2をモジュロ2加算をする(どれ
でも、それをそれ自体にモジュロ2加算した和は零に等
しい)。x1x2=0011であるので、これを方程式1に加
算すると、方程式10100010=1000となり、これは付録
2の付録の表18の非線形化された方程式の集合の中の零
でない第1の方程式である。線形の零でない方程式の集
合の行2については、列1及び列2の各々にx1x3を加
算する。すなわち、00010100=0101である。表1の線
形の方程式の集合の行2の列1及び2にこれを加算する
と、表18Aの方程式の集合の中の第5の零でない方程式
が得られる。最後に、行4及び行q+1に関わる第3の
方程式の利用の1例として、x2x3=00110100=0110
となる。これを、たとえば、線形の零でない方程式の行
4の列1及び列2に加算すると、表18にある非線形化さ
れた方程式の集合の中の零でない方程式の行2が得られ
る。適用可能な行の6つ全てを非線形化プロセスに従っ
て変更しなければならないのはもちろんである。すなわ
ち、この後者の例においては、先の例のように8つでは
なく、方程式のうち10個を非線形化することになり、言
うまでもなく、その結果として起こる列1から列3への
マッピングは、通常は、2つの方程式の集合の場合とは
全く異なっている。
最後に、初めの2つの列の各々に「オフセット」をモ
ジュロ2加算することにより、非線形化方程式をさらに
変更しても良い。これは、もちろん、オフセットをそれ
自体にモジュロ2加算することこれは言うまでもなく0
である)と等価であるので、第3の列にある数に影響を
及ぼさない。特定の例を挙げると、図17は、先に説明し
た、付録2の付録の表18に示されている第3の例の方程
式の集合について、第1の列及び第2の列へのオフセッ
ト0101の加算によって変更した方程式を提示している。
図16は、本発明に従った暗号化及び解読のための典型
的な装置のブロック線図を示す。図16に見られるよう
に、最終的には読み取り/書込みメモリの形態をとるル
ックアップテーブルを使用するのが好都合であり、この
場合、クリアテキストデータブロック又は暗号化テキス
トデータブロック(共にnビットの長さ)はメモリにア
ドレスとして並列に提示され、対応するアドレスに記憶
されているデータは各データブロックの暗号化又は解読
にそれぞれ対応している。その目的のためには、メモリ
アドレス範囲が操作すべきデータブロックより1ビット
広くなるように、暗号化又は解読のいずれかに要求され
るアドレススペース(たとえば、n+1アドレスビッ
ト)の2倍のアドレススペースをもつメモリを使用する
のが好都合であろう。この方式では、メモリアドレスの
うち1ビットを使用して、動作を暗号化動作とすべきか
又は解読動作すべきかを指定しても良い。特定の例を挙
げると、メモリアドレスの最上位ビットは解読プロセス
を指示すべきときは0、暗号化プロセスを指示すべきと
きには1であっても良いであろうし、解読データはメモ
リのアドレス範囲の下半分に記憶され、また、暗号化デ
ータはメモリの上部アドレス範囲に記憶されることにな
る。このように、暗号化と解読は、共に、単一のビット
の制御によってルックアップテーブルの希望の通りに実
行可能であり、nビットから成る1ブロックの暗号化又
は解読を1回のメモリサイクルで実行できる。
暗号化と解読のマッピングを周期的に及び/又は動的
に変更すべきであると仮定すると、ルックアップテーブ
ルの内容を変更する何らかの方法を提供しなければなら
ない。これを専用ハードウェアで実行することは可能で
あろうが、暗号化方式と解読方式の変更が起こる回数
は、通常、暗号化と解読のプロセスそれ自体を実行しな
ければならない回数よりはるかに少ないので、プログラ
ム制御の下で適切なプロセッサにより変更を実行するの
が好都合である。従って、通常は暗号化及び解読それ自
体と同じ速度で変更を実行する必要はない。そこで、図
16に示す非線形動的置換発生器はそれに対する様々な入
力に基づいてプログラム制御の下で動作すれば良い。詳
細にいえば、たとえば、ブロック置換ビットサイズ
(n)、n個の線形に独立した数から成る基本集合、生
成関数、非線形化を開始すべき線形集合の初めの方程
式、及び実行すべき非線形化関数の繰り返しの回数のよ
うに、暗号化の方程式を定義するいくつかの基本情報が
与えられると、その方程式をプログラム制御の下で容易
に生成できるであろう。
非線形化方程式にオフセットを適用したならば、列3
の各々の数又はブロックをルックアップテーブルの暗号
化のために割当てられた部分の、各行についての列1の
ブロックに等しいアドレスに記憶する。従って、列1の
数又はブロックがアドレスとして適用される場合、メモ
リから読み取られる数は、各々の暗号化ブロックを表わ
すその行に関わる列3の数である。テーブルの解読部分
については、列3のブロックをメモリアドレスとして使
用し(さらに適切にはアドレス部分、解読を指定するア
ドレスビットを含む全アドレス)、それらのアドレスに
記憶されているデータが列1の各々のブロックであると
いう点で、プロセスは逆になる。すなわち、解読中に
は、暗号化ブロックにより定義されるアドレスでメモリ
への入力が起こり、各アドレスに記憶されているデータ
は関連するクリアテキストブロックに対応する出力とし
て提供される。便宜を考えて、暗号化及び解読のための
詳細な方法を付録3に記載してある。
暗号化プロセスと解読プロセスは、共に、何らかの
(可変)開始情報が与えられれば、単に論理的操作を包
含しているにすぎないので、それらのプロセスを完全に
プログラム制御の下で実行することができるのは自明で
あろう。ところが、プロセッサは同じ暗号化方程式と解
読方程式を何度も再生成するのをやめるために、暗号化
と解読を実行できる速度は非常に大きく低減するであろ
う。これに対し、ルックアップテーブルを使用すると、
暗号化方程式及び解読方程式の集合全体を一度で確定で
き、暗号化又は解読すべきどのデータブロックについて
も、その情報は方程式を変更すべき時点に至るまで1回
のメモリサイクルを通して絶えず利用可能となってい
る。
本発明の暗号化及び解読のための好ましい一実施例を
ここに開示し且つ説明したが、本発明の趣旨から逸脱せ
ずに形態及び詳細について様々な変更を実施しうること
は当業者には自明であろう。
付録 1 バイアスされないブロック置換 要約 ブロック置換とは、nビットの2進数をそれ自身への
1対1マッピングである。このような置換または変換
を、順列で表すことができる。nビットの2進数の或る
順列は、ブロック置換を、一つの順列処理された組の数
のモジュロ2加算によって規定することを表している。
このような順列を複製と称している。これら順列の部分
集合は、以下のような追加の特徴を有している。即ち、
これら順列が規定する等式は、ベクトルとして見た時
に、加算関係を有している特徴である。このような順列
を、加算と称する。バイアスされないブロック置換は定
義される。加算順列によって規定された置換はバイアス
されない状態であると共に、あらゆるバイアスされない
ブロック置換を複製式順列によって表せることが示され
ている。これら加算順列は、同一特性を保有するグルー
プを形成するように表されている。これら加算順列の存
在に対する種々の条件が確立され、これらグループの或
る特性が決定され、このようなグループの数が計数され
ると共に、nビット数のすべての成立可能な順列と比較
される。
序言 ブロック置換は、通常、nビットの2進数のそれ自身
への1対1マッピングに適用された用語である。このマ
ッピングを、2n個のnビット数の対として書くことがで
きる。即ち、 ここで、各列は、同じ2n個の別個のnビット数の組であ
るが、異なった順序で書くことができる。従って、この
マッピングを、以下に記載されたようなnビット数の順
列として考えることができる。
または、指数のある組に対しては(x1xixj…)となる。
これら順列に対する、このような通常の表記は、単にx1
→xi、xi→xj等を意味する。列の表記法に戻ると、一組
の簡単な方程式を、元の組およびそれのイメージから規
定することができる。
ここで、記号は、モジュロ2加算(即ち、桁上げなし
で、対応する数字を加算すること)を意味する。一般
に、集合{y1,y2…}の全ては独立したものではない
が、或る状況の下では、独立したものとなる。独立した
ものとなると、ブロック置換を、従来の手段に基づくよ
り、むしろ、モジュロ2加算によって発生させることが
できる。主要なタスクとしては、必要に応じて、これら
状況を決定することであり、ここにおいて、このスチー
ム(計画)が実行され、如何にしてこれら置換を迅速に
変更できるか、および偏りを無くすことができるかが決
定される。
これらブロック置換を、モジュロ2加算によって発生
させることが可能であるか、明らかでなかった。例え
ば、モジュロ2加算によって、3ビットの2進数の1つ
の構成を、他の構成に置換する方法を考察する。このこ
とが図1に示されている。コラム(列)3の右側におい
て、011と100の各々が2回現れるのに対して、001と100
は、現れない。コラム2の中心の数字で作用している、
コラム1の左側の数字によって、3ビットの二進ワード
の集合の、それら自身への変換を構成する。これは、多
1変換であると共に、ブロック置換に対しては有効なも
のではない。
図2に示したもう1つの構成を実施することによって
異なった結果が得られる。この場合、変換は、3ビット
の2進数からそれ自身への1対1である全てのコラムの
各々は正確に、一回だけ3ビット数より構成されてい
る。
定義 nビットの2進数の反復性の配列(アレイ)は、2n
m+1個の方程式の集合である。即ち、 ここで、集合{yk}、{xk}および{zk}の各々は、2n
個の独立したnビットの2進数から成っている。
この集合{yk}によって、マッピングxk→zkが規定さ
れる。この集合ykはすべての値を取るので、集合yj=I
=(0…0)の正確に1つの要素は恒等式をとる。従っ
て、xj=zjは固定点であり、他の点は存在しない。各コ
ラムが独立したnビット数より構成されるので、他の2
つのコラムの各々の順列となる。
先ず、最初の疑問として、如何にして、このような反
復性の配列を構成するかである。
命題1 nビットの2進数の反復性配列を、(n+1)個の行
のあらゆる組の合計から構成することができ、これの列
には、恒等式(identity)およびn個のGnの生成元が包
含されており、これは、nビットの2進数のグループで
ある。
証明 普遍性を失わずに、第1の(n+1)個の行はこの特
性を有するものと仮定できる。1つの行が、I=II
であるか、または恒等式が3つの異なった行内で発生す
る。ここで、z1=x1=y1=Iと仮定する。次に、集合
{z2,…,zn+1}、{x2,…,xn+1}、{y2,…,yn+1}の各
々が、n個の独立した、Gnの生成元から構成される。こ
の配列の残りの行を構成するために、列2からn+1ま
での対のモジュロ2合計と、これら列の3倍の合計と、
最後に、 を採用する。このような方法で構成した、追加の列の数
は以下の通りである: そこで、この配列は、このようなプロセスによって完全
に特定化される。i>n+1に対するzi、xi、yiの各々
は、生成元の異なった線形組合わせであるので、これら
全ては、独立したものであると共に、{zi}、{xi}お
よび{yi}の2n個の要素の集合の各々は、n桁の2進数
の順列である。
ここで、z1=x2=y3=Iであると仮定する。最初の3
つからの行の対を互いに加算することができない。その
理由は、このことによって、列の1つにおけるz1、x2
たはy2の複製したものを生じるからである。我々は、こ
の問題点を、初期のn+1列から奇数の列を互いに加算
することによって回避している。従って、以下の行が得
られる: ここで注意すべき点は、二項係数に対する一般の恒等
式である: n個の奇数に対して、この方法で生成した行の数を総
計すると、以下が得られる: n個の偶数に対しては、左辺の合計中の最後の項が以
下である: 従って、それを、再度、2n個の行に加算する。
最初のケースのように、行要素は、生成元と恒等式
の、2n個の独立の線形組合わせである。(Q.E.D.) 命題1によって、反復性配列を生成する方法が得られ
るが、これらすべてをこの方法で生成できることを意味
するものではない。他の定義を導入する方が好都合であ
る。この反復性配列の個々の行を、ベクトルとして考え
ることができ、これらベクトルを、対応するスカラー成
分モジュロ2を加算することによって、互いに加算する
ことができる。
定義 反復性配列を加算配列(additive array)と称し、こ
の反復性配列は、あらゆる奇数行のベクトル合計モジュ
ロ2が、再度元の配列におけるもう1つの行であるよう
な特性を有している。
明らかに、命題1におけるように生成した、反復性配
列は加算配列であるが、この加算特性を有しないような
他の配列も存在する。
命題2 固定の行II=Iを有するnビット数のあらゆる、
加算配列は、n個の線形的に独立した行の最大の集合を
有している。
証明 kを、独立した行の最大数とすると共に、k<nと仮
定する。この加算配列は、恒等式を包含した、正確に2n
個の行を有している。前述の命題1によって、これらk
個の行によって、2k個の行の配列を生成する。従って、
残余の(2n−2k)個の行を複製する必要があると共に、
この配列を加算することはできない。
k=n+qで、qが正整数の場合に、独立した行の最
大の集合によって、2n+q個の行が生成される。各列にお
いて、2n個の独立したnビットの各々は、2q回だけ現れ
るようになる。この2n個の加算配列は、2n+q個の行を有
する配列中に埋没される。この配列を、より大きな配列
から適切な列を選択することによって、取出すことがで
きる。この加算配列に対して、最初の列、例えばx1y1
=z1を選択する。x1は列1において2q−1回以上現れ、
同様に、y1は、列2内で、更に、z1は列3内で2q−1回
以上現れるようになる。x1とy1との同じ組合わせが再度
起こらないので、3(2q−1)個の行を、この加算配列
に対する次の考慮点より排除する必要がある。第2の選
択、即ちz2から、列3内のz2を含む2q−1個の行を排除
する必要があるが、x2またはy2は、すでに除去した行に
存在していたので、第2のステップにおいて、排除され
た行の数は≧2q−1である。後続する各ステップに対し
て、≧2q−1個の行を除去する。このプロセスは、2n
のステップの後で完了する。2n個の行が選ばれたと共
に、以下に示すように、排除された行の数が規定され
る: 3(2q−1)+(2n−1)(2q−1)=(2n+2)(2q−1) 従って、選択および排除された行の総数は以下に与えら
れる: 2n+(2n+2)(2q−1)=2n+q+2(2q−1)>2n+q. そこで、このプロセスを完了するためには、行は十分に
存在しない。この矛盾点はk=nを意味する。(Q.E.
D.) 上述した事項は、かなり学術的なものに見えるが、如
何にして加算配列およびその結果としての置換を生成す
るかを表しており、更にまた、このプロセスによって、
これらの全てのものが得られることを表している。しか
し、これら加算配列には、次の命題に記載された、もう
1つの極めて有益な特性を有している。
命題3 固定された恒等式の行を有する加算配列はグループで
ある。
証明 この配列内の行をベクトルと考えることができると主
に、以下に示す、それぞれの成分を加算することができ
る: ここで、xixj=xk等である。これは、グループ動作で
ある。この配列中の各行は、n個の生成元の或る部分集
合の合計である。2つの行の合計は、また、これら生成
元の或る部分集合の合計であり、従って、このような合
計から構成される配列内に存在する。グループ恒等式
は、行I=IIである。(Q.E.D.) 列の各対によって、順列を以下のように規定する。即
ち、1つの列内の数を採用する。例えば、列2ではy1
採用し、列1内で同じ番号を見出す。これは、例えば、
列2内のy2のようなパートナーを有している。再度、列
1内にy2を配置すると、列2内ではパートナーy2が存在
するようになる。このことによって、列2から列1に向
かって順列y1→y2→y3→…が規定される。このような順
列の6個の内、3個は独立したものであり、これらを加
算配列によって規定する。
定義 加算配列によって定義された順列を、加算順列と称し
ている。
最初に、固定点がIであるような場合を考え、ym+1
xm+1=zm+1=Iを実行する。この加算配列中における列
の順序は任意なものである。第2の列に対して、yj=x1
を選択できると共に、第3の列に対して、yk=xj等を選
択する。指数について再構築すると、以下のものが得ら
れる: 列1および列2内における数の順序は、これら2つの
列によって規定された順列を表すようになり、これによ
って以下のものが導出される。
定義 列1と列2との間で、順列によって規定された順序で
配列されている列を有する加算配列を以下、正規化され
ていると称する。
命題4 固定された恒等式を有する加算配列を以下の形態で書
くことができる: ここで記号“p"は整数である。
証明 正規化した形態において、この配列を、以下のように
書くことができる。
配列がグループであるので、これを、順次の列の対の合
計を採用することによって、再生成することができ、以
下のように得られる: 新しい配列中の列は、元の配列中の列と同一(しかし、
再構成されているが)となる必要がある。これら列の順
序における開始点は、特定できない、ある数量の位置だ
けシフトしているが、左側の対角構成から、これら列の
順序を同一にする必要がある。この新しい配列内の列2
は、以下の通りである。
これは、元の配列内の列3と同一である。その結果とし
て、元の配列内の列3は、元の配列内の列2と同一なも
のであるが、特定された数量の位置だけシフトしてい
る。(Q.E.D.) 後述から明らかなように、このシフト分“p"は、任意
の数のみを取るものである。今までは、特殊なケースを
除いて、前以ってこのpを決定したり、または、このp
の知識から配列を決定する適切な手段が見つかっていな
かった。しかし乍ら、このpに対する可能な値を除去す
る規則や、許容し得る値をペアリングする規則が存在す
る。このシフト量“p"によって配列および置換の全体ク
ラスを決定する。今までは、このpに対する、可能なす
べての値が、n≦8のブロックサイズに対して見つかっ
ている。
命題5 “g"が、固定の恒等式を有するnビットの2進数の加
算順列の最大長である場合に、順列“g"のべき数“s"に
対して、“gs"もまた加算である。
証明 “g"は以下に示した加算配列の列1および列2によっ
て規定され、この場合、以下の恒等式を省略する: このgsを定義する配列は、以下のようになる: 前述の命題4の証明のように、この“g"に対する配列
のグループ構成から、“g"を再生できる。この場合に、
sの間隔だけ離間したm対の列の合計を用いて再生して
いる。即ち、 左辺の対角線構造から明らかなように、列1および列
2は、前記のように同一の順序であるが、異なった開始
点を有している。即ち、この配列は回転したものであ
る。ここで、g3、xmxs=wsに対する配列から、xs-s
xmである。従って、gに対する回転した配列の列1(ま
たは列2)は、集合{w1,…,wm}より構成され、この集
合は、{x1,…,xm}の置換された形態または回転した形
態である。
このことは、gsに対する加算配列内の行の一般形態が
以下のものであることを示している: ここで、記号psは、べき数sに相当するシフトである。
また、このpsは基本的なシストに関連すると共に、sの
各値に対して異なっている。同一の順列グループにおい
て、一方の置換から他方の置換に変化する場合に、これ
らシフトおよびこれらの順序を知ることは重要である。
詳細は後述する。
命題5において、加算であるという特性は必要なこと
である。反復性順列“g"の例が図示されており、これら
順列は、加算でなく、且つ、このgsは反復性を有しな
い。
この“g"が最大長の順列でなかったとしても、命題5
は真実でもある。循環性の存在によって、この証明を少
し、複雑なものにする。しかし乍ら、最大長でない順列
に相当する置換と一緒に開始することには、殆ど実用上
の興味が存在しない。その理由としては、べき数によっ
て完全なグループを生成しないからである。恒等式以外
の固定点を有する順列によって、また、グループを構成
する。しかし乍ら、これらグループを生成する加算配列
は、グループではない。
次のステップは、順列のこれらのグループおよび対応
する置換は、可能な、すべての入力/出力対を生成する
極めて好適な特性を有していることを表している。
これら加算配列の各々を、列の対によって正確に1つ
のエレメントを固定維持している配列によって生成する
ので、各配列によって、2n個の二進語の1つを固定状態
に保持する。従って、これら順列は、2n個の要素上のす
べての順列の対称形態のグループに帰属するだけでな
く、m=2n−1個の要素上の順列のサブグループpmにも
帰属する。所定の順列のすべてのべき数によって、グル
ープを構成する。順列の順序は、それ自身のサイクル
(循環性)の最小公倍数であると共に、このグループの
順序は、その中における独立した順列の数である。それ
のサイクルのすべてが同一の長さであれば、順列は通常
であると言える。
これら順列の一つのグループに対する重要な特性は、
推移性である。推移性的なグループは、少なくとも1つ
の順列を有し、これによってあらゆる要素またはワード
を他のものに変換する。
命題6 Gが、加算順列のべき数によって生成したpmのサブグ
ループであり、ここでgがm=2n−1の順位の場合に、
このGは、2n−1個の固定されていないワードに対して
推移的である。
証明 固定ワードxjに相当するシングルサイクル順列(j)
を省略することによって、Gが2n−1個のnビットワー
ドに関する順列のサブグループとなり、これらnビット
ワードは固定されて保持される。g{g,g2,g3,…,gm
I}のm個のべき数によってGを生成するので、それ自
身の順序|G|はmと等しくなる。2n−1個のnビットワ
ードの1つを固定で保持するGのサブグループに対して
G1を与える。これが加算順列のグループであるので、G1
={1}、恒等式順列のみとなる。そこで、G1は順列|G
1|=1を有すると共に、 内でG1の指数を有する。(Q.E.D.) 他の固定点を有する加算配列 恒等式以外の固定の要素を有する加算配列を、固定の
2進数を列1と列2内の各数に単に加算することによっ
て、生成できる。例えば、Hを命題4に記載されている
ような配列(およびグループ)とし、新しい配列H'を以
下のように生成する: 明らかなように、H'は2n個の行を有し、これら行のい
ずれかの対、または偶数個の行の合計がHの中に存在し
ている。その理由は、w'sを抹消するからである。H'中
の奇数の列を合計すると、H'中の列となる。その理由
は、この合計値は、Hと列ww=Iとを加算したもの
における列の合計値に等しいからである。従って、H∪
H'は2n+1個の要素を持ち、列の加算の下で閉じられる
と共に、恒等式II=Iを包含するようになる。従っ
て、H∪H'はグループであり、Hは最大のサブグループ
であり、更に、H'=~Hは、Hの相対補数である。
H'中の列1をシフトすることができ、これによって、
元の配列によって規定された順列のべき数に対応する配
列を得ることができる。代表的な行は以下のようであ
る: (xk-jw)(xkw)=xk−pj これは、Hのj番目のべき数における、対応の行のイメ
ージである。そこで、H'によって規定される順列は加算
性であると共に、それのべき数である。
Iが固定されていない2n個の行を有する加算配列を有
するものとする。更に、この配列は、(n+1)個の線
形的に独立した行のすべての奇数個の組合せの総和を有
するものとする。命題1の証明のように、これによって
正確に2n個の行を生成する。従って、偶数組の和または
偶数の行の和がこの配列中に存在できない。それ自身を
含んだ、単一行の各々に、それを加算することによっ
て、固定した恒等式を有する2n個の行の加算配列を生成
する。
この結果として、固定の恒等式を有する加算配列と、
他の固定の数を有する加算配列との間には、1対1対応
が存在するようになる。
従って、ブロック置換として利用するために関心のあ
る、すべての加算配列は、固定の恒等式を有するか、ま
たは、前述したように、このような配列から得ることが
できる。何れにしても、加算配列は特定化されない限
り、固定の恒等式を有するようになる。一般に、行I
I=Iを省略する。
加算配列の生成 配列内において、独立した行または生成元の分配につ
いての何かを知ることは有効なものである。
命題7 nビットの2進数における、固定のIを有する最大加
算配列において、n個の連続した行は生成元である。
証明 n個の第1番の行について考察すると、以下の通りで
ある: これら行が独立したものでなければ、以下のようにな
ここで、Qは、S≦n−1個の要素を有する{1,…,n−
1}の部分集合である。この配列中の次の行は、xnx
n+1=xn+1-pである。この配列は加算グループであるの
で、以下の事実となる。即ち、およびこれを、連続した
行に対して適用した場合に、s<n個の生成元を有する
全体配列を生成できる(Q.E.D.) このことは、我々の目的であるが、このことによっ
て、n個の等距離離間した行が生成元であることを表し
ている。
以下において、特に説明しない限りにおいて、加算配
列は最大であると共に正規化されており、更に、固定の
恒等式を有している。簡単のため、行II=Iを省略
する。基本配列のk番の行に対する一般形態は以下の通
りである。
xk-1xk=xk-p 基本順列のべき数sに相当する配列に対して、k番目の
行は以下の通りである。
通常のように、nはブロックのサイズで、m=2n−1
である。p1≡pと規定する。psの値について知ること
は、これらを生成するブロック置換を利用するためには
重要なことである。s≠tでなければ、ps≠ptであるこ
とは明白である。
命題8 p≧n 証明 基本配列の(p+1)番の列は、以下の通りである: xpxp+1=xp+1-p=x1 p+1≦nならば、これは、最初のn個の行が互いに相
関しており、これは命題7と矛盾する。(Q.E.D.) 注意:s=m+kならば、sが次数mの順列gのべき数な
ので、以下となる: gm+k=gm・gk=I・gk. そこで、これら指数をモジュロmと表現できる。
命題9 pがシフトに対して許容し得る値ならば=2n−pで
ある。
証明 正規化された順列において、第1列を、第2列に対し
て1段下がって配置する。第3列は、第2列に対してp
段下方にシフトすると共に、第1列よりp−1段シフト
して配置する。第1列と第2列とを相互交換すると共
に、結果として得られる配列の上側を下方に向け(即
ち、行の順序を逆にする)ると、新しい配列において、
第3列は、第2列に対して、m−(p−1)=2n−p位
置だけ下方にシフトされる。順序のみ変更してあるの
で、新しい配列は、これによって同一グループから順列
を発生するという観点において、元の配列と等価なもの
となる。(Q.E.D.) 注意:≧nであるので、p≦2n−nとなる。
命題10 或る整数に対して、べき数s=2rの場合、r≧0、ps
=spとなる。
証明 r=1ならば、s=2およびxk-2xk=xk-p2とな
る。これを書替えると: xk-2xk=xk-2xk-1xk-1xk. k−1とk−pを指数と考えると: xk-2xk=xk-1-pxk-p=xk-p-p=xk-2p. そこで、p2=2pとなると共にこのステートメントはr=
1に対して正しいものとなる。
或るべき数s=2rに対して、ps=2rp、2r+1=2r+2r
と仮定すると、以下のようになる。
xk-2r+1xk=xk-2r-2rxk=xk-2r-2rxk-2rxk-2rxk =xk-2r-2rpxk-2rp=xk-2rp-2rp=xk-2r+1p. (Q.E.D.) pに関して、他に制約、即ち、第3列のシフトがあ
る。gが、加算配列の列2→1によって規定される順列
の場合に、列1→3によって規定される順列がgp-1とな
り、列3→2によって規定される順列がgm-pとなる。こ
れら順列は、明らかに、関連性を有し且つ、g・gp-1
gm-p=g0=Iであり、恒等式の順列となる。
指数1+(p+1)+(m−p)の合計は≡0 mod m
となる。また、明らかに1<p<mである。更に一般
に、べき数gsに対して、対応する順列は以下となる。
gs・gps-s・gm-ps=I 従って、以下となる。
s+(ps−s)+(m−ps)≡0 mod m and ps≠s,m 命題11 加算配列によって、2対の列における基本順列のべき
数sを生成する場合には、3つの列および3s≡0 mod m
のすべてにおいて、このべき数を生成する。
証明 3つの順列の内の2つが同一べき数である場合に、配
列を構成することができ、この結果として、代表的な行
が以下のようになる。
前述のグループ特性によって、これらを互いに加算す
ることによって同一配列中にもう1行が得られる。
xk+sxk+2s=(xkxk+s)(xkxk-s) =xk+sxk-s これは次のことを意味する: xk+2s=xk-s及び3s≡0 mod m. このことは、3|mの場合のみにおいて起こり、この場合
以下となる: ps=−s≡2s mod m,及びps−s=2s−s=s,m−ps=s. 推論 加算配列によって、別の各対を有する同一な順列を生
成する場合に、順列は次数3のものである。
証明 命題11におけるように、h=gsを生成する場合に、h3
=g3s=Iとなる。(Q.E.D.) ps=2s、 またはm−sの場合に、同じ順列が生成され、以下の条
件となる: シフトに対する候補を選択または排除するのに役立つ
種々の事実が沢山存在しているが、現在の処、このシフ
トパターンを完全に決定するための不十分な法則が見つ
かっている。これらの事実のいくつかは以下の通りであ
る: 1. もしps=tならば対称によってpt=sとなる。
2. もしp=2tならば xk-1=xkxk-p=xkxk-2t=xk-2tp=xk-22t これは、以下の場合のみ可能である:22t≡1 modulo m 3. もしp=2t+1ならば xk=xk-1xk-1-2t=xk-1-2tp=xk-1-2t(2t+1) これは、以下の場合のみ可能となる:22t+2t+1≡0
modulo m 4. もしp|mならば となる。その理由としては、それ以外では2tp=m+p
とxkxk-2t=xk-2tp=xk-m-p=xk-p=xkxk-1とt=
0であるから。
最大加算順列の計数 慣習によって、これら加算配列を、列1および列2に
よって規定された順列に従って構成してきた。この順列
が最大長の場合には(即ち、サブサイクルを有しないm
=2n−1個の要素からなる順列)、この配列は、独立し
た自己保存型ブロックを有しない。逆に、最大配列によ
って最大順列を生成する。しかし、最大順列のべき数
は、サイクルを有することも可能である。これは、この
最大長の順列が最初の順位でない限りの場合である。従
って、他の列の対によって生成した順列に関しての一般
的な結論を引出せない。
加算配列によって生成した6個の順列のすべてが同一
サイクルを有する場合には、この配列は、各列が同一要
素を有する同一長の結合していないサブアレイの形態で
対応するサイクルを有している。列1および列2によっ
て生成した基本的な順列が、他の順列によって占有され
ていない循環構造を有している場合には、この配列中
に、結合していないサブアレイまたはブロックが存在
し、この配列中において、列3内の要素は、列1および
列2中の要素から独立している。
また、明らかなように、あらゆる最大長の加算順列を
利用して、最大の配列を生成できる。従って、最初に固
定の恒等式を有する配列および順列を考察すると、最大
長の順列および最大配列の列1および列2の間に1対1
対応が存在すると共に、従って、実体として、配列を有
するようになる。
命題12 nビットの2進数として、シフトpの所定の値を有す
る最大長の加算配列の数量は以下の通りである。
証明 Q(n)を、nビットの2進数の生成元の独立した集
合の数とする。これら生成元の各集合によって、最大配
列を生成する。しかし乍ら、これら生成元が利用される
順位に差が生じる。これは、第3列を導出する項xm=f
(x1,…,xn)は、これら生成元の相対順位に依存するか
らである。そのような順位がn!個存在している。一旦、
配列が生成されると、この配列の開始列または、順列の
開始点は、無関係となる。例えば、第1列がxmx1=x
1-pの場合に、x1x2=x2-pで開始する代わりに底部ま
で循環でき、この結果として、このプロセスはm=2n
1の係数によって冗長なものとなる。従って、以下のよ
うになる: ここで が、nビットワードから選択できる、独立したk個の要
素から成る集合の数であると仮定する。これは、k=1
またはk=2に対して正しいものである。n個の要素か
ら成る集合を単一のnビットワードを(n−1)個の要
素から成る集合に隣接させることによって構成できる。
合体させることができるこのようなm個のワードが存在
する。しかし乍ら、m=2n−1を、 を除去することによって減少させる必要がある。このこ
とによって、この(n−1)個からなる集合において、 によってこれらワードを複製する。
は、(n−1)の集合内のワード対の合計であると共
に、最後に、 によって複製する。このワードは、(n−1)個より成
る集合のすべてのワードの合計である。従って、mを以
下によって減少する必要がある: これらワードの数を、(n−1)個より成る集合=2n
−1−(2n-1−1)=2n−2n-1に隣接させる必要があ
る。しかし乍ら、n個の要素より成る集合を、n個の異
なった(n−1)個の要素より成る集合によって生成で
きるので、 となる。その結果、以下となる。
(Mn)を、演算し易い形態に書換えると: ここで 単純な再帰関係が存在する: M(n+1)=2n(2n−1)M(n) mが素数でない限り、順列グループには、最大でない
順列のいくつかが含まれるようになり、このため、或る
適当なサイクルを有するようになる。これらは、最大の
順列のべき数gsであり、ここでsは、mの除数である。
これらは、m−1の除数であるsの値の数を計数するこ
とによって計算できる。
固定のIを有するnビットの数字の加算順列のグルー
プにおいて、L(n)個の最大順列およびS(n)個の
最大でない順列が存在する。
L(n)+S(n)=m−1=2n−2 nビット数の集合に対して、2n!個の順列が存在する一
方、独立した置換が得られる2n-1!のみが存在する。そ
の理由としては、この順列内の開始点によって何ら相違
が生じないからである。最大の加算配列において、固定
の行以外の行の順序を循環できる。これら加算配列によ
って、単一の固定点を有する順列の部分集合である処の
順列を生成する。F(n)が、2n個の固定したワードの
いずれか1つを保有する順列の全体数である場合に、こ
のF(n)は以下のようになる: 便宜上、多数の他の項について定義できる。これら項
は以下の通りである: Np(n):p1の独立した値の数で、nビット数の最大
加算配列の列3における基本的なシフトである。
M(n):所定のpおよび所定の固定点に対する最大
加算順列の数であり、これは、命題12より導き出す。
T(n):所定のpおよび所定の固定点に対する加算
順列の合計数である。2n−1が素数の場合に、T(n)
=M(n)となり、一般的には以下のようになる。
H(n):nビット数に対する加算順列の合計数であ
り、以下の通りである。
H(n)=2nNp(n)T(n). G(n):nビット数に対する加算順列のグループの数
であり、以下の通りである。
表1はビットサイズn≦8に対するこれらパラメータ
のタブである。比率H(n)/F(n)によって、加算順
列の相対的にまれな値が与えられる。
バイアスされないブロック置換 ブロック置換デバイスを設計するに当たっての最終目
標は、nビットの2進数を、それら自身に対して、バイ
アスされない状態で変換する方法を有することである。
このことは十分に規定されているように見えるが、基本
的には暗号テキスト中に、明瞭なテキストの性質に関す
る情報が、何も含まれていない。例えば、部分集合をそ
れ自身にマッピングする必要はなく、ある特徴(例え
ば、二進位置における、下方向の半分や、ゼロである)
を有する数字を、同一の特性または逆の特性を有する数
字のイメージと、等価的に類似させる必要がある。ラン
ダムな入力に対して、等価的に類似するすべての出力を
所望することは、不十分であると共に、この変換が1対
1であることのみ要求される。そこで、以下の定義を提
案する。
定義 nビットの2進数を、それ自身への置換または変換
は、以下の場合において、バイアスされないしていると
称す: a).単一の固定点以外に、不変の部分集合が存在しな
い場合。
b).nビット数の最大のサブグループのすべてを、2つ
の等価な部分に対して、それ自身へおよびそれの相対補
数にマッピングする場合。
更に進める前に、これら最大のサブグループに関する
事実を収集する必要がある。同一の二進位置においてゼ
ロを有する2進数の集合は、そのようなサブグループで
ある。しかし乍ら、同様に他にも存在する。2k次のサブ
グループを、2k+1次のサブグループ中に埋設すると共
に、2k個の要素を有するより大きなサブグループ中の相
対補数を有するようになる。
命題13 Gnを、グループオペレーションのように、モジュロ2
加算を有するnビットの2進数のグループに設定する。
Hを、2n-1次のサブグループにすると共に、HをGn内の
その補数にする。次に、xに対しては、以下の通りでy
∈,xy∈H,またx∈Hおよびy∈ならば、以下の
通りとなるxy=z∈ 証明 恒等式I=(0…0)を含まないので、はサブグル
ープとなれない。定義によれば、x,y∈H,ならば、以下
の通りであるxy∈H. z=xyとし、ここでx∈Hおよびy∈.もしz∈
Hならば、グループ特性によってy=zx∈Hとな
る。これは、矛盾であり、その理由は以下のためであ
る:H∩=.そこでz∈.となる。Hとにおける
要素の数は、p=2n-1である。このH内の各要素、また
は2進数を、Hに属するp対よりなる数の合計として書
くことができる。このことによって、HからHまで、p2
個の対が与えられる。
混在させた対の合計であるHにおける数を、2つの考
察方法で表現できる。即ち、p2個の対であり、ここで
は、Hからp個がHからのp個に整合している。もう1
つのp2個の対を、からのp個のワードをHからのpワ
ードで整合させることによって生成する。このことによ
って、Hにおける混在させた合計を表す方法として合計
で2p2通りの方法が得られる。
Gの全体において、2p個のワードが存在しており、こ
れを(2p)=4p2対と表せる。残りのp2個の対は、H
からの数の合計が得られる対である。以上において、2p
2個の対は、に相当し、p2個の対はHに相当する。H
ととの2組は、同数の要素を有するので、残りのp2
の対は、Hに帰属する。
(即ち、x,y∈⇒xy∈H)(Q.E.D.) nビットの2進数Gnのそれらの置換は、Tの変換とし
て考えられる。この結果、これを以下の加算配列で表す
と、TGn=Gnとなる。
次に、第1項によって変換Txk=zkを規定する。Tが
線形ならば、 T(xjxk)=TxjTxkとなる。
命題14 固定の恒等式を有する最大の加算配列によって、線形
変換が規定される。
証明 一般の行は、xk-1xk=xk-pである。
Tを、列2を列3へマッピング変換させる、Txk=x
k-p。以下の通りとする: xkxj=xi. T(xkxj)=Txi=xi-p. TxkTxj=xk-pxj-p. この配列は命題3による加算グループであるので、以
下のようになる: xk-pxj-p=(xkxj)(xk-1xj-1)=xixi-1=xi-p および T(xkxj)=TxkTxj. この特性は、一般に、Gnに関する1対1変換に対して正
しいものではない。
命題15 nビットの2進数のそれ自身への変換は、I=(00…
0)が固定点の場合にのみ、線形状態となり得る。
証明 一般性を失わずに、nビットの2進数を、以下の順序
で構成できる即ち、各2進数に続く数字は変換処理の下
では、それのイメージとなるような順序である。
Tが線形なので、集合1,…,mにおける或るiに対し
て、以下となるT(xkxj)=TxkTxj=xk+1xj+1
xkxj=xiまた、xj=xiならば、T(xkxj)=T(xk
I)=TxkTxjとなり、これは以下を意味する。(Q.
E.D.) 証明 一般性を失わずにnビット数を、別の順序で構成する
こともできるので、その結果として各々を、それの後続
するものにマッピングできる。即ち、 命題15に基づいて、Tが線形ならば、I=(0…0)
は固定点である。最初に、Txk=xk+1に循環性がないも
のとする。Tが一次(線形)変換なので、T(xkxj
=TxkTxjとなる。もしxi=xkxjならば、以下のよう
になる: zk=xkxk-1をm=2n-1個の2進数(但し、I=(0
…0)以外の)の各々に対して与えられる。m=2n-1
のこのような等式が存在する。zkは、I以外のnビット
数のすべての値をとるか、または複製したものが存在す
る。あるk≠jに対してzk=zjを考える。従って、xk
xk+1=xjxj+1とxi=xkxj=xk+1xj+1=xi+1,にな
り、矛盾である。
循環性または不変の集合が存在する場合には、各循環
性を、上述のように、自己保持集合として書換えられる
と共に、同じ理由付けを各サイクル(循環性)に与えら
れる。(Q.E.D.) 以上において、Gnに関する、すべての一次変換が、固
定の恒等式を有する加算であることを見てきた。次に、
非線形(少なくとも数学者にとって)であるアフィン変
換について考察する。このアフィン変換には、以下のよ
うな特性を有している:T(xy)=TxTy、ここで
Cはある定数がある。
命題17 恒等式以外の固定点を有する最大の加算配列によっ
て、アフィン変換を定義する。
証明 或る固定数Aを有する加算配列を、固定のIを有する
配列から、行AA=Iをこの配列内の各行に加えるこ
とによって得ることができる。
固定のIを有する配列において、Txk=xk-pである。
固定のAを有する配列において、T'(xkA)=xk-p
なる。次に、以下のように設定し直す: xj=xkA,T′xj=Txk=T(xjA). T′(xy)=T(xyA)=T(xAyAA) T′(xy)=T(xA)T(y+A)+TA T′(xy)=T′xT′yCこでC=TA.となる。 (Q.E.D.) T'が任意のアフィン変換である場合には、一次変換T
の項をT'x=TxCとして書換えられる。命題16によっ
て、Tを加算配列として表すことができる。A=T-1Cを
規定することによって、対応の加算配列を生成して、T'
を表すことができ、これは行AA=Iを、Tに対する
配列の各行に加えることによって達成できる。
命題18 Hがnビットの2進数のグループであるGnのサブグル
ープであると共に、Tが一次変換、またはA∈Hを有す
るT'x=TxTAがGnのアフィン変換である場合に、これ
らTHおよびT'HはGnのサブグループである。
証明 G=THとする。命題15と16とに基づいて、Tを、固定
の恒等式を有する加算配列によって表すことができる。
I∈H,TI=IそこでI∈Gとなる。x,y∈Hとする。H
は加算グループxy=z∈Hであるので、Tx,Tyおよ
びTz∈Gとなる。
Tz=T(xy)=TxTy∈Gの線形特性によって、G
はモジュロ2加算の下で近接する。あらゆるx∈G,x
x=I∈Gに対してxは、それ自身の反転したものでG
はグループである。アフィンの場合に、TA∈GとT′A
=TATA=Iとなり、I∈Gとなる。T′xT′y=
T′(xyA)∈G。これは、以下の理由に基づ
く:xyA∈H (Q.E.D.) 命題19 最大長の線形(一次)またはアフィン変換はバイアス
されないなものである。
証明 最大値であるために、真先にこの変換には、それの固
定点以外では、循環性を有しないと共に、この結果とし
て適当な不変の集合を保有していない。
Tを線形とし、Gnの最大サブグループHを考察する。
以下2つの集合を定義すると: もし、x,y∈MならばT(xy)=TxTy∈Hとな
る。その理由は、Tが線形であると共に、Hがグループ
であるからである。従って、xy∈Mとなる。各xが
自己反転しているので、Mはサブグループであると共
に、NはHに対してそれの補数となる。
もし、x∈Mおよびy∈Nならば、次のようになる:z
=xy∈H。従って、MまたはN内である。もし、z
∈Mならば、そのグループ特性によって次のようにな
る。y=zx∈M。その結果として、z∈Nとなる。
x、y∈N、Tx、Ty∈ならば、最大のサブグループ
Hの補数である。命題13に基づいて、TxTy∈Hとな
る。直線性のために、T(xy)∈Hとなる。x,y∈
Hのためxy∈Hとなる。T(xy)∈Hのためx,
y∈N⇒xy∈Mとなる。
Tは、適当な不変の部分集合を有していないので、TH
≠HおよびN≠,即ち、空の集合となる。x∈Nを選
択すると共に、xおよびm Q⊂Hによって生成したグル
ープQについて考察する。このQには、複素数xMが
含まれており、これには、xy、ここでy∈Mである
ような形態の対のすべてについて包含されている。明ら
かに、M⊂Qである。z∈Nを選ぶ(ここではz≠
x)。これは、|H|=2n-1を|M|で割算するために可能と
なる。そこで|N|≧2となる。あるwに対して、z=x
wとなる。z、x∈Hであるので、グループはw∈H
ともなる。x、z∈Nであるので、w∈Mとなる。従っ
て、NまたはMのいずれかの要素は、Qの要素となる。
従って、Q=Hであると共に、MはHの最大のサブグル
ープである。Hは2n-1次であるので、この結果として、
最大サブグループMの次数は、 となる。
注意:TMはグループであると共に、|TM|=|M|。
T'を、T'x=TxTAおよびC=TAで規定したアフィン
変換とする。再び、2つの集合を規定すると、以下のよ
うになる: C∈Hであると仮定する。x∈M'ならばT'x=TxC
∈Hとなる。従って、Tx∈HおよびM'⊆M、x∈Mなら
ばTx∈H.T'x=TxC∈H、その結果、x∈M'およびM'
=M.M∪N'=HおよびM'∩N'=のため,N′=Nとな
る。ここから、この証明は、第一部門のように進行す
る。
今、C∈と仮定する。x∈M'ならばT'x=TxC∈
H従って、Tx∈HおよびM'⊆M、x∈M、Tx∈Hならば
T'x=TxC∈H、M'=Nおよび、その結果として、N'
=M。この場合に、M'はサブグループではないが、この
証明の第1部分、即ち、 である。このHが最大なので、相対補数~Hは、全体の構
成であり、この結果、C∈HまたはC∈となる。(Q.
E.D.) Tが線形である場合には、この証明によってあらゆる
サブグループが保持される。Hが2n-1の次数であれば、
n−1ビットの2進数のグループGn-1に対して、同型の
ものとなる。Gn-1は、Hから成るGnにおいて、関連した
補数を有するようになる。同一のプロセスがGn-1にも適
用できる。このことによって、以下に示したようにサブ
グループの連鎖シーケンスが導出される: Gn⊃Gn-1⊃・・・G1⊃G0={I} ここで、各Gkを、Tハーフによって、Gk-1にマッピング
すると共に、ハーフをにマッピングする。
注意:Gn-1等に対する数個の候補で開始できるので、こ
れらサブグループのこのシーケンスは独特なものでな
い。
加算配列によって、バイアスされないの置換または変
換を生成することを見てきた。次に、以下に規定される
方針でバイアスされない的な変換または置換に対する必
要な特性を考慮する。
命題20 Gnは、m=2n−1個の最大サブグループを有する。
証明 Gnは、n個の独立したnビット数によって生成され
る。{x1,x2,…,xn}をそのような集合にする。生成元
のn−1の部分集合によって、最大の部分集合を生成す
る。
の最大サブグループをこの方法で生成する。最大サブグ
ループの、このような収集をH1,H2,…,Hnと設計する。
ここで、Hiは{x1,・・・,xi-1,xi+1,・・・,xn}によ
って生成される。換言すれば、xiを除いたすべてによっ
て生成される。次に、各inに対して、xiであ
ると共に、i≠jに対して、xi∈Hjである。
次に、最大サブグループ間での演算“H"について定義
する。
Hk=Hi+Hj≡(Hi∩Hj)∪(). 非接合集合の集まりであると共に、|Hi∩Hi|=|
j|=2n-2であるので、|Hk|=2n-1となる。xc=xa
xbとし、ここでxa,xb∈Hk
3つの可能性が、存在している。即ち、 1. Xa,xb∈Hi∩Hj従ってxc∈Hi∩HjこれはHi∩Hjがグ
ループであるからである。
2. xa,xb従って、命題13に基づいて、xc
∈,Hi∩Hjとなる。
3. xa∈Hi∩Hjおよびxb 従って、命題13に基
づいてxcとなる。
xc∈Hkの場合、明らかにI∈Hkであり、そこでHkは、
最大サブグループでもある。
このような方法で生成した最大サブグループの各々に
対して、xk=xixjを組合わせることができる。即ち、
xkは集合{x1,x2,…,xn}内の生成元の合計である。こ
の集合は、~Hkに属している。明らかに、この方法で生
成した最大サブグループの合計はmであり、nビットの
数に1対1対応している。
このような方法で生成しなかった最大のサブグループ
Hoが存在しているものとする。q数、{xa,xb,・・・}
を、すでに生成したあるHkに対する生成元{x1,x
2,・・・,xn}・xo=xaxb・・・.xo=xkの最大の部
分集合とする。これら生成元によって独特の合計を生成
するので、{xa,xb,・・・}∈となる。p個の残り
の生成元{xf,xg・・・}∈Ho∩Hkこでp+q=n。従
って、(Ho∩Hk)∪()は最大サブグループ
となる。これは、Ho=Hkでなければ、可能なものとなら
ない。(Q.E.D.) 最大のサブグループと数との間には、関心関係が存在
している。Gnは、それ自身の最大のサブグループである
ことは明らかである。Gn+Hi=Hi+Gn=HiおよびHi
Hi=Gn。最大のサブグループ={Gn,Hi,・・・,Hn,H1
+H2,・・・}の収集によって、恒等式として作用するG
nと一緒の演算“+”の下で、グループを構成する。前
述した規定によってxk→Hkへのマッピング状態の下で
は、^GはGnと同一なものである。
上述した証明は、少し複雑であるが、これによって、
サブグループの構造のあるものを表している。同一の結
果が更に基本的な手段によって得られる。
(n−1)個の独立した要素の各集合によって、2n-1
次の最大のサブグループを生成する。命題12から、独立
した(n−1)個の要素からなる集合の数は、Q(n,n
−1)である。しかし、異なった(n−1)個からなる
集合によって、同一のサブグループを生成できる。次数
n−1のサブグループは、n−1ビットの数のグループ
と同一である。この後者のグループには、Q(n−1)
個の独立した(n−1)個の要素から成る集合を有して
いる。従って、(n−1)ビットの数のグループを、Q
(n−1)組の生成元によって発生でき、各最大グルー
プを、すべての独立した(n−1)個より成る集合を利
用してQ(n−1)回、生成する。そこでGnの独立した
最大サブグループの数は、以下となる: 推論 恒等式以外の数の各々が、 個の最大サブグループ内および 個の補数内に発生する。
証明 m個の最大サブグループが存在するので、各数は、最
大サブグループまたは、それの補数内において、m回現
れるようになる。非恒等式数に対する 個の残余の場所が、最大サブグループ中に現れると共
に、補数内に 個の場所が現れる。従って、対称によって、非恒等式数
の各々は、 個の最大サブグループ中および 個の補数中に現れるようになる。(Q.E.D.) 命題21 Hi、Hj、Hkが、3つの独立した最大のサブグループで
ある場合に、Gn=Hi+Hj+Hkとなる。
証明 Hiの各々およびの各々は、 個の数を有する。また、Hi∩Hj,Hiおよび
個の数を有する。Hi∪Hjにおける独立した数の集合は、
集合(Hi)∪(Hi∩Hj)∪(Hi∩Hj)であり、こ
れは、 個の数より構成される。失った 個の数は、。Hk=Hi+Hj=(Hi∩Hj)∪(
)に含まれている。従ってGn=Hi∪Hj∪Hkおよ
びGn=Hi+Hj+Hk。(Q.E.D.) 推論 いずれか3つの従属した数{xi,xj,xk}の集合で、こ
れら数はいずれもIでない数であり、この集合には、m
個の最大のサブグループの各々から、少なくとも1つの
数が含まれている。
証明 命題20の証明において、一組の最大サブグループを、
一組のGn、{x1,x2,…,xn}の生成元のために生成し
た。これら生成元を、これらのサブグループに関して以
下のように書換えられる: |Hk|=|k|=2n-1,|Hjz∩Hk|=|k| =|Hjk|=|∩Hk|=2n-2. 帰納法によって、これらn回折れた交差部分は、 の要素を有すると共に、単集合である。例として、x1
x2およびxk=x1x2を採用する。
Hk=H1+H2は、命題20の観点において、従属した集合で
あり、xkはHkと組合わされた数で、命題21によって、Gn
=H1+H2+Hkとなる。命題13に基づいて、以下となる: {xk}=∩H3∩・・・・∩Hn 勿論、 である。最大のサブグループのいずれも、の形態のもの
である。ここで、iは、{1,2,…,n}の部分集合を越え
た範囲である。i≠1,2ならば、{x1,x2,xk}∈ΣHi
なる。さもなければ、次の3つの場合が考えられる: 1. i≠1,=2 x1∈ΣHi 2. i=1,≠2 x2∈ΣHi 3. i=1,=2 xk∈ΣHi (Q.E.D.) これは、ベクトル空間を有する置換とは異なるもの
で、ここでは、ベクトルの独立した集合によってこの空
間を分けている。
命題22 Gnをそれ自身への1対1変換は、これを複製配列によ
って表現できる場合および場合にのみ限り、バイアスさ
れない状態となる。
証明 序文で示したように、TGn→Gnへの変換(ここでTxi
Zi)を、yixi=ziの形態で書くことができる。これ
は、2列マトリックスのモジュロ2加算によって表現で
き、以下に示した第3のものが得られる: yiマトリックスによって変換Tを表す。各マトリックス
は2n個のエントリを有するようになる。xiおよびziマト
リックスに対して、2n個のnビットの2進数の各々が、
一度だけ現れる。その理由は、Tは、これに対して1対
1であるからである。Tがバイアスされない状態である
と共に、yiマトリックスが、繰返されたnビットの数の
いくつかを有することができるので、その結果として、
2n個の数のすべては別個なものとならない。
m=2n−1個の最大サブグループH1、H2、…、Hmが存
在している。Tがバイアスされない状態なので、これに
よって、各Hiを以下のようにマッピングする: 命題13から、最大のサブグループHiとそれの補数に対
応するブロック中にマトリックスを構成することが可能
となる。即ち、 Tはバイアスされない状態なので、これら4つのブロ
ックの各々を、2n-2個の数字より構成する必要がある。
nビットの数を、yマトリックス中において、yo=I、
y1、y2、…、ynと設計することができると共にこれらの
各々は、多項目の根の多重度pj≧0と共に現れるように
なる。yj∈Hiの場合に、aij=1とし、y1∈~Hiの場合
に、aij=0とする。明らかに、すべてのiに対して、a
io=1となる。その理由は、恒等式Iは、各サブグルー
プに属する。各Hiおよび~Hiに対して、以下の方程式が
成立する。
これら2組の方程式は、矛盾していない。その理由は、
以下の通りであるからである: m個の最大のサブグループに相当するm個の方程式を、
マトリックス形態で書くことができる。即ち、 左辺のm×mマトリックスの行列式を用いて、クラメー
ルの法則を利用して、piを解くことができる。例えば、
以下のようになる。
推論から命題20まで、分母中の行列式の各行は、1で
ある 個のエントリを有していると共に、0である 個の
エントリを有している。列2から列mまでを列1に加算
することは、行列式の値を変化させるものでない。その
結果として、以下のようになる。
各行列式において、一定な第1列を因数分解すると共
に、i番目の列に対して、同一結果を保つようになり、
この結果、以下のものが得られる。
i≦i≦mに対して、 po≦1である。その理由は、po>1は、バイアスされな
い置換の定義に反して、1つ以上の固定ワードを意味す
る。po=0の場合に、 これは整数でない。
残り可能性はpo=1であり、この場合、すべてのiに
対してpiが以下のようになる: 従って、この変換がバイアスされない状態ならば、す
べてのpiは1となる(pi=1)。これは定義によって複
製配列である。
注意:このpoの値を限定するためのバイアスされない置
換の定義に対して、注意を払う必要はない。po≧2なら
ば0<pi<1であり、これはまた、不可能なことであ
る。
また、この変換が複製されたものであるものとする。
任意の最大のサブグループHを考察する。各マトリック
スの列は、H中に2n-1個のエントリを有すると共に、~H
中に2n-1個のエントリを有している。これらマトリック
スを、命題13を駆使して、以下のように、ブロック内で
書替えることができる。
ここで、xマトリックス中において、Hからのb個のエ
ントリと、~Hからの2n-1−b個のエントリとを、yマト
リックス中のHからの2n-1個のエントリに加算する。こ
のことによって、Hから合計で2b個のエントリと、zマ
トリックスの~Hから2n−2b個のエントリとが生じる。こ
の変換が複製なので、z列のマトリックスは、~Hから|H
|=2n-1個のエントリを有するようになる。従って、2b
=2n-1およびb=2n-2=2n-1−b。そこで|TH∩H|=|T
∩|=2n-2およびTはバイアスされない状態とな
る。Q.E.D. 命題14は実際上、命題22に包含されているが、前者の命
題の証明によって、変換の構成および線形性から得られ
る追加の特性について更に詳細に開示されている。
従って、nビットの2進数のバイアスされない置換
は、以下の3つのカテゴリーの1つに該当するようにな
る。
1.これは反復性であるが、必要性ではない。一般にそれ
のべき数は反復性ではない。これは非線形変換であり、
これはまた、アフィンではない。
2.恒等式以外の固定点を有する加算性である。これのべ
き数もまた加算性である。これら変換のこのグループの
すべては、アフィンである。
3.固定した恒等式を有する加算性である。これのべき数
もまた加算性である。これら変換のこのグループのすべ
ては線形である。これらによって更に別の特性が設けら
れており、これらによって、すべてのサブグループを分
割すると共に、最大のサブグループを分割するものでな
い。
付録 2 ブロック置換用機構としての非線形動的置換デバイス 目次 1. 序論 2. 線形およびアフィン・オーソモーフィズムに関する
背景知識 3. 非線形オーソモーフィズムおよび動的置換デバイス
(DSD) 3−1 概要 3−2 線形オーソモーフィズムの変換 3−3 非線形化の要約 3−4 非線形化手法のアプリケーション 3−5 非線形化のための行および方程式の選択 3−6 非線形化手法の要約 3−7 他の行選択 4. バイアスのない暗号書記法 4−1 アバランチングおよびビット独立 4−2 バイアス欠如の他の基準 4−3 オーソモーフィズムのアプリケーション 参考文献 付録 1. 序論 動的置換デバイス(DSD)という用語は、テレダイン
・エレクトロニクス社で新造されたもので、2進数の明
快なテキスト・ブロックを2進数の暗号化ブロック(ま
たはその逆)にマッピングまたは順列することを、いわ
ゆるオーソモーフィズム(正形態)により達成されるブ
ロック置換デバイス、すなわちS−ボックスを示すもの
である。
すべてのブロック置換は、ルックアップテーブル、順
列、またはブール関数により述べることができる。ルッ
クアップテーブルは、対応する明快なテキストおよび暗
号テキスト対の単なる一覧表である。順列は、ルックア
ップテーブルを示すための通常の方法であり、サイクル
またはマップされた数の一部を示すという利点がある。
順列には、S−ボックスの設計において考慮に入れるこ
とのできる多少の代数的特性もある。(一般的に用いら
れる)ブール関数は、従属変数が別のnビット数の個々
のビットであるところのnビットの2進数またはブロッ
クの関数である。このように、ブール関数は、nビット
数のブロック置換を述べるために必要とされる。
オーソモーフィズムはブロック置換を述べるための別
の方法であるが、大部分のブロック置換はオーソモーフ
ィズムではないので特別な部類に入る。参考文献2に示
すように、現在多くのオーソモーフィズムがある。ルッ
クアップテーブルまたはブール関数により述べると、そ
の特別特性が不明瞭になりがちである。
Gnを調整に関するモジュロ2加算(記号で示す)の
もとでのnビットの2進数群であるとすると、Gnのオー
ソモーフィズムは{xR(x)}εGn=Gnになるよ
うな1対1のマッピング(R:Gn→Gn)である。これは、
2n対の収集において2組の数の各々で各数がちょうど一
度現れるように、および対の和モジュロ2が再びGnであ
るようにして、各nビットの2進数を別のnビットの2
進数と対をとったものと同等である。(これを今までに
行うことができたかどうかは明らかではない)ある数は
モジュロ2をオールゼロ加法一致に加えなければならな
いので、これは1つの固定小数点を伴う全単射マッピン
グを成す。
2. 線形およびアフィン・オーソモーフィズムに関する
背景知識 線形(保形)およびアフィン・オーソモーフィズムは
参考文献3および4にその詳細を述べる。線形オーソモ
ーフィズムは、ブロック・サイズnに対する2n個の方程
式の集合により表すことができ、各xiはnビットの2進
数である: ここで、m=2n−1であり、pは、初期条件または重要
変数{x1,x2,...,xn}とは無関係で、母関数により決ま
る整数である。この方程式の集合は、三次元スペースで
の2nベクトルの集合と考えることができる。これらのベ
クトルは成分に関するモジュロ2を追加することができ
る。
線形の場合、1組のベクトルが加法群を形成するが、
それは長所でもあり短所でもある。いずれかの組のn個
の線形的に無関係なベクトル(方程式)が分かっている
と、群の特性から残りの方程式を求めることができる。
すべてのブロック置換と同様に、マッピングは順列によ
り表すことができる。この場合、どのカラム対を選ぶか
により3つの順列がある。慣例として、一般にカラム
1、xk-1からカラム3、xk-pへのマッピングを考え
る。参考文献3および4に述べる補償特性とは、カラム
1をカラム2に関してシフトした場合、カラム3も対応
する大きさだけシフトされ、新しい線形オーソモーフィ
ズムを表す。
新オーソモーフィズムを表す順列は、元のオーソモー
フィズムを表す多数の順列である。参考文献4には、こ
れらの順列が、推移的な次数2n−1の循環順列群を成す
こと、すなわち固定数以外の各数がオーソモーフィズム
のファミリにより1つおきの数でマップされることが示
されている。
アフィン・オーソモーフィズムは、元の2nの方程式の
各々をSS=Θの方程式にベクトル的に加えることに
より、線形オーソモーフィズムに変換したりそこから誘
導することができる。ここで、Sは固定数である。
実際、線形DSDは、連続変化するシフト位置ととも
に、または同等に、異なる順列群とともに用いられてい
る。このようにして用いると、S−ボックスは非線形で
ある。
非線形性に対する線形性には別の側面があり、既述さ
れるレベルの側面である。オーソモーフィズム・ブロッ
ク置換は、線形的に独立したnビット数の最大の集合に
適用される線形再帰的母関数により誘導されている。あ
る集合の方程式におけるあるカラムから別のカラムへの
数のマッピングは、ビットごとのモジュロ2加算演算の
もとでも線形的である。しかし、該マッピングを演算モ
ジュロm(m=2n−1)のもとで考えるならば、マッピ
ングは一般に非線形である。ここで、すべてのベクトル
x、y、およびスカラーa、bに対してF(ax+by)=
aFx+bFyとなるように、線形性はマッピングFの特性に
より定義される。
参考文献1では、S−ボックスまたはマッピングは、
ブール関数、すなわちnビット数(明快なテキスト)を
nビット(暗号テキスト)の数の1ビットにマップする
n関数の集合により定義される。オーソモーフィズムは
ブロック置換なので、特別な種類だが、このように表す
こともできる。参考文献1では、マッピングまたはブロ
ック置換が整数レベル(おそらくモジュロm加算のも
と)で非線形であるための十分な条件は、すべてのnブ
ール関数が(ビット・レベルにおいて)非線形であると
いうことが証明されている。これは必要な条件であると
断言されてはいない。付録に、整数レベル・モジュロm
において非線形である線形ブール関数を伴う線形オーソ
モーフィズム(モジュロ2加算)の例が与えられてい
る。
3. 非線形オーソモーフィズムおよび動的置換デバイス 3.1 概要 非線形性の異なる定義に関する最後の章の注釈を考慮
して、Gnから、ビットに関するモジュロ2加算の演算の
もとでのGnへの非線形マッピングであるという意味で、
本章は、非線形オーソモーフィズムを用いるブロック置
換と特に関係がある。非線形オーソモーフィズムを考察
する動機づけは2要素ある: a. 線形オーソモーフィズムよりも多くの非線形オーソ
モーフィズムがある。
b. 非線形オーソモーフィズムは、グループ対称性が欠
けているので、暗号解読に対して、線形またはアフィン
・バージョンよりもずっと耐性がなければならない。
しかし、非線形オーソモーフィズムは自己同形群を生
成しないし、対応する動的置換デバイスがシフト動作に
より順列を変更することができないという点に矛盾があ
る。
第一の問題点は、非線形オーソモーフィズムを定型的
に作成する方法を見つけることである。あるアプローチ
では、参考文献4のprop.1で用いるプロセスの変形を試
みて、各カラムのn数の連続組が線形的に独立している
べきだという要求条件を緩和し、オーソモーフィズムを
表すために1組の方程式を作っている。n個の線形的に
独立した数を選び、次のような方程式の配列を始める: 線形的に独立した集合{x1,...,xn}の選択は、バッデ
イング・オーソモーフィズムのn−1個の方程式を指定
する。{x2,...,xn+1}および{z2,...,zn+1}が線形的
に独立であるように、xn+1の候補を選ぶと、連続する
ステップがxmまで続くならば線形またはアフィン・オ
ーソモーフィズムを生じる。線形独立についての制約を
取り除くと、唯一の制約はxn+1またはzn+1のいずれも
がその前を複製しないことである。この手順で経験する
問題点は、ほとんど常にxm(m=2n−1)に達する前
に選択するものがなくなることである。普遍性をなくす
ことなく、固定小数点が式ΘΘ=Θにより得られるこ
とを前提とすることができる。非常に長い経験的手順を
避けるために、幾つかの補足的指導が必要である。
別のアプローチは、線形オーソモーフィズムを定義す
る方程式の集合を選び、和の第3カラムが変わらないよ
うにして2つのカラムの数字を並べ換えて、線形オーソ
モーフィズムを非線形オーソモーフィズムに変換するも
のである。次節でそのアプローチについて調べる。
3.2 線形オーソモーフィズムから非線形オーソモーフ
ィズムへの変換 線形オーソモーフィズムはベクトルとして扱われる方
程式の加法群として表すことができ、成分ごとのモジュ
ロ2を加えて、オーソモーフィズム・ブロック置換を表
す方程式の同じ配列または群の別の方程式(ベクトル)
を得ることができる。一致方程式(ΘΘ=Θ)は除い
て、オーソモーフィズムは次のように書くことができ
る: カラム3の和を保つようにカラム1および2の数字をそ
の間で再配列すると、非線形オーソモーフィズムが得ら
れる。オーソモーフィズムは3つのカラム間の関係に基
づいているので、3つの行の間の関係を捜すことが直観
的に試みられる。群構造のために、最初の3つの方程式
のベクトル和は、すでに位置qにある別の式になり、q
は次で与えられる: この最後の式は、カラム1のp+1のシフトまたは基本
順列の(p+1)乗を表す配列から得られる。
したがって: x3−(p+1)x3=x3−p(p+1) および q≡3−p(p+1)モジュロm ここでp(p+1)はカラム1のp+1のシフトに対応
するカラム3のシフトである(参考文献4)。
普遍性をなくすことなく、線形オーソモーフィック配
列の最初のj行を選び、隣接する行の連続する3つの和
をとる。その最初は次のようになる: (xmx1x2)(x1x2x3)=(x1−ps2−px3−p) これは方程式配列のq番目の位置の行で次のように書く
ことができる: xq-1xq=xq-p このようにして得られる残りの行は次のようになり: q−j行だけj組の方程式から取り出した元の配列の合
計j−2の隣接行に対するものである。j−2行の第二
群は、カラム1および2の共通数字を消去して自然変換
を行い、下記のようになる: これらのj−2変更行では、カラム1は、第1集合のカ
ラム1のxj-2およびxj-1以外すべて、およびカラム2
のx1およびx2以外すべてを複製する。このプロセスがう
まくいくならば、第1集合の複製を第2集合のカラム1
および2のj−2の元の数字と置き換えるためのメカニ
ズムを見つけなければならない。しかし、第一の疑問は
それが可能であるかどうかということである。
Sを第1j方程式のカラム1の数字の集合とし、Tをカ
ラム2の対応する数字の集合とする。これらの集合は、
j−2方程式の第2集合のカラム1および2の元の数字
と、SおよびTの各々に残された2つの数字とから成る
S'およびT'の組で各々置き換えなければならない。
S={xm,x1,…,x j−1}→S'={xj-2,x j−1,x q−1,…,x q+j−4} T={x1,x2,…,x j}→T'={x1,x2,x q,…,x q+j−3} 1つの集合から別の集合に変換する際の条件は相互に関
係がある。xkεSおよびxk→x' kεS'であれば、xk+
1εTおよびxk+1→x' k+1εT'になる。xkxk+1=
xk+1-p=x' kx' k+1なのでx' k+1=xkxk+1
x' kとなる。
xm→x'εS'とすると、Tから、x1→xmx' m=x'1
εT'となる。x'1εT'すなわちx' m=xq-1=xmx1x
2になるためには、x' mεS'が唯一の可能な選択であ
り、その場合x1→x'1=x2である。
同様に、他方では、xj-1εSおよびxj-1→x' j−1
εS'となる。xjεTおよびxj→xj-1xjx' j−1
=x' jεT'となる。再び、x'εT'すなわちx' j=xj-2
xj-1xj=xq+j-3εT'になるためには、x' j−1
=xj-2が唯一の可能な選択である。このようにして、
第一集合のj方程式の最初および最後の変更行は一意に
指定される: xmx1=x1−pはxq-1x2=x1−pになり、 xj-1xj=xj-pはxj-2xq+j-3=xj-pになる。
次に、第二の元の方程式を考える: x1x2=x2−p x1→x'1εS'である。これらを用いているのでx'1≠xq-
1またはxj-2である。
x2→x'2εS'、ここでx'2=x1x2x'1である。
x'=xq,x q+1,…,x q+j−4であればx'2εT'にな
る。したがって、唯一の可能性はx'1=xj-1εS'であ
る。その場合、x'2=x1x2xj-1である。
j≧3にたいして j=3なら x'1=x2およびx'2=x1 x2x1=x2−p j=4なら x'1=x3およびx'2=xq x3xq=x2−
p j>4なら x2εT' j=4であれば、変更すべき4の第一集合のもう1つの
方程式、すなわち第三の方程式である。なぜならば、j
=4、S'={x2,x2,x q−1,x q}およびT'={x1,x2,x
q,x q+1}だからである。唯一の未使用対はxqεS'お
よびx1εT'である。幸いにも、xqx1=x3−pであ
り、変換は完了した。
3.3 非線形化の要約 3つまたは4つの連続する行の組を用いる場合および
その場合にだけ、連続する3つの行の和をとることによ
り非線形化が作用する。3つの連続する行を選ぶと、そ
の結果(答)は: 4つの行の各々にベクトル的に加算することにより変更
することができる: (x1x2)(x1x2)=Θ 4つの連続する行を選ぶと、その答は: ベクトル的に加算することにより変更することができ
る: 1およびq行へ (x1x2)(x1x2)=Θ 2および3行へ (x1x3)(x1x3)=Θ 4およびq+1行へ (x2x3)(x2x3)=Θ 3.4 非線形手法の適用 測定可能な数量であるかのように非線形のレベルにつ
いてしばしば話がでる。どういうわけか、不連続な線形
関数が超越関数よりも非線形的でないように思われる。
暗号文では、線形ブール関数からの非線形ブール関数の
ハミング距離について言及する。線形性は明確に定義さ
れ、線形およびおそらくアフィン関数を削除したとき
に、非線形関数は単に残されたすべてのものであるが、
測定可能性を非線形レベルにありとする傾向に陥る。
最後の節では、任意の線形オーソモーフィズムの4つ
または6つの行を一度に非線形化するための2つの手段
について述べた。これらの方法は、オーソモーフィック
配列の任意の行から始めて、適用することができるの
で、各々は1つの線形オーソモーフィズムから2n−1の
異なる非線形オーソモーフィズムを生じることはできる
が、大きなnでは、方程式の元の配列の大部分は完全な
ままであるという意味において“非常に非線形的”では
ない。したがってこれらの1つまたは2つのプロセスを
繰り返し用いることは当然である。行がなくなることは
除いた制約は、多くの行オーバラップを有することであ
る。元の行、変更行の一部は非線形性の尺度であるとみ
なされるので、次の疑問点は多くのオーバラップしない
行をどのようにして効率的に選ぶかということである。
3.5. 非線形化のための行または方程式の選択 この非線形化プロセスでは3つまたは4つの連続する方
程式の組を選ぶための多くの方法がある。唯一の基本的
な基準は、いずれかの3つまたは4つの組から3つの和
として得られる行が、別の3つまたは4つの組とオーバ
ラップしないことである。その他に、新しいオーソモー
フィズムでの不連続線形部分を避けるために、線形オー
ソモーフィズムからできる限り多くの行を適度に均一な
配列で変更することは明らかであると思われる。まず、
m=2n−1が複合数である場合を考える。dをmの因数
とする。線形オーソモーフィズムから、対応する和の行
qおよびq+1とともに行番号1、2、3および4を選
択する。次に、前節の述べてあるようにして変更される
連続する6つの行を選択することができる。これらの連
続する6つの行番号は: ここでaは連続する値0、1、2、...をとる。このプ
ロセスは2つの方法で終了することができる。まず第一
に、4つの組の方程式の1つを別の組で複製することが
でき、すなわち4つの組をオーバラップし、3つの和で
ある方程式の集合の間で同じことが起こる。これはある
整数aにおいて次の場合に起こる: 1+ad、2+ad、3+adまたは4+ad≡1、2、3ま
たはまたは4モジュロm q+adまたはq+1+ad≡qまたはq+1モジュロm これは次と同等である: ad≡0、±1、±2または±3モジュロm 連続する最初の行、すなわち1と1+d、の間の最小間
隔は、4つの集合で少なくとも4でなければならない。
m=2n−1は奇数で、dはmを割り切り、dも奇数であ
るから、dは5以上である。これはad≡0、±1、±2
または±3モジュロmであることも意味する。
1、2、3、または4≡q+adまたはq+1+adモジ
ュロm 1+ad、2+ad、3+adまたは4+ad≡qまたはq+1
モジュロm これは次と同等である: ad≡±q、±(q−1)、±(q−2)、±(q−
3)または±(q−4)モジュロm これを避けるために、dはq、...、q−4と互いに素
でなければならないが、dが7以上であることを必要と
するので、これらの数のうちの1つは5の倍数でなけれ
ばならない。4つではなく3つの行を選ぶならば、条件 または±(q−4)は省かれる。その場合、dが5以上
であることは上記の条件を満たす。(注:ここでのすべ
ての整数は正なので、条件 モジュロm等は を意味する。dはmを割り切るので、qと互いに素であ
れば、任意の整数bに対してもbm−qと互いに素でなけ
ればならない) 3.6. 非線形化手法の要約 m=2n−1が素でなければ、非線形プロセスで、連続
する4つの方程式を配置するために、mの因数dで、
q、q−1、...、q−4と互いに素である数を捜す
(連続する3つの方程式を配置するためには、q−1、
q−2、q−3と互いに素である数)。
そのような数を見つけることができたときに、非線形
化のための線形配列における均一に配置された密な集合
の方程式が得られる。付録に幾つかの例を示す。
3.7 他の行選択 上記方法が該当しないように思われるときには、別の
明らかな可能性としては、3つおよびその和により定義
される連続する4つの行を選ぶ方法があり、次の4組の
最初の行は前の4組の最後の行(3つの和)のすぐ後に
続く。例えば: このプロセスは次の3つの条件のうちのいずれか1つが
起こるときに終了する: 1.bq≡0、±1、±2モジュロm 2.(b−1)q≡1、−2、−3モジュロm 3.(b+1)≡1、2、3モジュロm qが素であるか、少なくともm±1、m±2またはm±
3の約数でなければ、このプロセスは、非線形のための
オーバラップしない4組の大きな数を生じることができ
る。このプロセスは6つの行とともに行うこともできる
が、終了条件がもっと複雑になる。
一般に、これらの2つの方法は、適切な条件下におい
て、非線形化のための線形オーソモーフィズムからオー
バラップしない集合の方程式を選択することができる。
均一に配列された比較的小さな数の方程式だけは、変更
されないままである。
このプロセスに取り組むための他の多くの方法があ
り、例えばオーバラップなしで4および6つの行の集合
を一緒に適合させる方法がある。これは位相上の問題に
なる。このようにして不連続線形ではない非線形オーソ
モーフィズムを生成することが可能である点が重要であ
る。
4. 暗号バイアスの基準 2進数のブロック置換におけるバイアスがないための
一般に認められている測定できる基準を著者は知らな
い。2つの広く用いられている基準はアバランチング
(良いまたは厳しい)およびビット独立である。他の2
つの考えられる基準が次に提示される。すなわち、
(1)バランス、これは代数グループとしてのnビット
の2進数の特性に関しており、(2)推移性、これはブ
ロック置換に一般に適用されないある順列群の特性であ
る。4つのうちで、多くても3つの基準を同時に満たす
ことができるように思われる。
4.1 アバランチングおよびビット独立 厳しいなだれ基準(SAC)は、1i、Jn(nは
ブロック・サイズ)のすべてに対して、入力ブロックの
i番目のビットを変化させると、その時間の半分で、出
力ブロックのj番目のビットが変化するという特性とし
て定義される。ビット独立基準(BIC)は平均の入力ブ
ロックのi番目のビットを変化させると、出力ブロック
のビットの半分が変化するという特性として定義される
(参考文献1)。これらの特性は、任意のブロック・サ
イズの2進数の代数的特性によっても説明することがで
きる。
Gnはすべてのnビットの2進数の加法群で、記号は
ビット単位でのモジュロ2加算を意味する。
最大n個の小群Hiがあり、“ベーシック”と呼ぶこと
ができ、Hiの各ブロックはi番目の位置に0を有すると
いう特性により定義される。左から右に番号をつけて、
Hnはすべて偶数から成り、H1はすべて下位数から成る。
一般に: 明らかに、Hiは以下の特性により特徴づけられる: 合計して最大2n−1個の小群(MSG)があり、次の演
算により上記のベーシックMSGから得ることができる。
Hk=Hi+Hj≡(Hi∩Hj)∪() これは9.4節の参考文献2に述べるブール環に幾らか類
似しているが、MSGの論理積はMSGではないので、各集合
の論理積により定義される乗法半群特性はここでは適用
されない。加法演算は実際には上記で定義したものの補
数であり、これは、事実上、2つのMSGの和が別の数の
補数であることを定義する。
ある数xのi番目のビットを変化させて新しい数字y
を得ることは、 のようなyを選ぶことと同等である。あるiに対して2n
−1個の対がある。SACは、1≦i、j≦nに対して、T
xTyが、半分の時間でj番目のビットが0となり(変
化なし)、半分の時間でj番目のnビットが1になる
(変化)ことを要求することと同等である。さらに正式
には次のように定義する: Pi={TxTy|xy=0…010…0}ここで1はi番目
のビット位置にある。
注:これはxεHiおよびyεiまたはその逆であるこ
とを意味する。該対は2n−1個あるが和は明確でないこ
とがあるので|Pi|≦2n-1。したがって、SACは下記と同
等である: 1≦i,j≦nに対して、n2の条件で Piは、全く同じものから全く異なる数字までの範囲を
とることのある2n-1個のnビットの数字から成る。各ビ
ットは(順序のない)対(0,1)、(0,0)、(1,1)を
加えて得られる。該対の数字が各々a、b、cであれ
ば、a+b+c=2n-1となり、これはPiを定義する対の
数字である。対の0の数はa+2b=2n-1であり、1の数
はa+2c=2n-1であるから、aは偶数で、Piの2n-1数の
各ビット位置に現れる1および0の数は偶数である。例
えば、n=4であれば、Piには8つの4ビット数を含
み、おそらく明確ではないが、各ビット位置には0、
2、4、6、8個の1を含む。等分に割われていないな
らば(アバランチング)、最も近い近似は2:6である。
多数の出現を含めて、Piを2n-1個の数字の集合とみな
すと、近似的アバランチングの尺度は、すべてのn2個の
i、j対にわたり平均をとった である。
ビット独立基準はアバランチングに関係がある。各集
合の多様性を含めてPiの集合を考える。BICを満たすた
めには、0および1の数は各ブロックでだいたい等しく
なければならない。もちろん、n個の奇数については、
個々のブロックでは決して起こることはできない。Piに
は合計してn2n-1個の2進ビットを伴う2n-1個のnビッ
ト数(複製を含む)がある。NPiを、複製または多数出
現を含めた、Piの集合の0の個数とする。
は所定ビット位置におけるBICの尺度である。全般的にB
ICは次を指定する: 所定のPiについて、数字を次のように列挙するが、Zij
はi番目の数字のj番目の位置で1=2n-1である。
次に、アバランチングは、各カラムの0および1がだい
たい均等に割られることを指定し、BICは行での同等条
件を指定する。
SACおよびBICは、所定のSボックスまたはマッピング
について同じか異なるnビット数の個々のビット間の関
係を指すので、たいていビット・レベル特性と呼ばれ
る。このようにして、オーソモーフィック・マッピング
に適用すると、これらの特性は、重要変数または、母関
数により影響を受けるn個の線形的に独立した数字の特
定集合により異なる。
4−2. バイアス欠如についての他の基準 前節では群演算()がビット単位のモジュロ2加算
であるn個の2進数の群Gnの最大の小群(MSG)につい
て簡単に述べた。m=2n−1個の該MSGのH1、...、Hmが
あり、ブール加法演算のもとである群を形成する: Hk=Hi+Hj≡(Hi∩Hj)∪() n個のMSGは、所定のビット位置にすべて0を有するこ
とで特徴づけられ、例えば、偶数は概念的に容易に心に
思い描かれる。これらは、アバランチングの定義で暗黙
的に用いられるが、他のm−n個のMSGは代数的に同等
に重要であり、n個の線形的に独立したMSGを用いて全
体の集合を作成することができる。参考文献3では、以
下を導入した: 定義:Gnでの全単射マッピングは、各最大の小群をマ
ップするならば、すなわち次数2n−1の各小群で、半分
をそれ自体に、半分をその補数にした場合に、バランス
がとれているといわれる。
Tが全単射マッピングであれば、これは|THi∩Hi|=|
THii|=2n-2であることを意味する。バランスのと
れているときおよびその場合にだけ、Tがオーソモーフ
ィズムであるということも参考文献3に示してある。こ
のように、バランスは、線形性または重要変数とは無関
係に、整数レベルでのオーソモーフィック・ブロック置
換の一意および普遍的特性である。現実的な結論は、オ
ーソモーフィックSボックスの設計において、この特性
を組み入れるか確認するために特別な努力を払う必要は
なかった。
推移性は、特定の順列群の特性であるので、Sボック
スに属すると考えられる明らかな特性ではない。ブロッ
ク置換がその一例であるm=2n−1数(または文字)で
順列を考えるならば、82頁の参考文献6の定義が適切で
ある: 定義:順列群は、いずれか1つのm文字(数字)を他
の文字(数字)に変換する少なくとも1つの順列を含む
ならば、推移性があるという。
しかし、参考文献3のprop.6により、線形オーソモー
フィズムは2n−1非固定数で推移性群を形成する。実
際、アフィン・オーソモーフィズムでも同様である。こ
の特性は、もちろん、整数レベルでの完全なミキシング
を意味し、1つのブロック置換ではなくその群の特性で
ある。
すべての可能なブロック置換の収集またはGnでの全単
射マッピングは、順列から見たときに、推移性群、すな
わちPm、m要素での対称群、および次数m!を成す。他の
推移性小群は、最大順列のすべての累乗をとることによ
り生成することができ、すなわち適切なサブサイクルの
ないものになる。線形または保形オーソモーフィズムの
場合、自己同形を定義する方程式の配列にカラムをシフ
トすることのできる特性により、これは特に容易であ
る。最大非線形オーソモーフィズムを用いて推移性小群
を生成することはできるが、一般に、他の項はオーソモ
ーフィズムではない。
4.3. オーソモーフィズムのアプリケーション Tが線形(保形)またはアフィン・オーソモーフィズ
ムであれば、厳しいアバランチングが可能でないことは
明らかである。この場合、TxTy=T(xy)+Sで
Sは固定数である(Tが線形であればS=00...0)。し
たがって、Piは1つの数字および|Pi∩Hj|=0または1
およ|Pij|=1または0から成る。しかし、n数字P
iは0および1の等しい配列を有することがあるので、
ビット独立が可能である。
他方、線形の1から構成する非線形オーソモーフィズ
ムは優れたアバランチングおよびBICを示す。厳しいア
バランチングおよび正確に1/2のBIC比に関して非線形オ
ーソモーフィズムの付録に一例を示す。
すべてのオーソモーフィズムおよび唯一のオーソモー
フィズムには参考文献3に定義するバランスがある。線
形およびアフィン・オーソモーフィズムは順列の推移性
群により表される。したがって、ブロック置換のファミ
リについては、変動することのある固定小数点を除い
て、各明快テキスト・ブロックは各可能な暗号テキスト
・ブロックにマップされる。これは次のように要約する
ことができる: a. SACおよびBIC:重要変数により異なるビット・レベ
ル特性 b. バランス:すべてのオーソモーフィズムの普遍的整
数レベル特性 c. 推移性:線形またはアフィン・オーソモーフィズム
の群の普遍的整数レベル特性 および: * これは群特性であり、最大であるブロック置換、
すなわちノー・サイクルを選択してから、そこからすべ
ての電力を取り込むことにより異なる。
6. 参考文献 1. “暗号書記法的的に優れたSボックスの構造化設
計”、アダムスおよびタバレス、J、暗号学(1990)3:
27−41 2. “数学の基礎”、Vol 1、ベンケ、バッハマン
他、MITプレス1986 6. “有限群理論の紹介”、W.レダーマン、オリバーお
よびボイド、1965 7. “シフト・レジスタ・シーケンス”、S.W.ゴロウ
ム、アエギアン・パーク・プレス、1982 (付録2の)付録 A. 色々な視点から見た線形オーソモーフィズム 2節で述べたように、線形オーソモーフィズムは幾つ
かの方法で表して見ることができる。例えば、母関数が
xk=xk-4xk-3でn=4の場合を考えるが、このと
きp=12で、ベース組または線形独立組を伴う: x1=0001,x2=0010,x3=0100,x4=1000. これが次の表を定義する: カラム1からカラム3(または他のカラム対)へのマッ
ピングはモジュロ2加算のもとで線形であることは容易
に確認される。この同じマッピングは、y(カラム3)
がx(カラム1)の関数f(x)である表により表すこ
とができる。10進数表記では以下のようになる: モジュロ16加算のもとや、図形形式で表すことにより、
これが非線形であることを確かめることは容易である。
マッピングは置換として表すこともできる: (0)(1,3,5,15,2,6,10,13,4,12,7,9,8,11,14) カラム1を数字の自然の順番に書き直し、それに対応し
てカラム3を再配列して、ブール関数により書くことも
できる。ブール関数はカラム3のビットをカラム1のブ
ロックの関数として表す。
これから、ブール関数は次のように書くことができる: f1=b1b2 f2=b2b3 f3=b1b3b4 f4=b1b4 母関数xk=xk-4xk-3は線形的に独立の4ビット数
の集合で普遍的に動作するが、ブール関数は特定マッピ
ングにより異なる。例えば、同じ母関数でベースに適用
されるものについて考える。
x1=0011,x2=0110,x3=1100,x4=1000 これは新しい表を定義する: 最初の例と同様に、ブール関数を得るためには、カラム
1および3を再配列するのが便利である: これから、ブール関数は次のように書くことができる: f1=b1b2 f2=b1b4 f3=b3b4 f4=b1b2b3 f1を除き、これらは前の例とは異なる。
B. 非線形のための保形(線形)オーソモーフィズムに
おける方程式または行の選択 3.5節に、非線形書のためのオーバラップしない4つ
または6つの方程式を選ぶ各種の方法を提示した。概念
は、オーソモーフィック・マッピングを定義する配列の
m=2n−1方程式の大部分を非線形化することである。
2n−1は奇数であり、4つまたは6つの式の集合にプロ
セスが適用されるので、3.2節の方法によりすべての方
程式を変更することは決して可能ではない。すべてのブ
ロック・サイズに対して、または同じブロック・サイズ
の異なる母関数に対するものでさえ、最適なプロセスは
ない。ブロック・サイズn=4、5、6、7、および8
についての幾つかの例を以下に示す。
n=4では、各々p=4、q=8およびp=12、q=
11の共役母関数が1対だけある。行の対応する最大最大
密度は、15行のうちの10行の変更に対して、次に示すよ
うに与えられる: n=5では、再び最適なものはハイブリッド・ミック
スである。例えば、xk=xk-5xk-2では、p=18、
q=23、およびm=31である。31行中の24行を次のよう
に選んで変更することができる: xk=xk-5xk-4xk-2xk-1に対応するp=19、
q=11では、31行から28行を次のように選んで変更する
と少し優れたものにすることができる: n=6およびxk=xk-6xk-1では、シフトはp=
6およびq=40である。m=63でそのうちの7は因数な
ので、3.5節に述べたようにd=7は行間の候補であ
る。また、q=40では、7はq、q−1、...、q−4
の除数ではない。これは次のような63行から54行の変更
をもたらす: 改めてもう一度、方程式または行の集合を変更するため
に選択することは、母関数により異なる。この特定の選
択は、n=6に対応するqの他の大部分の値に対してう
まくゆかない。
n=7では、m=127はMersenne素数であるから、以
前のてっとり早い方法は用いられないが、ある母関数で
は、非常にうまくすることができる。p=19およびq=
9となるn=7、xk=xk-7xk-5xk-4xk-3
xk-2xk-1を考える。以下のように行をとる。
2つの4組が続く6組の同じパターンの後に: を通して行を完了させる: 127個の方程式から124をこのようにして変更することが
でき、117、122、および127だけを除くだけである。こ
れに関する他の変形も3つの方程式だけを除くことによ
り同様にうまくゆく。
また、n=7、xk=xk-7xk-6xk-4xk-2、
p=107およびq=10では、2つの6組および1つの4
組を用い、最後の行の間での調整が伴う、類似システム
がうまくゆく。再び、127の方程式から124を選んで変更
することはできるが、この密度または効率はすべての母
関数に当てはまらないように思われる。
n=8では、母関数xk=xk-8xk-6xk-5xk-
3を考えるが、p=16、q=54、m=2n−1=255であ
る。一致するもの以外は第一行からはじまり、最初の3
つの3集合の和である行が伴う、連続する3集合の方程
式から成る4集合の行を選択する。3.5節を参照して、
行間がd=5の行を選ぶ。5はmの因数で、q−1=5
3、q−2=52、およびq−3=51と互いに素である。
これは以下の行の選択に至る: ここで0a50である。これは、オーソモーフィック
配列の合計して255のなかから、非線形化のための51x4
=204行または方程式を選択する。このなかには、行5
および5の倍数すべてが取り除かれている。
しかし、q−4=50は5の倍数なので6組の行を選ぶ
と、上記の行間は効率的にうまくゆかない。事実、a=
10、4+10a=54のときには、プロセスは6x10=60行だ
けで終了する。しかし、残りの195行をどちらかという
と少しづつ4組または6組の行に分ける幾つかの方法が
ある。
行間d=17は、m=255の除数であるが、q−3=51
の除数でもあるので、効率的な行間ではない。
再び、n=8で、母関数がxk=xk-8xk-4xk-3
xk-2(p=25、q=60、およびm=255)のとき、d
=17は、mの因数であるが、q=60、q−1=5
9、...、q−4=56の除数ではない。6組の行は次のよ
うに選択することができる: このプロセスは、合計15x6=90行に対して、a=14のと
きに終了する。a=15では、1+17a=256≡1モジュロ
mであるから、プロセスが繰り返す。しかし、次のよう
にして再びはじめることができる: このプロセスも、さらに別の15x6=90の行に対して、a
=14のときに終了する。再び、a=15のときに、プロセ
スは繰り返す。これで合計して180行が得られる。残り
の75行には対応する和の3集合を含まない。
しかし、p=16、q=54のときと同様に、5はq−1
=59、q−2=58、およびq−3=57とお互いに素であ
るから、d=5の行間で再び4集合を選択することがで
きる。
これは、mおよびqの適切な集合合せ、すなわち協働
母関数に容易に適用される。しかし、“満足のできる”
非線形マッピングを得るために、線形オーソモーフィズ
ムを表すいくつの方程式を変更しなければならないかは
明らかでない。
C. アバランチングおよびビット独立のシステム・パラ
メータに対する従属性 4−1節には、アバランチングおよびビット独立が、
代数構造だけではなく、ブロック置換の実際の数字によ
り決まることが指摘してある。それを説明するために、
シフトがp=12およびq=11である母関数
を伴う線形オーソモーフィズムにより定義されるブ
ロック置換のn=4ビット・ファミリを用いる。
最初の例と同様にして、以下の行と、ベースまたは線
形的に独立した集合x1=0001、x2=0010、x3=0100、x4
=1000とを用いて非線形オーソモーフィズムを生成す
る: これは、本付録のA章の最初の線形オーソモーフィック
・マッピングの非線形バージョンである。変更すると以
下のようになる: 4−1節に述べるようにアバランチングおよびビット
独立を測定するためには、まずP1={TxTy|xy=10
00}の集合を列挙するが、これは最初のビット位置だけ
が異なるx、yの対である。n=4では、16の4ビット
数の対が8対を形成するが、必ずしも違っている必要は
ない。したがって、多数の出現を含めて、|P1|=|P2|=
|P3|=|P4|=8である。また、Hiが、i番目のビット位
置が0のnビット数の最大小群であることを思い出して
ほしい。ここで、n=4では、H4は偶数の小群であり、
H1は下位半数の小群、等々である。P1では、欄送りは次
のワークシートにある。各|P1∩Hj|=4は、8のうちの
4、またはP1の各要素のビットの半分がj番目のビット
位置の0であること、すなわち、縦行配列の欄送りで
は、各カラムが半分0と半分1とから成ることを意味す
る。P1の各要素の0の数が作表され、水平欄送りされ
る。0の合計数、32ビットからNP1=16であるので、半
分は0である。
P1、P3、P4に対して同じ欄送りをした場合、16対すべ
てに対して|P1∩Hj|=4であり、各P1に対してNP1=16
であるので、アバランチングは厳しく次のようになる。
比較のために、同じ集合の方程式で非線形化し、新し
いベース集合を用いる点だけの異なる、A章の第二の例
をここで用いることができる: x1=0011、x2=0110、x3=1100、x4=1000 この第二非線形オーソモーフィズムは次のように書くこ
とができる: ワークシートの実例と同じ計算をするとその答は次の通
りである: |P1∩H1|=|P1∩H2|=0、|P1∩H3|=8 および残りの13に対して|Pi∩Hj|=4である。NP1=1
2、およびNP2=NP3=NP4=16であるから: アバランチングはもはや厳しくないが、ほとんど半分の
時間でビット変化があるので、“満足ができる”という
ことができる。
第三の例では、p=12およびq=11である同じ線形オ
ーソモーフィズムに再び戻るが、今回は部分的に異なる
行の集合、すなわち6つ集合および4つ集合で非線形化
する: しかし、第一例と同じベースまたは線形的に独立な集
合、すなわちx1=0001、x2=0010、x3=0100、x4=1000
を用いる。第三の非線形オーソモーフィズムは次のよう
に書くことができる: この答は次のようになる: 他の15集合に対して|P2∩H3|=0 |Pi∩Hj|=4 NP2=12およびNP1=NP3=NP4=16 したがって: そして厳しくないアバランチングは、第二の例のときよ
りも、多少の粗い数だけ近くなる。
付録 3 非線形動的置換の方法 1. 母関数およびベース集合を用いて、線形オーソモー
フィズム方程式の集合を生成する: 2.xq=x1x2x3となるようなqを求める。
3.qおよびmの因数に基づいて以下が決まる: a) 次の各繰り返しに対して以下の2集合の方程式
のいずれを非線形化すべきか a=0、1、2、・・・I: 集合1=B+ad、B+1+ad、B+2+adおよびB+
q−1+ad 集合2=B+ad、B+1+ad、B+2+ad、B+3+
ad、B+q−1+ad、B+q+ad ここでBは開始方程式であり、1とmの間の任意の数
字にすることができ、dは以下に定義する。
b) 非線形化された連続する集合の間の行間d
(例、方程式B+3d、B+1+3d、B+2+3dおよびB
+q−1+3dは1回の繰り返しで非線形化され、次の繰
り返しでは、方程式B+4d、B+1+4d、B+2+4dお
よびB+q−1+4dが非線形化される) 注:ある例では、集合1および集合2の両方を交互か何
か他のパターンで用いる。
4. a=0から始めて、a=I(繰返しの入力番号)で
あるか、すでに非線形化された行でプロセスが作動を試
みたときに停止することを繰り返すと、以下に定義する
非線形化アルゴリズムを行う: 集合1を非線形化する場合には、集合1の各方程式に
ベクトル的に加える、 (xB+adxB+1+ad)(xB+adxB+1+ad)=θ 集合2を非線形化する場合、 方程式B+adおよびB+g−1+adにベクトル的に加
える、 (xB+adxB+1+ad)(xB+adxB+1+ad)=θ 方程式B+1+adおよびB+2+adにベクトル的に加
える、 (xB+adxB+2+ad)(xB+adxB+2+ad)=θ 方程式B+3+adおよびB+Q+adにベクトル的に加
える、 (xB+1+adxB+2+ad)(xB+1+adxB+2+ad)=θ 注:すべての場合において、いずれかの方程式番号また
はxへのインデックスがmよりも大きいならば、mの値
からその数字を引いた数字をその数字の代わりに用いる
(例、B+1+adがmより大きいならば、m−(B+1
+ad)をその代わりに用いる)。
5. オーソモーフィック暗号化置換、およびステップ4
で作成した非線形オーソモーフィズム方程式から生じる
オーソモーフィズム暗号解読置換を反映する自然な順番
の暗号化索引テーブルおよび暗号解読索引テーブルを生
成する。非線形動的置換デバイスは、これらの索引テー
ブルと変換固定小数点を変更するメカニズムとから成
る。
索引テーブルの代わりに、2集合の変更した方程式を
用いることができる: 暗号化では、明快テキストはカラム1であり、カラム
3の暗号テキストに暗号化される: カラム1および2は同じ順番であるが、1つだけ位置が
シフトされている。カラム3の数字は異なる順序であ
る。
暗号解読では、カラム3の暗号テキストがカラム1の明
快テキストに暗号解読される ここで方程式の行の順番を、カラム2と3が同じ順番に
なるように、個々の方程式自体は変えないで、配列する
が、1つの位置だけシフトするので、カラム1の数字は
もはやカラム2および3の順番とは違う。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ミッテンサール,ロスロップ アメリカ合衆国 91361 カリフォルニ ア州・サウザンド オークス・ロス パ ドレス ドライブ・240 (56)参考文献 特開 平3−192383(JP,A) ネットワークセキュリティ,日経マグ ロウヒル社,p.32−34 暗号の数理 作り方と解読の原理, p.72−78 暗号理論の基礎,共立出版株式会社, p.29−32 (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 610 JICSTファイル(JOIS)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】クリアテキストブロックをなす2n個の相異
    なるnビット2進数W0〜Wmのいずれか1つを、暗号化ブ
    ロックをなす2n個の相異なるnビット2進数Z0〜Zmの対
    応する1つに置換することを行う暗号装置であって: 暗号化ブロックをなす2n個の相異なるnビット2進数Z0
    〜Zmであって、クリアテキストブロックをなす2n個の相
    異なるnビット2進数W0〜Wmそれぞれでアドレス可能
    な、暗号化ブロックをなすnビット2進数Z0〜Zmを格納
    するメモリを備え; クリアテキストブロックをなす2n個の相異なるnビット
    2進数W0〜Wmから、暗号化ブロックをなす2n個の相異な
    るnビット2進数Z0〜Zmを導出する非線形動的置換発生
    器を備え; (a) 前記非線形動的置換発生器では、2n個の相異な
    る線形の式のセットが使用され、すなわち、クリアテキ
    ストブロックをなす2n個の相異なるnビット2進数W0
    Wmのそれぞれと、2n個の相異なるnビット2進数X0〜Xm
    の対応するものとのモジュロ2加算の結果が、nビット
    2進数の2n個のモジュロ2の和Y0〜Ymであることを表し
    ている、2n個の相異なる線形の式のセットにして、前記
    2n個の相異なる線形の式の1つは零の式であり、2つ以
    上の式のモジュロ2の和が前記2n個の相異なる線形の式
    の1つに一致し、前記2n個の相異なる線形の順序が 【数1】 で定められている、2n個の相異なる線形の式のセットが
    使用され;且つ、 (b) 前記非線形動的置換発生器は、前記2n個の相異
    なる線形の式のセットのうちのサブセットの非線形化に
    よる、2n個の相異なる式の変更されたセットの生成を行
    う手段を備え、 2n個の相異なる線形の式の変更された前記セットは、変
    更を加えられた、クリアテキストブロックをなす2n個の
    相異なるnビット2進数W0′〜Wm′のそれぞれと、変更
    を加えられた、2n個の相異なるnビット2進数X0′〜
    Xm′の対応するものとのモジュロ2加算の結果が、変更
    を加えられた、nビット2進数の2n個のモジュロ2の和
    Y0′〜Ym′であることを表していて、前記2n個の相異な
    る線形の式の1つは零の式であり且つ2つ以上の式のモ
    ジュロ2の和が前記2n個の相異なる線形の式の1つに一
    致することがないという特徴を有しており、 2n個の相異なる式の変更されたセットの生成を行う前記
    手段には、前記2n個の相異なる線形の式のセットのうち
    のサブセットの非線形化を行うために、 (b1)前記2n個の相異なる線形の式のセットのうちの前
    記サブセットとして、引き続く第1,第2,第3の式k,k+
    1,k+2と、これらの式のモジュロ2の和に等しい第4
    の式とを選択する手段、 (b2)前記第1の式および前記第2の式に対応する2つ
    のnビット2進数XkおよびXk+1のモジュロ2加算による
    和を作る手段、 (b3)このモジュロ2加算の和を、前記サブセットの前
    記第1,第2,第3,第4の式に対して、モジュロ2加算する
    手段 が備えられており; 前記の変更を加えられたモジュロ2の和Y0′〜Ym′が、
    nビット2進数の2n個の相異なる暗号化ブロックZ0〜Zm
    として用いられるか、又は、オフセットをモジュロ2加
    算された後で、nビット2進数の2n個の相異なる暗号化
    ブロックZ0〜Zmとして用いられる ことを特徴とする暗号装置。
  2. 【請求項2】クリアテキストブロックをなす2n個の相異
    なるnビット2進数W0〜Wmのいずれか1つを、暗号化ブ
    ロックをなす2n個の相異なるnビット2進数Z0〜Zmの対
    応する1つに置換することを行う暗号装置であって: 暗号化ブロックをなす2n個の相異なるnビット2進数Z0
    〜Zmであって、クリアテキストブロックをなす2n個の相
    異なるnビット2進数W0〜Wmそれぞれでアドレス可能
    な、暗号化ブロックをなすnビット2進数Z0〜Zmを格納
    するメモリを備え; クリアテキストブロックをなす2n個の相異なるnビット
    2進数W0〜Wmから、暗号化ブロックをなす2n個の相異な
    るnビット2進数Z0〜Zmを導出する非線形動的置換発生
    器を備え; (a) 前記非線形動的置換発生器では、2n個の相異な
    る線形の式のセットが使用され、すなわち、クリアテキ
    ストブロックをなす2n個の相異なるnビット2進数W0
    Wmのそれぞれと、2n個の相異なるnビット2進数X0〜Xm
    の対応するものとのモジュロ2加算の結果が、nビット
    2進数の2n個のモジュロ2の和Y0〜Ymであることを表し
    ている、2n個の相異なる線形の式のセットにして、前記
    2n個の相異なる線形の式の1つは零の式であり、2つ以
    上の式のモジュロ2の和が前記2n個の相異なる線形の式
    の1つに一致し、前記2n個の相異なる線形の順序が 【数2】 で定められている、2n個の相異なる線形の式のセットが
    使用され;且つ、 (b) 前記非線形動的置換発生器は、前記2n個の相異
    なる線形の式のセットのうちのサブセットの非線形化に
    よる、2n個の相異なる式の変更されたセットの生成を行
    う手段を備え、 2n個の相異なる線形の式の変更された前記セットは、変
    更を加えられた、クリアテキストブロックをなす2n個の
    相異なるnビット2進数W0′〜Wm′のそれぞれと、変更
    を加えられた、2n個の相異なるnビット2進数X0′〜
    Xm′の対応するものとのモジュロ2加算の結果が、変更
    を加えられた、nビット2進数の2n個のモジュロ2の和
    Y0′〜Ym′であることを表している、2n個の相異なる線
    形の式の変更されたセットにして、前記2n個の相異なる
    線形の式の1つは零の式であり且つ2つ以上の式のモジ
    ュロ2の和が前記2n個の相異なる線形の式の1つに一致
    することがないという特徴を有しており、 2n個の相異なる式の変更されたセットの生成を行う前記
    手段には、前記2n個の相異なる線形の式のセットのうち
    のサブセットの非線形化を行うために、 (b1)前記2n個の相異なる線形の式のセットのうちの前
    記サブセットとして、引き続く第1,第2,第3,第4の式k,
    k+1,k+2,k+3と、前記第1,第2,第3の式k,k+1,k+
    2のモジュロ2加算の和に等しい第5の式と、前記第2,
    第3,第4の式k+1,k+2,k+3のモジュロ2加算の和に
    等しい第6の式とを選択する手段、 (b2)前記第1の式および前記第2の式に対応する2つ
    のnビット2進数XkおよびXk+1のモジュロ2加算による
    第1の和を作る手段、 (b3)前記第1の式および前記第3の式に対応する2つ
    のnビット2進数XkおよびXk+2のモジュロ2加算による
    第2の和を作る手段、 (b4)前記第2の式および前記第3の式に対応する2つ
    のnビット2進数Xk+1およびXk+2のモジュロ2加算によ
    る第3の和を作る手段、 (b5)モジュロ2加算の前記第1の和を、前記サブセッ
    トの前記第1,第5の式に対して、モジュロ2加算する手
    段、 (b6)モジュロ2加算の前記第2の和を、前記サブセッ
    トの前記第2,第3の式に対して、モジュロ2加算する手
    段、 (b7)モジュロ2加算の前記第3の和を、前記サブセッ
    トの前記第4,第6の式に対して、モジュロ2加算する手
    段 が備えられており、 前記の変更を加えられたモジュロ2の和Y0′〜Ym′が、
    nビット2進数の2n個の相異なる暗号化ブロックZ0〜Zm
    として用いられるか、又は、オフセットをモジュロ2加
    算された後で、nビット2進数の2n個の相異なる暗号化
    ブロックZ0〜Zmとして用いられる ことを特徴とする暗号装置。
JP50381493A 1991-08-05 1992-08-04 非線形動的置換装置及びブロック置換の方法 Expired - Fee Related JP3464797B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US741,097 1991-08-05
US07/741,097 US5214704A (en) 1989-10-04 1991-08-05 Nonlinear dynamic substitution devices and methods for block substitutions
PCT/US1992/006497 WO1993003559A1 (en) 1991-08-05 1992-08-04 Nonlinear dynamic substitution devices and methods for block substitutions

Publications (2)

Publication Number Publication Date
JPH07501187A JPH07501187A (ja) 1995-02-02
JP3464797B2 true JP3464797B2 (ja) 2003-11-10

Family

ID=24979386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50381493A Expired - Fee Related JP3464797B2 (ja) 1991-08-05 1992-08-04 非線形動的置換装置及びブロック置換の方法

Country Status (10)

Country Link
US (1) US5214704A (ja)
EP (1) EP0598036B1 (ja)
JP (1) JP3464797B2 (ja)
KR (1) KR0148556B1 (ja)
AT (1) ATE158125T1 (ja)
AU (1) AU2445592A (ja)
CA (1) CA2115063C (ja)
DE (1) DE69222174T2 (ja)
HU (1) HU214228B (ja)
WO (1) WO1993003559A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317639A (en) * 1989-10-04 1994-05-31 Teledyne Industries, Inc. Non-linear block substitution devices derived by constructive corruption
US5647001A (en) * 1989-10-04 1997-07-08 Litton Systems, Inc. Nonlinear dynamic substitution devices and methods for block substitutions employing coset decompositions and direct geometric generation
US5307412A (en) * 1992-09-30 1994-04-26 Vobach Arnold R Random coding cipher system and method
US5404402A (en) * 1993-12-21 1995-04-04 Gi Corporation Clock frequency modulation for secure microprocessors
EP0763297B1 (en) * 1994-05-31 2004-07-28 Litton Systems, Inc. Nonlinear dynamic substitution devices and methods for block substitutions employing coset decompositions and direct geometric generation
US5778074A (en) * 1995-06-29 1998-07-07 Teledyne Industries, Inc. Methods for generating variable S-boxes from arbitrary keys of arbitrary length including methods which allow rapid key changes
US5724428A (en) * 1995-11-01 1998-03-03 Rsa Data Security, Inc. Block encryption algorithm with data-dependent rotations
US5838794A (en) * 1996-01-11 1998-11-17 Teledyne Electronic Technologies Method and apparatus for inter-round mixing in iterated block substitution systems
US6075859A (en) 1997-03-11 2000-06-13 Qualcomm Incorporated Method and apparatus for encrypting data in a wireless communication system
US6182216B1 (en) 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
US6570989B1 (en) * 1998-04-27 2003-05-27 Matsushita Electric Industrial Co., Ltd. Cryptographic processing apparatus, cryptographic processing method, and storage medium storing cryptographic processing program for realizing high-speed cryptographic processing without impairing security
US6269163B1 (en) 1998-06-15 2001-07-31 Rsa Security Inc. Enhanced block ciphers with data-dependent rotations
US7292693B1 (en) 1998-08-13 2007-11-06 Teledyne Technologies Incorporated Deterministically generating block substitution tables which meet a given standard of nonlinearity
DE10124139A1 (de) * 2001-05-17 2002-11-21 Philips Corp Intellectual Pty Verfahren und Vorrichtung zur Sicherung der Datenübertragung zwischen einem Zentralprozessor und einem Speicher
DE10201450B4 (de) * 2002-01-16 2004-09-02 Infineon Technologies Ag Carry-Skip-Addierer für verschlüsselte Daten
KR100516258B1 (ko) * 2002-07-04 2005-09-20 송병창 균열 충진 보수재 조성물 및 그 제조방법
JP4622222B2 (ja) * 2003-09-30 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7412054B2 (en) * 2004-05-04 2008-08-12 International Business Machines Corporation Matrix encryption method and system
IT1401777B1 (it) * 2010-06-14 2013-08-28 Scala Sistema di crittografia.
US8832144B2 (en) * 2011-07-11 2014-09-09 International Business Machines Corporation Search optimization in a computing environment

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4195200A (en) * 1976-06-30 1980-03-25 International Business Machines Corporation Key controlled block-cipher cryptographic system employing a multidirectional shift matrix
SE7714587L (sv) * 1977-12-21 1979-06-22 Brendstrom Hugo System for meddelanden
US4520232A (en) * 1982-04-30 1985-05-28 Wilson William J Polygraphic encryption-decryption system
US4797921A (en) * 1984-11-13 1989-01-10 Hitachi, Ltd. System for enciphering or deciphering data
US4685132A (en) * 1985-07-30 1987-08-04 Sperry Corporation Bent sequence code generator
US4932056A (en) * 1989-03-16 1990-06-05 Yeda Research And Development Company Limited Method and apparatus for user identification based on permuted kernels
US5038376A (en) * 1989-10-04 1991-08-06 Teledyne Industries, Inc. Block substitution based encryption by a modulo 2 addition method and apparatus

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ネットワークセキュリティ,日経マグロウヒル社,p.32−34
暗号の数理 作り方と解読の原理,p.72−78
暗号理論の基礎,共立出版株式会社,p.29−32

Also Published As

Publication number Publication date
KR0148556B1 (ko) 1998-11-02
HU214228B (hu) 1998-03-02
KR930005400A (ko) 1993-03-23
WO1993003559A1 (en) 1993-02-18
DE69222174T2 (de) 1998-04-09
EP0598036A4 (en) 1994-08-17
AU2445592A (en) 1993-03-02
CA2115063A1 (en) 1993-02-18
CA2115063C (en) 2001-05-29
JPH07501187A (ja) 1995-02-02
HUT73896A (en) 1996-10-28
DE69222174D1 (de) 1997-10-16
US5214704A (en) 1993-05-25
ATE158125T1 (de) 1997-09-15
EP0598036B1 (en) 1997-09-10
HU9400275D0 (en) 1994-05-30
EP0598036A1 (en) 1994-05-25

Similar Documents

Publication Publication Date Title
JP3464797B2 (ja) 非線形動的置換装置及びブロック置換の方法
EP1800432B1 (en) Cryptographic primitives, error coding, and pseudo-random number improvement methods using quasigroups
US5365589A (en) Method and apparatus for encryption, decryption and authentication using dynamical systems
Banawan et al. Private information retrieval through wiretap channel II: Privacy meets security
GB2327581A (en) Block cypher resists differential or linear cryptoanalysis
US20110211688A1 (en) Data converter, data conversion method and program
US20120128153A1 (en) Symmetric-key encryption method and cryptographic system employing the method
JP3701969B2 (ja) 非線形動的換字装置
JP3044565B2 (ja) 暗号装置
US5734721A (en) Anti-spoof without error extension (ANSWER)
US20010033654A1 (en) W-EC1 encryption and decryption method and system
EP0763297B1 (en) Nonlinear dynamic substitution devices and methods for block substitutions employing coset decompositions and direct geometric generation
KR100308893B1 (ko) 엘.에프.에스.알을 이용한 확장 알.씨.4 암호화 방법
Markovski et al. Applications of Quasigroups in Cryptography and Coding Theory
Barbero et al. A Rao-Nam like cryptosystem with product codes
RU2024209C1 (ru) Устройство шифрования двоичной информации "албер"
Maitra Boolean functions with important cryptographic properties
RU2241314C2 (ru) Управляемый операционный блок
KR100639764B1 (ko) 블록암호화방법
Gupta Cryptographic and combinatorial properties of boolean functions and s-boxes
CA2371452A1 (en) Cryptographic engine using base conversion, logic operations and prng in data arrays to increase dispersion in ciphertext
Trinca Efficient FPGA Implementations and Cryptanalysis of Automata-based Dynamic Convolutional Cryptosystems
Gutowitz Method and Apparatus for the Encryption, Decryption and Authentication of Messages Using Dynamical Systems
Nakahara Jr Key-Shedule Analysis of AES Candidates
KD Introduction to cryptography, codes, Boolean, and vectorial functions

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080822

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080822

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090822

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090822

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100822

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110822

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees