JPH05501925A - 暗号化システム - Google Patents

暗号化システム

Info

Publication number
JPH05501925A
JPH05501925A JP2510353A JP51035390A JPH05501925A JP H05501925 A JPH05501925 A JP H05501925A JP 2510353 A JP2510353 A JP 2510353A JP 51035390 A JP51035390 A JP 51035390A JP H05501925 A JPH05501925 A JP H05501925A
Authority
JP
Japan
Prior art keywords
key
data
block
byte
substitution
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
JP2510353A
Other languages
English (en)
Other versions
JP3188940B2 (ja
Inventor
ウッド,マイケル,シー
Original Assignee
クリプテック・インク
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 クリプテック・インク filed Critical クリプテック・インク
Publication of JPH05501925A publication Critical patent/JPH05501925A/ja
Application granted granted Critical
Publication of JP3188940B2 publication Critical patent/JP3188940B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/04Masking or blinding
    • H04L2209/043Masking or blinding of tables, e.g. lookup, substitution or mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Metal-Oxide And Bipolar Metal-Oxide Semiconductor Integrated Circuits (AREA)
  • Absorbent Articles And Supports Therefor (AREA)
  • Manufacture, Treatment Of Glass Fibers (AREA)
  • Slot Machines And Peripheral Devices (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 1、発明の分野 この発明は暗号法、より具体的には記憶ないし伝送されたデータを解読攻撃から 保護するためのシステムに関する。
2゜従来技術の説明 秘密または機密性の情報を理解可能な形から理解不能な形に変換するための種々 の暗号システムの使用が確立されている。情報またはデータの理解可能な形は「 平文」と呼ばれ、理解不能な形は「暗号文」と呼ばれる。平文から暗号文への変 換プロセスは「暗号化」または「暗号変換」と呼ばれ、逆のプロセスは「復号化 jまたは「復号変換」と呼ばれる。はとんどの暗号システムは、キーと呼ばれる 秘密値を利用する。暗号化および復号化は、アルゴリズムとキーが判っていれば 簡単だか、復号化は、正しいキーを使用しなければ実際上不可能であるへきであ る。キーが判らずに暗号文を解読するための、アルゴリズムの設計者が想像しな い近道の方法を見つけようとするプロセスは、「暗号解読Jと呼ばれる。
暗号法の歴史は長く、そのルーツは少なくとも、平文中の各文字かアルファベッ ト中3つ後の文字に換えられる換字式暗号を採用したシュリアス・シーザーの時 代にさかのぼる。このように、シュリアス・シーザーは第3番を秘密のキーとし て使用する線形換字式暗号を採用した。アルファベットが混ぜ合わされる非線形 式換字も周知である。しかし、線形、非線形にかかわらず、単純な換字は、暗号 文の2.3の文章が判っていれば、攻撃か比較的簡単である。実際、エドガー・ アラ〉・ポーの短編「こかね虫Jに出てくるウィリアム・レグランドは、キャプ テン・キッドの通信文を解読することによって、埋蔵金および宝石を見つけて富 を得ている。
今日の業務は、コンピュータ、ファクシミリ、銀行取引機などから送られる私的 通信を保護するため、ずっと精巧で安全な暗号化システムを必要とする。暗号法 の歴史上置も安全なキー使用システムは、1回限りのテープまたニー41回限り のパッドである。このシステムでは、キーが暗号化される通信文と同じ長さで、 通信文に単に加えられる(モジュラ計算)。キーは1回たけ使用され、ランダム に得られる。この方法は安全だが、送られる情報のブロック毎に新しいキーを生 成し、これらのキーを秘密に分配するといった効率の悪さかある。従って、l回 限りのテープは大抵の用途で、稀にしか使用されてし)ない。
現代の暗号法の目標は、現在ある暗号解読技術に侵されないか、システムを見破 ることの利益かそれに要する苦労に見合わないような暗号化システムを生成する ことにある。つまり、目標は、現在ある暗号解読法で見破る二とか非常に困難な システムの設計にある。これは、理論上も実際上も見破ることかできない1回限 りノく・ノド技術と対象的である。1回限りのテープは、暗号解読技術の発達に 拘らず、暗号掌上いつまでも見破ることかできないはずである。しかし、他の従 来システムは、I、Xずれ見破ることかでき、見破られるであろう。
現代の暗号化システムは、一般的に、長さか8文字程度の短いキーを使用する。
現代のシステムの好例として、1970年代の初期にIBMによって開発され、 アメリカ標準局によってビジネスおよび非軍事行政での使用のための標準暗号化 システムとして採用されたデータ暗号化規格(”DBS”)かある。DESに関 する特許は、アメリカ特許第3,958,081号および第3,962.539 号を含む。データ暗号化規格は、暗号化されるデータの一部ないしブロックか所 定の転置表て転置され、キーで改変されてから、予め設定された換字表て換字さ れるブロック型の暗号である。このプロセスは、ラウンドと呼ばれる形で多数回 繰り返される。転置は「転換」とも呼ばれ、通信文中の文字の位置を予め設定さ れた指示の組合せに従って混ぜ合わす、ごく普通の暗号機能である。
他の現代の暗号化システムは、無作為の統計的性質を持った長い一連のキーを生 成する疑似ランダム生成手段を使用して、1回限りのパッドのキー生成プロセス を模倣することを試みている。そのような特許としては、アメリカ特許第3,7 00,806号および第4,369.332号が含まれる。受信者は、キーを生 成して、送られた暗号文の復号化にそれを使用する疑似ランダム生成手段を持つ ことになる。従って、そのシステムは望むたけ頻繁にキーを変え、復号化される ブロック毎にキーを変えることさえできる。疑似ランダム生成手段の使用は多く のシステムを非常に強化したか、1回限りパッドを完全に作りだしたわけではな い。
非軍事用暗号化システムの暗号解読において、一般的に次のような想定かなされ る。即ち、(1)暗号解読者は使用される暗号化システムと表を知っている。疑 似ランダム生成手段か使用される場合も、それが知られていると想定する。(2 )暗号解読者はキーを知らない。第1.2項はまとめて、一般的にケルクホフの 想定(Kerckhoff’s assumption)と呼ばれる。(3)暗 号解読者は、以前に送られた平文を大量に持っている。(4)暗号解読者は、平 文に対応して以前に獲得した暗号文を大量に持っている。
暗号システムは、上記条件下で十分な強さを証明しなければならない。疑似ラン ダム生成システムは、1回限りのテープ用の基準をすべて満たしているわけでは ない。疑似ランダム生成手段が使用されると、生成されるキー同士の関係が定ま る。暗号解読者は出力される組になったキー(生成手段かキーを使用する場合) を知らないとしても、一連のキーの関係か疑似ランダム生成アルゴリズムに記さ れているのでそれを知っている。更に、疑似ランダム生成手段は「シード」値を も備えなければならない。これは、本質的には、このシステム用として生成され 、分配されるべきもう一つのキーである。所定の転置および換字表と、これらの 表の所定の使用順序とを持ったデータ暗号化規格も、暗号解読の攻撃を受ける。
データ暗号化規格アルゴリズムは、かなり複雑であるから強い暗号化システムで あるが、数学的解析による攻撃に対して不透過性ではない。
1回限りのパッドの特徴をいくつか採用した別の技術は、キー表を使用する。こ の技術では、多くの所定のキーを含む表か暗号化システムに含まれる。そして、 キーはそれぞれ秘密キーによって変えられる。この方法の1例かアメリカ特許第 4,776.011号に見られる。
この技術は、疑似ランダム生成手段と同じ理由で、1回限りのパッドを完全に模 倣していない。オリジナルのキー表はキー同士の関係を示す。又、そのようなシ ステムでは、キーか選択される順序がシステムのアルゴリズムに記載され、選択 されるキーの組合せか繰り返されることもあり、初期化ベクトルがないと、新し い秘密キーが与えられるまで同じキー表か常に使用されることになる。このよう な弊害を除くために、ここに開示する発明はユニークな方法でキー表を使用する 。
強い理論的および実際的な暗号化システムのもう一つの方法は、1回限りの機能 (f unc t i on)を使用することにある。この方法では、暗号化さ れる各データブロックか、異なる暗号機能の組合せによって暗号に変換される。
つまり、暗号化プロセスで使用される表が可変で、各データブロックによって異 なる組合せが選択される。
可変機能も従来行われている。1例がアメリカ特許第4.751.733号に記 載され、それは可変換字の使用を含んでいる。この特許は多くの制限かある。つ まり、この特許は特に2値ワード用の暗号化を提供していること、換字表が秘密 キーの2進配置に密接な関係で設定され、運用されなければならないこと、キー 補足ないし補助キーを構成する制御コードが換字プロセスの遂行に必要であるこ と、この方法は具体的には換字・転置式の暗号化手法であること、この方法は可 変転置等の機能を与えないこと、この方法は1回限りのテープの模倣に必要な初 期化ベクトルを与えないこと等である。
従って、この発明の目的は、他のシステムの弱点を克服して、1回限りのパッド プロセスを模倣しながら、単一のキーのみを必要とするシステムを作り出すこと にある。本発明の他の目的は、理論的にも実際的にも侵され得す、1回限りのパ ッドシステムの完全な模倣を可能にする暗号化システムを提供することにある。
又、ユニークなデータブロック毎にユニークに機能的に変換するといった1回限 りの方法の手法を取り入れた暗号化システムを生成することも本発明の目的であ る。これは従来の技術で達成されてなく、その結果として、このシステムは攻撃 に対してより強い暗号化策を提供する。又、ファイル格納、データ伝送、遠隔通 信コード化なと、種々の用途に十分な柔軟性を持った安全な暗号化システムを提 供することも本発明の目的である。更に、ブロック暗号フォーマットの使用を許 し、そこに完全なシンボル間依存を可能にする暗号化システムを提供することも 本発明の目的である。
発明の要約 従って、私は、たとえシステムの実行を知っていてもキーとキー表の関係を判断 できないように、1つのキーからキー表を生成することを含む暗号システムを開 発した。これは可変機能の使用を通して達成されるか、そこでは決定因によって 選択される可変機能が決定因を変更する。従って、キー表の作成に使用する機能 は1対lの機能である必要はない。決定因はキーにもとづいている。キー表から 、キーにもとづく追加的な決定因のバイトのブロックか形成され、これらはマス クと呼ばれる。これらのマスクはキーから形成される。当初のキーはキー表にも マスク表にも存在しない。
本発明の好適実施例におけるシステムは、多ラウンド暗号プロセスでキー表を使 用する。従って、考え得るすべての平文の組合せか、異なるキーの組合せて暗号 化できる。キー付加操作用として表から選択されるキーは、平文、暗号文の現状 、それにマスク値の関数である。従って、キー選択順序は予め設定、もしくはパ ターン化されない。又、システムは、平文、暗号文の現状およびマスク値によっ て、転置および換字を含む他の暗号機能を選択する。このように、各ブロックが 転置と換字の異なった組合せて暗号化される。
この暗号システムは、以下、本書でエンクレープ機能(enclave fun ction)と呼ぶ機能を導入する。この機能もルックアップテーブルで働き、 バイトのブロックに完全なシンボル間依存を作り出す。エンクレープ機能と共に 使用される特定の表は、マスク値のみによって決定される。このように、あらゆ るブロックが同じエンクレープの組合せを受ける。しかし、選択される組合せか 、知られていないキーから生じるマスクによって定まるので、その組合せは攻撃 には判らない。
情報は、転置、キー付加、エンクレープおよび換字の所定ラウンド数を経た後で 、伝送または格納することかてきる。復号化は、操作の順を反対にして、換字、 エンクレープ、キー付加および転置の逆機能で達成できる。
キー付加はその逆と同じである。
図面の簡単な説明 第1図は本発明に従ったある長さの平文の暗号化のフローチャート、 第2図は第1図に示された表切期化工程のフローチャート、 第3図はキー表の各証人事項の生成を示すブロック図第4図は転置表の証人事項 の1例を示す線図、第5図は換字表の証人事項の1例を示す略図、第6図は本発 明で使用されるエンクレープ機能のブロック図、 第7図は第6図のエンクレープ機能で使用されるオートクレーブ機能のブロック 図、 第8図は本発明の好適実施例による平文ブロックの暗号化プロセス全体のフロー チャート、 第9図は第8図の暗号化プロセスで使用される可変転置のブロック図、 第10図は第8図の暗号化プロセスで使用される可変キー付加のブロック図、 第11図は第8図の暗号化プロセスで使用される可変換字のブロック図、 第12図は第8図の暗号化プロセスで暗号化された暗号文の単一ブロックの復号 化プロセス全体のフローチャート、 第13図は第12図の復号化プロセスで使用される逆可変換字のブロック図、 第14図は第12図の復号化プロセスで使用される逆エンクレープ機能のブロッ ク図、 第15図は第14図の逆エンクレープ機能で使用されるオートクレーブ 機能の一部のブロック図、 第16図は第12図の復号化プロセスで使用される逆可変キー付加のブロック図 、そして 第17図は第12図の復号化プロセスで使用される逆可変転置のブロック1図で ある。
好適実施例の説明 好適実施例では、本発明の暗号システムかブロック暗号フォーマットで操作され 、平文データの通常プロ、ツクと呼ばれる小さなかたまりか1回限り暗号化およ び復号化される。暗号化および復号化がマルチラウンドブロック型のフォーマッ トで行われることか望ましい。しかし、本件出願の発明はストリーム暗号等の他 の暗号システムでも使用でき、マルチラウンドを採用しなくてもよいことを理解 されたい。しかし、マルチラウンドはシステムをかなり強化する。
本発明の暗号システムは、好適実施例では、モジュラスと呼ばれる特定の整数に 基つく巡回的な(cycliC)数学機能であるモジュラ計算を使用する。計数 は、到達するモジュラスより数字1が小さくなるまで順次インクリメントし、再 度ゼロから開始することによって行われる。整数と比へたモジュラ3の例を次の ように示すことかできる。
整数: 0 1 2 3 4 5 6 7 8 9 t。
モジュラ3: 0 1 2 0 1 2 0 1 2 0 1従って、lOモジ ュラ3、通常10mod3と略、は1と等しい。モジュラ計算は、結果かゼロと モジュラスマイナス1の間になるまで、当該数からモジュラを順次引算すること によって、より容易に行える。例えば=lO−3=7 ; 7−3=4 :そし て4−3=1となる。従って、最後の引算の答が0と2の間で、2=モジュラス −1であるから、lomod3=1である。モジュラ計算機能の一般的フオーマ ットは(整数)mod(モジュラス)=モジュラスより小さい整数である。
第1図に示すように、このシステムは参照番号lOのスタートで開始し、そして 操作は参照番号12のメモリ内の種々の表の初期化へ進む。後に、より詳細に説 明するように、いくつかの表がシステムに供給され、いくつかの表かシステム内 で生成される。これは、当初、平文または暗号文か暗号化ないし復号化される前 に行われる。そして、操作は参照番号14へ進み、平文の最初のブロックか選択 される。第1図は平文のブロックの暗号化と関連して示されているか、暗号文の 選択されたブロックの復号化でも同様なステップか実行される。そして、操作は 参照番号16へ進み、平文の選択されたブロックが、本発明の暗号システムに従 って暗号化される。質問18の結果、暗号化すべき平文かまだ残っていれば、参 照番号20て平文の次のブロックが選択され、この次のブロックか暗号化される 。平文か残っていない場合は、参照番号22でシステムか作動を停止する。
メモリ内のテーブルの初期化ステップの詳細か、第2図に示されている。参照番 号30て転置表、S−ボックス(BOX)表およびエンクレープ表かシステムの メモリに先ず読み込まれる。転置表は、暗号化されるデータのブロックのバイト 位置をどのように混ぜ合わせたり、復号化のために元の位置に戻したりするかを 、特定の仕方で指令するアドレス可能な複数の項目を含む。これは普通に使用さ れる暗号技術である。S−ボックス表は、特定の項目によって指示されて、変換 されるブロックの各バイトの実際値がいかにして他の値に変えられるかを指令す る複数の換字のための構成である。これは標準換字表の形で含まれ得るが、S− ボックス構成は計算上より効率的で、暗号学の分野で周知である。参照番号30 でメモリに読み込まれるエンクレープ表は、後で詳細に説明する。
そして、参照番号32で初期のキーかシステムに読み込まれる。キーとは、シス テム実行、アルゴリズムまたは表に明示ないし記載されず、暗号プロセスを指示 するためにシステムにインストールないし読み込まれる秘密の値またはデータブ ロックである。基本的に、キーは暗号プロセスの作動の基になる秘密の値であり 、アルゴリズム実行の一部ではない。その後、質問34てシステムは初期化ベク トルが含まれるか否か決定する。初期化ベクトルの使用はこの分野で普通のこと てあり、データを電話回線等で送信する際の使用が典型的である。初期化ベクト ルは暗号化されたデータの前に回線を介して送られ、後で行われるデータの復号 化に使用される。参照番号36で示されたように、排他的OR演算でキーがビッ ト毎に初期化ベクトルと組み合わされて、初期のキーが改変され、それか参照番 号38でキー表を作成するために使用される。初期のキーを改変するために、排 他的OR機能を使用せず、キーの各バイトの値を初期化ベクトルの各バイトの値 に加えることもできる。これらは両方とも、キーと共に初期化ベクトルを使用す るための暗号法における標準的な技術である。初期化ベクトルか使用されない場 合、操作は参照番号38へ直接進み、変更されない初期キーからキー表か生成さ れる。一旦キー表が作成されると、操作は参照番号40へ進み、キー表に生成さ れた項目からマスク表が生成される。初期キーからキー表とマスク表項目を生成 するために使用される特定のプロセスは、後で詳細に説明する。
本発明の好適実施例によれば、暗号変換されるデータのブロックサイズは10バ イトの長さになるよう選定され、各バイトか8デジタルビツトを含む。各バイト 中の7ビツトかデータ値に使用され、8番目のビットかこの分野で周知のパリテ ィビットである。好適実施例では、キーが、暗号化および復号化されるデータの ブロックと同じ長さに選定されている。しかし、望むならキーか他の長さでもよ い。キーは、徹底した攻撃によるキーの推測を非常に困難にするに十分な長さで ある必要かある。
各バイト中の7ビツトを使用する場合、各キーが8〜20ハイドを含むことか望 ましい。20バイトより長いキー長さを使用できるか、暗号システムでの計算を ずっと困難で時間か掛かるものにし、システムで使用される種々の表の長さを増 し、それに応じて必要なメモリスペースを増大させる。暗号化される平文のブロ ックの選択においても、特に情報の小ブクツクかシステムを通される場合に、同 様な考え方が当てはまる。本発明のエンクレープ機能か使用される場合、ブロッ クサイズは偶数バイトを含むべきである。しかし、エンクレープ機能を使用プ  しないとすれば、ブロックサイズは奇数バイトでもよい本発明の暗号システムの 大きな要素は、データの特定の暗号機能の実行に使用される特定の転置、換字ま たはエンクレープ表が変換されるデータ中のある種の値また) は要素の機能だ ということである。本発明のこの側面は〉 可変機能と呼ばれ、それは、2つ以 上の考え得る選択肢か存在する場合のいかなる機能でもある。
本発明のこの側面は、後で暗号化・復号化プロセスて邑 使用されるキー表を初 期キーから最初に生成する際にも使用される。一般的に、キーから1つ以上の要 素か選択され、又、所定の数学的機能の結果か可変機能表の選択に使用される。
この機能は、新しいキーを生成するために選択された表に従ってキーの現状に対 して実行される。数学機能の結果は、特定の表と共に使用される特定の機能を、 考え得る多くの可能性から選ぶためにも使用できる。この発明の好適実施例では 、特定の種類の機能が前もって設定され、その機能と共に使用される表のみか暗 号化・復号化されるデータを用いて選択される。
換字、転置およびエンクレープ機能を使用する、キー表の要素を作り出すための 特定の構成か、第3図に示されている。変換されるキーの10バイトかKn I 〜Kn10として要素50に示されている。使用される換字表の選択にあたって 、要素5Iのモジュラ計算を用いてキーの最後の5バイトか合計され、要素52 のメモリレジスタYに格納されるデジタル数を生成する。要素51て使用される モジュラ計算のモジュラスは、システムで使用する換字表のサイズによって定ま る。好適実施例では、換字表は128バイトの値に対して32個の表を含み、従 って、要素51で使用される計算は32のモジュラスを持つ。本件出願中で後で 記載される1例では、理解を容易にするために、換字表が16個のみの表を持ち 、要素5Iはモジュラ16になる。第3図では、換字表の選択に用いる数を生成 するために、変換されるキーの最後の5バイトの値か合計されるか、要素52に おけるY値の生成に、10バイトのいかなる組合せも、1oすべでても、使用で きることを理解されたい。
第3図で使用される転置表の選択にあたって、要素53のモジュラ計算を用いて キーの最初の5バイトか合計され、要素54のメモリレジスタXに格納されるデ ジタル数を生成する。換字表の計算と同様に、転置表Xを生成するために要素5 3て使用されるモジュラ計算は、システムて使用する転置表のサイズによって定 まる。好適実施例では、転置表に128項目かあり、従って、要素53でのモジ ュラ計算はモジュラ128になる。
要素52で生成された値Yは、キーの現状を改変するために使用される換字表の 選択に使用される。そして、キーはこの表に従って換えられる。その後、要素5 4て生成された値Xか特定の転置表を選定するために使用される。前に換字操作 を受けたキーか、選択された表に従って今度は転置される。keynをPSKn と呼ぶ中間状態に変換するこの操作は、第3図の要素55に示されている。最初 に換字され、その後転置を受けて変換されたキーは、第3図中、バイトPSKn  1〜PSKn l Oを含む要素56として示されている。
サンプル転置表項目か、第4図に示されている。第4図上部の8つのビットバイ トの位置が種々の矢印で示されるように混ぜ合わされて、第4図下部に示される 新しい位置になる。上部から下部への操作がデータの暗号化を構成する。データ の復号化では、位置づけか下部から上部へ再編成され、データの当初の配置を復 活させる。
これは多くの暗号システムで使用される標準技術であり、この出願でこれ以上詳 細に説明する必要はない。同様に、換字表の典型的な項目が第5図に示されてい る。特定の平文値か、変換されるデータのバイトのとれかになっている場合は、 使用される換字表がその平文値を新しい値に換えるよう指令する。例えば、平文 値かPOの場合、第5図の表にしたかって、それは新しい値S1に換えられる。
換字表を通じて逆に操作することにより、暗号化されたデータを復号化し、元の 平文値を復活できる。これも標準技術であり、これ以上詳細に説明する必要はな い。第4および5図に示された特定の構成は、転置および換字表項目の多くの可 能性の代表例にすぎず、本発明の暗号システムで使用する表に他の多くの項目か 含まれることを理解しなければならない。
第3図で、要素56のキーの中間状態は、出願人かエンクレープ機能と呼ぶ新開 発機能に従って更に改変される。エンクレーププロセスも可変機能で、変換され るデータの特定の値を用いて数を生成し、今度はそれを用いて、複数のエンクレ ープ表のとれで、データを更に変換するかを選択する。第3図に示された実施例 では、要素56のキーの中間状態の特定の値、つまり図中のハイド3.4.5. 6および7、か要素57のモジュラ計算を用いて合計され、要素58のメモリレ ジスタZに格納されるデジタル数Zを生成する。好適実施例では、エンクレープ 表は32項目を含み、従って要素57て行われる計算はモジュラ32になる。そ の後、キーの中間状態か特定のエンクレープ表に従って更に変換され、この変換 されたキーが要素59てキー表に記入される。以下、第6および7図と関連して エンクレープ機能を詳細に説明する。
本件出願で使用する表記に従って、「KeyJは当初のキーを表すのに使用する 。当初のキーはキー表の第1のキーKeyOを生成するために使用する。Key Oはキー表に入れられ、その後、キー表の次の項目、つまりKeyl、の生成に 使用される。Keylは、当初のキーからKey Oを生成する第3図に示され た同じステップに従って、KeyOから生成される。キー表の残りのキーか、キ ー表か満たされるまで、直前のキーから順次生成される。キー表中で先行するキ ーからのキーの生成は、第3図中の要素59で示され、そこではKeynを用い てKeyn+1か生成されている。
キー表の項目数は因数、つまりアルファベットスペースに均等に分割すべきであ る。本書に記載する好適実施例では、アルファベットスペースは27、っまり1 28である。項目数かアルファベットスペースの因数でない場合は、使用される 、あるキーの統計的機会か他のキーより大きくなる。この不一致は、暗号解読者 の助けになり得ることから避けるへきである。キー表の最大項目数はアルファベ ットスペースのサイズであり、好適実施例では最大数か使用される。
一般的に、キー表の各キーは前のキーに対して実行された可変機能の結果生成さ れ、特定の可変機能か先にインストールないし生成されたキーから抽出された情 報によって定まる。当初のキーかインストールされたキーで、生成されたキーは KeyO,Keyl等と名付けられる。このように、キー表は当初のキーを含ま ず、従ってキー表中の情報の知識から当初のキーを捜し当てることは不可能であ る。後で詳細に説明するように、暗号化の各ラウンドで異なるキーの組合せが選 択され、これによって、繰り返し使用される1つのキーを見つけ出すこと、ある いは数学的に解きあかずことか不可能になる。伝送毎に当初のキーと関連して初 期化ベクトルを使用すると、1回限りのテープを模倣することになる。又、暗号 解読者はキー表を逆方向に進めないから、攻撃者が1つのキーを知っても前のキ ーは判らない。従って、この構成は疑似ランダムキー生成手段よりずっと優れて いる。
第3図に示された構成は、本発明の実施の1つの可能性にすぎないことに留意す べきである。発明の精神または範囲を変えずに、はとんど無数の変更か可能であ る。
選択される可変機能表か、生成された新しいキーから定められないように、キー 表を生成するための可変機能を、当初のキーまたはインストールされたデータブ ロックを用いて選択するいかなるプロセスも、この発明の範囲に入る。
第6図は、本発明で使用するエンクレープ機能のブロック図を示す。エンクレー プ機能は、第3図のキー表の生成と、後で第8図に示す暗号化プロセスの両方で 使用される。変換されるブロックは、第6図で要素60と名付けられる。このブ ロックは2つの部分、つまり最初の5バイトを含む第1または左の半ブロック6 1と、最後の5ハイドを含む第2または右の半ブロック62に分割される。第1 半ブロツクに偶数バイトを使用し、第2半ブロツクに奇数バイトを使用する等、 ブロックの他の分割構成も使用できる。変換されるブロックは、エンクレープ機 能のために偶数のバイトを含まなければならないオートクレーブ機能は、ブロッ クをそれ自体に対して実行される機能によって変えるための、暗号システムにお ける公知の技術である。本発明のエンクレーププロセスは、lOバイトのブロッ ク全体を通じて完全なシンボル間依存を達成するために、データブロックに対す る他の操作と関連してオートクレーブ型機能を使用する。完全なシンボル間依存 は、ブロックの各バイトがブロックの他の各バイトとそれ自体の関数である場合 に達成される。
第6図に示された構成では、右の半ブロック62がEnaと付されたオートクレ ーブ機能によって、要素63と名付けられた新しいデータブロックに変換される 。Enaで使用される特定のオートクレーブ機能は、後で第7図を参照しなから 詳細に説明する。要素63の右半ブロックは、Enbと付された第2のオートク レーブ変換を受け、要素64の半ブロックを生成する。そして、この半ブロック は、要素65てビット毎の排他的OR機能によって、変更されない左の半ブロッ ク61と組み合わされて、要素66で新しい左の半ブロックを生成する。そして 、要素66の左半ブロックは、オートクレーブ機能Encを受けて、要素67の 変換された左半ブロックを生成する。その後、要素67の左半ブロックは、次の オートクレーブ変換Endを受けて、要素68の改変された左半ブロックを生成 する。そして、要素58の左半ブロックは、排他的OR機能によって、先に変換 された要素64の右半ブロックと組み合わされる。この排他的OR機能は、要素 70の新しい右半ブロックを生成する。そして、要素68の左半ブロックは、右 半ブロック70と結合されて、本発明のエンクレープ機能を受けた要素71の全 体ブロックを生成する。
右半ブロック62かEnaおよびEnbに従って2つのオートクレーブ機能を受 けた後、右半ブロックはそれ自体の中で完全なシンボル間依存を達成している。
左半ブロック61と現在の右半ブロック64か、要素65の排他的OR機能によ って組み合わされると、左半ブロックか右半ブロックと完全なシンボル依存関係 になる。そして、要素66の左半ブロックか2つのオートクレーブ機能Encお よびEndによって変換されると、要素68の左半ブロックかそれ自体と右半ブ ロックに対して完全なシンボル間依存関係になる。従って、左半ブロックは10 バイトのブロック全体との完全なシンボル間依存を達成している。要素64の右 半ブロックか、要素69て排他的OR機能によって、現在の左半ブロック組み合 わされると、右半ブロックかIOバイトのブロック全体に完全にシンボル間依存 する。要素68の左半ブロックと要素70の右半ブロックが結合して要素71の 完全ブロックを形成すると、ブロックの各バイトがブロックの他の各ハイドとそ れ自体の関数になる。
第6図に示すエンクレープ機能で使用される特定のオートクレーブ機能は、変換 される半ブロックの要素ないしバイトを半ブロックの他の2つの要素に加えるプ ロセスである。このプロセスは、半ブロツク内の各要素か、そのように改変され るまで繰り返される。夫々の半ブロツク内で完全なシンボル間依存を生成するた めに、変えられる要素に少なくとも2つの要素を加える必要がある。更に、この オートクレーブ機能は、半ブロックのすへてのバイトかそれ自体と他の各バイト の関数になることを確実にするために、半ブロツク全体に対して2度実行される 。Ena、 Enb、 EncおよびEndは、項目a、項目b、項目Cおよび 項目dを夫々が含む複数のエンクレープ表で表される。サンプル表Enを下に示 す。
Ena Enb Enc End 各サブテーブルは5列を存し、オートクレーブ機能が上から下へ5段階で実行さ れる。各サブテーブルの列の高さは、変換される半ブロックの長さと等しくなけ ればならない。好適実施例では、ブロックの長さか10バイトで、半ブロックの 長さが5バイトであるから、列の高さは5である。各列は半ブロツク内の各バイ トを意味する数を含まなければならない。好適実施例では、各半ブロックに5バ イトか存在するので、1〜5の数がバイトを指定している。各列が各バイトを示 さなければならない。行の長さは半ブロックの長さの半分より大きくなければな らず、各行1〜5の明確な数値を含まなければならない。言い換えれば、1〜5 のとの数も、サブテーブルのいかなる行においても繰り返されるべきでない。表 Enの総数は暗号化スペースの因数であるべきである。
要するに、Enの各サブテーブルの縦の行が1〜5の異なる数を持ち、横の行が すべて1〜5の異なる数を持たなければならない。更に、特定の行におけるサブ テーブルの第2および第3の要素の夫々が第1の項目と異ならなければならない 。第1の項目(つまり、1行目にある)か変換されるブロックのバイトを特定し 、第2および第3の項目(2行目および3行目にある)か変換されるバイトに算 術的に結合されて新しい値を作り出すバイトを表す。
このオートクレーブ機能は、上記した具体的なサンプル表Enaに従った右の半 ブロックの変換を示す第7図との関連で、よりよく表すことができる。Enaの 第1の項目はr3 1 5Jで、これは半ブロックの3番目のバイト(つまり、 バイト8またはB8)が1番目のバイト(B6)と5番目のバイト(B I O )の値に加えられて、3番目のバイト(B8)の新しい値を生成することを意味 する。各足し算用のモジュラ計算は、アルファヘットスペースのサイズに従って 使用される。ここでは、アルファベットスペースか好適実施例の7個のデータヒ ツトによって定まる27つまり128であるから、計算ステップてモジュラ12 8か使用される。Enaの次の項目はr5 3 4Jて、これは5番目のバイト (BIO)か3番目のバイト(先に変換されたB8)と4番目のハイド(B9) に加えられることを意味する。第3項目はr4 2 Nで、これは4番目のハイ ド(B9)か2番目のバイト(B7)と5番目のバイト(B5)に加えられるこ とを意味する。第4項目はrl 4 2Jて、これは1番目のバイト(B6)か 4番目のバイト(B9)と2番目のバイト(B7)に加えられることを指示する 。表Enaの第5項目はr2 5 3Jて、これは2番目のバイト(B7)か5 番目のバイト(B 10)と3番目のバイト(B8)に加えられて、新しい2番 目のハイド(B7)を生成することを意味する。以上のように、オートクレーブ 機能は他の表Enbを使用して繰り返され、変換される特定の半ブロツク内に完 全なシンボル間依存を生成する。Ena、 Enb、 EncおよびEndはす へて同一でもよいか、特定のエンクレープ表En内の各サブテーブルが互いに異 なる方が良い。
選択される特定のエンクレープ表Enは、変換されるデータに対する計算機能を 通じて先に生成された数に従って定まる。キー表の生成と関連して、選択される エンクレープ表は、第3図の要素58て生成される数Zによって定まる。第6図 のエンクレーププロセスと関連した表記rn」は、第3図のキー表項目の生成と 関連して使用された表記rnJ と区別されるへきものである。
第2図に示す初期化ルーチンの最終ステップは、ステップ40のマスク表作成で ある。マスク値は、データ変換を行うために表中の特定項目の選択を助けるため に、暗号化および復号化プロセスで使用される決定因である。後で明らかにされ るマスクの機能は、暗号解読者か暗号アルゴリズムを逆方向に進め、システムで 使用される当初のキーを計算することを不可能にするように、他の顕著な要因を 付加することにある。
一般的に、マスク値は、キー表または当初のキーから得た2個以上の値の計算結 果である。好適実施例はMasknと表記された4個のマスク値を含み、nは1 〜4である。nの最大範囲は、暗号システムに含まれる可変機能の数に相当する 。好適実施例では、システムが転置、キー付加、エンクレープおよび換字の可変 機能を含み、従って、マスクの最大数nは4である。各マスク表項目は10バイ トのブロックである。従って、これらの各バイトはMaskn、bとアドレスで き、bは1−10である。好適実施例では、マスクか次のように生成される。M askl、lと名付けられたMasklの最初のバイトが、キー表の最初の32 個のキーにおける最初のバイトの値を合計することによって生成される。これら の値は、アルファベットスペースによって定まるモジュラ計算、ここではモジュ ラ128、を使用して合計される。
最初のマスクの後続バイトは、夫々キー表の最初の32個のキーのそれぞれにお ける対応バイトを合計することによって生成される。Mask2と名付けられた 第2のマスクか、表の次の32個のキー、つまりキー32゜、キー63、におけ るバイトの同様な合計によって生成される。同様に、第3のマスクか、キー表の 次の32個のキー、つまりキー64〜キー95、に対する処理によって生成され る。最後に第4のマスクがキー96〜キー127を使用して生成される。マスク の生成は次の式で数学的に表現することかできる(lかb以下で、bかlO以下 )。
MASKl、b = Ke yo、b + Ke yl、b +、、、、、+K ey31.b MASK2.b = K e y32.b 十 K e y33.b +、、、 、。
十 Key63.b MASK3.b = K e y64.b + K e y65.b +、、、 、。
+Key95.b MASK4.b = K e y96.b + K e y97.b +、、、 、。
+Key127.b キー表およびマスクを生成するための他の選択が可能である。マスク生成は、単 にキー表作成において更に4個のキーを生成し、これら4個の追加のキーを4個 のマスクとして使用すればよい。又、キー表のキーはマスク生成に使用するもの と同じ方法で生成できる。又、キー表は、キー表の最初の2項目を生成した後、 可変機能を利用してもしなくても、第3のキーを最初の2個のキーの関数とする ことによって生成できる。このように、先に生成されたいずれかのキーで後続の キーを作成できる本発明の好適実施例による暗号化プロセスのフローチャートを 第8図に示す。この好適実施例は、各データブロックについて、いくつかの暗号 化ラウンドを含むので、以下でrRJの文字を使用してラウンド番号を示す。最 初に、ステップ100て、ラウンド番号をゼロにセットする。そして、ステップ 102で、ラウンド番号Rを1つインクリメントする。ステップ104て、暗号 化されるデータが10バイトのブロックで表される。暗号化の最初のラウンドの とき、要素104のデータは暗号化される平文である。その後のラウンドでは、 このデータか当初の平文データと異なる中間物になるが、まだ最終の暗号文出力 ではない。
ステップ106で、データか先ず可変転置操作を受ける。第9図との関連で後で 詳しく説明するか、可変転置を行うために、転置表メモリ108から項目か選択 され、マスク表メモリ110から値か選択される。そして、操作はステップ11 2へ進み、「C」か付された選択成分をラウンド数Rと等しくする。そして、操 作はステップ114へ進み、データに対して最初の可変キー付加を実行する。第 10図との関連で後で詳しく説明するか、可変キー付加を実行するために、キー 表メモリ116からキーか選択され、マスク表メモリ+10から値か選択される 。そして、操作はステップ118へ進み、選択成分Cをラウンド数より1つ大き い値にセットする。ステップ118の後、操作は質問120へ進み、選択成分C か11と等しいか判断する。等しくなければ、操作はステップ122へ直行し、 キー表メモリ116からのキーを使用し、マスク表メモリ110からの値を使用 して、データに対する第2の可変キー付加を実行する。ステップ118での加算 後に選択成分Cが11と等しい場合は、操作はステップ124へ進み、選択成分 を1の値にセットする。そして、操作はステップ122の第2可変キー付加の作 業に進む。
ステップ122の第2可変キー付加機能の後、操作はi26へ進み、データに対 して可変エンクレープか行われる。この可変エンクレープ機能は、第6および7 図との関連で既に述べたが、そこでエンクレープ表メモリ128から項目が選択 される。選択される特定のエンクレープ表は、マスク表メモリ110から得られ るマスク3゜Rによって定まる。これは式n=マスク3.Rで表すことかでき、 nは第6および7図の操作用に選択されたエンクレープ表メモリである。後で詳 しく説明するか、マスクIはステップ106の可変転置操作との関連で使用され 、マスク2はステップ114および122の可変キー付加との関連で使用され、 マスク4は後の可変転置操作で使用される。
そして、操作はステップ130へ進み、選択成分Cをもう一度うウンド数Rと等 しくする。その後、ステップ132て、第1の可変換字に従ってデータか変換さ れる。後で詳しく説明するが、可変換字はマスク表メモリ110からの値を使用 し、S−ボックスおよびSo −ボックスメモリ134から適当なS−ボックス 表を選択する。そして、操作はステップ136へ進み、選択成分Cの値を1つイ ンクリメントする。質問138で、選択成分か11と等しいか判断する。等しく なければ、操作はステップ140の第2可変換字へ直行する。ステップ136後 の選択成分か11と等しければ、操作は質問138からステップ142へ進み、 選択成分を1の値にセットする。その後、操作はステップ140の第2可変換字 へ進む。ステップ140の第1可変換字と同様、第2可変換字は第1I図で詳細 に説明するか、これはマスク表メモリ110からの値とS−ボックスおよびSo −ボックスメモリ134からの表を用いてデータを変換する。
その後、操作は質問144へ進み、ラウンド数がIOの値に到達したか判断する 。ラウンド数が10に到達した場合は、暗号化プロセスが完了し、暗号文がステ ップ146で出力として表される。ラウンド数か10にまた到達していない場合 、操作はステップ102へ戻り、ラウンド数を1つインクリメントする。そして 、可変転置106、第1可変キー付加112、可変エンクレープ126、第1可 変換字132および第2可変換字140を含む上記ステップをすへて実行する。
第8図の可変転置を、第9図のブロック図で詳しく説明する。変換されるデータ は要素150でバイトB1〜BIOとして表されている。転置の実行に転置表メ モリ108のとれかの表を選択するために、データの10バイトの値を要素15 2で合計し、要素154のメモリレジスタZに格納される値を生成する。要素1 54のレジスタZの値を、ビット毎の排他的OR機能で、マスク表メモリ110 からのマスク1.Rと組み合わせることによって値を生成する。この値は要素1 56のメモリレジスタWに格納される。例えば、暗号化の最初のラウンドでは、 要素156でマスク1,1を使用して、Zとの排他的OR演算でWを生成する。
好適実施例では暗号化が10ラウンドあるので、暗号化ラウンドでマスクlの1 0個の値が順次使用される。
そして、操作は要素158へ進み、Pwで表される転置表Wからの指令を使用し て、データブロックに対する標準転置か実行される。転置されたデータブロック か、第9図の要素160にバイトb 1−b 10として示されている。同じデ ータを同じステップで復号化できるよう、暗号化されるデータのIOバイト全て を用いて、変換に使用する転置表を選択することが重要である。仮にブロックの いくつかのバイトのみを用いて、使用される転置表を決定したとすれば、復号化 プロセス時にとの転置表か選択されたか判断できなくなる。排他的OR演算てZ をマスク1.Rと組み合わせてWを生成せず、モジュラ計算てZとマスク1.R の値を合計して、使用される転置表を決定することも可能である。このことは、 排他的OR演算を使用して2つのデジタル値が組み合わされる出願の残り部分全 体に当てはまる。排他的OR演算はデジタルコンピュータで実施すると計算上容 易だか、本発明では、排他的OR演算を行わずに、値を単に算術的に合計するこ とによっても同じ結果か得られる。
第8図のステップ114および122に示された本発明の可変キー付加機能か第 1O図に図表で示されている。ステップ114の第1およびステップ122の第 2の各可変キー付加は、選択成分Cの値か1にセットされる10番目の暗号化ラ ウンドのとき以外、選択成分Cの値が第1可変キー付加のときより第2可変キー 付加のときの方か1つ大きいことを除いて同一である。その他では、第8図のス テップ114および122で行われる可変キー付加のステップは第10図に示さ れたように同一である。
可変キー付加用としてキー表メモリ116から選択される特定のキーは、バイト C(BCと呼ぶ)とマスク2゜Rによって定まる。これは、値ZをBCと等しく する第1O図の要素172と、WをZ XORマスク2.Rと等しくする要素1 74て示されている。値Wは、可変キー付加のその特定のラウンド時での使用と して、キー表メモリ116からキーを選択するのに使用される。キーWの10バ イトは第10図の要素176として示されている。その後、要素170のバイト のブロックにおける各バイトか、要素178の排他的OR機能で、一連の排他的 ○Rを介して、キーWの対応するバイトと組み合わされる。例えば、BI XO RキーW1はblを生成する。同様に、B2 XORキーW2はb2を生成する 。
唯一の例外は、変換されるブロック中のバイトC(BC)かキーWの対応バイト と組み合わされず、変更なして直接bcになることである。これは、変換される 要素170のデータの各バイトと関連した要素180の一連の質問で表されてい る。Cかバイト数と等しい場合、そのバイトは対応キーバイトと組み合わされな い。可変キー付加のラウンドを経たデータブロックか第1O図の要素182とし て示されている。
第8図に示した暗号化用の可変換字が、第11図により詳細に示されている。可 変キー付加と同様、選択成分Cが第2の可変換字て変更される点を除いて、ステ ップ132の第1可変換字とステップ140に第2可変換字は同一である。その 他は、各ステップとも同じである。
換字プロセスでは、選択されるS−ボックスZか、変換されるデータのバイトC とマスク4.Rによって定まる。
これは、値ZをBCと等しくする第11図の要素192と、WをZ XORマス ク4.Rと等しくする要素194で示されている。要素194で生成された値W は、換字で使用される要素196の特定S−ボックスを選択するのに使用される 。S−ボックス選択後、要素190の被変換ブロックにおける各バイトか、S− ボックスWに従って、選択された値に代えられるが、バイトC(BC)はこの変 換ラウンド時には変換されない。
可変キー付加および可変換字の両方において、バイトC(BC)を変換しないこ とか重要である。このようにして、逆方向の復号化操作に同じ変換を用いること が不可能になる。要素190の変換されるブロックの各バイトと結び付いた要素 198の一連の質問か、とのようにしてバイトCか変えられないまま直接要素2 00の対応出力バイトになるかを示している。例えば、選択成分Cかlと等しい 場合、要素190のBlは要素200のblと等しくなる。それ以外は、要素2 00の残りのバイトは、S−ボックスWに記載された換字プロトコールに従って 、要素190の当初値と異なる値を持つ。転置表の選択でも同じ手法が使用でき る、つまり1つのバイトを使用し、それを変えないままにしておくのである。
暗号文のブロックを復号化するステップが、第12図に示されている。復号化は 本質的に第8図の暗号化ステップの逆方向の反復であるから、ラウンド数かステ ップ210て先ず10にセットされる。復号化されるデータブロックが選択され 、10データバイトのブロックとして要素212に表される。復号化の最初のラ ウンドでは、要素212のデータは当初の暗号文である。そして、操作はステッ プ214へ進み、選択成分Cをラウンド数より1つ大きい値にセットする。質問 216で、選択成分Cが11と等しいか判断する。等しくなければ、操作はステ ップ218へ直行し、データに対して最初の逆可変換字を実行する。逆可変換字 は第13図に詳しく示されている。最初の逆可変換字218はマスク表メモリl lOとSo −ボックスメモリ134からのデータを使用する。質問216で、 選択成分か11と等しければ、ステップ220で選択成分を1にセットし、操作 は要素218の最初の逆可変換字へ進む。そして、操作はステップ222へ進み 、選択成分をラウンド数と等しくし、その後、ステップ224て第2の逆可変換 字を実行する。
ステップ224の第2逆可変換字の後、データは要素226て逆可変エンクレー プ機能に付される。この機能は第14および15図との関連で後で詳しく述へる 。しかし、マスク表メモリ110からマスク3.Rが選択され、その値か、エン クレープ表メモリ128から使用される特定のエンクレープ表の選択に使用され ることに注意すべきである。
そして、操作はステップ228へ進み、選択成分を1つインクリメントし、質問 230で、選択成分が11の値に到達したか判断する。選択成分がまだ11の値 に到達していなければ、操作はステップ232の第1逆可変キー付加へ進む。選 択成分か11の値に到達していれば、ステップ234て1の値にリセットし、操 作はステップ234の第1逆可変キー付加へ進む。第1逆可変キー付加はマスク 表メモリ110とキー表メモリ116からのデータを用いてデータを変換する。
この操作は第16図に詳しく示されている。そして、操作はステップ236へ進 んで、選択成分をラウンド数と等しくする。そしてデータは、ステップ238で 第2逆可変キー付加を受ける。選択成分の値の相違を除いて、ステップ232の 第1逆可変キー付加はステップ238の第2逆可変キー付加と同一である。
そして、操作はステップ240の逆可変転置へ進む。
そして、データは、マスク表メモリ110からの項目と転置表メモリ108から 項目を用いた特定の逆可変転置に付される。逆可変転置は第17図との関連で詳 しく述へる。
そして、操作は質問242へ進む。復号化のラウンド数かlの値に到達していれ ば、復号化はこれ以上行われず、データの現状か平文出力としてステップ244 で出力される。ラウンド数かlの値にまだ到達していない合、ステップ246で ラウンド数を1つ減らす。そして、操作はステップ212へ進んで、第1逆可変 換字218、第2逆可変換字224、逆可変エンクレープ226、第1逆可変キ ー付加232、第2逆可変キー付加238、そして逆可変転置240によって、 復号化のラウンドを更に実行する。
逆可変換字が第13図により詳細に示されている。復号化されるデータは要素2 50のバイトb l −b I Qて表されている。選択される逆換字ボックス (S’ −ホックス)か、bCXORマスク4.Rによって定まる。
これは、Zをbcと等しくする第13図の要素252と、WをZ XORマスク 4.Rと等しくする要素254で示されている。そして、Wは要素256の特定 逆換字ボックス(S’ −ボックスW)の選択に使用される。そして、要素25 0のブロックにおけるバイトbc以外の各バイトか、選択されたSo−ボックス のプロトコールに従って代えられる。逆可変換字の結果は、要素260の10バ イトデータブロツク81〜B10になる。バイトbCを代えない構成が復号化さ れる要素250のデータの各バイトと関連したの一連の質問258て表されてい る。Rか10である復号化の最初のラウンドて、bloは、逆換字に使用される So −ボックスの選択に用いられると共に、逆換学時に変更されない。第8図 に示された暗号化プロセスてデータに対して実行される最終可変換字の際に10 番目のバイトが変更されないままになっているので、暗号化プロセスを逆に働か せて暗号文データを元に戻すことかできる。このことは、第16図の逆可変キー 付加にも当てはまる。
第15図の逆可変エンクレープで使用される特定のオートクレーブ機能と共に、 逆可変エンクレープ機能か第14図に示されている。第14図で実行されるステ ップは、本質的に第6図に示された暗号化の可変エンクレープで行われるステッ プの逆である。要素270の復号化されるデータブロックは左の半ブロック27 2と、右の半ブロック274に分割される。これら2個の半ブロックは、要素2 76でビット毎の排他的OR機能によって組み合わされて、次の右半ブロック2 78を生成する。
要素272の左半ブロックは、先ず逆オートクレーブ変換E’ndによって左半 ブロック280に変換され、そして、逆オートクレーブ機能E’ncによって左 半ブロック282に変換される。そして、右半ブロック278は、要素284の 排他的OR機能によって、左半ブロック282と組み合わされて要素286の最 終的な左半ブロックを形成する。要素278の右半ブロックは、先ず逆オートク レーブ変換E’nbによって右半ブロツク要素288に変換され、そして、逆オ ートクレーブ機能E’naによって最終的な右半ブロック290に変換される。
左半ブロック要素286と右半ブロツク要素290が結合して、最終的なIOバ イトブロック292を形成し、これか逆エンクレープ機能の結果になる。
第14図の逆エンクレープで使用される特定のオートクレーブ機能か、1例とし て第15図に示されている。
大体、上記のようにエンクレープ表か逆オートクレーブ機能で使用される。しか し、項目は各列の下から上の順に読み込まれ、最初の行の項目によって示される 被変換バイトの値か、エンクレープ表項目の2行目および3行目で示される他の 2つのバイトの値によって減じられる。第7図との関連で使用されたオートクレ ーブ機能と同様、逆エンクレープで使用される逆オートクレーブ機能l の例が 第15図に示されている。使用されるエンクレープ表の最終項目か第15図の変 換で最初に使用される。
この項目はr2 5 3Jで、これは5番目のバイト(BIO)と3番目のバイ ト(B8)か2番目のバイト(B7)から引かれて、2番目のバイトの新しい値 を生成することを意味する。暗号化で使用されたエンクレープ機能と同様、計算 はモジュラ計算で行われる。第15図で使用されるエンクレープ表の最下部から 次に上の項目はrl 4 2Jて、これは4番目のバイト(B9)と2番目のバ イト(B7)か1番目のバイト(B6)から引かれて、1番目のバイトの新しい 値を生成することを意味する。同様に、3番目の項目はr4 2 1Jて、これ は2番目のバイト(B7)と1番目のハイド(B6)か4番目のバイト(B9) から引かれて、4番目のバイトの新しい値を生成することを意味する。エンクレ ープ表の次の項目はr5 3 4Jで、これは3番目のハイド(B8)と4番目 のバイト(B9)か5番目のバイト(B10)から引かれて、5番目のバイトの 新しい値を生成することを意味する。最後に、エンクレープ表の最初の項目はr 3 1 5Jで、これは逆オートクレーブ機能の最後に使用される。この項目は 1番目のバイト(B6)と5番目のバイト(BIO)が3番目のバイト(B8) から引かれて、3番目のバイトの新しい値を生成することを意味する。これらす べてのモジュラ計算の結果か、バイト86〜BIOを含む最終ブロックとして第 15図に示されている。逆可変キー付加か第16図に図表で示されている。逆可 変キー付加用としてキー表メモリ116から選択される特定のキーは、バイトC (bCと呼ぶ)とマスク2.Rによって定まる。これは、値Zをbcと等しくす る第16図の要素302と、WをZXORマスク2.Rと等しくする要素304 で示されている。値Wは、逆可変キー付加のその特定のラウンド時での使用とし て、キー表メモリ116からキーを選択するのに使用される。キーWのIOバイ トは第16図の要素306として示されている。その後、要素300のバイトの ブロックにおける各バイトか、排他的OR機能で、要素310の一連の排他的O Rを介して、キーWの対応するバイトと組み合わされる。例えば、bl XOR キーWlはBlを生成する。同様に、b2 XORキーW2はB2を生成する。
唯一の例外は、変換されるプロず、変更なしで直接BCになることである。これ は、変換される要素300のデータの各バイトと関連した要素310の一連の質 問で表されている。Cがバイト数と等しい場合、そのバイトは対応キーバイトと 組み合わされない。逆可変キー付加のラウンドを経たデータブロックが第16図 の要素312として示されている。
第12図の逆可変転置を第17図のブロック図で詳しく説明する。変換されるデ ータは要素320でバイトb1−blOとして表されている。転置の実行に転置 表メモリ108のどれかの表を選択するために、データのlOバイトの値を要素 322でモジュラ計算を用いて合計し、要素324の値Zを生成する。要素32 4で生成された12を、要素326のビット毎の排他的OR機能で、マスク表メ モリ110からのマスクl、Rと組み合わせることによって値Wを生成する。例 えば、復号化の最初のラウンドでは、要素326でマスク1.1を使用して、Z との排他的OR演算でWを生成する。
そして、操作は要素328へ進み、第4図との関連で既に示された転置表項目を 単に逆に使用する標準逆転置か、データブロックに対して、P′Wて表される転 置表Wからの指令を使用して実行される。逆装置操作されたデータブロックか、 第17図の要素330にバイトBl〜BIOとして示されている。暗号化プロセ スで暗号化されるデータの10バイト全てを用いて、変換に使用する転置表を選 択したので、どの転置表を使用すべきか決定するために暗号文の10バイト全て を再び合計することによって、同じデータを復号化できる。これは、転置操作か 単に値の順序を並べ変えたから可能である。暗号化段階で使用された情報は、デ ータの値を再度合計することによって抽出できる。
例 上記本発明の暗号化システムの実施例を使用した平文データのlOバイトブロッ クの暗号化例を詳細に示す。
システムは転置表、換字表およびエンクレープ表で初期化しなければならない。
この例で使用される、上記ガイドラインに従って生成された表は、それぞれ以下 の表■、IIAとB1およびIIIに示される。そして、キー表およびマスク表 を作成するためにIOバイトの初期キ−が選択される。この個用として当初キー は次のように選択される。
キー= 2711521112412921781当初キーの最初の5個の値を 合計する(mad 128 ) :(27+l15+21+1+12) mod  128 □ 176 mod 128 =48従って、転置表48を使用する 。
当初キーの最後の5個の値を合計する(mad 16) :(41+2+92+ 17+81 ) mad 16 = 233 mod 16 = 9従って、換 字表9を使用する。
キーをとる: 2711521112412921781換字(表9): 転置(表48)。
現在のキープロックの値3〜7を合計する(mod 32)(50+73+10 9+15+102) mod 32 = 349 Mod 32 = 29従っ て、エンクレープ表29を次のステップで使用する現在のキーブロック: エンクレープ(表29)・ 3り 3455 6397374 107 10933従って、keyo= 当初キーを用いてキー表のk e yOである第1のキーを作成したことが理解 されよう。上記ステップを再生して、キー0を用いてキー1を生成し、キー1を 用いてキー2を生成し、最後にキー126を用いてキー127を生成する。上記 当初キーを使用して完成されたキー表は、後で表IVに示される。
次に、先に生成されたキー表を使用してマスク表を生成する。第1のマスクであ るマスク1の1番目のバイトつまり1番目の値を生成するために、キー0〜キー 31の1番目のバイトの値を合計する(mad 128 ) :0+10+26 +O+102+105+111+91+95+68+6+70+95+67+5 5+39+109+23+39+31+120+50+46+71+34+48 +105+51+45+123+4+1 =1840 mod 128 = 4 8 従って、マスクlの1番目の値つまり1番目のバイトは48である。
マスクlの値2はキー0〜キー31のバイト2の値の合計である(mod 12 8 )。マスク1の値3はキー0〜キー31のバイト3の値の合計である(mo d 128 )。マスクlの値4はキー0〜キー31のバイト4の値の合計であ る((50) )。マスク1の値5はキー0〜キー31のハイド5の値の合計で ある(mod 128 )。マスク1の値6はキー0〜キー31のバイト6の値 の合計である(mod 128 )。マスク1の値7はキー0〜キー31のバイ ト7の値の合計である(mod 128 )。マスク1の値8はキー0〜キー3 1のバイト8の値の合計である(mod 128 )。マスクlの値9はキー0 〜キー31のバイト9の値の合計である(nod 128 )。マスクlの値1 0はキー0〜キー31のバイトlOの値の合計である(mod 128 )。
同様に、マスク2の10個のバイトないし値かキー32〜キー63から生成され 、マスク3の値がキー64〜キー95から生成され、マスク4の値がキー96〜 キー127から生成される。 表IVのキー表から生成されて完成されたマスク 表を下に示す。
マスク1= 48 2121 18 60105 33 50 11 60マス ク2= 26 78 24 72 69 13 77 43 9 99マスク3  = 64113 72 61 37 13 49 71 24 60マスク4  = 104 62 69 87 18 31102101 32125これて キーおよびマスク表が初期キー(いずれの表にも含まれない)から生成されたの で、これに加えて後て示す表I、IIAとIIB、およびr r ■ノ装置、エ ンクレープおよび換字表を用いてデータを暗号化できる。
本発明のシステムのもとに、IOの暗号化ラウンドで、平文データの特定のブロ ックが暗号化される。
ラウンドI ブロック(BLOCK) = 104101108108111 321161 04 lot 114 (a)可変転置。
ブロックのすべての値を加える(+uod 128 ) :i04+101+1 08+108+111+32+116+IQ4+101+114 = 999  mad 128 = 103 ラウンド1用のマスクIの値(マスク1.1)=4848転置ブロックXORマ スク1.1の合計: 203 XOI? 48=87 従って、転置用として転置表87を使用する。
転置前のブロック: 転置後のブロック: (b)最初のキー付加。
ラウンドl用のマスク2の値(マスク2.1)=26第1のキー=ブロックXO Rマスク2.1の値1:108XOR26= 118 従って、最初のキー付加用としてキー118を使用する。
キー付加前のブロック: 108104101101104114 321081111+6キー付加後の ブロック: (c)第2のキー付加。
第2(7)キー=ブロックXORマスク2.1の値2:113XOR26= 1 07 従って、第2のキー付加用としてキー107を使用する。
キー付加前のブロック: +08113 85 74105102 85 91124 55キー付加後の ブロックニ ア2113120 64 94 93 56118 30 47(d)可変エン クレープ。
エンクレープ表=マスク3.1の値(mod 32) = 642 m。
d 32 = 0 従って、エンクレープ用としてエンクレープ表04を使用する。
エンクレープ前のブロックニ アjl13120 64 94 93 56118 30 47エンクレープ後 のブロック: (e)最初の可変換字。
ラウンド1用のマスク4の値(マスク4.1)=104第1の換字表=ブロック XORマスク4,1の値1,2XOR104= 10 従って、最初の換字用として換字表10を使用する。
換字前のブロック: 換字後のブロック: (f)第2の可変換字。
第2の換字表=ブロックXORマスク4.1の値2:60XOR104= 4 従って、第2の換字用として換字表4を使用する。
換字前のブロック: 換字後のブロック: ラウンド2 ブロック= 103 60 82 74 18 38 II 49 501+( a)可変転置。
ブロックのすべての値を加える(mod 128 ) :103+60+82+ 74+18+38+11+49+50+110 = 595 mod 128  = 83ラウンド2用のマスグーの値(マスク1.2)=2転置表=ブOツクX ORマスク1,2ノ合計:83XOR2=81 従って、転置用として転置表81を使用する。
転置前のブロック: 転置後のブロック: (b)最初のキー付加。
ラウンド2用のマスク2の値(マスク2.2)=78第1(7)キー=プロツ’ ) X0Rvスク2.2 c7)値2:60XOキー付加前のブロック: キー付加後のブロック: (c)第2のキー付加。
第2のキー=ブロックXORマスク2,2の値3 : 9 X0R78= 71 従って、第2のキー付加用としてキー71を使用する。
キー付加前のブロック: キー付加後のブロック: (d)可変エンクレープ。
エンクレープ表=マスク3.2の値(mod 32) = 113 mod32  = 17 従って、エンクレープ用としてエンクレープ表17を使用する。
エンクレープ前のブロック: エンクレープ後のブロック: (e) f&初の可変換字。
ラウンド2用のマスク4の値(マスク4.2)=62第1の換字表=ブロックX ORマスク4.2の値2.37XOR62= 11 従って、最初の換字用として換字表11を使用する。
換字前のブロック: 換字後のブロック: (f)第2の可変換字。
第2の換字表=ブロックXORマスク4.2の値368XOR62= 10 従って、第2の換字用として換字表10を使用する。
換字前のブロック・ 換字後のブロック: (a)可変転置。
ブロックのすべての値を加える(mod 128 ) ・99+122+68+ 9+114+0+53+51+92+49 = 657 mod 128 =  17ラウンド3用のマスク1の値(マスク1.3)=121転置表=ブロックX ORマスク1.3の合計: 17 XOR121= 104 従って、転置用として転置表104を使用する。
転置前のブロック: 転置後のブロック: (b)最初のキー付加。
ラウンド3用のマスク2の値(マスク2.3)=24第1のキー=ブロックXO Rマスク2,3ノ値3 : 51 XOR24・43 従って、最初のキー付加用としてキー43を使用する。
キー付加前のブロック: キー付加後のブロック: (c)第2のキー付加。
第2のキー=ブロックXORマスク2,3の値4・ 126XOR24= 10 2 従って、第2のキー付加用としてキー102を使用する。
キー付加前のブロック。
キー付加後のブロック: (d)可変エンクレープ。
エンクレープ表=マスク3,3の値(mod 32) = 72 mod32= 8 従って、エンクレープ用としてエンクレープ表8を使用する。
エンクレープ前のブロック: エンクレープ後のブロック: (e)最初の可変換字。
ラウンド3用のマスク4の値(マスク4.3)=69第1の換字表=ブロックX ORマスク4,3の値3・ 18XOR69= 7 従って、最初の換字用として換字表7を使用する。
換字前のブロック。
換字後のブロック。
(f)第2の可変換字。
第2の換字表=ブロックXORマスク4,3の値4:30XOR69= 11 従って、第2の換字用として換字表11を使用する。
換字前のブロック: 換字後のブロック: ラウンド4 ブロック= 3 100 107 30 13 54 58 58 36 1( a)可変転置。
ブロックのすべての値を加える(mod 128 ) :3+100+107+ 30+13+54+58+58+36+14 =473 mod 128 =  8ラウンド4用のマスク1の値(マスク1.4)=18転置表=ブロックXOR マスク1,4の合計: 89 XOR18=75 従って、転置用として転置表75を使用する。
転置前のブロック: 転置後のブロック: (b)!初のキー付加。
ラウンド4用のマスク2の値(マスク2.4)=72第1のキー=ブロックXO Rマスク2,4の値4:100XOR72= 44 従って、最初のキー付加用としてキー44を使用する。
キー付加前のブロック: キー付加後のブロック: (c)第2のキー付加。
第2のキー=ブロックXORマスク2.4の値5・ 36 XOR72= 10 8 従って、第2のキー付加用としてキー108を使用する。
キー付加前のブロック。
キー付加後のブロック: (d)可変エンクレープ。
エンクレープ表=マスク3.4の値(mad 32) = 61 mod32・ 29 従って、エンクレープ用としてエンクレープ表29を使用する。
エンクレープ前のブロック: エンクレープ後のブロック: (e) f&初の可変換字。
ラウンド4用のマスク4の値(マスク4.4)=87第1の換字表=ブロックX ORマスク4,4の値4:98XOR87・5 従って、最初の換字用として換字表5を使用する。
換字前のブロック: 換字後のブロック: (f)第2の可変換字。
第2の換字表=ブロックXORマスク4,4の値5:58XOR87= 13 従って、第2の換字用として換字表13を使用する。
換字前のブロック: 換字後のブロック: ラウンド5 ブロック= 122 28 81 29 58 127 22 16 26(a )可変転置。
ブロックのすべての値を加える(mod 128 ) :122+28+81+ 29+58+127+22+16+26+49 = 558 mad 128  =ラウンド5用のマスク1の値(マスク1.5)=60転置表=ブロックXoR マスクl、5の合計: 46 XOR60= 18 従って、転置用として転置表18を使用する。
転置前のブロック: 転置後のブロック: (b)最初のキー付加。
ラウンド5用のマスク2の値(マスク2.5)=69第1のキーニブロックXO Rマスク2,5の値5 : 28 XOR69= 89 従って、最初のキー付加用としてキー89を使用する。
キー付加前のブロック; キー付加後のブロック: (c)第2のキー付加。
第2(7)キー=ブロックXORマスク2,5の値6 : 74 XOR69=  15 従って、第2のキー付加用としてキー15を使用する。
キー付加前のブロック: キー付加後のブロック: (d)可変エンクレープ。
エンクレープ表=マスク3.5の値(nod 32) = 37 mod32=  5 従って、エンクレープ用としてエンクレープ表5を使用する。
エンクレープ前のブロック: エンクレープ後のブロック: (e)最初の可変換字。
ラウンドs用のマスク4の値(マスク4.5)=18第1の換字表=ブロックX ORマスク4,5の値5:54XOR18= 4 従って、最初の換字用として換字表4を使用する。
換字前のブロック: 換字後のブロック: (f)第2の可変換字。
第2の換字表=ブロックXORマスク4,5の値6:89XOR18= 11 従って、第2の換字用として換字表11を使用する。
換字前のブロック: 換字後のブロック: ラウンド6 ブロック= 100 24 126 122 108 89 39 45 93 (a)可変転置。
ブロックのすべての値を加える(mod 128 ) ・100+24+126 +122+108+89+39+45+93+28 = 774 mod 12 8=6 ラウンド6用のマスク1の値(マスク1.6)−105転置表=ブロックXOR マスク1,6の合計: 6 XOR105;111 従って、転置用として転置表111を使用する。
転置前のブロック: 転置後のブロック: (b)最初のキー付加。
ラウンド6用のマスク2の値(マスク2.6)=13第1のキー=ブロックXO Rマスク2,6の値6・ 108XOR13= 97 従って、最初のキー付加用としてキー97を使用する。
キー付加前のブロック・ キー付加後のブロック: (c)第2のキー付加。
第2のキー=ブロックXORマスク2.6の値7:99XOキー付加前のブロッ ク: キー付加後のブロック: 94 63 13 94 121 33 99 70 11.8 11(d)可 変エンクレープ。
エンクレープ表=マスク3.6の値(mod 32) = 13 = m。
d 32 = 13 従って、エンクレープ用としてエンクレープ表13を使用する。
エンクレープ前のブロック: エンクレープ後のブロック: (e)最初の可変換字。
ラウンド6用のマスク4の値(マスク4.6)=31第1の換字表=ブロックX ORマスク4.6の値6:117XOR31= 10 従って、最初の換字用として換字表10を使用する。
換字前のブロック: 換字後のブロックニ ア8 65 30 125 17 117 57 61 89 38(f)第2 の可変換字。
第2の換字表=ブロックXORマスク4,6の値7:57XOR31= 6 従って、第2の換字用として換字表6を使用する。
換字前のブロックニ ア8 65 30 125 17 117 57 61 89 38換字後のブ ロック: (a)可変転置。
ブロックのすべての値を加える(mod 128 ) :6+92+76+30 +120+66+57+51+58+80 = 636 mod 128 =  12ラウンド7用のマスク1の値(マスク1.7)=33転置表=ブロックXo Rマスク1,7の合計: 124 XOR33=93 従って、転置用として転置表93を使用する。
転置前のブロック: 転置後のブロック: (b)最初のキー付加。
ラウンド7用のマスク2の値(マスク2.7)=77第1のキー=ブロックXO Rマスク2,7の値7:58XOキー付加前のブロック: キー付加後のブロック。
(c)第2のキー付加。
第2のキー=ブロックXORマスク2,7の値8:32XOR77= 109 従って、第2のキー付加用としてキー109を使用する。
キー付加前のブロック: キー付加後のブロック: (d)可変エンクレープ。
エンクレープ表=マスク3,7の値(mod 32) = 49 mod32  = 17 従って、エンクレープ用としてエンクレープ表17を使用する。
エンクレープ前のブロック: エンクレープ後のブロック・ (e)最初の可変換字。
ラウンド7用のマスク4の値(マスク4.7)=102第1の換字表=ブロック XORマスク4,7の値7:94χOR102= 8 従って、最初の換字用として換字表8を使用する。
換字前のブロック: 換字後のブロック: (f)第2の可変換字。
第2の換字表=ブロックXORマスク4,7の値8:99XOR102= 5 従って、第2の換字用として換字表5を使用する。
換字前のブロック: 換字後のブロック: (a)可変転置。
ブロックのすべての値を加える(mod 128 ) :85+98+36+5 7+83+51+90+99+49+9 = 657 mod 128 =17 ラウンド8用のマスクlの値(マスク1.8)=50転置表=ブロックXORマ スク1.8の合計:l7XOR50=35 従って、転置用として転置表35を使用する。
転置前のブロック: 転置後のブロック: (b)最初のキー付加。
ラウンド8用のマスク2の値(マスク2.8)=43第1のキー=ブロックXO Rマスク2.8の値8 : 51 XOR43= 24 従って、最初のキー付加用とし、てキー24を使用する。
キー付加前のブロック: キー付加後のブロック: (c)第2のキー付加。
第2のキー=ブロックXORマスク2,8の値9 : 79 XOR43= 1 00 従って、第2のキー付加用としてキー100を使用する。
キー付加前のブロック: キー付加後のブロック: (d)可変エンクレープ。
エンクレープ表=マスク3,8の値(mad 32) = 71 mod32: 7 従って、エンクレープ用としてエンクレープ表7を使用する。
エンクレープ前のブロック: エンクレープ後のブロックニ ア 63 70 6 113 40 96 62 19 61(e)最初の可変 換字。
ラウンド8用のマスク4の値(マスク4.8)=101第1の換字表=ブロック XORマスク4,8の値862XOR101= 11 従って、最初の換字用として換字表11を使用する。
換字荊のブロックニ ア 63 70 6 113 40 96 62 19 61換字後のブロック : 87 48 91 121 80 94 52 62 +10 70(f)第2 の可変換字。
第2の換字表=ブロックXORマスク4,8の値9・ 110XOR101=  1.1 従って、第2の換字用として換字表11を使用する。
換字前のブロック: 換字後のブロック: ラウンド9 ブロック= 25 124 95 23 67 88 102 79 110( a)可変転置。
ブロックのすへての値を加える(mod 128 ) :25+124+95+ 23+67+88+102+79+110+91 = 804 mod 128  =ラウンド9用のマスク1の値(マスク1.9)=11転置表=ブロックXO Rマスク1.9の合計: 36 XOR11=47 従って、転置用として転置表47を使用する。
転置前のブロック: 転菫後のブロック: 9I 95 124 79 88 23 25 102 110 67(b)最 初のキー付加。
ラウンド9用のマスク2の値(マスク2.9)=9第1のキー=ブロックXOR マスク2,9の値9:110XOR9= 103 従って、最初のキー付加用としてキー103を使用する。
キー付加前のブロック: キー付加後のブロック: (c)第2のキー付加。
第2のキー=ブロックXORマスク2,9の値10:44XOR9= 37 従って、第2のキー付加用としてキー37を使用する。
キー付加前のブロック: キー付加後のブロックニ ア1 120 20 6 114 89 109 32 69 44(d)可変 エンクレープ。
エンクレープ表=マスク3.9の値(mod 32) = 24 mod32  = 24 従って、エンクレープ用としてエンクレープ表24を使用する。
エンクレープ前のブロックニ ア1 120 20 114 89 109 32 69 44エンクレープ後 のブロック: (e)最初の可変換字。
ラウンド9用のマスク4のイ直(マスク4.9)=32第1の換字表=ブロック XORマスク4,9の値9:106XOR32= 10 従って、最初の換字用として換字表10を使用する。
換字前のブロック: 換字後のブロック゛ (f)第2の可変換字。
第2の換字表=ブロックXORマスク4,9の値10: 67 XQR32=  3 従って、第2の換字用として換字表3を使用する。
換字前のブロック: 換字後のブロック: ラウンドIO ブロック= 24 49 88 105 94 71 24 124 125( a)可変転置。
ブロックのすべての値を加える(mod 128 ) :24+49+88+1 05+94+71+24+124+125+67 = 771 mod 128  =ラウンド10用のマスク1の値(マスク1.10 )=3転置表=ブロック XORマスク1.10 の合計:3XOR60=63 従って、転置用として転置表63を使用する。
転置前のブロック: 転置後のブロック: (b)最初のキー付加。
ラウンド10用のマスク2の値(マスク2.to)=99第1のキー=ブロック XORマスク2.10 の値lO: 71 XOR99= 36 従って、最初のキー付加用としてキー36を使用する。
キー付加前のブロック。
キー付加後のブロック: 110 9 114 70 70 96 9+ 117 12 71(c)第2 のキー付加。
第2のキー=ブロックXORマスク2,10 の値10・ 71 XOR99=  36 従って、第2のキー付加用としてキー36を使用する。
キー付加前のブロック: 110 9 114 70 70 96.91 117 12 71キー付加後 のブロック: (d)可変エンクレープ。
エンクレープ表=マスク3.IOの値(mod 32) = 60 mod32 ・28 従って、エンクレープ用としてエンクレープ表28を使用する。
エンクレープ前のブロック: エンクレープ後のブロック: (e)最初の可変換字。
ラウンド10用のマスク4の値(マスク4.10 ) = 1.2第1の換字表 =ブロックXORマスク4,10 の値10−122 XOR125= 7 従って、最初の換字用として換字表7を使用する。
換字前のブロック: 換字後のブロック: (f)第2の可変換字。
第2の換字表=ブロックXORマスク4,10 の値10゜122 XOR12 5= 7 従って、第2の換字用として換字表7を使用する。
換字前のブロック: 換字後のブロック: 伝送されるブロック: 本発明による10ラウンドの暗号化の結果、平文ブロックは以下のように暗号文 ブロックに変換された。
平文。
以上、この発明の現在のところ好適な実施例を記載したが、付加された請求項の 範囲内で別の実施か可能であることを理解されたい。
表1−転iiI授 転11106= 2 5 3810 9 6 4 1 7転@107= 2 9  6 1 7 8 5 4 1 100 90 47 19 90 25 12 ] 55 ]−1991411,074498117121111247043 361工1 10fll 67 8712 94 66 コ5 11コ 10  5B 8コ 2513 126 110 84 126 12o 48 69  7414 25 37 94 12コ 106 60 9 7151257コ  107 35 114 89 9コ 12616 8 127 58 67 2 7 21 1コ 2926 8コ 111 100 7 112 31 77  827 68 B6 116 98 117 41 50 429 12コ 5 コ 28 43 50 10 104 9249 106 コロ 67 111  97 115 61 2053 48 99 72 11 99 B2 25  4359 10 71 69 74 74 8B 4 8966 110 4 4 LO:l 77 62 7 16 1.668 89 56 109 コ2  29 18 コ2 3271 1コ コ2 コア IQコ 17 84 24  5674 93 76 9 In 54 114 124 9177 52  1 8 92 60 54 121 1コア8 95 104 48 56 4 6 17 6 179 20 121 41 121 7コ 93 log 1 0コ81 64 72 2コ 8 86 95 60 4082 29 24  l 2コ 53 44 27 218コ 23 41 27 51 127 7 8 71 B2S3 47 8 74 64 100 119 コ8 117表 ll8−換字表−バート日 先学 表8表9表10表11 表12 表13表14表1562 89 120  1、 79 1 9 127 11465 109 9] 107 9 52  76 B2 12266 62 44 8 15 61 102 7 :19 67 74 34 1ユ2 111 96 19 10 1026B 22 4 0 14 122 +36 120 78 uB69 0 45102 90  8コ 47 41 531 29 10 42 58 3コ 82 87 31 72 114 112 5 86 フ7 91 112 12573コ1:L7 5375114691067574 91 22 B8 93 38 17 8 6 6280 1 コロ 71 67 E14 2B 119 8781 67  7コ 124 119 7:l 107 6 1082 4コ 47 27  42 125 11a 105 76g8 18 3 75 30 14 94  79 7289 96 79 78 109 68 126 12コ 789 0 75 75 26 103 29 109 10コ 291 6 101、  111 95 65 53 53 1292 11 74 67 126 3 1 ED 12 4793 no 108 126 16 110 50 12 4 1795 9 42 117 11コ 39 12 9 9B96 16  B2 34 52 101 17 110 43127 58 69 63 1 01 64 93 4タ 792542411531コ5 312 423 214 41コ 表5=14コ2412345コ1 512 453 3’J−2352 23412515:l 143 コ255コ4541425 451コ12425214 表6: 154 152 352 514コ12213421342 54コ4コ51コ4431 425コ41245125 2コ152451125コ !!7: 251 215 542 コ 5451215221コ432 34554コ325521 42コ4コ1431215 1コ4 324 154 143 表8: 254 124 425 23112:35312コ4524 コ41245153152 4コ5コ52512345 表 9 : 1 コ 2 412 451 43251]1コ512〕コ15 254 321 5]2 541 425 54 〕 l14 253 表10: 14] 543 523251’315 154 :l12 514 524 312 254 12 ] 4コ24214コ1435 表11: 512 142 245 314453231コ5424コ 2]13254コ1152 ;屹ε13:2コ14253245241.42 531. 245 315 コ1531251224] 45コ14]15]1:12 214 425 152 34L 14314:lコ24213 451 351 51コ 534 ] 54 243 423 124 231412251コ42 41コ1253’J−4451 12コ4525コ2452 ’315124コ242:14 5コ451コ451145 512513コ54142 15コ14241コ423 51コ245345325 コ5252112コ254 3411コ541551コ 124524コ241コ4 表21:24552345〕1コ2 コ51コ42542214 5124512コ1コ25 1341コ5125451 423 214 3’r4 54] 15コ2コ5512コ42 42514242コ125 2コl:11434541:1 521 1コ4 142 354 コ1425335452:1 32414コ25コ154 45:L 514 514 243 1コ24254コ1532 135 21コ 145 253 523352512コ12 2411454コ1524 234 1:15 215 :112 51コ42145コ451 コ513521422コ4 表29:4534コ22コ1]42 11254コ524435 〕 25 124 14] 521 241コ1511515:1 51コ コ54 432 14コ 125 52]−5242:14 4コ2135315521 315 15コ 142 421 452 342 5]1 2]5 表IV−キー表 キー 0= 0 コ4 55 63 9 7コ 74 107 109 ココキ ー 1= 10 62 48 85 32101 8 0 63 56キー 2 =26 59 75 97 ココ80 8 6 7’3 26キー 5−105  67 89 14 80 51 28 122 26 115キー 6− 1 11 105 44 0 42 6コ 14 工21 49 2Bキー 7−  91 70 52 58 88 工5 107 22 51 48キー 8=  95 91 21 22 109 80 79 64 60 2キー 9=68 Sコ 115 99 54 56 94 56 27 27キー 10= 6  86 116 122 38 79 8コ 116 48 60キ〜ll= 7 0 :11 48 44 1.!1 44 0 55 34 57キー12=  95 7350 69 67 22 21 79 24 9キー 1コ = 6 7 102 117 6 28 24 2 0 93 107キー 25= 4 8 74 74 90 90 64 30 120 0 120キー26=10 5 115 120 11 55 29 70 24 61 107図1 図2 平文値 換字値 平文値 5n(BLOCに)S゛、<BLOCK)図5 86 87 88 89 B10 補正書の写しく翻訳文)提出書 (特許法第184条の8) 平成4年2月17日

