JPH09501281A - 非線形動的換字装置およびブロック換字方法 - Google Patents

非線形動的換字装置およびブロック換字方法

Info

Publication number
JPH09501281A
JPH09501281A JP7500944A JP50094495A JPH09501281A JP H09501281 A JPH09501281 A JP H09501281A JP 7500944 A JP7500944 A JP 7500944A JP 50094495 A JP50094495 A JP 50094495A JP H09501281 A JPH09501281 A JP H09501281A
Authority
JP
Japan
Prior art keywords
formulas
formula
block
equations
coset
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.)
Granted
Application number
JP7500944A
Other languages
English (en)
Other versions
JP3701969B2 (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.)
TDY Industries LLC
Original Assignee
Teledyne Industries 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 Teledyne Industries Inc filed Critical Teledyne Industries Inc
Publication of JPH09501281A publication Critical patent/JPH09501281A/ja
Application granted granted Critical
Publication of JP3701969B2 publication Critical patent/JP3701969B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04KSECRET COMMUNICATION; JAMMING OF COMMUNICATION
    • H04K1/00Secret communication
    • H04K1/04Secret communication by frequency scrambling, i.e. by transposing or inverting parts of the frequency band or by inverting the whole band
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Ceramic Products (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 換字方式自体を比較的簡単なハードウェアと併用できるようにし、しかも暗号分析をより困難にする、ブロック換字技法(22および30)によってmod2加算ベースの暗号化を非線形化する方法および装置。基本ブロック換字(22および30)は、nビット2進数のそれ自体への1対1写像であり、nビット2進数のある種の置換によって、線形直交写像が定義され、そのため、ある数の置換済み集合を別の置換済み集合にmod2加算することによるブロック換字が可能になることに基づくものである。線形直交写像を表すこれらの数式は、ベクトルとみなしたときに加算関係を有し、実際に、代数的に加群を形成する。これらの線形直交写像を定義するnビット2進(22)数の置換は、このような置換を累乗し、すなわち、置換を、前に置換された数(30)に連続的に適用すると、新しい線形直交写像が生成されるという他の特性を有する。

Description

【発明の詳細な説明】 非線形動的換字装置およびブロック換字方法関連出願 本出願は、1989年10月4日に出願された米国特許出願第07/4169 53号の一部継続出願である、1993年8月5日に出願された米国特許出願第 07/741097号の一部継続出願である。発明の背景 1.発明の分野 本発明は、暗号化装置および方法の分野に関し、詳細には、ブロック換字暗号 化方法および装置に関する。 2.従来の技術 多くの場合、受信側にとって明確であるが、送信側と受信側の間に割って入る 者には分からないように、ある位置から別の場所へディジタル形で情報を伝達す ることが望ましい。したがって、多くの例では、何らかの所定の暗号化プロセス によって、伝達すべき情報を暗号化し、暗号化された形の情報を送信し、次いで 、受信側位置でその情報を復号するのが一般的である。偶然に送信側と受信側に 間に入った者にとってはどんなレベルの暗号化でも送信の意味がわからないので 、所望のセキュリティの程度に応じて、比較的簡単で容易に破られる暗号化を使 用することもできる。他の状況では、所望のセキュリティの程度は、暗号解析に よって復号することがより困難な暗号化技法を使用するものであり、あるいは、 最高のレベルのセキュリティで、復号がほぼ不可能になることが望ましい。その ような暗号化技法の応用例には、製造工場、銀行支店など間の機密通信などの商 業応用例と、IFF(敵味方識別装置)を含むが、これに限らない軍事応用例が 含まれる。あるケースでは、暗号化の主要な目的は、第3者が通信中の情報を復 号することを妨げることであるが、他のケース、すなわちIFFなどでの主要な 目的は、第3者が、所期の受信側を誤らせるように同じ暗号化方式で擬情報を発 信 するのを妨げることである。多くの応用例では、2つの目的が共に存在すること が多い。 ブロック換字とは、2進数の列の形の平文メッセージを暗号化するために使用 される方法である。この方法によれば、ブロック換字装置が、平文中の各2進数 ブロックを新しい固有の2進数ブロックで置き換えることによって、列が、いく つかの所定のブロック長nのブロックに分割される。換字ブロックは、暗号化メ ッセージまたは符号テキストを構成し、各換字ブロックは、平文ブロックの明確 な1対1の情報を表す。従来技術では、そのような換字は一般に、参照テーブル 、スイッチング構成、またはフィードバック・シフト・レジスタによって行われ る。しかし、符号または換字方式を頻繁に変更しないと、暗号化が符号解析によ って破られることがある。しかし、参照テーブルを変更するのは厄介であり、実 施できる可能なスイッチング構成の数は限られており、シフト・レジスタを繰り 返し巡回させるのは時間がかかる。パターンもバイアスも有さない換字を見つけ る際にはそれ以外の問題が発生する。現在、コンピュータ・シミュレーションに よって、候補換字が可能な体系的パターンがあるかどうか調べられており、ある ケースでは、この問題を補償するために追加回路が使用されている。 従来技術では、様々なタイプの暗号化装置および方法が周知である。たとえば 、米国特許第3796830号、米国特許第3798359号、米国特許第40 78152号、米国特許第4195200号、米国特許第4225811号、米 国特許第4316055号、米国特許第4520232号を参照されたい。一般 に、これらのシステムは、ブロック換字に関するものであるとき、鍵依存暗号化 ・復号化システムであり、本発明とは異なり、ある加算置換済み数の集合と別の 加算置換済み数の集合のmod(モジュロ)2加算による換字に基づくものでは ない。 親の親特許出願では、換字方式を比較的簡単なハードウェアと共に使用できる ようにするブロック換字技法によるmod2加算ベースの暗号化を開示した。こ のブロック換字は、nビット2進数のそれ自体への1対1写像であり、nビット 2進数のある種の置換によって、ある置換済み数の集合と別の置換済み数の集合 のmod2加算によるブロック換字が定義されることと、このような定義済み数 式が、ベクトルとして見たときに加算関係を有し、そのため、数式の限られた部 分集合から集合の残りの部分を生成することができることに基づくものである。 これによって頻繁に行われる変換の変更が簡単になる。変換の様々な特性とこの 変換を使用する方法が開示されている。しかし、セット数式の残りの部分が数式 の限られた部分集合から生成できることによって、符号解析は、ある種の応用例 で必要とされるよりも難しいものになる。親出願は、セット数式の残りの部分が もはや、数式の限られた部分集合からは生成できないように、数式をやはり整然 と容易に変更できるように非線形化する方法および装置に関するものであった。 本発明は、数式を非線形化するこれ以外の方法を提供するものである。発明の簡単な説明 置換方式を比較的簡単なハードウェアと共に使用できるようにし、しかも暗号 解析をさらに困難にする、ブロック換字技法によるmod2加算ベースの暗号化 を非線形化する方法および装置。この基本ブロック換字は、nビット2進数のそ れ自体への1対1写像であり、nビット2進数のある種の置換によって、ある置 換済み数の集合と別の置換済み数の集合のmod2加算によるブロック換字が定 義されることと、このような定義済み数式が、ベクトルとして見たときに加算関 係を有することができることに基づくものである。これによって、変換を簡単に 頻繁に変更することができる。その場合、数式の集合の残りの部分がもはや、数 式の限られた部分集合からは生成できないように、数式がやはり整然と容易に変 更できるように非線形化される。この変換の様々な特性と、この変換を使用する 方法を開示する。具体的には、本発明によって提供される非線形化方法は、部分 群の入れ子系列と、フィット済みコセット(fitted coset)と、互いに素なコラ プチブル(corruptible)部分群のコセットとを含む。図面の簡単な説明 第1図は、mod2加算によるある3ビット2進数の集合の別の2進数の集合 への複数対単一変換を示す図である。 第2図は、mod2加算によるある3ビット2進数の集合の別の2進数の集合 への1対1変換を示す図である。 第3図は、第1の数式を除いて、第1列中の3桁数が前の行の第2列中の3桁 数と同じになるように順序変更された第2図の変換数式を示す図である。第1の 数式を除いて、各列は、同じ順序ではあるが、異なる開始位置を有するものとな っている。 第4図は、第1列および第3列が第2列に対して垂直にシフトされた、第3図 に対応する図である。このシフトはそれぞれ、下向きに6つおよび2つの位置で ある。第1の数式を除いて、各列は同じ順序ではあるが、異なる開始位置を有す る。 対応する図である。 第6図は、データを暗号化する装置のブロック図である。 第7図は、第6図の装置によって暗号化されたデータを復号する装置のブロッ ク図である。 第8図は、第6図を使用する暗号化の一例を示す図である。 第9図は、第7図を使用する暗号化の一例を示す図である。 第10図は、第4図の列1および2に固定語001が加算された、第4図の変 換数式に対応する変換数式の集合を示す図である。第1の数式を除いて、列1お よび2は同じ順序ではあるが、異なる開始位置を有する。 第11図は、第10図の変換数式のような変換数式の集合によってデータを暗 号化する装置のブロック図である。 第12図は、第11図の装置によって暗号化されたデータを復号する装置のブ ロック図である。 第13図は、第11図を使用する暗号化の一例を示す図である。 第14図は、第12図を使用する暗号化の一例を示す図である。 す図である。 第16図は、本発明による暗号化・復号化システムのブロック図である。 第17図は、付録2のA12ページに提示した数式の集合の第1列および第2 列にオフセット0101を加算することによって導出された暗号化および復号化 に有用な数式の集合を示す図である。 第18図は、部分群の入れ子系列を使用して数式群を非線形化する方法を図示 する図である。 第19図は、部分群の入れ子系列を使用する暗号化方法を示すブロック図であ る。 第20図は、ブロック・サイズn=8の2進数に関する最大長線形直交写像の 多重コセット分割を示す図である。 第21図は、第20図に図示した異なる部分群から得たフィット済みコセット を使用する暗号化方法を示すブロック図である。 第22図は、ブロック・サイズn=8の場合の第21図の方法を示すブロック 図である。 第23図は、互いに素なコラプチブル部分群を使用する暗号化方法を示すブロ ック図である。発明の詳細な説明 本発明は、親出願および親の親出願で詳細に説明したブロック換字によってm od2加算ベースの暗号化を非線形化する方法および装置を含む。本出願では、 本発明を改良する基礎を提供するために、親出願および親の親出願の開示を繰り 返す。具体的には、親の親出願の態様を下記の第I節「ブロック置換」で述べる 。親出願の発明の説明は、第II節「非線形化の概要」に記載する。本発明に関 連する開示は、残りの節に記載する。具体的には、第III節「線形直交写像の 修正(MODIFICATION OF LINEAR ORTHOMORPHISMS)」で、親出願および親の親出 願で説明した線形直交写像(linear orthomorphisms)の予備的な修正および変 形について説明する。第IV節「完全な非線形直交写像の構築」では、非線形直 交写像の一般化を行う。第IV節「完全な非線形直交写像の構築」には、ブロッ ク・サイズn=8の場合の直交写像の構築を説明する詳細な例を提示する。ブロ ック換字数式の集合を非線形化する改良された第1の方法を第V節「部分群の入 れ子系列」に提示する。改良された第2の非線形化方法を第VI節「異なる部分 群からのフィット済みコセット」に提示する。改良された第3の非線形化方法を 第VI I節「互いに素なコラプチブル部分群のコセット」に提示する。第VII節はさ らに、ブロック・サイズn=8を有するブロック換字システムの詳細な例を含む 。最後に、第VIII節「用語および記号の定義」は、親出願および親出願に添 付の付録内で使用された語の用語集である。第VIII節「用語および記号の定 義」ではさらに、本明細書で使用するある種の計算記号を定義する。 本明細書には、付録I「不偏ブロック換字」、付録II「ブロック換字機構と しての非線形動的置換装置」、付録III「非線形動的換字方法」、付録IV「 建設的コラプション:非線形動的換字を生成する方法」、付録V「建設的コラプ ションII:非線形動的換字を生成する方法」、付録VI「2進数の非線形写像 の代数構造」を含む6つの付録も添付されている。 I.ブロック換字 下記の説明ではまず、親出願の方法および装置を、nビット2進数のブロック (n=3)に関して説明する。次いで、この方法および装置を一般的にnビット ・ブロックに展開し、n=8までのブロックのある特性を提示する。n=3の場 合の下記の例を提示することによって、より多くの集合を有するより大きなブロ ックを使用するケースよりも、原発明の概念がよりよく理解されると思われる。 ブロック換字とは、通常、nビット2進数のそれ自体への1対1写像に適用さ れる語である。この写像は、次式のように、2n個のnビット数を対にしたもの として書くことができる。 上式で、各列は、互いに素であるが、異なる順序で書かれた、同じ2n個のn ビット数の集合である。したがって、この写像は、下記のようにnビット数を置 換したものとみることも、 あるいは、ある種の指標の集合では(Xlij)とみることもできる。の 通常の置換表記法は、Xl→Xi,Xi→Xj(以下同様)であることを意味するに 過ぎない。 列表記法に戻ると、最初の集合およびその写像から簡単な数式の集合を定義す ることができる。 を意味する。一般に、集合{Y1,Y2,...}は、全て異なる値ではないが、 ある種の状況ではすべて異なる。原発明によれば、集合の値が異なっているとき 、従来型の手段ではなくmod2加算によってブロック換字を生成することがで きる。この場合、主として、この方式が作用する状況がもしあれば、それを判定 し、 さらに、どうすれば換字を迅速に変更できるかと、バイアスがないことを判定し なければならない。 ブロック換字がmod2加算によって生成できるかどうかは自明ではない。た とえば、第1図に示した、mod2加算によって3ビット2進数のある構成で他 の構成を置き換える試みを検討する。右側の列3で、011および100はそれ ぞれ2回現れるが、001および110は一度も現れない。左側の列1中の数は 、中央の列2の数に作用し、列1の3ビット2進語の集合のそれ自体への変換を 構成するものである。これは、多数対単一変換であり、変換済みブロック011 および100の最初のブロックを回復しようとする際に生じるあいまいさのため にブロック換字には無用である。 第2図に示すように他の構成を試みると、異なる結果が得られる。この場合、 任意の1対の列が、1対1変換を構成する。具体的には、この変換は、列3の3 ビット2進数(平文)からそれ自体、すなわち、列1の暗号文への1対1変換で ある。各列は、一度しか現れないすべて3ビットの数から成る。 第2図の変換を使用して、3桁2進ブロックを暗号化2進ブロックに変換し、 もちろん、同じ数式を使用して、列1中の復号語を見つけ、次いで第2図の同じ 行・列3中の対応する平文語を選択することによって、暗号化メッセージを復号 =を相互交換する場合に最も好都合である。復号語を平文に変換する等価変換は 、列1の語を列2の語に加算して列3の語を得る場合に行われる。 再び第2図を参照すると、この変換の興味深い特性が示されており、そのため 、本明細書に関するタイプのすべての変換を見ることができる。具体的には、3 つの2進数の8つのブロックのうちで、小さい数の4つのブロック000、00 1、010、011は、小さい数の4つのブロックのうちの2つのブロック、す なわち000および001と、大きいの数の4つのブロックのうちの2つのブロ ック、すなわち110および111にマップされる。同様にもちろん、8つのブ ロックのうちのより大きな数の4つのブロックは、そのうちの2つが小さな数の 4つのブロックにマップされ、他の2つが大きい数の4つのブロックにマップさ れる。同様に、偶数ブロック000、010、100、110は、2つの偶数ブ ロック 000および010と、2つの奇数ブロック001および011にマップされる 。4つの奇数ブロックは、そのうちの半分が奇数ブロックにマップされ、残りの 半分が偶数ブロックにマップされる。復号にも同じことが当てはまるのは自明で ある。したがって、大きい、小さい、偶数、奇数など、暗号化ブロックのある種 の特性の知識が、非暗号化ブロックの特性の同様な知識を与えることはない。こ の結果、この暗号化は不偏であると言われる。そのため、各ブロックの中央の数 字を検討した場合でも、中央の数字がゼロである第2図の4つのブロックは、そ のうちの2つのブロックが、やはり中央の数字がゼロであるブロックにマップさ れ、残りの2つのブロックが、中央の数字が1であるブロックにマップされるこ とに留意されたい。同様にもちろん、中央の数字が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図の変換とはまったく異なるものである。 一例を挙げると、第3図の列3の111は列1の011にマップされ、第4図の 列1の100にマップされる。第4図の列1および3中の3桁数の系列(識別行 を除く)が、それぞれの数がラップアラウンドによって列2に対してシフトされ るにもかかわらず、第3図と第4図の列2中の系列と同じであることに留意され たい。したがって、第3図の変換は、単に第3列の第1列中の数を第2列中の数 に対してシフトし、第3列中の数も、第2列中の数に対して異なる量だけシフト してmod2加算式の完全性を維持することによって、第4図の新しい変換に変 =を相互交換することができる。 さらに一般的に、任意のブロック・サイズに関して、数式の集合を下記のよう に書くことができる。 ブロック・サイズnの場合、m=2n−1である。θ=00...00であり 、nビット語はすべてゼロから成る。 列1を列2に対してS個の位置だけシフトした場合、mod2加算式の完全性 を維持するために、列3は、異なる量Psだけシフトされる。所与のシフトSの 場合、Psはシフト・プログラマによって決定される。 次に第6図を参照すると、前記で論じた暗号化技法および復号技法によって暗 号化を実施するシステムのブロック図を見ることができる。 平文語は、メモリI中の前記語のアドレスに送られる。これは、列3からθ以 外の語Xk-Psを選択することに対応する。この概念はXk-Psを列2の対応するも のに加算することである。Xk-Psが、θ以外のものであり、Xkに加算される予 定である場合、これは、列3中の順序データK−Psを含む語を、やはり列3中 の順序K−Ps+Ps=Kを含む語に加算することと等価である。したがって、平 文語K−Psの順序データは、Psに加算すべき加算器へ送られる。この新しい順 序数は、メモリII中のその数のアドレスへ送られる。そのアドレスの内容は、 平文語にmod2加算され、列1中の暗号化語Xk-sが得られる。平文語がθで ある場合、その暗号文写像は同じである。 順序データの加算は、2つの加算器、桁上げ(C)、および最下位ビット(L SB)によって行われる。桁上げ加算器は、従来どおり桁上げによって数を加算 し、たとえば、001+011=100とする。しかし、加算でn桁よりも多く の桁が必要である場合、1がn+1位置に桁上げされ、その余分の1はその代わ りに、第1の位置に加算され、たとえば、100+110=1010=>011 となる。これは、LSB加算器によって行われる。m=2n−1の場合、これは modm加算に過ぎない。この例では、n=3、m=7であり、10進項で表さ れる加算は4+6=10≡mod7(100=>4、110=>6、011=> 3)である。 復号に関するブロック図を第7図に示す。暗号文語は、メモリI中の前記語の アドレスに送られる。これは、列1からθ以外の語Xk-sを選択することに対応 する。この概念は、Xk-sをそれに対応するもの、すなわち、列2中のXkに加算 することである。これは、列1中のXk-sを、やはり列1中の順序データK−s +s=Kを含む語に加算することと等価である。したがって、暗号文語の順序デ ータのK−sは、sに加算すべき加算器へ送られる。この新しい順序数は、メモ リII中のその数のアドレスへ送られる。そのアドレスの内容は、暗号文語にm od2加算され、列3中の復号化語Xk-Psが得られる。暗号文語がθである場合 、その語はθとして復号される。 順序データの加算、すなわち、K−S+SおよびK−Ps+Psは、modmま たはラップアラウンドによるものと理解される。すなわち、順序データがmより も大きい場合、最後の位置のmが順序データが減算される。暗号文語がθである 場合、その語は同じ語として復号される。 シフト・プログラムは、列1中のシフトSが列3中の対応するPsシフトSと 共に使用される順序を決定する。任意の所望の順序を使用することができる。シ フトSは、8ページで説明した基本置換の累乗に対応する。これは、加算による 換字を決定する。 したがって、一例を挙げると、第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中のアドレス01 1には数100が対応する(これは、100が列3中の位置3にあると言うのと の加算式のうちの第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=011mod 7である。メモリII中のアドレス011には数100が対応する。すなわち、 式を表す。 第4図の第1列および第2列に固定数をmod2加算した場合、次の1対1変 換が行われる。 次に、第11図および第12図を参照すると、任意のブロック・サイズに関し て、θ以外の固定語、すなわち、ゼロ語を使用して暗号化および復号化を実施す るためのブロック図を見ることができる。この手順は、前述の手順とほぼ同じも のであり、暗号化プロセス中の最後のステップおよび復号プロセス中の第1のス テップとして固定語のmod2加算を行う追加ステップを含む。 一例を第13図および第14図に示す。この場合、000はもはや固定されず 、001に変換される。次に、110がそれ自体に変換され、したがって、この 場合は固定される。 固定語加算器は、ユーザが選択した順序でどれかまたはすべてのnビット語を 連続的に加算することができる。 次に、第8図を参照すると、一例として、前記で論じた暗号化技法および復号 化技法によって暗号化を実施するシステムのブロック図を見ることができる。図 のように、000を除く平文データ20の任意の値が、メモリ22へのアドレス として提供される。様々なメモリ・アドレスに、平文データ値に関する順序デー タ、すなわち、第4図(および第5図および第10図)の右側の列の順序付き系 列中の前記平文データ値の、2進数で表された位置が記憶される。この位置は、 加算器24および26の組合せとして示した加算器へのメモリ22の出力として 提供される。これらの加算器は、シフト・プログラマ28の制御に応じてメモリ の出力をシフト値Psに加算するように結合される。この加算は、mod2加算 ではなく、通常の2進加算である。ただし、最上位ビットから桁上げは、最下位 ビットのキャリーインに結合される。したがって、この加算器は、結果001を 、1000でも単なる000でもなく、111よりも大きな和1として提供する 。したがって、加算器の出力は、順序データ系列で量Psだけシフトされた新し い3ビット2進値である。この場合、この新しい位置は、メモリ30向けのアド レスとして使用され、メモリ30は、第4図の列2中の値に対応する3ビット2 進値、または第3図中の対応する平文データ値を、その出力として提供する。し たがって、一例を挙げると、平文データが010である場合、メモリIへのアド レスとしてのこの値は、この値の位置、すなわち系列中の001を提供する。シ フト・プログラムがS=6を選択した場合、P6=2であり、列3は、列2から 下向きに2つの位置だけ、あるいは量010だけシフトされる。その場合に平文 データ値010に隣接する3ビット2進数は、第5図のように100である。こ の平文データ010に加算されるmod2は、第5図の値に対応する暗号値11 0を提供する。しかし、平文データ値が000である場合、メモリIへのアドレ スとしてのこの値は、この値の位置、すなわち、系列中の000を提供する。こ れはシフトされず、未変更てメモリ30中の順序データとして提供される。した がって、それ自体に加算された000は、固定されたままである。 第5図の列2の基本順序データに対する第5図の列3の系列の下向きシフトPs はもちろん、相補上向きシフトに対応する。したがって、nビット・ブロック では、Psの下向きシフトは、m−Psの上向きシフトと等価である。3ビット・ ブロックでは、可能なシフトのすべての値が、所望の1対1写像を提供すること にも留意されたい。ただし、ゼロの第2列に対する第1列のシフトと、7および その倍数のシフトはこの限りではない、なぜなら、そのようなシフトは、第1列 の対応する行と同じ各行を有する第2列を行列中に提供し、それ自体にmod2 加算された数はゼロになるからである。したがって、7またはその倍数のシフト では、すべての平文データ値が000にマップされ、暗号化には無用である。し かし、一般に、3ビットより大きなnビット・ブロックでは、ゼロおよびmの整 数倍数以外のすべてのシフトが所望の結果を与え、したがって、これらのシフト が原発明によって使用できることを後で示す。 第7図による復号に関するブロック図を第9図に示す。ハードウェアの観点か らは、この図は、暗号化に関する第8図の図とまったく同じであり、復号化の暗 号化と異なる点は、暗号化用の所与のシフトPsの代わりにシフトSが適用され ることだけである。14ページの例の場合と同様に、第8図および第9図のテー ブルに示したように、暗号化用のシフトPsが2である場合、シフト6によって 妥当な復号が行われる。復号時に平文データをうまく回復するには、暗号化ハー ドウェアおよび復号化ハードウェアが関連するシフトを使用しなければならない ことは自明である。ただし、符号分析が、ほぼ不可能にするのは無理にしても、 非常に困難なものにするために双方で適用可能なシフトを頻繁に変更することが できる。 第5図の任意の一対の列に固定数をmod2加算した場合、次の1対1変換が 行われる。一例を挙げると、第10図で、第5図の第1列および第2列に固定数 001をmod2加算した。この場合、平文語としての010は暗号化語111 にマップされ、これに対して、第8図の例では、010は110にマップされる 。 固定語加算器を使用する暗号化に関するブロックの一例は第13図に見ること ができる。この図は、第8図と同じものであるが、第1列の010と同じ、第2 列の行中の値に対応するメモリ30の出力に固定語(この例では001)を加算 するために、固定語加算器32が含まれている。したがって、固定語加算器は、 列2の値に固定語(この例では001)を加算するに過ぎず、その後、その結果 に平文語がmod2加算されて、暗号化データが得られる。この場合も、たとえ ば、平文データ010をメモリ22へのアドレスとして使用すると、メモリの出 力は001になる。第8図の例と同じシフトを使用すると、001に010、す なわちPs=2が加算され、メモリ30へのアドレス011が提供される。この 結果、メモリ30の出力が100となり、固定語加算器がこの値に固定語001 をmod2加算して、101が与えられる。このように平文語010へのmod 2加算によって、第10図に示したように、暗号化語111が与えられる。 第13図の暗号化に関するブロック図に対応する、復号化に関するブロック図 を第14図に示す。図から分かるように、第14図は、第13図と同じものであ るが(ただし、この場合も、復号化用のシフトは暗号化用のシフトとは異なる) 、固定語加算器は、固定語を、メモリ22に適用する前に暗号化データにmod 2加算する。このmod2加算は基本的に、固定語の第2のmod2加算である 。というのは、暗号化語を得るために、第11図で固定語の第1のmod2加算 が行われたからである。したがって、第12図中の暗号化データの後で、そのデ ータに固定語がmod2加算されるように、同じ語の第2のmod2加算が実際 上、第1のmod2加算を取り消すので、mod2加算の結果を第10図の数式 と共に復号のために使用することができる。したがって、一例を挙げると、第1 3図の例の暗号化語111を使用した場合、第14図のメモリ22へのアドレス とし この値にS=6の値または110が加算される。すなわち、ラップアラウンドに よって100+110=1010=>011となる。これによって、メモリ30 へのアドレス011またはメモリ30の出力100が与えられ、その値にmod 2 110、すなわちメモリ22へのアドレスが加算され、平文データ010が 回復される。さらにもちろん、第13図および第14図の固定語加算器は固定語 001を使用したが、他の任意の3ビットの固定語を使用することができ、その ため、シフトの変更と共に、あるいはシフトの変更とは別に、必要に応じて固定 語を変更することができ、固定語000は基本的に、システムの動作を第8図お よび第9図の動作に低減する。 第6図、第7図、第11図、第12図に関して説明した方法が、プログラム制 御下のマイクロプロセッサ・ベースのシステムで容易に実施できることは自明で ある。また、メモリは、基本的に参照テーブルとして使用される読取り専用メモ リに容易に事前プログラムすることもでき、加算器およびmod2加算器は、暗 号化・復号化システムの少なくとも主要な要素が高速離散構成要素中で、あるい はカスタム集積チップを通じて実現できるように従来型の加算器回路であってよ い。シフト・プログラムは、シフトが何度必要であるか、シフト順序自体を変更 する程度などに応じて様々な形をとることができ、必要に応じてシフト・レジス タ実施態様を含めて、マイクロプロセッサ・ベースの集積回路またはその他の実 施態様を容易に適用することができる。 II.非線形化の概要 下記の付録1で、前述の本明細書の変換をさらに分析し、その様々な特性につ いて述べる。付録2では、親の親出願のブロック換字方法のある態様を再検討し 、非線形性の概念と、平文から暗号文への非線形写像(およびその逆)を提示す る。この意味での非線形性は、平文から暗号文へ(および暗号文から平文へ)の 写像が、ビットごとのmod2加算動作の下では非線形であることを意味する。 なお、第1図が、mod2加算によるある3ビット2進数の集合の別の2進数の 集合への多数対単一変換を示すことを指摘した。この特定の例は、第1列中の3 ビット数の8つの可能な値をそれぞれ、mod2加算によって、2つ(100お よび011)がそれぞれ2回繰り返される、8つの可能な組合せのうちの6つか らなる列3中の6つの3ビット数にマップするものである。2つの3ビット数( 010および101)が同じ3ビット数(100)にマップされ、他の2つの3 ビット数(100および110)が同じ3ビット数(010)にマップされるの で、この逆写像はあいまいさを有し、第1図に示した写像は、暗号化および復号 化には適さない。 一方、第2図ないし第5図は、8つの可能な3ビット平文語のうちのどれか( 列1)を、対応するあいまいでない暗号化語(列3)に暗号化する数式の集合を 提供するものである。これらの数式は、列1と列3を相互交換しても有効なまま であり、したがって、この相互交換によって、相互交換の前の数式が暗号化用の 数式を形成するのと同様に、対応する復号用の数式を形成する。しかし、第2図 ないし第5図のそれぞれに示した数式の集合は、所与の数式の集合内の2つの数 式(第2図ないし第5図の場合のように3ビット数の場合は8つの数式)の加算 が、その数式の集合のうちの1つであるという点で線形である。たとえば、第2 図で、第1の数式すなわち零数式を任意の他の数式に加算すると、後者の数式が 生成され、したがって、この加算は自明であり、第2の数式と第3の数式を加算 すると、第4の数式が与えられ、第3の数式と第4の数式を加算すると、第2の 数式が与えられ、第4の数式と第5の数式を加算すると、第8の数式が与えられ 、以下同様である。1つの数式をそれ自体にmod2加算するときでも、8つ の数式のうちの1つ、すなわち、零数式が得られる。これは、2つよりも多くの 数式、一例を挙げると、数式2、3、4をmod2加算したときと同様であり、 その場合、数式2と数式3を加算することによって数式4が生成され、数式4を それ自体に加算することによって零数式が生成される。なお、2つの数式をmo d2加算することは、それよりも多くの数の数式を加算することと等価であると みなすことができる。なぜなら、加算される数式のどちらかまたは両方を2つ以 上の他の数式の和とみなすことができるからである。さらに、所与の数式の集合 のうちのいくつかの数式の和は必ず、その集合のうちの他の数式となる。符号分 析の観点から最も重要なことは、零数式以外の7つの数式のうちの右側の3つが 与えられた場合、残りの4つの数式が、3つの既知の数式の組合せの妥当な和に よって求められることである。たとえば、第2図の数式2、3、4の和の組合せ を使用して残りの数式を生成することはできないが、数式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つの独立数式の様々な組合せをmod2加算す ることによって求めることができる。 第10図中の数式の集合に関しては、2つの数式を加算しても、その組の数式 の第3の数式は与えられない。ただし、第10図の左側の各列に001を加算す ると、この場合も第5図の数式の集合の零数式と残りの部分とになる。この数式 の集合は一般に、その数式の集合のうちの3つの独立数式によって与えられる。 この能力によって、基底独立数式の集合から数式の残りの部分が生成される。本 発明は、この能力をなくするものであり、基底線形数式の集合を必要に応じて、 あるいは動的に原出願で開示した様々な方法で、変更できるだけでなく、その結 果得られる基底数式の集合を必要に応じて、あるいは動的に様々な程度に様々な 組合せで非線形化することもできるように、整然と論理的にこれを行い、符号分 析を以前よりもずっと困難なものとする。 再び第2図を参照すると、数式の順序を再構成した場合、もちろん列1中の数 から列3中の数へのマップに変化はない。したがって、第2図中の数式は、第1 5図に示したように再構成することができる。具体的には、零数式を無視すると 、列2中に現れる第1の数(001)が、列1の次の行に現れ、列2の第2の数 (111)が列1の第3行に現れ、以下同様であり、ラップアラウンドの結果、 列2中の最後の数(101)が列1の第1行に現れる(この場合も、零数式を無 視する)。この結果得られる数式の構成は、付録2の7ページに示した形のもの であり、付録2の第15図で、x1は001であり、xmは101である。零数式 と、2n−1個の非ゼロ数式とを有する任意のビット長の語(数)を表す任意の 数式の集合を、それによって定義される写像を変更せずに、そのように構成する ことができる。というのは、そのような構成は、数式の見かけの順序を変更する ものに過ぎず、数式自体を変更するものではないからである。 付録2の第3.2節に、列1および2に現れる語を再構成して、対応する新し いmod2加算式を与えることによって、そのような数式のある種の群を変更で きることが示されている。新しいmod2加算式は、それによって最初の数式の 集合内の最初の数式群を置き換えても、1対1写像を維持し、したがって、この 数式は、暗号化および復号化で使用するのに適している。なお、選択された数式 群の列1および2に現れるマルチビット語の順序が変更されるので1対1写像が 維持されるが、語自体は変更されず、その結果、マップされる語群と、選択され た数式によってそれらの語がマップされる語群は変更されない。ただし、その2 つの群内で、列1中のどの語が列3中のどの語にマップされるかは変更される。 変更されたこれらの数式の正味効果は、それらがもはや、数式の線形拡張ではな く、すなわち、もはや2つ以上の未変更数式を加算しても生成することができな いことである。したがって、これによって最初の数式の集合の線形性が無効にな り、符号分析は必要に応じてより困難になる。線形性の無効化の程度については 後で論じる。 付録2の第3.2節に、ある種の条件下で、所与の数式の集合内のいくつかの 数式群を修正し、それらを使用して完全な数式の集合用の1対1写像を維持し、 同時に、前述のようにその1組の数式の線形特性を無効化するように、最初の集 合内の対応する最初の数式群を置き換えることができることが示されている。こ のような条件は、付録2の第3.3節に数式形でより具体的に示されている。こ の節には、2つの可能な修正が数式形で示されている。基本的な概念は、最初の 数式の集合中の行の連続3つ組を合計することであり、付録2の第3.2節の分 析では、第3.3節で述べるように、そのような行の連続3つ組を合計すること による非線形化が作用するのが、最初の数式の集合のうちの3つまたは4つの連 続行の集合を使用する場合だけであることが示されている。3つの連続行を使用 する場合、実際には4つの行、すなわち、最初の数式の集合の3つの連続行と、 そのmod2ベクトル和に対応する4番目の行が修正される。この修正は、4つ の行のそれぞれに次式をベクトル的に加算することによって得ることができる。 最初の線形数式の集合の4つの連続行を使用する場合、最初の数式の集合の6 つの行、すなわち、4つの連続行と、そのうちの最初の3行のベクトル和を表す 行、および最初の数式の集合の4つの連続行のうちの最初の3行のベクトル和に 対応する行(たとえば、付録2の10ページに示したように、行1、2、3の和 に対応する行と、行2、3、4の和に対応する行)が修正される。この場合の修 正は、対応する6つの行に次式をベクトル的に加算することによって得ることが できる。 上記の数式と付録2のA2ページに示した最初の数式の形は、非線形化が作用 するのが、最初の線形数式の集合の第1行、第2行、第3行、および他の1行を とり、あるいは、最初の線形数式の集合の第1行、第2行、第3行、第4行、お よび他の2行をとる場合であることを示す。この方法が作用するのは、修正のた めに選択される最初の数式の集合のうちの数式がそれらの範囲内で線形であるた めなので、本発明の方法によって一度非線形化された数式はもはや、非線形化プ ロセスの一部として使用することはできない。このため、このプロセスでは4つ または6つの数式しか非線形化できない傾向があり、これはもちろん、より大き な語サイズの場合の総数式としては不十分な数である(たとえば、4ビット語で は16個の数式が必要であり、8ビット語では256個の数式が必要であり、以 下同様である)。しかし、再び第15図を参照すると、列2中のどの語または数 を非零行からx1として選択すべきかが任意であることが理解されよう。一例を 挙げると、001ではなく011をx1として選択した場合、第3の非ゼロ行が 第1行になり、第4の非ゼロ行が第2行になり、第5の非ゼロ行が第3行になり 、第6の非ゼロ行が第4行になり、第7の非ゼロ行が第5行になり、第1の非ゼ ロ行が第6行になり、以下同様であり、基本的に下の5つの数式がシフトされ、 上の2つの非ゼロ数式がラップアラウンドされ、その結果、数式自体も、数式の 順序付けも変更されず、その系列の開始点のみが変更される。そのような数式構 成を第3図に示した。この図で、x1=100およびxm=(=x7)=011で ある。したがって、付録2の10ページに提示した数式は、3つの連続行と、そ の和に対応する行を修正する場合(非線形化)、任意の3つの連続行をそのよう に選択することができ、選択した3行と、その3行の和に対応する行のうちのど れも、より早く選択することによって事前に非線形化しておくことはできないこ とによってのみ制限されるという点で一般的なものである。同様に、4つの連続 行と、前述の2つの和行を選択する場合、任意の4つの連続行をそのように使用 することができる。ただし、この場合も、選択した4行と2つの和行のうちのど れも、このプロセスによって事前に非線形化しておくことはできない。数式を非 線形化向けに一般化するには、x1を、選択した3つまたは4つの連続行のうち の第1行の第2列中の値とみなし、それに応じて、各列の値の変更するだけでよ い。 非線形プロセスが零数式以外の数式に対して実施されることに留意されたい。 2n−1(nは、使用される語のビット長)個のそのような数式があるので、必 然的に、非線形化ではnの値にはかかわらずに奇数の数式が利用できるが、非線 形化プロセスは、偶数(4または6)個の数式を一度に非線形化する(高速シス テムでは、所与の線形数式の集合の重ならない異なる群を同時に非線形化する装 置を提供することができる。なぜなら、どのプロセスを使用するかにかかわらず 、重ならない群に対する非線形化プロセスは完全に相互に独立するものだからで ある)。したがって、所与の線形集合中のすべての数式を非線形化できるわけで はないことは明らかである。したがって、いくつの数式を線形化することができ るかと、非線形化すべき数式を選択するための論理的な方法があるかどうに関す る問題がある。これらの考慮すべき点については、付録2の第3.4ないし3. 6節で論じる。一般に、すべての数式を非線形化できるわけではないが、通常、 4ビット以上の語サイズでは大多数の数式を非線形化し、重要でない残りの非線 形化数式を残して、おそらく、それにより、場合によっては符号分析の観点から 誤りに導くことができる。さらにもちろん、非線形化すべき行の数および識別と 、どの非線形技法を使用するかを必要に応じて変更し、あるいは動的に変更する ことによって、符号分析の問題がさらに複雑になることに留意されたい。ただし 、そのような時変非線形化も動的可変非線形化もハードウェアの観点からは難し いものではない(ソフトウェア制御下で実施する場合はソフトウェアの観点から も難しくない)。なぜなら、簡単で容易に変更できる母関数から開始線形数式の 集合(この数式自体を、前述のように、必要に応じて、あるいは動的に変更する ことができる)を生成することができ、その数式の集合を論理プロセスを使用す る方法でかつそのような範囲に非線形化することができ、その方法および範囲自 体をそれぞれ、必要に応じて、あるいは動的に変更することができるからである 。 前記の一例として、特定の母関数を使用する4ビット数または語の別の4ビッ ト数または語への線形写像用の16個の数式を提示するA1ページ(付録2の付 録A)のテーブルに注目する。この16個の数式が、付録2の10ページの最初 の数式に関して指摘したように構成されることに留意されたい。A1ページで指 摘するように、本明細書で使用する線形性の概念によって、A1ページの16個 の数式のうちの任意の2つの数式の和が16個の数式のうちの別の数式となるこ とが容易に検証される。A1ページのこのテーブルは、A8ページで説明するよ うに非線形化され、付録2のA9ページにその非線形化形で提示されている。具 体的には、この非線形化は、第1の方法によるものであり、すなわち、最初の数 式の集合(零数式を無視する)の3つの連続行と、最初の3行の和を表す行を使 用する。なお、列1中の最初の3つの非ゼロ数(1001、0001、0010 )のmod2和は1010、すなわち、非ゼロ数式の第11行中の値に等しい。 し mod2加算することによって非線形化される。さらに具体的には、x1は00 0 A9ページのテーブルに示したように、最初の数式に0011をmod2加算す 列3中の最初の値である)。行2、3、11上の数式に対する同じ加算では、こ の4行に対する変換が実行される。同様に、非ゼロ数式の行5、6、7を加算し た場合、非ゼロ数式の行15の数式が得られる。最後の非ゼロ行をA1ページに 示す。前記の4行は、行1、2、3、11と同様に非線形化することができる。 しかし、この場合、適用される数式は実際上、次式であることに留意されたい。 付録2のA9ページの16個の数式の集合の次の非線形化に関しては、検討で きる他の2組の3つの連続数式、具体的には8、9、10と、12、13、14 がテーブル中にある。しかし、行8、9、10をmod2加算すると、すでに使 用された行である非ゼロ数式の行3が与えられ、行12、13、14のmod2 和では、すでの使用された別の行である行7が与えられる。したがって、3つの 連続行または3つの連続数式の2つの追加群が存在するが、どちらの3つの和も 、すでに非線形化されている行または数式となるので、これを使用することはで きない。 他の例として、本明細書の付録2のA4ページの1番上に記載したテーブルに 注目されたい。この線形数式の集合は、同じではあるが新しいベースに適用され (付録2のA3ページの1番下を参照)、前例と同じ数式の集合(数式1、2、 3、5、6、7、11、15)を使用して非線形化されたときに、付録2のA1 1ページに記載した非線形数式の集合を与える母関数を使用する。 第3の例として、A11ページの1番下の近くに記載した例に注目されたい。 この非線形化数式はA12ページに示されている。この例は、付録2のA1ペー ジに提示され、異なる基本、具体的には4つの連続(非ゼロ)数式1、2、3、 4と、1、2、3の和、すなわち数式11と、数式2、3、4の和、すなわち数 式12と、3つの連続数式13、14、15と、それらの和、すなわち数式8を 使用して非線形化された15個の数式(零数式を含む)のテーブルの別の非線形 化の例である。4つの連続数式と、2つのmod2和数式を非線形化するための 数式はもちろん、前記で与えられており、付録2の10ページに記載されている 。具体的には、行1およびqに1つ、行2および3に1つ、行4およびq+1に 1つの3つの異なる数式が使用される。行1を例にとると、列3にゼロが加算さ れ、 2ページの非線形化数式の集合中の第1の非ゼロ数式が生成される。線形非ゼロ の行2の列1および2に加算すると、A12ページの数式の集合中の5番目の非 ゼロ数式が生成される。最後に、行4およびq+1に第3の数式を使用すること たとえば、線形非ゼロ数式の行4の列1および2に加算すると、A12ページの 非線形化数式の集合中の非ゼロ数式の行2が生成される。もちろん、非線形化プ ロセスによってすべての6つの適用可能な行を修正しなければならない。したが って、この後者の例では、前の例での8つとは異なり10個の数式が非線形化さ れ、もちろん、この結果得られる列1から列3への写像は、この2つの数式の集 合に関して全体的にかなり異なるものとなる。 最後に、非線形化数式は、最初の2列のそれぞれにオフセットをmod2加算 することによって、さらに修正することができる。これはもちろん、このオフセ ットをそれ自体に加算することと等価であり、これはもちろん、0になり、した がって第3列中の数には影響を与えない。具体的な例として、第17図は、前記 で説明し付録2のA12ページに図示した、第1および第2列にオフセット01 01を加算することによって修正された第3の例の数式の集合を提示するもので ある。 第16図は、本出願の本発明による典型的暗号化・復号化装置のブロック図を 示す。第16図で分かるように、最終的に、平文データ・ブロックまたは暗号文 データ・ブロック(どちらも長さnビット)がメモリへのアドレスと並列して提 示され、データがそれぞれのデータ・ブロックの暗号化および復号化に対応する アドレスに記憶される読取り/書込みメモリの形の参照テーブルを使用すると好 都合である。そのために、メモリ・アドレス範囲が、操作すべきデータ・ブロッ クよりも1ビットだけ広くなるように、暗号化または復号化に必要なアドレス零 間(たとえば、n+1アドレス・ビット)の2倍のアドレス零間のメモリを使用 すると好都合である。このように、1ビットのメモリ・アドレスを使用して、動 作を暗号化動作とするか、それとも復号化動作とするかを指定することができる 。具体的な例を挙げると、メモリ・アドレスの最上位ビットは、復号プロセスを 示す0、または暗号化プロセスを示す1でよく、メモリのアドレス範囲の下半分 に復号データを記憶し、メモリの上部アドレス範囲に暗号化データを記憶するこ とができる。したがって、暗号化と復号化は共に、単一ビットを制御することに よって参照テーブルに応じて実行することができ、nビットのブロックの暗号化 も復号化も単一メモリ・サイクルで行うことができる。 暗号化および復号化用の写像を周期的または動的に、あるいはその周期的でか つ動的に変更すると仮定すると、参照テーブルの内容を修正するある方法を提示 することができる。これは、専用ハードウェアによって実行することができるが 、プログラム制御下で適当なプロセッサによってこれを行うと好都合である。と いうのは、暗号化方式および復号化方式の修正は通常、暗号化および復号化自体 を実施することよりもずっとまれにしか行われないからである。したがって、こ のような修正を暗号化および復号化自体と同じ速度で行う必要はない。したがっ て、第16図に示した非線形動的換字ジェネレータは、それへの様々な入力に基 づく プログラム制御下で動作することができる。具体的には、暗号化用の数式は、そ れを定義する何らかの基本情報、一例を挙げると、ブロック換字ビット・サイズ (n)、n個の線形独立数の基底集合、母関数、非線形化を開始する線形集合の 開始数式、実行すべき非線形化関数の反復数が与えられた場合、暗号化用の数式 をプログラム制御下で生成することができる。 非線形化数式にオフセットを適用した後、列3中の各数またはブロックは、符 号化に割り当てられた参照テーブルの、それぞれの行の列1中のブロックに等し いアドレスの部分に記憶される。したがって、列1中の数またはブロックをアド レスとして適用したとき、メモリから読み取られる数は、それぞれの暗号化ブロ ックを表すその行の列3中の数である。テーブルの復号部分に関しては、このプ ロセスが反転され、その場合、列3中のブロックがメモリ・アドレス(より適切 には、アドレス部分、完全なアドレスはアドレス・ビット指定復号を含む)とし て使用され、そのようなアドレスに記憶されるデータは列1中のそれぞれのブロ ックである。したがって、復号時に、メモリは、暗号化ブロックによって定義さ れたアドレスから開始し、それぞれのアドレスに記憶されているデータは、関連 する平文ブロックに対応する出力として提供される。都合上、詳細な暗号化方法 および復号化方法を付録3に記載する。 暗号化プロセスおよび復号化プロセスを完全にプログラム制御下で実施できる ことは自明である。なぜなら、2つのプロセスは共に、ある種の(可変)開始情 報が与えられた場合、論理処理しか必要としないからである。しかし、プロセッ サが同じ暗号化数式および復号化数式を何度も再生成するので、暗号化および復 号化を実施する速度は、大幅に減少される。これに対して、参照テーブルを使用 すると、完全な暗号化数式および復号化数式の集合を一度に求めることができ、 暗号化または復号化すべきデータ・ブロックに関するその情報は、数式が変更さ れるまで連続的に単一のメモリ・サイクルで得ることができる。 III.線形直交写像(linear orthomorphisms)の修正 本節では、前記の第IおよびII節で説明した線形直交写像に対するある種の 修正を提示する。 一般性を失わず、かつθ、すなわち加算識別を固定点として使用する場合、次 式のように最大長直交写像を数式の集合として書くことができる。 上式で、m=2n−1、R(xk-l)=xkおよびS(xk-l)=zkは3つの可 能な写像のうちの2つである。従来どおり、本出願人の暗号写像またはブロック 換字としてS(x)を使用した。 線形直交写像の場合、θは、固定点でなければならず、極大である場合、代表 数式は、次式のように非常に簡単な形をとる。 線形バージョンを適切に修正することによって非線形直交写像を構築すること 算すると、次式が得られる。 アフィンである。さらに全体的に非線形であるには、数式の線形アレイを部分集 合に分割し、異なる方法で修正する必要がある。線形直交写像中のa番目の行の 個別の数式 は次式になるように修正しなければならない。 上式で、最初の線形直交写像において、xc-lは左側の列の行cに現れ、xbは 、中央の列の行bに現れる。この場合、次式が成立する。 上式は、数式12と同様に行a中の数式を変換するように適用される。 線形直交写像中の2n個の数式の集合全体がコラプチブル(corruptible)であ り、数式(10)から、最小コラプチブル集合の候補は、3つの行または数式か ら成る。しかし、3つの数式のコラプチブル集合(corruptible set)を含む線 形直交写像は、極大ではないので、暗号には無用である。 それが表す置換に3サイクルを有することを示すことができる。 下記の分析は、前記の命題1を証明するものである。線形直交写像中の3つの 数式のコラプチブル集合 は、指数の行列で示すことができる。 非線形化(コラプション)後、行の順序が自明なので、次式のように可能な指 数行列は2つしかない。 左側の行列をとると、対応するコラプトされた数式は次式のとおりである。 指数aおよびbを含む任意の2つの数式を選択することができるが、数式cに は矛盾する3つの条件がある。下記では、そのような数式が線形アレイ中に存在 すると仮定する。数式の線形アレイは群なので、指数d群には、最初の3つの指 数の和である下記の第4の数式が存在する。 線形アレイ中のこの4つの数式は、線形アレイ中の位数4の部分群から導出さ れるコセットを形成する。この部分群は、コセット中の4つの数式の1つを他の 3つ、たとえば、数式aに加算して次式を得ることによって、得ることができる 。 数式19を使用すると、この部分群は、次式のようになる。 最後の3つの数式は、線形アレイの正規化形(数式19)に連続的に現れ、3 サイクルを形成する。他の指数行列を使用した場合、左側の列と中央の列を相互 交換し、なおかつ等性を維持することができ、同じ結果が得られる。 前記の命題は、ブロック・サイズnの極大線形アレイで、任意のn個の連続行 が線形に独立しているという認識にも従うものである。位数4の部分群が線形に 独立な行を有することはできないので、アレイを極大にすることはできない。 次に、4つの行a、b、c、dのコセットを検討し、最初の3つの行を前述の ように修正すると、結果は次式のとおりである。 数式24を線形バージョン(数式11)と比較して、下記の混合変換を導出す ることができる。 3つの連続行とその和がコラプチブル集合を構成した(付録II、第3.2節 参照)。これは、任意の2つの非ゼロ行をとることに一般化される(付録IV、 第II節参照)。 次式によって指定される第3の行cを求め、 次式によって指定される第4の行dを求める。 したがって、数式の線形直交写像アレイ中の任意に選択された2つの非ゼロ行 は、4つの数式の2つのコラプチブル集合を指定する。これらの集合のうちの第 2の集合は、次式によって第3の行cを選択することによって指定される。 数式のこの集合を非線形直交写像の4数式セグメントに変換する。最初の4つの 数式が、位数4の部分群での相対補数であり、あるいは、そのような部分群から 導出されたコセットと等価であることは明らかである。前記の命題1の場合と同 様に、この部分群は、次式のように、4つの数式のうちの1つを4つの数式のそ れぞれ、たとえば行aに加算することによって導出することができる。 線形アレイで連続している。同様の結果が第2のケースでも成立する。したがっ て、4つのコラプチブル数式を求めるプロセスは、2つの連続行を含む位数4の の形を有する。 形成することができる。 れる混合変換群は、Wk=Lk∩Mkである。ある種の状況では、Wk={θ}であ り、建設的コラプションは不可能である。前記のことは、下記の第IV節でさら に詳しく説明する。 部分群のコセットでも相対補数でもないコラプチブル・セットがある。たとえ ば、コラプチブル・セットは、次式のように、4つの連続数式と、最初の3つの 数式および最後の3つの数式をとることによって生成される。 を使用してさらに2つの行を加算することができる。 この結果得られる8つの数式は、3つの連続行の1つの集合と2つの連続行の 1つの集合を含む位数8の部分群から導出されるものとして容易に示すことがで きるコセットを構成する。 建設的コラプションは、非線形直交写像を形成するようにアセンブルできる非 線形セグメントを与えるが、このように得ることができない非線形セグメントが あるかどうかに関して問題が発生する。 命題2:一般に、建設的コラプションによって任意の極大長非線形直交写像を 線形(自己同型)直交写像から導出することができる。 前記の命題は、下記の分析によって証明される。一般性を失わずに、θを固定 点と仮定することができる。極大長非線形直交写像の正規化形はを数式11aに 示す。右側の列中のnビット数は、次式のように、置換の新しい位数が線形直交 写像になるように置換される。 これは、ziの補線形独立集合に線形母関数、すなわち原子多項式を適用する ことによって多数の方法で実行することができる。したがって、ui=zjである 。ここで、i=f(j)は前述の置換を表す。この同じ置換を、非線形直交写像 S(xk-1)=zkを変更せずに数式11a中の数式アレイに適用することができ る。しかし、{ui}置換はこの場合、線形直交写像を定義する。この正味結果 は、次式の形のm=2n−1数式の二重集合である。 対応する混合変換は次式のとおりである。 前記の分析の主要な結果は、特殊な部分群を使用するコセット分割が、成分ご との非線形化の候補を見つけるための有効で系統だった手段であり、そのような 技法を使用した場合、非線形直交写像のどのクラスも見逃されないことである。 次節では、どんなサイズの成分をコラプトすべきかを判定する分析と、成分をど のようにして、暗号用の望ましい特性を有する非線形直交写像としてアセンブル すべきかを提示する。 IV.完全な非線形直交写像の構築 第III節では、それ自体の中で非線形化することができる線形直交写像の成 分(数式のコラプチブル集合)を求めるにはどうすべきかを説明した。本節では 、成分を2n−1個の数式の完全な非線形直交写像としてアセンブルするにはど うすべきかを説明する。本節ではさらに良好な線形直交写像および良好な非線形 代入を構成するものについて説明する。一方の極端な例では、位数4のコセット を修正して、残りの2n−4個の数式を修正しないでおくことができる。他方の 極端な例では、すべての2n個の数式を単一の混合変換で修正することができる 。成分ごとの線形化もアフィン写像も十分ではない。任意の写像Sの場合、次式 を評価することができる。 Sがアフィン写像である場合、数式39の和は、Sが線形である場合はすべて の対x、y、c=θに対してある種の固定数cとなる。したがって、非線形性の 自然な尺度は、N(x,y)の範囲および分布である。 命題3:極大長線形直交写像中の位数2kの部分群の場合、対応する混合変換 群の位数Wkが22k-n≦|Wk|≦2k-1となることを証明することができる。 位数は2kである。Wk=Lk∩Mkである。|Wk|=2kである場合、Lk=Mk|Wk|≦2k-1である。LkおよびMkはそれぞれ、k個の線形独立数の集合を有 し、それらの集合はそれぞれ、{x1,x2,...,xk}εLkおよび{xk+1 , xk+2,...,x2k}εMkで示される(これらの指数は、この場合、数式1 の線形独立数がある。したがって、2k>nである場合、{x1,...,xk, xk+1,...,x2k}には、相互に依存する2k−n個の数の部分集合がある 。一般性を失わずに、{xk+1,xk+2,...,xn}が{x1,...,xk} から独立していると仮定することができる。残りの数{xn+1,...,x2k} は{x1,...,xk}εLkに依存しなければならない。相互に独立な2k− n個のそのような数があり、したがって、{xn+1,...,x2k}εLk∩Mk である。 うことである。 位数2kのコセットは、対応する混合変換群が位数2k-1である場合「完全にコ ラプチブル」であると言われる。 る。前記の仮定および定義を用いた場合、コセット分割は次式の形をとる。 実際的な目的のために、コラプチブル集合への分割が望ましい。これらのコセッ トのそれぞれは、利用可能な同じ混合変換群を有する。 線形直交写像を表す数式の極大部分群は、連続ステップによって非線形直交写 像に変換することができる互いに素な部分集合に分割することができる(付録I V参照)。これは、完全にコラプチブルなコセットに一般化することができる。 建設的なコラプションの実際的な問題は、非線形化すべき線形直交写像アレイ 中の数式の集合のサイズをどのように選択すべきかと、矛盾なしで混合変換を割 あり、完全にコラプチブルである場合、混合変換集合の位数は|Wk|=2k-1の数式にベクトル的に加算することによって得られる。このコセットは、Wk中 のいくつかまたはすべての混合変換を適用することによってコラプトすることが できる。wεWkを1つしか使用しない場合、その結果、アフィン集合が得られ る。すべてのwを使用しようとした場合、wを矛盾なしで割り当てるにはどうす つの小さなコセットを別々にコラプトすることができる。問題は、混合変換集合 の位数|Wk-1|が2k-2であることであり、そのため、混合変換が適用される数 式の数の半分の混合変換しか得られないことである。k=2であり、コセットの 位数が4であるという限界のために、W2={θ,w}であり、したがって、す べての2n-2−1個のコセットに適用できる混合変換は1つしかない。下記では 、 合を求め、その結果、この部分集合の左側の列と中央の列中の数をそれら自体の 列の全範囲にわたるようにする方法を提示する。 この方法は、「カット・アンド・トライ」法(付録II、第5節参照)ではな く整然としたプロセスへの複数の混合変換の割当てを簡略化するものである。付 録IVの17−17ページに、極大部分群に関する方法の概要が示されている。 スを一般化する。この方法は、極大部分群と同様に働く部分群を求めようとする ものである。 命題4:位数2kの完全にコラプチブルな部分群が、極大線形直交写像を表す 完全な数式アレイの数式のk個の連続行を有することを証明することができる。 前記の命題は、下記の分析によって証明される。位数2kの完全にコラプチブ 個の線形独立数式の極大集合を有する。Wkは、k−1個の数の極大線形独立集 合を有する。完全な線形アレイ中の列LまたはMから連続数の最大集合を含む集 合を求めることが望ましい。k−1個のそのような数xa,xa+1,...xa+k- する。 k−1個の線形独立数の集合中の連続数がk−1個よりも少ない場合、これら の数は、連続数のより小さな集合とすることができる。最大のそのような集合は 、xa,xa+1,...xa+ka-2であり、2番目に大きなそのような集合はxb, xb+1,...,xb+kb-2であり、以下同様であり、最終的に、Wk中のk−1個 の独立数の集合が(ka−1)+(kb−1)+...=k−1によってアセンブ 集合を定義する。 xが線形に独立しているので、数式42中のka+kb+...>k個の個別の 完全にコラプチブルな部分群は、非線形直交写像を導出するうえで有用である だけでなく、下記で示すように、より小さな部分群の構造にも影響を及ぼす。 命題5:位数2kの完全にコラプチブルな部分群では(k≧4)、位数2k-1の 各部分群がコラプチブルであることを証明することができる。 前記の命題は、下記によって証明される。そのような完全にコラプチブルな部 である。連続行の連続的に小さくなるk組の系列がある。この系列の指数を表I に提示する。 k≧4なので、少なくとも4つの連続a行、3つのb行、2つのc行がある。 k−1行の連続する3つの集合 される。同様に、(b,a+2,a+3,...,a+k−1)は、k−2個の からすべての対をなくする必要がある。1つを除くすべてのa、たとえば、aな 以下同様である。この場合も、c指数を含む連続行をなくするために、いくつか のそのような行が補数中に存在することになり、したがってその結果、3重和が 得られる。 n≧5の場合、これは、位数2n-2の部分群がコラプチブルであり、もちろん 、命題4によって、位数2n-1の部分群が完全にコラプチブルであることを意味 する。 前記の命題は下記によって証明される。非線形直交写像は、線形直交写像から w=θ(w≠θ)をベクトル的に適用した場合、写像はアフィンとなる。直交写 像が3サイクルを有することはないので、最小コラプチブル集合は位数4を有す る。 である。ここで、wは、自明でない単一の混合変換である。S(x)=zが最初 部分群に関してはS’(y)≡S(y)である。WεG2であり、したがってS ある。下記の3つのケースがある。 極大部分群の補数が単一の混合変換でコラプトされる場合、同じ結果が任意の ブロック・サイズに対して成立する。次のステップは、コセット対またはその部 分集合が、完全な混合変換群を使用する場合でも、最小限の相互作用で修正でき るという追加特性を有する完全にコラプチブルな部分群を求めることによって、 建設的コラプションのプロセスをさらに向上させることである。 の2つのコセットに分割し、その結果、そのようなより小さな各コセットの左側 の列および中央の列中の数が、それらの間で再構成できるようになり、かつその ることができる。 式が成立する。 完全な直交写像集合から得たk個の連続行または数式の集合を含む。このk個の 行は、線形独立集合である。このk個の行のすべての偶数和をとることによって とLk-1とMk-1の間で発生するので、Lk-1⊂RkおよびMk-1⊂Rkである。この 直交写像は極大なので、妥当なサイクルはなく、したがって、Lk-1≠Rk-1およ びMk-1≠Rk-1である。したがって、Lk-1∩Rk\Rk-1およびMk-1∩Rk\Rk -1 が空ではない。この場合、Rk\Rk-1はRk中の数の集合であるが、Rk-1中の 数の集合ではない。Lk-1およびMk-1がRkの部分群なので、任意のxεLk-1なければならない。したがって、Lk-1およびMk-1中の数の対を再構成すると、 Lk-1×Mk-1×Rk中にコラプトされた数式がもたらされる。 すことができる。すなわち、次式が成立する。 したがって、uεxa-1k-1およびvεxak-1である場合(あるxεLk-1 したがって、数の任意の対u,v(uεxa-1k-1およびvεxak-1)の場 k-2によって定義されるブロック・サイズ8極大長線形直交写像を検討する。 8ビット2進数の完全な線形独立集合を{A,B,C,D,E.F,G,H}と する。この場合、各文字は、8ビット2進数を表し、具体的にはA=X,B=X2 ,.....,H=X8である。都合上、そして話を簡単にするため、表記法A ると、直交写像を表す28=256個の数式または行が定義される。たとえば、 に示す。 暗号化に使用される直交写像はたとえば、行5のS(D)=DEである。話を ると次式が成立する。 してコセットを構築することができる。 割することができる。 および このコセット分割を使用する場合、別のコセット上で使用できる唯一の自明で ない混合変換はBである。 やはり完全にコラプチブルな異なる部分群が得られる。 数式53中の部分群とは異なり、この場合、次式のように、L2⊂R3およびM および を矛盾なしで使用することができる。表IIを参照されたい。 縦座標は、数式53の左側の列中の2進ブロックの行番号をリストし、横座標 は、数式53の中央の列中の2進ブロックの行番号をリストしたものである。表 うちの一方の行を含むことに留意されたい。各列および各行を使用できるのは1 度だけであり、表項目(行番号)を繰り返すことはできない。これが三次元表で ある場合は、各行、各列、各軸が1度しか使用できないことを意味する。 表IIを使用して、建設的コラプションのパターンを選択することができる。 い。この場合、2つの混合変換を使用した。 他の手法は、識別変換を含め、すなわち、いくつかの行、たとえば、6/Θか にしておくことである。この場合、すべての混合変換が使用されているが、2つ の行6および155は未修正のままである。他の何らかのコセットの一部または その和、すなわち、行3を修正することができるので、この2行は後で変換する ことができる。 前記の方法は、非線形化プロセスを整然と実行できるように、任意のサイズの 部分群およびコセットに適用し、次いで、連続的に小さくなる部分群に適用する ことができる。線形アレイ中のすべての行を修正しなくても、通常、 となるようにし、かつ値を均一に分散することができる。 前記は、完全な非線形直交写像を構築するための一般的な技法および方法を提 示するものである。前記のn=8の例は、具体的な数式を含む一般的な技法を例 示するために与えられている。下記の節では、暗号でブロック換字を実施するの に適した特定の非線形化技法について説明する。 V.部分群の入れ子系列 第18図および第19図を参照すると、第1の好ましい非線形化方法が提示さ れている。この方法は、部分群の入れ子系列を使用するものである。この方法の 特定のステップを説明する前に、付録IVに提示した背景材料を特に参照して部 分群の入れ子系列について説明する。 付録IVの第3節は、2n個の数式の線形アレイ中の数式の極大部分群から開 始することによる非線形化の概要を示すものである。Gn-1は、2n-1個のそのよ うな部分群のうちの1つであり、|Gn-1|=2n-1である。すべてのそのような 選択することによって指定することができる。すべての極大部分群は、すべて から求めることができる。直交写像アレイGnのこれらの極大部分群はすべて、 基本的に、同じ行間隔を有し、かつすべて同じ増分だけメンバー行の指数を変更 することによって他方の部分群から得ることができる点で、相互の像である(付 録IV、命題1参照)。したがって、数式のnビット数の極大部分群も線形直交 写像アレイの極大部分群も、容易に求めることができ、かつ容易に処理すること ができる。 Gn-1=Ln-1×Mn-1×Rn-1は、Ln-1、Mn-1、Rn-1がそれぞれ、左側、中 は補数である。混合変換の集合Wn-1=Ln-1∩Mn-1は群であり、|Wn-1|=2n-2 である。Gn-1から、次式のような完全にコラプチブルな部分群の入れ子系列 と、 次式のような相対補数の同様な系列を構築することができる。 含む。 これらの部分群も、次式のような入れ子系列を形成する。 i}であり、これに対応してW2={θ,xi}である。各1≦k≦n−2ごと に、次式が成立する。 線形化手順を下記に示す(かつ第18図に図示する)。 k>1の場合はWn-kにはなく、したがって、その後に続くコセットGn-kでは使 用されない。 スを順次継続する。 あるいは、単にそのままにしておき、すなわち、w=θを適用することもできる 。 前記の方法は、簡単であるだけでなく、2n-2−1個の自明でない混合変換を 使用するという利点も有する。また、少なくとも2n−4個の数式が変換される 。しかし、その結果得られる構造はある順序を保持する。Gn-1は、n−1個の 連続行の単一の集合を有し、群構造のために、n−2個の連続行の別の集合を有 する。したがって、命題4から、すなわち、n−2個の行の集合を生成元として 使用し、あるいは、Gn-1中のn−1個の連続行の集合の最初の行または最後の 行を省略して、Gn-2を完全にコラプチブルな部分群として構築する3つの方法 がある。まず、2n−1個の極大部分群を選択し、それに続く各レベルで3つの 部分群を選択する必要がある。したがって、そのような入れ子系列の可能な総数 は(2n−1)(3n-2)である。 その場合、 であり、建設的コラプションにもかかわらず、いくつかの線形部分群が残る。 前記の検討すべき点を考慮に入れ、特に第19図を参照して、部分群の入れ子 系列を使用するための好ましい暗号化方法について説明する。この方法は、nビ ット2進数の2n個のnビット平文ブロックのうちのどれかを、関連する固有の nビット2進数暗号化ブロックで置き換えることによって、データ・ブロックを 暗号化するように動作する。この方法は、第16図に概略的に示したように、非 線形動的換字ジェネレータを使用して実施することができる。 第19図を参照すると分かるように、第1の方法は、(11a)の場合と同様 に、2n個の数式の第1の行列Gn、すなわち、各数式が、左側の列上の2n個の ブロックのうちの1つと中央の列中の2nビット数のうちの固有の1つをmod 2加算して、右側の列の関連する固有のnビット・ブロックを与えることを表す 、線形直交写像を求めるために使用される。2n個の数式の第1の行列中のすべ ての数式は、任意の数の数式のmod2ベクトル和が、第1の行列中の1つの数 式 102で、FIRST行中のn−1個の連続数式を選択し、これらの連続数式と 識別数式のすべての和を求めて次式を得ることによって、FIRST行列の2n- 1 個の数式の部分集合Gn-1が選択される。 上式で、s=2n-1−1であり、Ln-1、Mn-1、Rn-1はそれぞれ、左側、中央 、 =2n-2である。 数式の第1の行列を求める原則を付録IIIの第2節に提示する。ステップ1 02ないし110で、2n個の数式の第1の行列中の2n個の非零数式のうちの複 数の数式が、2n個の数式の第2の行列を形成するように修正される。数式は、 修正済みの数式が全体として、第1の行列の左側の列と同じではあるが順序の異 なる平文ブロックを、第1の行列の右側の列と同じ固有のnビット・ブロックに 、未修正の数式の最初の順序で写像するように修正される。複数の数式は、修正 済み数式が、第2の行列中の他のどんな数の数式のmod2和にもならないよう に修正される。2n−1個の非零数式の修正がステップ104ないし106で行 われる。 復的に適用される。ステップ108の反復回数は、nの値に依存する。n=8を 数式の第2の行列の左側の列中の2n個のnビット数のうちの1つとしてユニー クに位置する暗号化すべき各平文ブロックが、関連する数式の中央の列中のブロ ックにmod2加算され、関連する数式の右側の列中の暗号化ブロックが得られ る。 ステップ112は、最終的な暗号化ブロックを得るように働く。前記の第Iお よびII節で説明した前の暗号化方法の場合と同様に、第19図に示した方法の ステップは、最大変換速度が得られるハードウェア回路を使用して実施すること が好ましい。しかし、プログラムされたマイクロプロセッサを使用して、第19 図に示した様々な方法ステップを実行することができる。 VI.異なる部分群のフィット済みコセット(fitted coset) 次に、第20図および第21図を参照して、本発明の第2の好ましい暗号化方 法について説明する。 第20図の方法は、異なる部分群から、したがって、それぞれ異なるが、ジグ ゾー・パズルのようにはめ合わせることができる混合変換群によって、コセット を求めるものである。 第20図および第21図の方法は、異なる部分群からのフィット済みコセット を使用して、暗号化を実施する。最初に、この方法を概略的に説明し、次いで、 第21図に関して詳細に説明する。 なるコセット分割と2つの異なる混合変換群とを含む位数22kの1つの部分群と 型であり、したがって、相互に同型である、2つのコセット分割である。それぞ ズnに応じて、2つよりも多くのコセット分割に拡張することができる。2では なく、位数2kの互いに素なある数cのコラプチブル部分群を選択した場合、K 下記は、n=8の場合の一例であり、極大長線形直交写像は、識別の他に25 5の数式または行を含む。 この例を第20図と下記の表IIIに示す。第20図は、ブロック・サイズn =8のブロック番号の2進数の極大長線形直交写像に関する多重コセット分割を 図示したものである。表3は、ブロック・サイズが8の場合の極大長線形直交写 像に関する16行の4行コセットへの分割を示すものである。 選択する。各部分群は、2つの連続行と、それらの和と、識別行とを有する。各 部分群は、それ自体と、それぞれ、4つの数式から成る、63個のコセットとか ら成る完全な線形アレイの固有のコセット分割を確立する。位数4の部分群は、 4行Qコセットのそれぞれを、3つの方法で、それぞれ16行の4つのコセット (表III参照)。最後に、混合変換を適用して、建設的コラプション・プロセ スを完了することができる。 必要に応じて、線形アレイ中のすべての数式をこのように修正することができ る。この方法は、第V節の順序手法よりもある程度複雑ではあるが、数式9によ って測定した非線形性に関してより優れた結果を与えた。 次に、異なる部分群からなるフィット済みコセットを用いたデータ暗号化の好 ましい方法を第21図を参照して具体的に説明する。上記の第V節で説明した方 法と同様に、この方法は、2n個の固有のnビット2進数平文ブロックのうちの 1つを、関連する固有のnビット2進数暗号化ブロックで置き換えることによっ て暗号化を達成する。最初、ステップ202で、2n個の数式の第1の行列Gnが 求められる。この方法ステップは、第19図のステップ102と同じものであり 、本明細書ではこれ以上詳しくは説明しない。 場合、各部分群およびコセットは、連続的に小さくなるコセットに分割される。 ステップ212で、選択されたコセットが、そのそれぞれの混合変換によって修 正される。この結果得られる2n個の数式の第2の行列は、非線形直交写像であ る。 最後に、ステップ214で、2n個の数式の第2の行列の左側の列中の2n個の nビット数のうちの1つとしてユニークに位置する暗号化すべき各平文ブロック が、関連する数式の中央の列中のブロックにmod2加算され、関連する数式の 右側の列中の暗号化ブロックが得られる。最後のステップ214は、前述の方法 の暗号化ステップによるものであり、これについては詳しくは述べない。 第22図は、n=8の暗号化に関する第21図の方法を示す。最初、ステップ 302で、256個の数式の第1の行列G8が求められる。256個の数式の第 1の行列中のすべての数式は、任意の数の数式のmod2ベクトル和も、第1の 行列中の1つの数式であることを特徴とする。256個の数式の集合のうちの1 たように順序付けることができる。しかし、これらの数式が一般的なnビット・ システムを表すのに対して、第22図の方法のステップ302によって生成され る数式は、8ビット・システムに対応する。したがって、L8、M8、R8はそれ ぞれ、左側、中央、右側の列である。G8=L8XM8XR8である。 ステップ304ないし314は、256個の数式の第1の行列中の複数の非零 数式を、256個の数式の第2の行列形成するように修正する。これらの数式は 、修正済みの数式が全体として、対応する未修正数式の場合のように線形的では なく、暗号化ブロックに対して非線形的に平文ブロックを写像するように修正さ れる。複数の数式は、修正済みの数式が、数式の第2の行列中の他のどんな数の 数式のmod2加算にもならないように修正される。 ステップ304で、位数4の互いに素な3つのコラプチブル部分群がG8から 識別される。ステップ306で、位数4の互いに素なコラプチブル部分群対から 4行の4つのコセットに分割される。次に、ステップ314で、4つのコセット のそれぞれが、それぞれ4行の4つのコセットに分割される。ステップ316で 、コセットは、上記の第III節に示したようにそれぞれの混合変換によって変 換される。 最後に、ステップ318で、暗号化すべき左側の列中の各平文ブロックが、2 56個の数式の第2の行列の関連する数式の中央の列中の対応するブロックにm od2加算され、右側の列中の暗号化ブロックが得られる。 前述の実施例の場合と同様に、第21図および第22図に示した方法は、上述 のブロック換字装置を使用して実施されるが、本明細書で述べたブロックの特定 の処理を実施するように修正される。この処理を実施するハード回線回路を提供 することが好ましい。しかし、プログラムされたコンピュータまたはマイクロプ ロセッサを使用することもできる。 VII.互いに素なコラプチブル部分群のコセット 次に、第23図を参照して、データを暗号化するための第3の好ましい方法を 説明する。この方法は、互いに素なコラプチブル部分群のコセットを使用するも のである。最初に、この方法を一般的な数学的な観点から説明し、次いで、この 方法の特定のステップを図面に関して説明する。 識別行を除いて2つの部分群が互いに素である場合、それらの部分群も、互い に素な混合変換部分群を有する。位数4の部分群対を考察すると、対応するコセ ット対が共用する行は1つだけである。そのような互いに素なコセットの集合を アセンブルする場合、各コセットが、異なる混合変換によってコラプトされる。 このため、下記の2つの基本的な問題が発生する。 a.所与の線形直交写像でいくつのそのような互いに素なコラプチブル・コセ ットが見つかるか。 b.対応する混合変換の集合にどんな群構造が存在するか。 にわたって一様な分布を有させるには、十分な数式をコラプトし、かつ頻繁に相 互に無効化することのない混合変換の集合を有する必要がある。 極大長線形直交写像数式アレイでは、それぞれ、同じ相対間隔を有する、k個 の数式の2つの部分集合は、「相似」であると定義される。そのような2つの部 分集合中央の列は、ある整数1に関して下記の形式を有する。 極大部分群は、類似部分集合の例である。 前記の命題は、下記によって証明される。位数4のコラプチブル部分群は、次 式の形式を有する。 コセットは、部分群ではなく、部分群中の各行に行を加算して次式を得ることに よって生成される。 指数をある整数1だけシフトした場合、下記のような数式の類似集合が形成され る。 しかし、線形再帰関数によって生成される線形直交写像アレイの構造のために、 行a+1を換算すると、次式のような新しいコラプチブル部分群が得られる。 指数の差k−jだけ変位される。 次に、前記の概略的な説明を考慮に入れて、この方法を第23図に関して説明 する。前述の第VおよびVI節の方法と同様に、第23図の方法は、関連する固 有のnビット2進数暗号化ブロックで置き換えることによって、2n個の固有の nビット2進数平文ブロックの集合を暗号化するように働く。前述の方法と同様 に、暗号化は、ステップ402で、各数式が、左側の列中の2n個の平文ブロッ クのうちの1つを、中央の列中の2n個のnビット数のうちの固有の1つとmo d2加算して、右側の列中の関連する固有のnビット・ブロックを与えることを 表し、2n個の数式の第1の行列中のすべての数式が、任意の数の数式のmod 2ベクトル和が第1の行列の1つの数式でもあることを特徴とする、線形直交写 像を表す2n個の数式の第1の行列Gnを求めることによって開始する。数式は、 零数式と、前記の数式11bに示したように順序付けできる残りの2n−1個の 数式とを含む。ステップ404ないし414で、第1の行列中の2n−1個の非 零数式のうちの複数の数式が、2n−1個の数式の第2の行列を与えるように修 正される。 ステップ304で、位数4のコラプチブル部分群がGnから選択される。位数 4のそのような部分群は一般に、次式で表される。 ステップ306で、位数4のコラプチブル部分群にはない、指数aによって表 される数式を選択することによって生成される。この数式が、コラプチブル部分 群にベクトル的に加算されて、次式によって表されるコセットが生成される。 ない場合は、mを除する整数1を選択する。 その後、ステップ308で、値a mod1、b mod2、c mod2、 d mod1に関して値が求められる。ステップ310で、ステップ308で求 めた値のうちのどれかがが重複している場合、異なる指数の数式によってステッ プ306および308が反復される。重複のない値の集合が得られた後、ステッ プ312が実行され、m/l個の追加コセットが生成される。追加コセットは次 式の形式を有する。 ステップ314で、混合変換が対応するコセットに適用される。この混合変換 するコセットを建設的にコラプトするように適用され、そのため、2n個の数式 の第2の行列を生成する。 最後に、ステップ316で、暗号化すべき左側の列中の各平文ブロックが、2n 個の数式の第2の行列の関連する数式の中央の列中の対応するブロックにmo d2加算され、右側の列中の暗号化ブロックが得られる。最後のステップ316 は、前記で本発明の好ましい他の実施例に関して説明した最後のステップに類似 している。 第23図で述べた様々なステップを実施するハード回線回路を提供することが 好ましい。しかし、プログラムされたコンピュータまたはマイクロプロセッサを 使用することもできる。 第23図の方法の具体的な例として、数式51中の直交写像を考察する。次式 混合変換はAである。行7を使用して、次式のようにコセットを生成する。 だけ変位して次式を得る。 対応する部分群は、次式のように、行12を他の3つに加算することによって 求めることができる。 る。 このプロセスは、より大きな位数の部分群に適用できるが、位数4のコセット と共に建設的コラプションに使用するのが特に容易である。手順は、下記のとお りである。位数4の任意のコラプチブル部分群を選択する。一般性を失わないよ うに、部分群は次式のようになる。 最初、m=2n−1が素数でない(すなわち、Mersenne素数でない) と仮定する。mを除するある整数lを選択し、前述の命題8の証明の場合と同様 に、これを指数のシフトとして使用する。その同じ証明の場合と同様に、部分群 中にない、ある指数aを含む数式を選択する。この数式を数式76中の各数式に ベクトル的に加算すると、次式のコセットが得られる。 次に、4つの値a mod l、b mod l、c mod l、d mo d lを求める。重複がある場合は、このコセットを拒否して別のコセットを試 す。なぜなら、これらの指数の増分としてlの倍数を使用することによって類似 の連続コセットを求めると、矛盾がもたらされるからである。たとえば、a≡b mod lであると仮定する。その場合、ある整数gに関して、後に続くある コセットが前のコセットと同じ行を有するようにa=b+glとなる。次に、a セットを生成する。 る。 前記の命題は下記によって証明することができる。W∪θは群ではない。これ る。l=2n-k|l−1である場合でも、この比率は奇数でなければならず、これ に対して2kは、k>0の場合は偶数である。一般性を失わずに、ある関数g 1εWであると仮定する。hl>mである場合、hl≡cl mod mであり 、l|mなのでcl<mである。下付き文字が線形直交写像アレイ中の行の指数 で を得る。 さらに一般的には、すべての整数jに関して次式が成立する。 ではなく他のxiεWに適用することができる。これは、W∪θが群であること を意味し、これは命題に矛盾する。次に、3|mであると仮定する。次式の可能 な和を考察する。 数式80をもたらす同じ手順を使用する場合、次式が成立する。 したがって、同じ数式が得られる。したがって、これを使用して群を生成する ことはできない。 このことの実際的な結果は、2つの数式が同じコセット中にある場合、それら の和は他の位置にあるということである。これらの数式は、建設的コラプション 用の共通の混合変換、たとえばwiを有する。この和は、数式76の部分群中の ことに留意されたい。この場合、S’(x)は、線形直交写像から得た最初の写 像であり、S(x)は、建設的コラプションの後に結果として得られる写像であ り、和数式が他のコラプチブル・コセットのうちの1つ中にない場合、数式4か ら次式が成立する。 さらに、3つ組は線形になる。和数式は、他のコラプチブル・コセットにある 場合、あるwj≠wiを混合変換として有し、そのため、次式が成立する。 異なるコセットから得た2つの数式を、それぞれの混合変換wiおよびwjによ って加算する場合、和数式がコセット中にあるか、それとも最初のコセットのう ちの1つ中にあるか、それとも第3のコセット中にあるかに応じて、3つの可能 性がある。 2つの数式、すなわち、コセットから得た数式と、どのコセットにもない数式 を加算する場合、前のケースと同様に、次式のような3つの可能性がある。 最後に、どちらも、どちらのコラプチブル・コセットにも含まれない、2つの 数式を加算する場合、その和がコセット中にあるか、それともないかに応じて、 次式のような2つの可能性がある。 残留線形性を最小限に抑えるには、前記から、2つの条件、すなわち、コセッ トに含まれない残りの数式の集合が、小さいことと、部分群を含まないことが必 要であることが明らかである。一例として、8ビット2進数に関する数式51中 の同じ線形直交写像と、数式72および73中の部分群およびコセットを考察す る。 この場合も、行指数に増分としてl=5を適用し、コセットの系列を生成する 。次式に留意されたい。 m=2n−1=255=5・51なので、l|mであり、前記の行指数の集合 が、l=5だけ増分されたときに重なることがなく、すなわち、すべての整数i 、jに関して7+5i≠50+5jであり、他の対に関しても同じである。したが って、このプロセスによって、4つの数式のそれぞれの51個のコセット、すな わち、建設的コラプションで修正すべき合計で204個の数式が生成される。命 令 わち、最初の2つの数式の中央の項の和は、コセット中にある。 これは、線形直交写像中の第1の非零行の中央の項である。 したがって、第1の数式が次式であるコセットとしてコセット5kを指定する と、 対応する混合変換を下記に示す。 したがって、加算識別を含めて、W={θ,x1,x6,...,x251}であ り、|W|=52である。m=255=3・85であるので、3|mであり、x 在する数のそのような3つ組に過ぎない。この例では、次式が成立する。 もちろん、異なる部分群からコセットを選択することができる。たとえば、m =255=15・17なので、同じ線形直交写像中でl=17を選択する。3つ の異なる部分から得た3つのコセット(下記に示す)を考察する。 すべての行指数が異なるmod17なので、増分l=17を使用しても重なり はない。このプロセスによって、建設的コラプションの候補として3×15=4 5個のコセットまたは180個の数式が生成される。混合変換の集合を下記に示 す。 他の多数の可能性がある。たとえば、数式52中の位数8の部分群を使用する ことができる。この部分群のコセットは完全にコラプチブルであり、すなわち、 4つの混合変換の群を有する。命題7を適用すると、次式のように、数式53の 8つの数式のコセットを選択することができ、このうちの6つは非線形化するこ とができる。 増分l=17を使用すると、次式から、それぞれ6行の互いに素な15個の集 合を得ることができる。 行指数を7だけシフトすると、次式から、それぞれ6行の互いに素な15個の 集合をさらに得ることができる。 この組合せは、非線形化用の180個の行または数式を与えるが、混合変換の 集合はもはや、加算3つ組から自由ではなく、その結果、混合変換間にある種の 群構造が生じる。 行指数をmだけシフトする際に不連続な部分があるので、2n−1=mが素数 であるとき、互いに素な部分群からコラプチブル・コセットを得るプロセスは、 わずかにより複雑になる。一例として、下記の母関数によって定義されるブロッ ク・サイズ7極大長線形直交写像を考察する。 数式52の場合と同様に、{A,B,C,D,E,F,G}を7ビット2進数 の任意の完全な線形独立集合とすることができる。前述のように、表記法ABC を下記に示す。 位数4の典型的なコラプチブル部分群を下記に示す。 これから、下記のコセットを構築することができる。 増分間隔が可能である。この場合、次式が成立する。 これらの指数を5だけ変位すると、次式が得られる。 これらの指数をさらに15だけ変位すると、次式が得られる。 これらの指数をさらに20だけ変位すると、次式が得られる。 これらの指数をさらに80だけ変位すると、次式が得られる。 最終的に10だけ増分してさらに1ステップだけ進むことができる。 このプロセスによって、建設的なコラプション・プロセス用の互いに素な27 個のコセットまたは127行のうちの104行が生成された。前記の手順では、 指数0または3mod5のすべての行が使い尽くされた。したがって、他の異な る行指数を有するコラプチブル・コセットはもはや存在しない。しかし、指数1 mod5の15行、指数2mod5の2行、指数4mod5の2行が残る。混合 変換は、各コセット中の最初の2行の中央の列中の数の和であり、すなわち、次 式が成立する。 したがって、混合変換の集合は、0≦k≦25の場合、W={θ,x1+5k,x4 }であり、|W|=28である。この場合、命題9の条件が成立せず、すなわ れたい。 非線形プロセス用のコラプチブル・コセットを選択するための他の多数の方法 がある。異なる指数の混合コセットは、線形アレイ中のほぼすべての数式を含め る機構を提供することができるが、これは、混合変換の集合の構造に対して平衡 させなければならない。nビット数に関する直交写像の総数は不明である。 本明細書では、本発明の暗号化および復号化に関する好ましい実施例を開示し 説明したが、当業者には、本発明の趣旨および範囲から逸脱せずに本発明の態様 および詳細に様々な変更を加えられることが自明であろう。 VIII.用語および記号の定義 すべての下記の定義は、ビットごとのmod2加算(XORing)演算を受 けるnビット2進数と、このような数に関する全単射写像を対象とするものであ る。 これは線形と呼ばれることが多い。この場合、線形の語は、c=θであるケース 、すなわち、加算識別に使用される。 完全にコラプチブル:極大数の混合変換を含むコラプチブル・コセット。完全に コラプチブルなコセットの位数が2kである場合、対応する混合変換の集合の位 数は2k-1である。 建設的コラプション:線形数式アレイの2つの列中のブロックの順序を再構成し (第2図)、第3列を固定されたままにし、同時に、各行の等性を維持すること によって、線形直交写像を非線形直交写像に変換するプロセス。 コラプチブル集合:建設的コラプション・プロセスによって独立集合として非線 形化することができる数式の集合、通常はコセットまたは部分群。 号化または復号化を行うブロック換字装置またはSボックス。 母関数:下記の形式の再帰関数。 nビット数の完全な線形独立集合に適用されたときに、数式11中の線形直交 写像を定義する。これは、線形フィードバック・シフト・レジスタの母関数と同 ア体GF(2n)における原子多項式である。 1参照)。 混合変換が線形直交写像中の数式のコラプチブル集合にベクトル的にmod2加 算されて、非線形直交写像が得られる。 。シフト:線形直交写像を表す数式のアレイ中のnビット数の列間の変位。各列 は、同じ順序であるが、異なる開始点を有する(数式11参照)。 相似集合:同じ相対間隔を有する線形アレイ中の数式の部分集合。 アレイ中の行または数式。 θ=00...0:加算識別。 GF(2n):2進係数を有する次数nの多項式のガロア体。

Claims (1)

  1. 【特許請求の範囲】 1.2n個の固有のnビット2進数平文ブロックのうちの1つを関連する固有 のnビット2進数暗号化ブロックで置き換えることによる暗号化方法において、 (a)各数式が、左側の列中の2n個の平文ブロックのうちの1つのブロック に中央の列中の2n個のnビット・ブロックのうちの固有の1つのブロックをm od2加算して右側の列中の関連する固有のnビット・ブロックを与えることを 表し、2n個の数式の第1の行列中のすべての数式が、任意の数の数式のmod 2ベクトル和が第1の行列中の1つの数式でもあることを特徴とし、前記1つの 順序付けることができ、 上式で、m=2nであり、L、M、Rがそれぞれ、左側、中央、右側の列であ り、Gn=LnXMnXRnが数式の集合を表し、Gn-1が、Gn中のn−1個の連続 数式によって生成されるGnの部分群であり、かつ2n-1個の数式の部分行列であ n-1中のn−2個の数式によって生成されるGn-1の部分群であり、かつ2n-2 n-1が、識別数式を含むGnの部分行列であり、残りの2n-1−1個の数式が 、次式のように順序付けることができ、 べての残りの2n-1個の数式であり、n−2個の連続数式をGn-1から選択してこ れらの数式と識別数式のすべての和を求めることによって選択されたGn-1から 得 n-1から得たすべての残りの2n-2個の数式であり、G3から得た識別数式と2 つの連続数式とそれらの和を含む22=4個の数式を含むG2が選択されるまで、 連 4つの数式である、直交写像を表す2n個の数式の第1の行列Gnを求めるステッ プと、 (b)2n個の数式の第1の行列中の2n−1個の非零数式のうちの複数の数式 を、非線形直交写像を表す2n個の数式の第2の行列を与えるように修正し、修 正済みの複数の数式が全体として、左側の列中の平文ブロックを右側の列中の固 有の暗号化nビット・ブロックに写像するが、各修正済み数式が未修正の第1の 集合中のどんな数の数式のmod2和にもならないように非線形的に写像するよ うに、前記複数の数式が修正され、2n−1個の非零数式のうちの前記複数の数 式の前記修正が、 Wn-2中の2n-3個の混合変換をGn-1に適用し、 Wn-3中の2n-4個の混合変換をGn-2に適用し、 (c)暗号化すべき左側の列中の各平文ブロックごとに、2n個の数式の第2 の行列の関連する数式に従って中央の列中の前記ブロックに関連する2n個のn ビット・ブロックのうちの固有の1つのブロックをmod2加算して、右側の列 中の暗号化ブロックを得るステップとを含むことを特徴とする方法。 とする請求項1に記載の方法。 とする請求項1に記載の方法。 4.2n個の固有のnビット2進数平文ブロックのうちの1つを関連する固有 のnビット2進数暗号化ブロックで置き換えることによる暗号化方法において、 (a)各数式が、左側の列中の2n個の平文ブロックのうちの1つのブロック に中央の列中の2n個のnビット・ブロックのうちの固有の1つのブロックをm od2加算して右側の列中の関連する固有のnビット・ブロックを与えることを 表し、2n個の数式の第1の行列中のすべての数式が、任意の数の数式のmod 2ベクトル和が第1の行列中の1つの数式でもあることを特徴とし、前記1つの 順序付けることができ、 上式で、m=2nであり、Ln、Mn、Rnがそれぞれ、左側、中央、右側の列で あり、Gn=LnXMnXRnが数式の集合を表す、直交写像を表す2n個の数式の 第1の行列Gnを求めるステップと、 (b)2n個の数式の第1の行列中の2n−1個の非零数式のうちの複数の数式 を、非線形直交写像を表す2n個の数式の第2の行列を与えるように修正し、修 正済みの複数の数式が全体として、左側の列中の平文ブロックを右側の列中の固 有の暗号化nビット・ブロックに写像するが、各修正済み数式が未修正の第1の 集合中のどんな数の数式のmod2和にもならないように非線形的に写像するよ うに、前記複数の数式が修正され、2n−1個の非零数式のうちの前記複数の数 式の前記修正が、 数がn以下であるk個の連続数式のすべての組合せのmod2和を求めることに 素な2つ以上のコラプチブル部分群をGnから選択し、 nが奇数であるか、それとも偶数であるかに応じて、位数2n-1または2n-2コセットに分割され、Qoのコセットが次に小さな部分群のコセットに分割され コセットが生成されることによって行われるステップと、 (c)数式の第1の行列全体Gnを表すそのようなコセットの交項系列を選択 するステップと、 (d)数式の第2の行列を生成するように、交項系列の各コセットを対応する 混合変換で修正するステップと、 (e)暗号化すべき左側の列中の各平文ブロックごとに、2n個の数式の第2 の行列の関連する数式に従って中央の列中の前記ブロックに関連する2n個のn ビット・ブロックのうちの固有の1つのブロックをmod2加算して、右側の列 中の暗号化ブロックを得るステップとを含むことを特徴とする方法。 5.28個の固有のnビット2進数平文ブロックのうちの1つを関連する固有 のnビット2進数暗号化ブロックで置き換えることによる暗号化方法において、 (a)各数式が、左側の列中の28個の平文ブロックのうちの1つのブロック に中央の列中の28個の8ビット・ブロックのうちの固有の1つのブロックをm od2加算して右側の列中の関連する固有の8ビット・ブロックを与えることを 表し、28個の数式の第1の行列中のすべての数式が、任意の数の数式のmod 2ベクトル和が第1の行列中の1つの数式でもあることを特徴とし、前記1つの のように順序付けることができ、 上式で、m=28−1=255であり、L8、M8、R8がそれぞれ、左側、中央 、右側の列であり、G8=L8XM8XR8が数式の集合を表す、直交写像を表す28 個の数式の第1の行列G8を求めるステップと、 (b)28=256個の数式の第1の行列中の28−1=255個の非零数式の うちの複数の数式を、非線形直交写像を表す256個の数式の第2の行列を与え るように修正し、修正済みの複数の数式が全体として、左側の列中の平文ブロッ クを右側の列中の固有の暗号化8ビット・ブロックに写像するが、各修正済み数 式が未修正の第1の集合中のどんな数の数式のmod2和にもならないように非 線形的に写像するように、前記複数の数式が修正され、255個の非零数式のう ちの前記複数の数式の前記修正が、 前記コセットをそれぞれ16行の4つのコセットに分割し、 前記4つのコセットのそれぞれを、それぞれ4行の4つのコセットに分割する ことによって行われるステップと、 (c)数式の第1の行列全体Gnを表すそのようなコセットの交項系列を選択 するステップと、 (d)数式の非線形化された第2の行列を求めるように、前記交項系列の各コ セットをその混合変換で修正するステップと、 (e)暗号化すべき左側の列中の各平文ブロックごとに、28個の数式の第2 の行列の関連する数式に従って中央の列中の前記ブロックに関連する28個の8 ビット・ブロックのうちの固有の1つのブロックをmod2加算して、右側の列 中の暗号化ブロックを得るステップとを含むことを特徴とする方法。 6.2n個の固有のnビット2進数平文ブロックのうちの1つを関連する固有 のnビット2進数暗号化ブロックで置き換えることによる暗号化方法において、 (a)各数式が、左側の列中の2n個の平文ブロックのうちの1つのブロック に中央の列中の2n個のnビット・ブロックのうちの固有の1つのブロックをm od2加算して右側の列中の関連する固有のnビット・ブロックを与えることを 表し、2n個の数式の第1の行列中のすべての数式が、任意の数の数式のmod 2ベクトル和が第1の行列中の1つの数式でもあることを特徴とし、前記1つの 順序付けることができ、 上式で、m=2n−1であり、mが素数ではなく、Ln、Mn、Rnがそれぞれ、 左側、中央、右側の列であり、Gn=LnXMnXRnが数式の集合を表す、直交写 像を表す2n個の数式の第1の行列Gnを求めるステップと、 (b)2n個の数式の第1の行列中の2n−1個の非零数式のうちの複数の数式 を、非線形直交写像を表す2n個の数式の第2の行列を与えるように修正し、修 正済みの複数の数式が全体として、左側の列中の平文ブロックを右側の列中の固 有の暗号化nビット・ブロックに写像するが、各修正済み数式が未修正の第1の 集合中のどんな数の数式のmod2和にもならないように非線形的に写像するよ うに、前記複数の数式が修正され、2n−1個の非零数式のうちの前記複数の数 式の前記修正が、 (1)数式の第1の線形直交写像行列から得た2つの連続行を含むGnから、 選択し、 pで表される数式を選択し、前記コラプチブル部分群中の各数式に前記数式をベ ットを生成することによって、コセットを生成し、 (3)mを除する整数1を選択し、a modl、b modl、c mod l、d modlの値を求め、 (4)前記値のうちのどれかが重複している場合、4つの異なる値が得られる までステップ(2)および(3)を繰り返し、 適用して前記追加コセットを建設的にコラプトし、2n個の数式の第2の行列を 生成することによって行われるステップと、 (c)暗号化すべき左側の列中の各平文ブロックごとに、2n個の数式の第2 の行列の関連する数式に従って中央の列中の前記ブロックに関連する2n個のn ビット・ブロックのうちの固有の1つのブロックをmod2加算して、右側の列 中の暗号化ブロックを得るステップとを含むことを特徴とする方法。 7.2n個の固有のnビット2進数平文ブロックのうちの1つを関連する固有 のnビット2進数暗号化ブロックで置き換えることによる暗号化方法において、 (a)各数式が、左側の列中の2n個の平文ブロックのうちの1つのブロック に中央の列中の2n個のnビット・ブロックのうちの固有の1つのブロックをm od2加算して右側の列中の関連する固有のnビット・ブロックを与えることを 表し、2n個の数式の第1の行列中のすべての数式が、任意の数の数式のmod 2ベクトル和が第1の行列中の1つの数式でもあることを特徴とし、前記1つの 順序付けることができ、 上式で、m=2n-1であり、mが素数であり、Ln、Mn、Rnがそれぞれ、左側 、中央、右側の列であり、Gn=LnXMnXRnが数式の集合を表す、直交写像を 表す2n個の数式の第1の行列Gnを求めるステップと、 (b)2n個の数式の第1の行列中の2n−1個の非零数式のうちの複数の数式 を、非線形直交写像を表す2n個の数式の第2の行列を与えるように修正し、修 正済みの複数の数式が全体として、左側の列中の平文ブロックを右側の列中の固 有の暗号化nビット・ブロックに写像するが、各修正済み数式が未修正の第1の 集合中のどんな数の数式のmod2和にもならないように非線形的に写像するよ うに、前記複数の数式が修正され、2n−1個の非零数式のうちの前記複数の数 式の前記修正が、 (1)数式の第1の線形直交写像行列から得た2つの連続行を含むGnから、 選択し、 pで表される数式を選択し、前記コラプチブル部分群中の各数式に前記数式をベ ットを生成することによって、コセットを生成し、 (3)整数l=5を選択して、a mod5、b mod5、c mod5、 d mod5の値を求め、 (4)前記値のうちのどれかが重複している場合、4つの異なる値が得られる までステップ(2)および(3)を繰り返し、 (5)k=1,2,3,...の連続値をとって次式の形式のm/l個の追加 コセットを生成し、 前に生成された数式を含むコセットが生成されるまでこの動作を継続し、 (6)最後の重複コセットを削除して、新しいコセットが生成されるまで連続 的に大きくなるkの値を選択し、 (7)重なりのないコセットが生成されなくなるまでステップ9b)(5)お よび(b)(6)を繰り返し、 (8)ステップ(b)(2)を繰り返して、使用済みの数式を含まない新しい コセットを見つけ、 (9)整数1ないし6を使用してステップ(b)(3)を繰り返し、mod6 の値を求め、次いで、ステップ(b)(4)、(b)(5)、(b)(6)、( b)(7)を繰り返し、 (10)必要に応じて、共通の除数を有さない数を使用し、あるいは、異なる コセットが見つからなくなるまで、ステップ9b)(9)を繰り返し、 を適用して前記追加コセットを建設的にコラプトし、2n個の数式の第2の行列 を生成することによって行われるステップと、 (c)暗号化すべき左側の列中の各平文ブロックごとに、2n個の数式の第2 の行列の関連する数式に従って中央の列中の前記ブロックに関連する2n個のn ビット・ブロックのうちの固有の1つのブロックをmod2加算して、右側の列 中の暗号化ブロックを得るステップとを含むことを特徴とする方法。 8.それぞれ、第1の2進値が第2の2進値にmod2加算されて第3の2進 値が生成されるブロック換字演算を定義する、数式の行を有し、前記数式の行が ある位数を有し、各2進値が、各列内で1度しか表されない、線形直交写像ブロ ック換字数式の集合を生成するステップと、 第1および第2の2進値の行順序を独立に再構成し、同時に、第3の固定値の 行順序を保持し、各行の等性を維持することによって、線形直交写像ブロック換 字数式を建設的にコラプトして非線形直交写像ブロック換字数式を生成するステ ップとを含むブロック換字方法。 9.線形直交写像ブロック換字を建設的にコラプトする前記ステップが、 ブロック換字数式の部分群の入れ子系列を生成するステップと、 前記部分群の入れ子系列に対応する混合変換の入れ子系列を生成するステップ と、 すべての部分群が生成されるまで、前記混合変換の入れ子系列を前記部分群の 入れ子系列に連続的に適用するステップとを含むことを特徴とする請求項8に記 載の方法。 10.線形直交写像ブロック換字を建設的にコラプトする前記ステップが、 線形直交写像ブロック換字数式の集合から互いに素な2つ以上のコラプチブル 部分群を選択するステップと、 前記部分群をコセットに分割するステップと、 前記線形直交写像ブロック換字数式の集合を表す前記コセットの系列を選択す るステップと、 前記選択されたコセットの系列に対応する混合変換の集合を生成するステップ と、 前記選択されたコセットの集合の各コセットを対応する混合変換によって修正 し、非線形直交写像ブロック換字数式の集合を生成するステップとを含むことを 特徴とする請求項8に記載の方法。 11.前記線形直交写像ブロック換字数式の集合が、識別数式を含み、順次指 数1,...,2n−1で識別される識別数式の後に続くブロックを有する2n個 の数式行を含み、m=2n−1であり、mが素数ではなく、線形直交写像ブロッ ク換字を建設的にコラプトする前記ステップが、 a)前記線形直交写像ブロック換字数式の集合から4行のコラプチブル部分群 を選択するステップと、 b)前記部分群にない数式を選択し、前記部分群の各行に前記数式をベクトル 的に加算して、指数a、b、c、dによって識別される行を有するコセットを生 成することによって、コセットを生成するステップと、 c)mを除する数lを選択するステップと、 d)a modl、b modl、c modl、d modlが重複を含む かどうか判定するステップと、 e)a modl、b modl、c modl、d modlで重複が発生 した場合、前記コセットを拒否してステップa)ないしd)を生成するステップ と、 f)指数を量klだけシフトすることによってm/l個の追加コセットを前記 コセットから生成するステップと(0<k<m/l−1)、 g)前記追加コセットに混合変換を適用して、前記非線形ブロック換字数式を 生成するステップとを含むことを特徴とする請求項8に記載の方法。 12.前記線形直交写像ブロック換字数式の集合が、識別数式を含み、順次指 数1,...,2n−1で識別される識別数式の後に続くブロックを有する2n個 の数式行を含み、m=2n−1であり、mが素数ではなく、線形直交写像ブロッ ク換字を建設的にコラプトする前記ステップが、 a)前記線形直交写像ブロック換字数式の集合から4行のコラプチブル部分群 を選択するステップと、 b)前記部分群にない数式を選択し、前記部分群の各行に前記数式をベクトル 的に加算して、指数a、b、c、dによって識別される行を有するコセットを生 成することによって、コセットを生成するステップと、 c)数l=5を選択するステップと、 d)a modl、b modl、c modl、d modlが重複を含む かどうか判定するステップと、 e)a modl、b modl、c modl、d modlで重複が発生 した場合、前記コセットを拒否してステップa)ないしd)を生成するステップ と、 f)整数kの連続値にわたって指数を量klだけシフトし、重なりのあるコセ ット、すなわち、前に生成されたコセット中に存在する数式を含むコセットが生 成されるまでこの動作を継続することによって、前記コセットから追加コセット を生成するステップと、 g)前に生成されたコセット中に存在する数式を含む前記コセットを破棄し、 h)連続的に大きくなるkの値を使用して追加コセットを生成し、 i)重なりのあるコセットが生成されなくなるまでステップg)およびh)を 繰り返し、 j)ステップb)を繰り返して、重なりのない新しいコセットを見つけ、 k)l=6に関してステップd)を繰り返して、mod6の値を求め、ステッ プe)ないしh)を繰り返し、 l)重なりのないコセットが生成されなくなるまで、共通の除数を有さないl の値を使用してステップk)を繰り返し、 m)前記追加コセットに混合変換を適用して、前記非線形ブロック換字数式を 生成するステップとを含むことを特徴とする請求項8に記載の方法。