Claims (1)

  1. 【特許請求の範囲】 1.電子デジタルデータを1つの形から他の形に暗号変換する、以下の工程から なる方法、 a.所定の暗号機能と関連した少なくとも1個の変換表をメモリに設定し、前記 表は前記機能に従ってデータの所定の変換を夫々指示する複数のアドレス可能な 項目を含む; b.変換される前記データにある特定情報に基づいて前記変換表の前記項目の1 つを選択する;そしてc.前記変換表の前記選択された項目の指示に従った前記 機能によって前記データを暗号変換する。 2.電子デジタルデータを1つの形から他の形に暗号変換する際に使用するキー 表を生成する、以下の工程からなる方法、 a.当初キーを設定する; b.所定の暗号機能と関連した少なくとも1個の変換表をメモリに設定し、前記 表は前記機能に従ってデータの所定の変換を夫々指示する複数のアドレス可能な 項目を含む; c.前記当初キーにある特定情報に基づいて前記変換表の前記項目を少なくとも 1つ選択する;d.前記変換表の前記選択された項目の指示に従った前記機能に よって前記当初キーを変換する;e.前記変換された当初キーを項目としてキー 表メモリに格納する; f.当初キーまたはキー表メモリに格納されたキーにある特定情報に基づいて前 記変換表の前記項目を少なくとも1つ選択する; g.前記変換表の前記選択された項目の指示に従った前記機能によって上記工程 (f)で使用されたキーを変換する; h.前記変換されたキーを別の項目としてキー表メモリに格納する;そして i.前記キー表メモリが所望の複数のキーを格納するまで上記工程(f)〜(h )を繰り返し実行する。 3.前記当初キーが項目としてキー表メモリに格納されない請求項2の方法。 4.上記工程(f)で選択される前記変換表の項目が、キー表メモリに格納され た最新のキーの特定情報に基づく請求項2の方法。 5.電子デジタルデータを1つの形から他の形に暗号変換する際に使用するキー 表を生成する、以下の工程からなる方法、 a.複数のバイトを持った当初キーを設定する;b.夫々が所定の暗号機能と関 連した複数の変換表をメモリに設定し、前記表は前記機能に従ってデータの所定 の変換を指示する複数のアドレス可能な項目をそれぞれ含む; c.前記当初キーにある特定情報に基づいて前記変換表夫々の前記項目を少なく とも1つ順次選択する;b.前記変換表の前記選択された項目の指示に従った前 記機能によって前記当初キーを変換する;e.前記変換された当初キーを項目と してキー表メモリに格納する: f.キー表メモリに格納された少なくとも1つのキーにある特定情報に基づいて 前記変換表夫々の前記項目を少なくとも1つ順次選択する; g.前記変換表の前記選択された項目の指示に従った前記機能によって上記工程 (f)で使用されたキーを変換する; h.前記変換されたキーを別の項目としてキー表メモリに格納する;そして i.前記キー表メモリが所望の複数のキーを格納するまで上記工程(f)〜(h )を繰り返し実行する。 6.前記当初キーが項目としてキー表メモリに格納されない請求項5の方法。 7.上記工程(f)で選択される前記変換表の項目が、キー表メモリに格納され た最新のキーの特定情報に基づく請求項5の方法。 8.前記変換表が、変換される前記キーに対する特定の換字を指示するための複 数の項目を持った換字表を含む請求項5の方法。 9.前記変換表が、変換される前記キーに対する特定の転置を指示するための複 数の項目を持った転置表を含む請求項5の方法。 10.前記変換表が、変換される前記キーに対する特定の変換を指示するための 複数の項目を持ち、前記キーの各バイトがそれ自体とキー中の他の各バイトの関 数になるエンクレープ表を含む請求項5の方法。 11.前記変換表が、変換される前記キーに対する特定の換字を指示するための 複数の項目を持った換字表と、変換される前記キーに対する特定の転置を指示す るための複数の項目を持った転置表を含む請求項5の方法。 12.前記変換表が、変換される前記キーに対する特定の換字を指示するための 複数の項目を持った換字表と、変換される前記キーに対する特定の転置を指示す るための複数の項目を持った転置表と、変換される前記キーに対する特定の変換 を指示するための複数の項目を持ち、前記キーの各バイトがそれ自体とキー中の 他の各バイトの関数になるエンクレープ表とを含む請求項5の方法。 13.選択される換字表の項目と、転置表の項目と、エンクレープ表の項目とが 、変換されるキーのバイトの一部の値の算術的組合せによって定まる請求項12 の方法。 14.変換される前記キーが、換字表の選択された項目に従って先ず換字され、 そして転置表の選択された項目に従って転置され、そしてエンクレープ表の選択 された項目に従って変換される請求項12の方法。 15.選択される換字および転置表の項目が、変換されるキーのバイトの一部の 値の算術的組合せによって定まり、選択されるエンクレープ表の項目が、換字お よび転置後のキーのバイトの一部の値の算術的組合せによって定まる請求項14 の方法。 16.選択される換字表の項目が、変換されるキーのバイトの半分の値の算術的 組合せによって定まり、選択される転置表の項目が、変換されるキーのバイトの 別の半分の値の算術的組合せによって定まる請求項15の方法。 17.電子データを1つの形から他の形に暗号変換する、以下の工程からなる方 法、 a.複数のマルチバイトキー項目を持ったキー表をメモリに設定する; b.変換用としてデータのマルチバイトブロックを選択する; c.データブロックの少なくとも1個のバイトの情報にもとづいてキー表から項 目を選択する;d.選択されたキーの各バイトをデータブロックの対応バイトと 算術的に組み合わせる、但し、キー表から項目を選択するのに使用されるデータ ブロックのバイトは変更されない;そして e.上記工程(c)および(d)を複数ラウンド、キー表から項目を選択するた めにラウンド毎にデータブロック中の異なるバイトを用いて繰り返す。 18.電子データを1つの形から他の形に暗号変換する、以下の工程からなる方 法、 a.複数のマルチバイトキー項目を持ったキー表をメモリに設定する; b.変換用としてデータのマルチバイトブロックを選択する; c.データブロックの少なくとも1個のバイトの情報にもとづいてキー表から項 目を選択する;d.選択されたキーの各バイトをデータブロックの対応バイトと 算術的に組み合わせる、但し、キー表から項目を選択するのに使用されるデータ ブロックのバイトは変更されない;そして e.上記工程(c)および(d)を複数ラウンド繰り返す。 19.電子データを1つの形から他の形に暗号変換する、以下の工程からなる方 法、 a.複数のマルチバイトキー項目を持ったキー表をメモリに設定する: b.変換用としてデータのマルチバイトブロックを選択する; c.キーにもとづく決定因の少なくとも1個のバイトの情報にもとづいてキー表 から項目を選択する;d.選択されたキーの各バイトをデータブロックの対応バ イトと算術的に組み合わせる;そしてe.上記工程(c)および(d)を複数ラ ウンド繰り返す。 20.選択されたキーのビットが、排他的OR演算によって、変換されるデータ ブロックの対応ビットと算術的に組み合わされる請求項17、18または19の 方法。 21.選択されたキーのバイトの値が、変換されるデータブロックの対応バイト の値に加えられる請求項17、18または19の方法。 22.夫々がキー表の2個以上の値の算術的組合せの結果である複数の項目を持 った決定因表をキー表から生成し、キー表から項目を選択するために前記決定国 表の項目を、変換されるデータブロックの1つの値と組み合わせる工程を更に含 む請求項17、18または19の方法。 23.前記決定因表の異なる項目が各ラウンドで使用される請求項22の方法。 24.決定因表の項目とデータブロックの前記1つのバイトが排他的OR演算に よって組み合わされる請求項22の方法。 25.決定因表の項目の値がデータブロックの前記1つのバイトの値に加えられ る請求項22の方法。 26.前記キー表が以下の工程によって設定される請求項17、18または19 の方法、 f.当初キーを設定する; g.所定の暗号機能と関連した少なくとも1個の変換表をメモリに設定し、前記 表は前記機能に従ってデータの所定の変換をそれぞれ指示する複数のアドレス可 能な項目を含む; h.前記当初キーにある特定情報にもとづいて前記変換表の前記項目を少なくと も1つ選択する;i.前記変換表の前記選択された項目の指示に従った前記機能 によって前記当初キーを変換する;j.前記変換された当初キーを項目としてキ ー表メモリに格納する; k.当初キーまたはキー表メモリに格納されたキーにある特定情報に基づいて前 記変換表の前記項目を少なくとも1つ選択する; 1.前記変換表の前記選択された項目の指示に従った前記機能によって上記工程 (k)で使用されたキーを変換する; m.前記変換されたキーを別の項目としてキー表メモリに格納する;そして n.前記キー表メモリが所望の複数のキーを格納するまで上記工程(k)〜(m )を繰り返し実行する。 27.前記当初キーが項目としてキー表メモリに格納されない請求項26の方法 。 28.上記工程(k)で選択される前記変換表の項目が、キー表メモリに格納さ れた最新のキーの特定情報にもとづく請求項26の方法。 29.前記キー表が以下の工程によって設定される請求項17、18または19 の方法、 f.複数のバイトを持った当初キーを設定する;g.夫々が所定の暗号機能と関 連した複数の変換表をメモリに設定し、前記表は前記機能に従ってデータの所定 の変換を指示する複数のアドレス可能な項目を夫々含む; h.前記当初キーにある特定情報に基づいて前記変換表夫々の前記項目を少なく とも1つ順次選択する;i.前記変換表の前記選択された項目の指示に従った前 記機能によって前記当初キーを変換する;j.前記変換された当初キーを項目と してキー表メモリに格納する; k.キー表メモリに格納された少なくとも1つのキーにある特定情報にもとづい て前記変換表それぞれの前記項目を少なくとも1つ順次選択する; 1.前記変換表の前記選択された項目の指示に従った前記機能によって上記工程 (k)で使用されたキーを変換する; m.前記変換されたキーを別の項目としてキー表メモリに格納する;そして n.前記キー表メモリが所望の複数のキーを格納するまで上記工程(k)〜(m )を繰り返し実行する。 30.前記当初キーが項目としてキー表メモリに格納されない請求項29の方法 。 31.上記工程(f)で選択される前記変換表の項目が、キー表メモリに格納さ れた最新のキーの特定情報にもとづく請求項29の方法。 32.前記変換表が、変換される前記キーに対する特定の換字を指示するための 複数の項目を持った換字表と、変換される前記キーに対する特定の転置を指示す るための複数の項目を持った転置表を含む請求項29の方法。 33.前記変換表が、変換される前記キーに対する特定の換字を指示するための 複数の項目を持った換字表と、変換される前記キーに対する特定の転置を指示す るための複数の項目を持った転置表と、変換される前記キーに対する特定の変換 を指示するための複数の項目を持ち、前記キーの各バイトがそれ自体とキー中の 他の各バイトの関数になるエンクレープ表とを含む請求項29の方法。 34.電子データを1つの形から他の形に暗号変換する、以下の工程からなる方 法、 a.所定の暗号機能と関連した少なくとも1個の変換表をメモリに設定する、前 記表は前記機能に従ってデータの所定の変換をそれぞれ指示する複数のアドレス 可能な項目を含む; b.変換される前記データにある特定情報にもとづいて前記変換表の項目を少な くとも1つ選択する;c.工程(b)で選択された変換表の項目の指示に従った 前記機能によってデータを暗号変換する;d.上記工程(c)で変換されたデー タをキーと算術的に組み合わせる; e.上記工程(d)で変換されたデータにある特定情報に基づいて前記変換表か ら他の項目を少なくとも1つ選択する;そして f.工程(e)で選択された変換表の項目の指示に従った前記機能により、上記 工程(d)で変換されたデータを暗号変換する。 35.工程(b)〜(f)が所定ラウンド数繰り返し実行される請求項34の方 法。 36.電子データを1つの形から他の形に暗号変換する、以下の工程からなる方 法、 a.第1暗号機能と関連した第1変換表と、第2暗号機能と関連した第2変換表 をメモリに設定し、前記表は前記機能に従ってデータの所定の変換を夫々指示す る複数のアドレス可能な項目を含む; b.変換される前記データにある特定情報に基づいて前記第1変換表の項目を少 なくとも1つ選択する;c.工程(b)で選択された第1変換表の項目の指示に 従った前記第1機能によってデータを暗号変換する;d.上記工程(c)で変換 されたデータをキーと算術的に組み合わせる; e.上記工程(d)で変換されたデータにある特定情報に基づいて第2変換表か ら項目を少なくとも1つ選択する;そして f.工程(e)で選択された第2変換表の項目の指示に従った第2機能により、 上記工程(d)で変換されたデータを暗号変換する。 37.工程(b)〜(f)が所定ラウンド数操り返し実行される請求項36の方 法。 38.電子データを1つの形から他の形に暗号変換する、以下の工程からなる方 法、 a.変換される前記データの特定の転置を指示するための複数のアドレス可能な 項目を持った転置表をメモリに設定する; b.変換される前記データの特定の換字を指示するための複数のアドレス可能な 項目を持った換字表をメモリに設定する; c.変換される前記データにある特定情報にもとづいて前記転置および換字表の 一方の項目を少なくとも1つ選択する; d.上記工程(c)で選択された表項目とそれと関連した機能に従って前記デー タを暗号変換する;e.上記工程(d)で変換されたデータをキーと算術的に組 み合わせる; f.前記転置および換字表の他方の項目を少なくとも1つ選択する:そして g.工程(f)で選択された表項目とそれと関連した機能に従って、上記工程( e)で変換されたデータを暗号変換する。 39.工程(b)〜(g)が所定ラウンド数繰り返し実行される請求項38の方 法。 40.選択される転置表項目が、変換されるデータのバイトの値の算術的組合せ によって定まる請求項38または39の方法。 41.選択される換字表項目が、変換されるデータの1つのバイトの値によって 定まり、換字機能が、換字表からの項目選択に使用されて無変更のままとされる バイトを除くデータ中の全てのバイトに実行される請求項38の方法。 42.選択される換字表項目が、変換されるデータの1つのバイトの値によって 定まり、換字機能が、換字表からの項目選択に使用されて無変更のままとされる バイトを除くデータ中の全てのバイトに実行され、変換されるデータ中の異なる バイトが各ラウンドで換字表項目の選択に使用される請求項39の方法。 43.変換されるデータをキーと組み合わせる工程が以下の工程を含む請求項3 9の方法、 h.複数のマルチバイトキー項目を持ったキー表をメモリに設定する; i.変換されるデータの少なくとも1個のバイトの情報に基づいてキー表から項 目を選択する;そしてj.選択されたキーの各バイトを変換されるデータの対応 バイトと算術的に組み合わせる、但し、キー表からキーを選択するのに使用され るデータバイトは変更されず、変換されるデータ中の異なるバイトが各ラウンド で換字表からの項目の選択に使用される。 44.変換されるデータをキーと組み合わせる工程が以下の工程を含む請求項3 9の方法、 h.複数のマルチバイトキー項目を持ったキー表をメモリに設定する; i.変換されるデータの少なくとも1個のバイトの情報に基づいてキー表から項 目を選択する;そしてj .選択されたキーの各バイトを変換されるデータの対 応バイトと算術的に組み合わせる、但し、キー表からキーを選択するのに使用さ れるデータバイトは変更されない。 45.変換されるデータをキーと組み合わせる工程が以下の工程を含む請求項3 9の方法、 h.複数のマルチバイトキー項目を持ったキー表をメモリに設定する; i.変換されるデータの少なくとも1個のバイトの情報に基づいてキー表から項 目を選択する;そしてj,選択されたキーの各バイトを変換されるデータの対応 バイトと算術的に組み合わせる。 46.選択されたキーのビットが、排他的OR演算によって、変換されるデータ の対応ビットと算術的に組み合わされる請求項43、44または45の方法。 47.夫々がキー表の2個以上の値の算術的組合せの結果である複数の項目を持 った決定因表をキー表から生成し、キー表から項目を選択するために前記決定因 表の項目を、変換されるデータ1つの値と組み合わせる工程を更に含む請求項4 3、44または45の方法。 48.前記決定因表の異なる項目が各ラウンドで使用される請求項47の方法。 49.決定因表の項目と変換されるデータの前記1つのバイトが排他的OR演算 によって組み合わされる請求項47の方法。 50. 前記キー表が以下の工程で設定される請求項43、44または45の方 法、 k.複数のバイトを持った当初キーを設定する;l.前記当初キーにある特定情 報にもとづいて前記転置および換字表夫々の前記項目を少なくとも1つ順次選択 する; m.前記表の前記選択された項目の指示に従った前記換字および転置機能によっ て前記当初キーを変換する;n.前記変換された当初キーを項目としてキー表メ モリに格納する; o.キー表メモリに格納された少なくとも1つのキーにある特定情報に基づいて 前記換字および転置表夫々の前記項目を少なくとも1つ順次選択する;p.前記 表の前記選択された項目の指示に従った前記換字および転置機能によって上記工 程(o)で使用されたキーを変換する; q.前記変換されたキーを別の項目としてキー表メモリに格納する:そして r.前記キー表メモリが所望の複数のキーを格納するまで上記工程(o)〜(q )を穫り返し実行する。 51.前記当初キーが項目としてキー表メモリに格納されない請求項50の方法 。 52.上記工程(o)で選択される前記換字および転置表の項目が、キー表メモ リに格納された最新のキーの特定情報にもとづく請求項50の方法。 53.エンクレープ変換を指示するための複数の項目を持ち、変換されるデータ の各バイトがそれ自体とデータ中の他の各バイトの関数になるエンクレープ表を 設定し、前記エンクレープ表の前記項目を少なくとも1つ選択し、選択されたエ ンクレープ表の項目の指示に従ってデータを変換する工程を更に含む請求項38 または41の方法。 54.キーの2個以上の値の算術的組合せの結果である複数の項目を持った決定 因表をキー表から生成し、データのエンクレープ機能変換に使用される項目を選 択するために前記決定因表の項目を使用する工程を更に含む請求項53の方法。 55.エンクレープ変換を指示するための複数の項目を持ち、変換されるデータ の各バイトがそれ自体とデータ中の他の各バイトの関数になるエンクレープ表を 設定し、前記エンクレープ表の前記項目を少なくとも1つ選択し、選択されたエ ンクレープ表の項目の指示に従ってデータを変換する工程を更に含む請求項43 ,44または45の方法。 56.キー表の2個以上の値の算術的組合せの結果である複数の項目を持った決 定因表をキー表から生成し、データのエンクレープ機能変換に使用される項目を 選択するために前記決定因表の項目を使用する工程を更に含む請求項55の方法 。 57.前記決定因表の異なる項目が各ラウンドで使用される請求項56の方法。 58.換字機能に付された後の被変換データの特定情報にもとづいて換字表の第 2の項目を選択し、選択された第2項目に従った第2換字機能によって前記デー タを暗号変換する工程を更に含む請求項42の方法。 59.第2の換字用として選択される換字表項目が、最初の換字機能用に換字表 項目を決定するために請求項41で用いられたバイトを除く被変換データのバイ トの1つの値によって定まる請求項58の方法。 60.請求項43、44または45で用いられたバイトを除く被変換データのバ イトの1つの値に基づいてキー表メモリから第2のキーを選択し、選択された第 2のキーの各バイトを被データの対応バイトと算術的に組み合わせる、但し、第 2のキーを選択するのに使用されるバイトは変更されず、被データ中の異なるバ イトが各ラウンドで第2のキーの選択に使用される工程を更に含む請求項43、 44または45の方法。 61.電子デジタルデータを1つの形から他の形に暗号変換する、以下の工程か らなる方法、 a.変換されるデータの一部に対してオートクレーブ機能を指示するための複数 の項目を持ったエンクレープ表をメモリに設定する; b.偶数のバイトを持ったデータのブロックを選択する; c.前記データブロックを、データブロックのバイトを半分を含む第1半ブロッ クと、データブロックの残りのバイトを含む第2半ブロックに分割する;d.前 記エンクレープ表の第1項目に指示される前記オートクレーブ機能によって第1 半ブロックを変換する;e.前記エンクレープ表の第2項目に指示される前記オ ートクレーブ機能によって、上記工程(d)を経た第1半ブロックを変換する; f.第2半ブロックを、上記工程(e)を経た第1半ブロックと排他的OR演算 で組み合わせて別の第2半ブロックを生成する; g.上記工程(f)で生成された第2半ブロックを、前記エンクレープ表の第3 項目に指示される前記オートクレーブによって変換する; h.上記工程(g)で生成された第2半ブロックを、前記エンクレープ表の第4 項目に指示される前記オートクレーブによって変換する; i.上記工程(h)で生成された第2半ブロックを、上記工程(e)で生成され た第1半ブロックと、排他的OR演算で組み合わせて別の第1半ブロックを生成 する;そして j.上記工程(i)で生成された第1半ブロックを、上記工程(h)で生成され た第2半ブロックと結合させて変換済みデータブロックを形成する。 62.使用されるオートクレーブ機能が、変換される半ブロックのバイトを、半 ブロック中の他の少なくとも2つのバイトに加えることによって改変し、その後 、半ブロックの他の各バイトに対してこの加算プロセスを繰り返し、繰返し毎に 異なるバイトを変換されるバイトに加えるために使用する工程を含む請求項61 の方法。
JP51035390A 1989-08-17 1990-03-14 暗号化システム Expired - Lifetime JP3188940B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US395,448 1989-08-17
US07/395,448 US5003596A (en) 1989-08-17 1989-08-17 Method of cryptographically transforming electronic digital data from one form to another

Publications (2)

Publication Number Publication Date
JPH05501925A true JPH05501925A (ja) 1993-04-08
JP3188940B2 JP3188940B2 (ja) 2001-07-16

Family

ID=23563086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51035390A Expired - Lifetime JP3188940B2 (ja) 1989-08-17 1990-03-14 暗号化システム

Country Status (8)

Country Link
US (1) US5003596A (ja)
EP (1) EP0489742B1 (ja)
JP (1) JP3188940B2 (ja)
AT (1) ATE160476T1 (ja)
AU (1) AU635466B2 (ja)
CA (1) CA2064769C (ja)
DE (1) DE69031736T2 (ja)
WO (1) WO1991003113A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004004603A (ja) * 2002-04-03 2004-01-08 Matsushita Electric Ind Co Ltd 拡大鍵生成装置、暗号化装置および暗号化システム
JP2007502568A (ja) * 2003-08-13 2007-02-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ デジタル伝送システムに対する暗号化方法及び復号方法
US8837719B2 (en) 2007-06-05 2014-09-16 Oridao Cryptographic methods and devices for pseudo-random generation, encrypting data, and cryptographically hashing a message