JP50094495A 1993-05-25 1994-05-25 非線形動的換字装置 Expired - Lifetime JP3701969B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/068,910 US5317639A (en) 1989-10-04 1993-05-25 Non-linear block substitution devices derived by constructive corruption
US08/068,910 1993-05-25
PCT/US1994/005909 WO1994028655A1 (en) 1993-05-25 1994-05-25 Nonlinear dynamic substitution devices and methods for block substitutions

Publications (2)

Publication Number Publication Date
JPH09501281A true JPH09501281A (ja) 1997-02-04
JP3701969B2 JP3701969B2 (ja) 2005-10-05

Family

ID=22085497

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50094495A Expired - Lifetime JP3701969B2 (ja) 1993-05-25 1994-05-25 非線形動的換字装置

Country Status (7)

Country Link
US (1) US5317639A (ja)
EP (1) EP0700614B1 (ja)
JP (1) JP3701969B2 (ja)
KR (1) KR100283458B1 (ja)
AT (1) ATE474391T1 (ja)
DE (1) DE69435300D1 (ja)
WO (1) WO1994028655A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5363448A (en) * 1993-06-30 1994-11-08 United Technologies Automotive, Inc. Pseudorandom number generation and cryptographic authentication
US5377270A (en) * 1993-06-30 1994-12-27 United Technologies Automotive, Inc. Cryptographic authentication of transmitted messages using pseudorandom numbers
US5680131A (en) * 1993-10-29 1997-10-21 National Semiconductor Corporation Security system having randomized synchronization code after power up
US5471497A (en) * 1993-11-01 1995-11-28 Zehavi; Ephraim Method and apparatus for variable rate signal transmission in a spread spectrum communication system using coset coding
US5398284A (en) * 1993-11-05 1995-03-14 United Technologies Automotive, Inc. Cryptographic encoding process
US5677956A (en) * 1995-09-29 1997-10-14 Innovative Computing Group Inc Method and apparatus for data encryption/decryption using cellular automata transform
US5838794A (en) * 1996-01-11 1998-11-17 Teledyne Electronic Technologies Method and apparatus for inter-round mixing in iterated block substitution systems
US6031911A (en) * 1996-07-18 2000-02-29 Entrust Technologies, Ltd. Practical S box design
KR100296958B1 (ko) * 1998-05-06 2001-09-22 이석우 블록 데이터 암호화 장치
US7292693B1 (en) * 1998-08-13 2007-11-06 Teledyne Technologies Incorporated Deterministically generating block substitution tables which meet a given standard of nonlinearity
US8130944B2 (en) * 2004-11-03 2012-03-06 Ricoh Co., Ltd. Digital encrypted time capsule
DE102011052230B4 (de) * 2011-07-28 2018-05-09 Infineon Technologies Ag Verfahren und Apparat zur Erzeugung von Zufalls-Wartezuständen
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
CN110311777B (zh) * 2019-07-03 2021-08-31 华中农业大学 一种基于一类密码学置换的随机口令生成方法及系统