Families Citing this family (94)

* 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
US5130519A (en) * 1990-01-16 1992-07-14 George Bush Portable pin card
JP2862030B2 (ja) * 1991-06-13 1999-02-24 三菱電機株式会社 暗号化方式
US5293576A (en) * 1991-11-21 1994-03-08 Motorola, Inc. Command authentication process
US5381480A (en) * 1993-09-20 1995-01-10 International Business Machines Corporation System for translating encrypted data
US5586185A (en) * 1994-03-15 1996-12-17 Mita Industrial Co., Ltd. Communications system capable of communicating encrypted information
DE19581586T1 (de) * 1994-03-23 1997-05-28 Chantilley Corp Ltd Vorrichtung zur Erzeugung von Verschlüsselungs/Entschlüsselungs-Nachschlagetabellen unter Verwendung eines Sessionsschlüssels
GB9407038D0 (en) * 1994-04-08 1994-06-01 Amstrad Plc Method and apparatus for transmitting and receiving encrypted signals
US5623549A (en) * 1995-01-30 1997-04-22 Ritter; Terry F. Cipher mechanisms with fencing and balanced block mixing
US5835592A (en) * 1995-06-01 1998-11-10 Chang; Chung Nan Secure, swift cryptographic key exchange
US5583939A (en) * 1995-06-01 1996-12-10 Chung N. Chang Secure, swift cryptographic key exchange
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
US5724427A (en) * 1995-08-17 1998-03-03 Lucent Technologies Inc. Method and apparatus for autokey rotor encryption
US5799090A (en) * 1995-09-25 1998-08-25 Angert; Joseph C. pad encryption method and software
US6075858A (en) * 1995-10-27 2000-06-13 Scm Microsystems (U.S.) Inc. Encryption key system and method
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
JP3992742B2 (ja) * 1996-05-20 2007-10-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データブロックおよび鍵を非線形的に結合する暗号方法および装置
US5966444A (en) * 1996-12-06 1999-10-12 Yuan; Chuan K. Method and system for establishing a cryptographic key agreement using linear protocols
US5987130A (en) * 1997-03-31 1999-11-16 Chang; Chung Nan Simiplified secure swift cryptographic key exchange
RU2103829C1 (ru) 1997-04-02 1998-01-27 Государственное унитарное предприятие "Специализированный центр программных систем "Спектр" Способ шифрования информации, представленной двоичным кодом
CA2302784A1 (en) 1997-09-17 1999-03-25 Frank C. Luyster Improved block cipher method
JP3092567B2 (ja) * 1997-10-31 2000-09-25 日本電気株式会社 暗号鍵の生成方法および装置
WO1999028887A2 (de) * 1997-12-01 1999-06-10 Siemens Aktiengesellschaft Verfahren zur reduzierung von speicherplatzbedarf für einen elektronischen ersten schlüssel und anordnung zur ver- und entschlüsselung
US6035042A (en) * 1997-12-10 2000-03-07 Allegheny Teledyne Inc. High speed and method of providing high speed table generation for block encryption
US6259789B1 (en) * 1997-12-12 2001-07-10 Safecourier Software, Inc. Computer implemented secret object key block cipher encryption and digital signature device and method
US6061821A (en) * 1998-01-09 2000-05-09 The United States Of America As Represented By The Secretary Of The Navy Context based error detection and correction for binary encoded text messages
WO1999060534A1 (de) * 1998-05-18 1999-11-25 Giesecke & Devrient Gmbh Zugriffsgeschützter datenträger
US6644696B2 (en) 1998-10-23 2003-11-11 Coinstar, Inc. Coin-discriminator voucher anti-counterfeiting method and apparatus
EP1142191B1 (en) * 1998-12-30 2006-08-09 Nokia Corporation Method and device for cryptographically processing data
US7203834B1 (en) * 1999-12-02 2007-04-10 International Business Machines Corporation Method of updating encryption keys in a data communication system
US6891951B2 (en) * 2000-01-21 2005-05-10 Victor Company Of Japan, Ltd. Cryptosystem-related method and apparatus
WO2001082524A1 (en) * 2000-04-20 2001-11-01 Matchett Noel D Cryptographic system for data encryption standard
US7006629B2 (en) * 2000-12-19 2006-02-28 International Business Machines Corporation Method and system for processing a data set
FR2819068B1 (fr) * 2000-12-28 2005-08-26 Patricia Etienne Dispositif et procede de protection de documents ou de verification de l'authenticite d'un document, par utilisation d'une information chiffree elaboree par le procede, et documents proteges par ladite information
US6691132B2 (en) * 2001-05-16 2004-02-10 Reengineering Llc Semantic encoding and compression of database tables
US8077861B2 (en) * 2004-08-12 2011-12-13 Cmla, Llc Permutation data transform to enhance security
US7577250B2 (en) 2004-08-12 2009-08-18 Cmla, Llc Key derivation functions to enhance security
US7564970B2 (en) * 2004-08-12 2009-07-21 Cmla, Llc Exponential data transform to enhance security
DE60301750T2 (de) * 2002-04-03 2006-07-06 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem
WO2003094483A2 (en) * 2002-04-30 2003-11-13 Carl Alko Meijer Method for protecting secret key cryptographic schemes
US20050226408A1 (en) * 2002-07-27 2005-10-13 Hotz Jimmy C Apparatus and method for encryption and decryption
WO2004023715A1 (en) * 2002-09-03 2004-03-18 The Regents Of The University Of California Block cipher mode of operation for constructing a wide-blocksize block cipher from a conventional block cipher
US8171567B1 (en) 2002-09-04 2012-05-01 Tracer Detection Technology Corp. Authentication method and system
US20040088539A1 (en) * 2002-11-01 2004-05-06 Infante Steven D. System and method for securing digital messages
DE10345378B4 (de) * 2003-09-30 2010-08-12 Infineon Technologies Ag Verfahren und Vorrichtung zur Ver-/Entschlüsselung
EP1692800B1 (en) * 2003-11-16 2010-06-30 SanDisk IL Ltd Enhanced natural montgomery exponent masking
JP4696449B2 (ja) * 2004-01-09 2011-06-08 ソニー株式会社 暗号化装置およびその方法
US7539305B2 (en) * 2004-03-05 2009-05-26 International Business Machines Corporation Schryption method and device
JP4607947B2 (ja) * 2004-03-12 2011-01-05 インジェニア・ホールディングス・(ユー・ケイ)・リミテッド 真正性検証の方法、製品および機器
ATE433164T1 (de) 2004-03-12 2009-06-15 Ingenia Technology Ltd Verfahren und vorrichtungen zur erzeugung authentifizierbarer gegenstände und ihrer nachfolgenden überprüfung
JP4646050B2 (ja) * 2004-05-06 2011-03-09 大日本印刷株式会社 Icカードを発行して暗号化/復号化を行う方法
US7353364B1 (en) * 2004-06-30 2008-04-01 Sun Microsystems, Inc. Apparatus and method for sharing a functional unit execution resource among a plurality of functional units
GB2444139B (en) * 2004-08-13 2008-11-12 Ingenia Technology Ltd Authenticity verification methods products and apparatuses
GB2417592B (en) 2004-08-13 2006-07-26 Ingenia Technology Ltd Authenticity verification of articles
EP1908027B1 (en) * 2005-07-27 2010-09-29 Ingenia Holdings Limited Verification of authenticity
US20070043977A1 (en) * 2005-08-22 2007-02-22 Moxa Technologies Co., Ltd. [program encryption method]
GB2448245B (en) 2005-12-23 2009-11-04 Ingenia Holdings Optical authentication
US20080022117A1 (en) * 2006-07-21 2008-01-24 Antonius Kalker Enabling access to more than one encrypted data segment of a segmentable data stream
GB2450131B (en) * 2007-06-13 2009-05-06 Ingenia Holdings Fuzzy Keys
WO2009043139A1 (en) * 2007-10-01 2009-04-09 Research In Motion Limited Substitution table masking for cryptographic processes
US7821453B2 (en) * 2007-12-20 2010-10-26 Sarnoff Corporation Distributed iterative multimodal sensor fusion method for improved collaborative localization and navigation
EP2096884A1 (en) 2008-02-29 2009-09-02 Koninklijke KPN N.V. Telecommunications network and method for time-based network access
GB2466311B (en) * 2008-12-19 2010-11-03 Ingenia Holdings Self-calibration of a matching algorithm for determining authenticity
GB2466465B (en) 2008-12-19 2011-02-16 Ingenia Holdings Authentication
GB2476226B (en) 2009-11-10 2012-03-28 Ingenia Holdings Ltd Optimisation
JP6206866B2 (ja) 2013-02-19 2017-10-04 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 難読化データをサーバに保持させる装置及び方法
US9037870B1 (en) * 2013-08-16 2015-05-19 Intuit Inc. Method and system for providing a rotating key encrypted file system
US9384362B2 (en) 2013-10-14 2016-07-05 Intuit Inc. Method and system for distributing secrets
US9396338B2 (en) 2013-10-15 2016-07-19 Intuit Inc. Method and system for providing a secure secrets proxy
US9894069B2 (en) 2013-11-01 2018-02-13 Intuit Inc. Method and system for automatically managing secret application and maintenance
US9444818B2 (en) 2013-11-01 2016-09-13 Intuit Inc. Method and system for automatically managing secure communications in multiple communications jurisdiction zones
US9467477B2 (en) 2013-11-06 2016-10-11 Intuit Inc. Method and system for automatically managing secrets in multiple data security jurisdiction zones
US9282122B2 (en) 2014-04-30 2016-03-08 Intuit Inc. Method and apparatus for multi-tenancy secrets management
US9270647B2 (en) 2013-12-06 2016-02-23 Shape Security, Inc. Client/server security by an intermediary rendering modified in-memory objects
US8954583B1 (en) 2014-01-20 2015-02-10 Shape Security, Inc. Intercepting and supervising calls to transformed operations and objects
US9858440B1 (en) * 2014-05-23 2018-01-02 Shape Security, Inc. Encoding of sensitive data
US9003511B1 (en) 2014-07-22 2015-04-07 Shape Security, Inc. Polymorphic security policy action
US9438625B1 (en) 2014-09-09 2016-09-06 Shape Security, Inc. Mitigating scripted attacks using dynamic polymorphism
US10437288B2 (en) 2014-10-06 2019-10-08 Fasetto, Inc. Portable storage device with modular power and housing system
US20170085371A1 (en) * 2015-04-07 2017-03-23 Secure Channels Sa System and method for an enhanced xor cipher through extensions
UY36412A (es) 2015-11-27 2017-06-30 Murguía Hughes Julián Técnica de encriptación simétrica polialgorítmica
DE102015015953B3 (de) * 2015-12-08 2017-04-27 Giesecke & Devrient Gmbh Kryptoalgorithmus mit schlüsselabhängigem maskiertem Rechenschritt (SBOX-Aufruf)
EP3208788B1 (en) * 2016-02-22 2020-06-03 Eshard Method of protecting a circuit against a side-channel analysis
CN110461658A (zh) 2017-02-03 2019-11-15 法斯埃托股份有限公司 用于钥匙化设备中的数据存储的系统和方法
US10936711B2 (en) 2017-04-18 2021-03-02 Intuit Inc. Systems and mechanism to control the lifetime of an access token dynamically based on access token use
WO2019074816A1 (en) * 2017-10-09 2019-04-18 Mcnutt Jason METHODS AND SYSTEMS FOR ENCRYPTING DATA USING OBJECT SCREENS
US10635829B1 (en) 2017-11-28 2020-04-28 Intuit Inc. Method and system for granting permissions to parties within an organization
AU2018374384A1 (en) * 2017-12-01 2020-07-23 Fasetto, Inc. Systems and methods for improved data encryption
US11190498B1 (en) 2018-01-11 2021-11-30 Secure Channels, Inc. System and method for use of filters within a cryptographic process
CA3097610A1 (en) 2018-04-17 2019-10-24 Fasetto, Inc. Device presentation with real-time feedback
WO2020186125A1 (en) 2019-03-13 2020-09-17 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
US11804955B1 (en) 2019-09-13 2023-10-31 Chol, Inc. Method and system for modulated waveform encryption
EP3998738A1 (en) * 2021-08-26 2022-05-18 Irdeto B.V. Secured performance of a cryptographic process

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3461451A (en) * 1967-09-22 1969-08-12 Itt Code generator to produce permutations of code mates
US3798359A (en) * 1971-06-30 1974-03-19 Ibm Block cipher cryptographic system
US3798360A (en) * 1971-06-30 1974-03-19 Ibm Step code ciphering system
US3796830A (en) * 1971-11-02 1974-03-12 Ibm Recirculating block cipher cryptographic system
USRE30957E (en) * 1973-10-15 1982-06-01 International Business Machines Corporation Variant key matrix cipher system
US3962539A (en) * 1975-02-24 1976-06-08 International Business Machines Corporation Product block cipher system for data security
US3958081A (en) * 1975-02-24 1976-05-18 International Business Machines Corporation Block cipher system for data security
US4255811A (en) * 1975-03-25 1981-03-10 International Business Machines Corporation Key controlled block cipher cryptographic system
US4078152A (en) * 1976-04-26 1978-03-07 International Business Machines Corporation Block-cipher cryptographic system with chaining
US4074066A (en) * 1976-04-26 1978-02-14 International Business Machines Corporation Message verification and transmission error detection by block chaining
US4107458A (en) * 1976-08-23 1978-08-15 Constant James N Cipher computer and cryptographic system
DE2658065A1 (de) * 1976-12-22 1978-07-06 Ibm Deutschland Maschinelles chiffrieren und dechiffrieren
US4316055A (en) * 1976-12-30 1982-02-16 International Business Machines Corporation Stream/block cipher crytographic system
US4202051A (en) * 1977-10-03 1980-05-06 Wisconsin Alumni Research Foundation Digital data enciphering and deciphering circuit and method
US4172213A (en) * 1977-11-17 1979-10-23 Burroughs Corporation Byte stream selective encryption/decryption device
US4160120A (en) * 1977-11-17 1979-07-03 Burroughs Corporation Link encryption device
SE7714587L (sv) * 1977-12-21 1979-06-22 Brendstrom Hugo System for meddelanden
US4206315A (en) * 1978-01-04 1980-06-03 International Business Machines Corporation Digital signature system and apparatus
US4275265A (en) * 1978-10-02 1981-06-23 Wisconsin Alumni Research Foundation Complete substitution permutation enciphering and deciphering circuit
US4274085A (en) * 1979-06-28 1981-06-16 Motorola, Inc. Flexible mode DES system
US4369332A (en) * 1979-09-26 1983-01-18 Burroughs Corporation Key variable generator for an encryption/decryption device
US4375579A (en) * 1980-01-30 1983-03-01 Wisconsin Alumni Research Foundation Database encryption and decryption circuit and method using subkeys
US4776011A (en) * 1983-10-24 1988-10-04 Sony Corporation Recursive key schedule cryptographic system
US4797921A (en) * 1984-11-13 1989-01-10 Hitachi, Ltd. System for enciphering or deciphering data
FR2582174B1 (fr) * 1985-05-15 1990-03-09 Thomson Csf Dispositif de chiffrement par substitutions-permutations
US4731843A (en) * 1985-12-30 1988-03-15 Paradyne Corporation Method and device of increasing the execution speed of cipher feedback mode of the DES by an arbitrary multiplier
US4809327A (en) * 1986-09-02 1989-02-28 Unisys Corporation Encrtption of messages employing unique control words and randomly chosen encryption keys
US4893339A (en) * 1986-09-03 1990-01-09 Motorola, Inc. Secure communication system
US4703503A (en) * 1986-10-03 1987-10-27 Hitohisa Asai Cryptographic system using pseudocomplements of vector Boolean algebra
US4759062A (en) * 1986-10-06 1988-07-19 International Electronics Technology Corporation Arrangement for and method of protecting private security codes from unauthorized disclosure
JPH0727325B2 (ja) * 1987-02-13 1995-03-29 沖電気工業株式会社 暗号化装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004004603A (ja) * 2002-04-03 2004-01-08 Matsushita Electric Ind Co Ltd 拡大鍵生成装置、暗号化装置および暗号化システム
JP4515716B2 (ja) * 2002-04-03 2010-08-04 パナソニック株式会社 拡大鍵生成装置、暗号化装置および暗号化システム
JP2007502568A (ja) * 2003-08-13 2007-02-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ デジタル伝送システムに対する暗号化方法及び復号方法
US8837719B2 (en) 2007-06-05 2014-09-16 Oridao Cryptographic methods and devices for pseudo-random generation, encrypting data, and cryptographically hashing a message

Also Published As

Publication number Publication date
CA2064769A1 (en) 1991-02-18
EP0489742A4 (en) 1993-03-17
AU635466B2 (en) 1993-03-18
ATE160476T1 (de) 1997-12-15
DE69031736D1 (de) 1998-01-02
EP0489742A1 (en) 1992-06-17
WO1991003113A1 (en) 1991-03-07
US5003596A (en) 1991-03-26
JP3188940B2 (ja) 2001-07-16
EP0489742B1 (en) 1997-11-19
AU6043190A (en) 1991-04-03
DE69031736T2 (de) 1998-06-04
CA2064769C (en) 2000-02-08

Similar Documents

Publication Publication Date Title
JPH05501925A (ja) 暗号化システム
US5222139A (en) Cryptographic method and apparatus
US5442705A (en) Hardware arrangement for enciphering bit blocks while renewing a key at each iteration
US6298136B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
DK1686722T3 (en) Block encryption device and block encryption method comprising rotation key programming
JP3029381B2 (ja) データ変換装置
JP5272417B2 (ja) データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JPS5873257A (ja) 暗号化装置
KR20020006475A (ko) 암호화장치, 복호장치 및 확대키 생성장치, 확대키생성방법 및 기록매체
US20120121083A1 (en) Encryption apparatus and method
CA2302784A1 (en) Improved block cipher method
JPH1173101A (ja) 高速ブロック暗号化方法,及び,コンピュータで使用可能な媒体
CN102713994B (zh) 加密装置
KR20030019365A (ko) 메시지 인증 코드에 대한 키 정수 치환 발생 방법 및 장치
JPWO2012141189A1 (ja) 暗号化方法、暗号化装置および暗号化プログラム
CN115987490A (zh) 一种适用于arx结构的轻量级分组密码算法白盒化构造方法
KR100350207B1 (ko) 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법
Carter et al. Key schedule classification of the AES candidates
EP0605047A1 (en) Method for blockwise encryption/decryption using linear algebraic codes
Islam et al. Data encryption standard
JPH09269727A (ja) 暗号化方法および暗号化装置
Nandan et al. AES security improvement using hybrid approach for S-box design
RU2199826C2 (ru) Способ итеративного шифрования блоков цифровых данных
Tvrdý Cryptanalytic attacks on the cipher PRINCE
Stachowiak et al. Partial mathematical modeling and analysis of the AES system

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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: 20090518

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100518

Year of fee payment: 9

EXPY Cancellation because of completion of term