Family Cites Families (9)

* 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
US5214704A (en) * 1989-10-04 1993-05-25 Teledyne Industries, Inc. Nonlinear dynamic substitution devices and methods for block substitutions
US5038376A (en) * 1989-10-04 1991-08-06 Teledyne Industries, Inc. Block substitution based encryption by a modulo 2 addition method and apparatus
US5245658A (en) * 1992-01-06 1993-09-14 George Bush Domain-based encryption

Also Published As

Publication number Publication date
KR960702704A (ko) 1996-04-27
US5317639A (en) 1994-05-31
JP3701969B2 (ja) 2005-10-05
ATE474391T1 (de) 2010-07-15
EP0700614A4 (en) 2006-01-18
DE69435300D1 (de) 2010-08-26
EP0700614A1 (en) 1996-03-13
EP0700614B1 (en) 2010-07-14
WO1994028655A1 (en) 1994-12-08
KR100283458B1 (ko) 2001-03-02

Similar Documents

Publication Publication Date Title
Carlet Boolean functions for cryptography and coding theory
Seberry et al. Nonlinearity and propagation characteristics of balanced boolean functions
US7397916B2 (en) System and method for protecting computer software from a white box attack
EP0598036B1 (en) Nonlinear dynamic block substitution methods.
EP1800432B1 (en) Cryptographic primitives, error coding, and pseudo-random number improvement methods using quasigroups
JPH09501281A (ja) 非線形動的換字装置およびブロック換字方法
EP3075097A2 (en) Construction and uses of variable-input-length tweakable ciphers
US7801307B2 (en) Method of symmetric key data encryption
Gaborit et al. Hamming quasi-cyclic (hqc)
JP3044565B2 (ja) 暗号装置
Mariot et al. A cryptographic and coding-theoretic perspective on the global rules of cellular automata
Lau et al. New rank codes based encryption scheme using partial circulant matrices
JP2012177893A (ja) 暗号処理システム、暗号化装置、復号装置、及びプログラム、並びに暗号処理方法
US6035042A (en) High speed and method of providing high speed table generation for block encryption
EP0763297B1 (en) Nonlinear dynamic substitution devices and methods for block substitutions employing coset decompositions and direct geometric generation
Markovski et al. Applications of quasigroups in cryptography and coding theory
CA2371452A1 (en) Cryptographic engine using base conversion, logic operations and prng in data arrays to increase dispersion in ciphertext
KR100308893B1 (ko) 엘.에프.에스.알을 이용한 확장 알.씨.4 암호화 방법
US7292693B1 (en) Deterministically generating block substitution tables which meet a given standard of nonlinearity
US20260121837A1 (en) Data encryption and decryption using skip bits and variable xor quantity
US20250021671A1 (en) Data encryption and decryption using dynamic screens and logic blocks
Nakahara Jr Key-Shedule Analysis of AES Candidates
Wise Sliding Block Ciphers
Mittenthal A Method of Deterministically Generating Block Substitution Tables which Meet a Given Standard of Nonlinearity
KD Introduction to cryptography, codes, Boolean, and vectorial functions

Legal Events

Date Code Title Description
A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040420

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040928

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20041228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050328

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050715

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080722

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090722

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090722

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100722

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110722

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110722

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120722

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120722

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130722

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term