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

暗号化システム

Info

Publication number
JP3188940B2
JP3188940B2 JP51035390A JP51035390A JP3188940B2 JP 3188940 B2 JP3188940 B2 JP 3188940B2 JP 51035390 A JP51035390 A JP 51035390A JP 51035390 A JP51035390 A JP 51035390A JP 3188940 B2 JP3188940 B2 JP 3188940B2
Authority
JP
Japan
Prior art keywords
key
block
mask
value
byte
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP51035390A
Other languages
English (en)
Other versions
JPH05501925A (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)
  • Absorbent Articles And Supports Therefor (AREA)
  • Manufacture, Treatment Of Glass Fibers (AREA)
  • Slot Machines And Peripheral Devices (AREA)
  • Metal-Oxide And Bipolar Metal-Oxide Semiconductor Integrated Circuits (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

【発明の詳細な説明】
【0001】 発明の背景 1.発明の分野 この発明は暗号法、より具体的には記憶ないし伝送さ
れたデータを解読攻撃から保護するためのシステムに関
する。
【0002】 2.従来技術の説明 秘密または精密性の情報を理解可能な形から理解不能
な形に変換するための種々の暗号システムの使用が確立
されている。情報またはデータの理解可能な形は「平
文」と呼ばれ、理解不能な形は「暗号文」と呼ばれる。
平文から暗号文への変換プロセスは「暗号化」または
「暗号変換」と呼ばれ、逆のプロセスは「復号化」また
は「復号変換」と呼ばれる。ほとんどの暗号システム
は、キーと呼ばれる秘密値を利用する。暗号化および復
号化は、アルゴリズムとキーが判っていれば簡単だが、
復号化は、正しいキーを使用しなければ実際上不可能で
あるべきである。キーが判らずに暗号文を解読するため
の、アルゴリズムの設計者が想像しない近道の方法を見
つけようとするプロセスは、「暗号解読」と呼ばれる。
【0003】 暗号法の歴史は長く、そのルーツは少なくとも、平文
中の各文字がアルファベット中3つ後の文字に換えられ
る換字式暗号を採用したジュリアス・シーザーの時代に
さかのぼる。このように、ジュリアス・シーザーは第3
番を秘密のキーとして使用する線形換字式暗号を採用し
た。アルファベットが混ぜ合わされる非線形式換字も周
知である。しかし、線形、非線形にかかわらず、単純な
換字は、暗号文の2、3の文章が判っていれば、攻撃が
比較的簡単である。実際、エドガー・アラン・ポーの短
編「こがね虫」に出てくるウイリアム・レグランドは、
キャプテン・キッドの通信文を解読することによって、
埋蔵金および宝石を見つけて富を得ている。
【0004】 今日の業務は、コンピュータ、ファクシミリ、銀行取
引機などから送られる私的通信を保護するため、ずっと
精巧で安全な暗号化システムを必要とする。暗号法の歴
史上最も安全なキー使用システムは、1回限りのテープ
または1回限りのパッドである。このシステムでは、キ
ーが暗号化される通信文と同じ長さで、通信文に単に加
えられる(モジュラ計算)。キーは1回だけ使用され、
ランダムに得られる。この方法は安全だが、送られる情
報のブロック毎に新しいキーを生成し、これらのキーを
秘密に分配するといった効率の悪さがある。従って、1
回限りのテープは大抵の用途で、稀にしか使用されてい
ない。
【0005】 現代の暗号法の目標は、現在ある暗号解読技術に侵さ
れないか、システムを見破ることの利益がそれに要する
苦労に見合わないような暗号化システムを生成すること
にある。つまり、目標は、現在ある暗号解読法で見破る
ことが非常に困難なシステムの設計にある。これは、理
論上も実際上も見破ることができない1回限りパッド技
術と対象的である。1回限りのテープは、暗号解読技術
の発達に拘らず、暗号学上いつまでも見破ることができ
ないはずである。しかし、他の従来システムは、いずれ
見破ることができ、見破られるであろう。
【0006】 現代の暗号化システムは、一般的に、長さが8文字程
度の短いキーを使用する。現代のシステムの好例とし
て、1970年代の初期にIBMによって開発され、アメリカ
標準局によってビジネスおよび非軍事行政での使用のた
めの標準暗号化システムとして採用されたデータ暗号化
規格(“DES")がある。DESに関する特許は、アメリカ
特許第3,958,081号および第3,962,539号を含む。データ
暗号化規格は、暗号化されるデータの一部ないしブロッ
クが所定の転置表で転置され、キーで改変されてから、
予め設定された換字表で換字されるブロック型の暗号で
ある。このプロセスは、ラウンドと呼ばれる形で多数回
繰り返される。転置は「転換」とも呼ばれ、通信文中の
文字の位置を予め設定された指示の組合せに従って混ぜ
合わす、ごく普通の暗号機能である。
【0007】 他の現代の暗号化システムは、無作為の統計的性質を
持った長い一連のキーを生成する疑似ランダム生成手段
を使用して、1回限りのパッドのキー生成プロセスを模
倣することを試みている。そのような特許としては、ア
メリカ特許第3,700,806号および第4,369,332号が含まれ
る。受信者は、キーを生成して、送られた暗号文の復号
化にそれを使用する疑似ランダム生成手段を持つことに
なる。従って、そのシステムは望むだけ頻繁にキーを変
え、復号化されるブロック毎にキーを変えることさえで
きる。疑似ランダム生成手段の使用は多くのシステムを
非常に強化したが、1回限りパッドを完全に作りだした
わけではない。
【0008】 非軍事用暗号化システムの暗号解読において、一般的
に次のような想定がなされる。即ち、(1)暗号解読者
は使用される暗号化システムと表を知っている。疑似ラ
ンダム生成手段が使用される場合も、それが知られてい
ると想定する。(2)暗号解読者はキーを知らない。第
1、2項はまとめて、一般的にケルクホフの想定(Kerc
khoff's assumption)と呼ばれる。(3)暗号解読者
は、以前に送られた平文を大量に持っている。(4)暗
号解読者は、平文に対応して以前に獲得した暗号文を大
量に持っている。
【0009】 暗号システムは、上記条件下で十分な強さを証明しな
ければならない。疑似ランダム生成システムは、1回限
りのテープ用の基準をすべて満たしているわけではな
い。疑似ランダム生成手段が使用されると、生成される
キー同士の関係が定まる。暗号解読者は出力される組に
なったキー(生成手段がキーを使用する場合)を知らな
いとしても、一連のキーの関係が疑似ランダム生成アル
ゴリズムに記されているのでそれを知っている。更に、
疑似ランダム生成手段は「シード」値をも備えなければ
ならない。これは、本質的には、このシステム用として
生成され、分配されるべきもう一つのキーである。所定
の転置および換字表と、これらの表の所定の使用順序と
を持ったデータ暗号化規格も、暗号解読の攻撃を受け
る。データ暗号化規格アルゴリズムは、かなり複雑であ
るから強い暗号化システムであるが、数学的解析による
攻撃に対して不透過性ではない。
【0010】 1回限りのパッドの特徴をいくつか採用した別の技術
は、キー表を使用する。この技術では、多くの所定のキ
ーを含む表が暗号化システムに含まれる。そして、キー
はそれぞれ秘密キーによって変えられる。この方法の1
例がアメリカ特許第4,776,011号に見られる。この技術
は、疑似ランダム生成手段と同じ理由で、1回限りのパ
ッドを完全に模倣していない。オリジナルのキー表はキ
ー同士の関係を示す。又、そのようなシステムでは、キ
ーが選択される順序がシステムのアルゴリズムに記載さ
れ、選択されるキーの組合せが繰り返されることもあ
り、初期化ベクトルがないと、新しい秘密キーが与えら
れるまで同じキー表が常に使用されることになる。この
ような弊害を除くために、ここに開示する発明はユニー
クは方法でキー表を使用する。
【0011】 強い理論的および実際的な暗号化システムのもう一つ
の方法は、1回限りの機能(function)を使用すること
にある。この方法では、暗号化される各データブロック
が、異なる暗号機能の組合せによって暗号に変換され
る。つまり、暗号化プロセスで使用される表が可変で、
各データブロックによって異なる組合せが選択される。
【0012】 可変機能も従来行われている。1例がアメリカ特許第
4,751,733号に記載され、それは可変換字の使用を含ん
でいる。この特許は多くの制限がある。つまり、この特
許は特に2値ワード用の暗号化を提供していること、換
字表が秘密キーの2進配置に密接な関係で設定され、運
用されなければならないこと、キー補足ないし補助キー
を構成する制御コードが換字プロセスの遂行に必要であ
ること、この方法は具体的には換字・転置式の暗号化手
法であること、この方法は可変転置等の機能を与えない
こと、この方法は1回限りのテープの模倣に必要な初期
化ベクトルを与えないこと等である。
【0013】 従って、この発明の目的は、他のシステムの弱点を克
服して、1回限りのパッドプロセスを模倣しながら、単
一のキーのみを必要とするシステムを作り出すことにあ
る。本発明の他の目的は、理論的にも実際的にも侵され
得ず、1回限りのパッドシステムの完全な模倣を可能に
する暗号化システムを提供することにある。又、ユニー
クなデータブロック毎にユニークに機能的に変換すると
いった1回限りの方法の手法を取り入れた暗号化システ
ムを生成することも本発明の目的である。これは従来の
技術で達成されてなく、その結果として、このシステム
は攻撃に対してより強い暗号化策を提供する。又、ファ
イル格納、データ伝送、遠隔通信コード化など、種々の
用途に十分な柔軟性を持った安全な暗号化システムを提
供することも本発明の目的である。更に、ブロック暗号
フォーマットの使用を許し、そこに完全なシンボル間依
存を可能にする暗号化システムを提供することも本発明
の目的である。
【0014】 発明の要約 従って、私は、たとえシステムの実行を知っていても
キーとキー表の関係を判断できないように、1つのキー
からキー表を生成することを含む暗号システムを開発し
た。これは可変機能の使用を通して達成されるが、そこ
では決定因によって選択される可変機能が決定因を変更
する。従って、キー表の作成に使用する機能は1対1の
機能である必要はない。決定因はキーにもとづいてい
る。キー表から、キーにもとづく追加的な決定因のバイ
トのブロックが形成され、これらはマスクと呼ばれる。
これらのマスクはキーから形成される。当初のキーはキ
ー表にもマスク表にも存在しない。
【0015】 本発明の好適実施例におけるシステムは、多ラウンド
暗号プロセスでキー表を使用する。従って、考え得るす
べての平文の組合せが、異なるキーの組合せで暗号化で
きる。キー加算操作用として表から選択されるキーは、
平文、暗号文の現状、それにマスク値の関数である。従
って、キー選択順序は予め設定、もしくはパターン化さ
れない。又、システムは、平文、暗号文の現状およびマ
スク値によって、転置および換字を含む他の暗号機能を
選択する。このように、各ブロックが転置と換字の異な
った組合せで暗号化される。
【0016】 この暗号システムは、以下、本書でエンクレーブ機能
(enclave function)と呼ぶ機能を導入する。この機
能もルックアップテーブルで働き、バイトのブロックに
完全なシンボル間依存を作り出す。エンクレーブ機能と
共に使用される特定の表は、マスク値のみによって決定
される。このように、あらゆるブロックが同じエンクレ
ーブの組合せを受ける。しかし、選択される組合せが、
知られていないキーから生じるマスクによって定まるの
で、その組合せは攻撃には判らない。
【0017】 情報は、転置、キー加算、エンクレーブおよび換字の
所定ラウンド数を経た後で、伝送または格納することが
できる。復号化は、操作の順を反対にして、換字、エン
クレーブ、キー加算および転置の逆機能で達成できる。
キー加算はその逆と同じである。
【0018】 好適実施例の説明 好適実施例では、本発明の暗号システムがブロック暗
号フォーマットで操作され、平文データの通常ブロック
と呼ばれる小さなかたまりが1回限り暗号化および復号
化される。暗号化および復号化がマルチラウンドブロッ
ク型のフォーマットで行われることが望ましい。しか
し、本件出願の発明はストリーム暗号等の他の暗号シス
テムでも使用でき、マルチラウンドを採用しなくてもよ
いことを理解されたい。しかし、マルチラウンドはシス
テムをかなり強化する。
【0019】 本発明の暗号システムは、好適実施例では、モジュラ
スと呼ばれる特定の整数に基づく巡回的な(cyclic)数
学機能であるモジュラ計算を使用する。計数は、到達す
るモジュラスより数字1が小さくなるまで順次インクリ
メントし、再度ゼロから開始することによって行われ
る。整数と比べたモジュラ3の例を次のように示すこと
ができる。
【0020】 整数:0 1 2 3 4 5 6 7 8 9 10 モジュラ3:0 1 2 0 1 2 0 1 2 0
【0021】 従って、10モジュラ3、通常10mod3と略、は1と等し
い。モジュラ計算は、結果がゼロとモジュラスマイナス
1の間になるまで、当該数からモジュラを順次引算する
ことによって、より容易に行える。例えば:10−3=7;7
−3=4;そして4−3=1となる。従って、最後の引算
の答が0と2の間で、2=モジュラス−1であるから、
10mod3=1である。モジュラ計算機能の一般的フォーマ
ットは(整数)mod(モジュラス)=モジュラスより小
さい整数である。
【0022】 第1図に示すように、このシステムは参照番号10のス
タートで開始し、そして操作は参照番号12のメモリ内の
種々の表の初期化へ進む。後に、より詳細に説明するよ
うに、いくつかの表がシステムに供給され、いくつかの
表がシステム内で生成される。これは、当初、平文また
は暗号文が暗号化ないし復号化される前に行われる。そ
して、操作は参照番号14へ進み、平文の最初のブロック
が選択される。第1図は平文のブロックの暗号化と関連
して示されているが、暗号文の選択されたブロックの復
号化でも同様なステップが実行される。そして、操作は
参照番号16へ進み、平文の選択されたブロックが、本発
明の暗号システムに従って暗号化される。質問18の結
果、暗号化すべき平文がまだ残っていれば、参照番号20
で平文の次のブロックが選択され、この次のブロックが
暗号化される。平文が残っていない場合は、参照番号22
でシステムが作動を停止する。
【0023】 メモリ内のテーブルの初期化ステップの詳細が、第2
図に示されている。参照番号30で転置表、S−ボックス
(BOX)表およびエンクレーブ表がシステムのメモリに
先ず読み込まれる。転置表は、暗号化されるデータのブ
ロックのバイト位置をどのように混ぜ合わせたり、復号
化のために元の位置に戻したりするかを、特定の仕方で
指令するアドレス可能な複数の項目を含む。これは普通
に使用される暗号技術である。S−ボックス表は、特定
の項目によって指示されて、変換されるブロックの各バ
イトの実際値がいかにして他の値に変えられるかを指令
する複数の換字のための構成である。これは標準換字表
の形で含まれ得るが、S−ボックス構成は計算上より効
率的で、暗号学の分野で周知である。参照番号30でメモ
リに読み込まれるエンクレーブ表は、後で詳細に説明す
る。
【0024】 そして、参照番号32で初期のキーがシステムに読み込
まれる。キーとは、システム実行、アルゴリズムまたは
表に明示ないし記載されず、暗号プロセスを指示するた
めにシステムにインストールないし読み込まれる秘密の
値またはデータブロックである。基本的に、キーは暗号
プロセスの作動の基になる秘密の値であり、アルゴリズ
ム実行の一部ではない。その後、質問34でシステムは初
期化ベクトルが含まれるか否か決定する。初期化ベクト
ルの使用はこの分野で普通のことであり、データを電話
回線等で送信する際の使用が典型的である。初期化ベク
トルは暗号化されたデータの前に回線を介して送られ、
後で行われるデータの復号化に使用される。参照番号36
で示されたように、排他的OR演算でキーがビット毎に初
期化ベクトルと組み合わされて、初期のキーが改変さ
れ、それが参照番号38でキー表を作成するために使用さ
れる。初期のキーを改変するために、排他的OR機能を使
用せず、キーの各バイトの値を初期化ベクトルの各バイ
トの値に加えることもできる。これらは両方とも、キー
と共に初期化ベクトルを使用するための暗号法における
標準的な技術である。初期化ベクトルが使用されない場
合、操作は参照番号38へ直接進み、変更されない初期キ
ーからキー表が生成される。一旦キー表が作成される
と、操作は参照番号40へ進み、キー表に生成された項目
からマスク表が生成される。初期キーからキー表とマス
ク表項目を生成するために使用される特定のプロセス
は、後で詳細に説明する。
【0025】 本発明の好適実施例によれば、暗号変換されるデータ
のブロックサイズは10バイトの長さになるよう選定さ
れ、各バイトが8デジタルビットを含む。各バイト中の
7ビットがデータ値に使用され、8番目のビットがこの
分野で周知のパリティビットである。好適実施例では、
キーが、暗号化および復号化されるデータのブロックと
同じ長さに選定されている。しかし、望むならキーが他
の長さでもよい。キーは、徹底した攻撃によるキーの推
測を非常に困難にするに十分な長さである必要がある。
各バイト中の7ビットを使用する場合、各キーが8〜20
バイトを含むことが望ましい。20バイトより長いキー長
さを使用できるが、暗号システムでの計算をずっと困難
で時間が掛かるものにし、システムで使用される種々の
表の長さを増し、それに応じて必要なメモリスペースを
増大させる。暗号化される平文のブロックの選択におい
ても、特に情報の小ブロックがシステムを通される場合
に、同様な考え方が当てはまる。本発明のエンクレーブ
機能が使用される場合、ブロックサイズは偶数バイトを
含むべきである。しかし、エンクレーブ機能を使用しな
いとすれば、ブロックサイズは奇数バイトでもよい。
【0026】 本発明の暗号システムの大きな要素は、データの特定
の暗号機能の実行に使用される特定の転置、換字または
エンクレーブ表が変換されるデータ中のある種の値また
は要素の関数だということである。本発明のこの側面は
可変機能と呼ばれ、それは、2つ以上の考え得る選択肢
が存在する場合のいかなる機能でもある。 本発明のこの側面は、後で暗号化・復号化プロセスで
使用されるキー表を初期キーから最初に生成する際にも
使用される。一般的に、キーから1つ以上の要素が選択
され、又、所定の数学的機能の結果が可変機能法の選択
に使用される。この機能は、新しいキーを生成するため
に選択された表に従ってキーの現状に対して実行され
る。数学機能の結果は、特定の表と共に使用される特定
の機能を、考え得る多くの可能性から選ぶためにも使用
できる。この発明の好適実施例では、特定の種類の機能
が前もって設定され、その機能と共に使用される表のみ
が暗号化・復号化されるデータを用いて選択される。
【0027】 換字、転置およびエンクレーブ機能を使用する、キー
表の要素を作り出すための特定の構成が、第3図に示さ
れている。変換されるキーの10バイトがKn1〜Kn10とし
て要素50に示されている。使用される換字表の選択にあ
たって、要素51のモジュラ計算を用いてキーの最後の5
バイトが合計され、要素52のメモリレジスタYに格納さ
れるデジタル数を生成する。要素51で使用されるモジュ
ラ計算のモジュラスは、システムで使用する換字表のサ
イズによって定まる。好適実施例では、換字表は128バ
イトの値に対して32個の表を含み、従って、要素51で使
用される計算は32のモジュラスを持つ。本件出願中で後
で記載される1例では、理解を容易にするために、換字
表が16個のみの表を持ち、要素51はモジュラ16になる。
第3図では、換字表の選択に用いる数を生成するため
に、変換されるキーの最後の5バイトの値が合計される
が、要素52におけるY値の生成に、10バイトのいかなる
組合せも、10すべてでも、使用できることを理解された
い。
【0028】 第3図で使用される転置表の選択にあたって、要素53
のモジュラ計算を用いてキーの最初の5バイトが合計さ
れ、要素54のメモリレジスタXに格納されるデジタル数
を生成する。換字表の計算と同様に、転置表Xを生成す
るために要素53で使用されるモジュラ計算は、システム
で使用する転置表のサイズによって定まる。好適実施例
では、転置表に128項目があり、従って、要素53でのモ
ジュラ計算はモジュラ128になる。
【0029】 要素52で生成された値Yは、キーの現状を改変するた
めに使用される換字表の選択に使用される。そして、キ
ーはこの表に従って換えられる。その後、要素54で生成
された値Xが特定の転置表を選定するために使用され
る。前に換字操作を受けたキーが、選択された表に従っ
て今度は転置される。keynをPSKnと呼ぶ中間状態に変換
するこの操作は、第3図の要素55に示されている。最初
に換字され、その後転置で受けて変換されたキーは、第
3図中、バイトPSKn1〜PSKn10を含む要素56として示さ
れている。
【0030】 サンプル転置表項目が、第4図に示されている。第4
図上部の8つのビットバイトの位置が種々の矢印で示さ
れるように混ぜ合わされて、第4図下部に示される新し
い位置になる。上部から下部への操作がデータの暗号化
を構成する。データの復号化では、位置づけが下部から
上部へ再編成され、データの当初の配置を復活させる。
これは多くの暗号システムで使用される標準技術であ
り、この出願でこれ以上詳細に説明する必要はない。同
様に、換字表の典型的な項目が第5図に示されている。
特定の平文値が、変換されるデータのバイトのどれかに
なっている場合は、使用される換字表がその平文値を新
しい値に換えるよう指令する。例えば、平文値がP0の場
合、第5図の表にしたがって、それは新しい値S1に換え
られる。換字表を通じて逆に操作することにより、暗号
化されたデータを復号化し、元の平文値を復活できる。
これも標準技術であり、これ以上詳細に説明する必要は
ない。第4および5図に示された特定の構成は、転置お
よび換字表項目の多くの可能性の代表例にすぎず、本発
明の暗号システムで使用する表に他の多くの項目が含ま
れることを理解しなければならない。
【0031】 第3図で、要素56のキーの中間状態は、出願人がエン
クレーブ機能と呼ぶ新開発機能に従って更に改変され
る。エンクレーブプロセスも可変機能で、変換されるデ
ータの特定の値を用いて数を生成し、今度はそれを用い
て、複数のエンクレーブ表のどれで、データを更に変換
するかを選択する。第3図に示された実施例では、要素
56のキーの中間状態の特定の値、つまり図中のハイド
3、4、5、6および7、が要素57のモジュラ計算を用
いて合計され、要素58のメモリレジスタZに格納される
デジタル数Zを生成する。好適実施例では、エンクレー
ブ表は32項目を含み、従って要素57で行われる計算はモ
ジュラ32になる。その後、キーの中間状態が特定のエン
クレーブ表に従って更に変換され、この変換されたキー
が要素59でキー表に記入される。以下、第6および7図
と関連してエンクレーブ機能を詳細に説明する。
【0032】 本件出願で使用する表記に従って、「Key」は当初の
キーを表すのに使用する。当初のキーはキー表の第1の
キーKey0を生成するために使用する。Key0はキー表に入
れられ、その後、キー表の次の項目、つまりKey1、の生
成に使用される。Key1は、当初のキーからKey0を生成す
る第3図に示された同じステップに従って、Key0から生
成される。キー表の残りのキーが、キー表が満たされる
まで、直前のキーから順次生成される。キー表中で先行
するキーからのキーの生成は、第3図中の要素59で示さ
れ、そこではKeynを用いてKeyn+1が生成されている。 キー表の項目数は因数、つまりアルファベットスペー
スに均等に分割すべきである。本書に記載する好適実施
例では、アルファベットスペースは27、つまり128であ
る。項目数がアルファベットスペースの因数でない場合
は、使用される、あるキーの統計的機会が他のキーより
大きくなる。この不一致は、暗号解読者の助けになり得
ることから避けるべきである。キー表の最大項目数はア
ルファベットスペースのサイズであり、好適実施例では
最大数が使用される。
【0033】 一般的に、キー表の各キーは前のキーに対して実行さ
れた可変機能の結果生成され、特定の可変機能が先にイ
ンストールないし生成されたキーから抽出された情報に
よって定まる。当初のキーがインストールされたキー
で、生成されたキーはKey0、Key1等と名付けられる。こ
のように、キー表は当初のキーを含まず、従ってキー表
中の情報の知識から当初のキーを捜し当てることは不可
能である。後で詳細に説明するように、暗号化の各ラウ
ンドで異なるキーの組合せが選択され、これによって、
繰り返し使用される1つのキーを見つけ出すこと、ある
いは数学的に解きあかすことが不可能になる。伝送毎に
当初のキーと関連して初期化ベクトルを使用すると、1
回限りのテープを模倣することになる。又、暗号解読者
はキー表を逆方向に進めないから、攻撃者が1つのキー
を知っても前のキーは判らない。従って、この構成は疑
似ランダムキー生成手段よりずっと優れている。
【0034】 第3図に示された構成は、本発明の実施の1つの可能
性にすぎないことに留意すべきである。発明の精神また
は範囲を変えずに、ほとんど無数の変更が可能である。
選択される可変機能表が、生成された新しいキーから定
められないように、キー表を生成するための可変機能
を、当初のキーまたはインストールされたデータブロッ
クを用いて選択するいかなるプロセスも、この発明の範
囲に入る。
【0035】 第6図は、本発明で使用するエンクレーブ機能のブロ
ック図を示す。エンクレーブ機能は、第3図のキー表の
生成と、後で第8図に示す暗号化プロセスの両方で使用
される。変換されるブロックは、第6図で要素60と名付
けられる。このブロックは2つの部分、つまり最初の5
バイトを含む第1または左の半ブロック61と、最後の5
バイトを含む第2または右の半ブロック62に分割され
る。第1半ブロックに偶数バイトを使用し、第2半ブロ
ックに奇数バイトを使用する等、ブロックの他の分割構
成も使用できる。変換されるブロックは、エンクレーブ
機能のために偶数のバイトを含まなければならない。
【0036】 オートクレーブ機能は、ブロックをそれ自体に対して
実行される機能によって変えるための、暗号システムに
おける公知の技術である。本発明のエンクレーブプロセ
スは、10バイトのブロック全体を通じて完全なシンボル
間依存を達成するために、データブロックに対する他の
操作と関連してオートクレーブ型機能を使用する。完全
なシンボル間依存は、ブロックの各バイトがブロックの
他の各バイトとそれ自体の関数である場合に達成され
る。
【0037】 第6図に示された構成では、右の半ブロック62がEna
と付されたオートクレーブ機能によって、要素63と名付
けられた新しいデータブロックに変換される。Enaで使
用される特定のオートクレーブ機能は、後で第7図を参
照しながら詳細に説明する。要素63の右半ブロックは、
Enbと付された第2のオートクレーブ変換を受け、要素6
4の半ブロックを生成する。そして、この半ブロック
は、要素65でビット毎の排他的OR機能によって、変更さ
れない左の半ブロック61と組み合わされて、要素66で新
しい左の半ブロックを生成する。そして、要素66の左半
ブロックは、オートクレーブ機能Encを受けて、要素67
の変換された左半ブロックを生成する。その後、要素67
の左半ブロックは、次のオートクレーブ変換Endを受け
て、要素68の改変された左半ブロックを生成する。そし
て、要素58の左半ブロックは、排他的OR機能によって、
先に変換された要素64の右半ブロックと組み合わされ
る。この排他的OR機能は、要素70の新しい右半ブロック
を生成する。そして、要素68の左半ブロックは、右半ブ
ロック70と結合されて、本発明のエンクレーブ機能を受
けた要素71の全体ブロックを生成する。
【0038】 右半ブロック62がEnaおよびEnbに従って2つのオート
クレーブ機能を受けた後、右半ブロックはそれ自体の中
で完全なシンボル間依存を達成している。左半ブロック
61と現在の右半ブロック64が、要素65の排他的OR機能に
よって組み合わされると、左半ブロックが右半ブロック
と完全なシンボル依存関係になる。そして、要素66の左
半ブロックが2つのオートクレーブ機能EncおよびEndに
よって変換されると、要素68の左半ブロックがそれ自体
と右半ブロックに対して完全なシンボル間依存関係にな
る。従って、左半ブロックは10バイトのブロック全体と
の完全なシンボル間依存を達成している。要素64の右半
ブロックが、要素69で排他的OR機能によって、現在の左
半ブロック組み合わされると、右半ブロックが10バイト
のブロック全体に完全にシンボル間依存する。要素68の
左半ブロックと要素70の右半ブロックが結合して要素71
の完全ブロックを形成すると、ブロックの各バイトがブ
ロックの他の各バイトとそれ自体の関数になる。
【0039】 第6図に示すエンクレーブ機能で使用される特定のオ
ートクレーブ機能は、変換される半ブロックの要素ない
しバイトを半ブロックの他の2つの要素に加えるプロセ
スである。このプロセスは、半ブロック内の各要素が、
そのように改変されるまで繰り返される。夫々の半ブロ
ック内で完全なシンボル間依存を生成するために、変え
られる要素に少なくとも2つの要素を加える必要があ
る。更に、このオートクレーブ機能は、半ブロックのす
べてのバイトがそれ自体と他の各バイトの関数になるこ
とを確実にするために、半ブロック全体に対して2度実
行される。Ena、End、EncおよびEndは、項目a、項目
b、項目cおよび項目dを夫々が含む複数のエンクレー
ブ表で表される。サンプル表Enを下に示す。
【0040】 Ena Enb Enc End 315 543 413 345 534 231 325 521 421 425 152 413 142 321 234 254 253 154 541 132
【0041】 各サブテーブルは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行目にある)が変換されるバイ
トに算術的に結合されて新しい値を作り出すバイトを表
す。
【0042】 このオートクレーブ機能は、上記した具体的なサンプ
ル表Enaに従った右の半ブロックの変換を示す第7図と
の関連で、よりよく表すことができる。Enaの第1の項
目は「3 1 5」で、これは半ブロックの3番目のバ
イト(つまり、バイト8またはB8)が1番目のバイト
(B6)と5番目のバイト(B10)の値に加えられて、3
番目のバイト(B8)の新しい値を生成することを意味す
る。各足し算用のモジュラ計算は、アルファベットスペ
ースのサイズに従って使用される。ここでは、アルファ
ベットスペースが好適実施例の7個のデータビットによ
って定まる27つまり128であるから、計算ステップでモ
ジュラ128が使用される。Enaの次の項目は「5 3
4」で、これは5番目のバイト(B10)が3番目のバイ
ト(先に変換されたB8)と4番目のバイト(B9)に加え
られることを意味する。第3項目は「4 2 1」で、
これは4番目のバイト(B9)が2番目のバイト(B7)と
5番目のバイト(B5)に加えられることを意味する。第
4項目は「1 4 2」で、これは1番目のバイト(B
6)が4番目のバイト(B9)と2番目のバイト(B7)に
加えられることを指示する。表Enaの第5項目は「2
5 3」で、これは2番目のバイト(B7)が5番目のバ
イト(B10)と3番目のバイト(B8)に加えられて、新
しい2番目のバイト(B7)を生成することを意味する。
以上のように、オートクレーブ機能は他の表Enbを使用
して繰り返され、変換される特定の半ブロック内に完全
なシンボル間依存を生成する。Ena、Enb、EncおよびEnd
はすべて同一でもよいが、特定のエンクレーブ表En内の
各サブテーブルが互いに異なる方が良い。
【0043】 選択される特定のエンクレーブ表Enは、変換されるデ
ータに対する計算機能を通じて先に生成された数に従っ
て定まる。キー表の生成と関連して、選択されるエンク
レーブ表は、第3図の要素58で生成される数Zによって
定まる。第6図のエンクレーブプロセスと関連した表記
「n」は、第3図のキー表項目の生成と関連して使用さ
れた表記「n」と区別されるべきものである。
【0044】 第2図に示す初期化ルーチンの最終ステップは、ステ
ップ40のマスク表作成である。マスク値は、データ変換
を行うために表中の特定項目の選択を助けるために、暗
号化および復号化プロセスで使用される決定因である。
後で明らかにされるマスクの機能は、暗号解読者が暗号
アルゴリズムを逆方向に進め、システムで使用される当
初のキーを計算することを不可能にするように、他の顕
著な要因を付加することにある。
【0045】 一般的に、マスク値は、キー表または当初のキーから
得た2個以上の値の計算結果である。好適実施例はMask
nと表記された4個のマスク値を含み、nは1〜4であ
る。nの最大範囲は、暗号システムに含まれる可変機能
の数に相当する。好適実施例では、システムが転置、キ
ー加算、エンクレーブおよび換字の可変機能を含み、従
って、マスクの最大数nは4である。各マスク表項目は
10バイトのブロックである。従って、これらの各バイト
はMaskn,bとアドレスでき、bは1〜10である。好適実
施例では、マスクが次のように生成される。Mask1,1と
名付けられたMask1の最初のバイトが、キー表の最初の3
2個のキーにおける最初のバイトの値を合計することに
よって生成される。これらの値は、アルファベットスペ
ースによって定まるモジュラ計算、ここではモジュラ12
8、を使用して合計される。最初のマスクの後続バイト
は、夫々キー表の最初の32個のキーのそれぞれにおける
対応バイトを合計することによって生成される。Mask2
と名付けられた第2のマスクが、表の次の32個のキー、
つまりキー32...キー63、におけるバイトの同様な合計
によって生成される。同様に、第3のマスクが、キー表
の次の32個のキー、つまりキー64〜キー95、に対する処
理によって生成される。最後に第4のマスクがキー96〜
キー127を使用して生成される。マスクの生成は次の式
で数学的に表現することができる(1がb以下で、bが
10以下)。
【0046】 MASK1,b=Key0,b+Key1,b+……+Key31,b MASK2,b=Key32,b+Key33,b+……+Key63,b MASK3,b=Key64,b+Key65,b+……+Key95,b MASK4,b=Key96,b+Key97,b+……+Key127,b
【0047】 キー表およびマスクを生成するための他の選択が可能
である。マスク生成は、単にキー表作成において更に4
個のキーを生成し、これら4個の追加のキーを4個のマ
スクとして使用すればよい。又、キー表のキーはマスク
生成に使用するものと同じ方法で生成できる。又、キー
表は、キー表の最初の2項目を生成した後、可変機能を
利用してもしなくても、第3のキーを最初の2個のキー
の関数とすることによって生成できる。このように、先
に生成されたいずれかのキーで後続のキーを作成でき
る。
【0048】 本発明の好適実施例による暗号化プロセスのフローチ
ャートを第8図に示す。この好適実施例は、各データブ
ロックについて、いくつかの暗号化ラウンドを含むの
で、以下で「R」の文字を使用してラウンド番号を示
す。最初に、ステップ100で、ラウンド番号をゼロにセ
ットする。そして、ステップ102で、マウンド番号Rを
1つインクリメントする。ステップ104で、暗号化され
るデータが10バイトのブロックで表される。暗号化の最
初のラウンドのとき、要素104のデータは暗号化される
平文である。その後のラウンドでは、このデータが当初
の平文データと異なる中間物になるが、まだ最終の暗号
文出力でない。
【0049】 ステップ106で、データが先ず可変転置操作を受け
る。第9図との関連で後で詳しく説明するが、可変転置
を行うために、転置表メモリ108から項目が選択され、
マスク表メモリ110から値が選択される。そして、操作
はステップ112へ進み、「C」が付された選択成分をラ
ウンド数Rと等しくする。そして、操作はステップ114
へ進み、データに対して最初の可変キー加算を実行す
る。第10図との関連で後で詳しく説明するが、可変キー
加算を実行するために、キー表メモリ116からキーが選
択され、マスク表メモリ110から値が選択される。そし
て、操作はステップ118へ進み、選択成分Cをラウンド
数より1つ大きい値にセットする。ステップ118の後、
操作は質問120へ進み、選択成分Cが11と等しいか判断
する。等しくなければ、操作はステップ122へ直行し、
キー表メモリ116からのキーを使用し、マスク表メモリ1
10からの値を使用して、データに対する第2の可変キー
加算を実行する。ステップ118での加算後に選択成分C
が11と等しい場合は、操作はステップ124へ進み、選択
成分を1の値にセットする。そして、操作はステップ12
2の第2可変キー加算の作業に進む。
【0050】 ステップ122の第2可変キー加算機能の後、操作は126
へ進み、データに対して可変エンクレーブが行われる。
この可変エンクレーブ機能は、第6および7図との関連
で既に述べたが、そこでエンクレーブ表メモリ128から
項目が選択される。選択される特定のエンクレーブ表
は、マスク表メモリ110から得られるマスク3,Rによって
定まる。これは式n=マスク3,Rで表すことができ、n
は第6および7図の操作用に選択されたエンクレーブ表
メモリである。後で詳しく説明するが、マスク1はステ
ップ106の可変転置操作との関連で使用され、マスク2
はステップ114および122の可変キー加算との関連で使用
され、マスク4は後の可変換字操作で使用される。
【0051】 そして、操作はステップ130へ進み、選択成分Cをも
う一度ラウンド数Rと等しくする。その後、ステップ13
2で、第1の可変換字に従ってデータが変換される。後
で詳しく説明するが、可変換字はマスク表メモリ110か
らの置を使用し、S−ボックスおよびS′−ボックスメ
モリ134から適当なS−ボックス表を選択する。そし
て、操作はステップ136へ進み、選択成分Cの値を1つ
インクリメントする。質問138で、選択成分が11と等し
いか判断する。等しくなければ、操作はステップ140の
第2可変換字へ直行する。ステップ136後の選択成分が1
1と等しければ、操作は質問138からステップ142へ進
み、選択成分を1の値にセットする。その後、操作はス
テップ140の第2可変換字へ進む。ステップ140の第1可
変換字と同様、第2可変換字は第11図で詳細に説明する
が、これはマスク表メモリ110からの値とS−ボックス
およびS′−ボックスメモリ134からの表を用いてデー
タを変換する。
【0052】 その後、操作は質問144へ進み、ラウンド数が10の値
に到達したか判断する。ラウンド数が10に到達した場合
は、暗号化プロセスが完了し、暗号文がステップ146で
出力として表される。ラウンド数が10にまだ到達してい
ない場合、操作はステップ102へ戻り、ラウンド数を1
つインクリメントする。そして、可変転置106、第1可
変キー加算112、可変エンクレーブ126、第1可変換字13
2および第2可変換字140を含む上記ステップをすべて実
行する。
【0053】 第8図の可変転置を、第9図のブロック図で詳しく説
明する。変換されるデータは要素150でバイトB1〜B10と
して表されている。転置の実行に転置表メモリ108のど
れかの表を選択するために、データの10バイトの値を要
素152で合計し、要素154のメモリレジスタZに格納され
る値を生成する。要素154のレジスタZの値を、ビット
毎の排他的OR機能で、マスク表メモリ110からのマスク
1,Rと組み合わせることによって値を生成する。この値
は要素156のメモリレジスタWに格納される。例えば、
暗号化の最初のラウンドでは、要素156でマスク1,1を使
用して、Zとの排他的OR演算でWを生成する。好適実施
例では暗号化が10ラウンドであるので、暗号化ラウンド
でマスク1の10個の値が順次使用される。
【0054】 そして、操作は要素158へ進み、Pwで表される転置表
Wからの指令を使用して、データブロックに対する標準
転置が実行される。転置されたデータブロックが、第9
図の要素160にバイトb1〜b10として示されている。同じ
データを同じステップで復号化できるよう、暗号化され
るデータの10バイト全てを用いて、変換に使用する転置
表を選択することが重要である。仮にブロックのいくつ
かのバイトのみを用いて、使用される転置表を決定した
とすれば、復号化プロセス時にどの転置表が選択された
か判断できなくなる。排他的OR演算でZをマスク1,Rと
組み合わせてWを生成せず、モジュラ計算でZとマスク
1,Rの値を合計して、使用される転置表を決定すること
も可能である。このことは、排他的OR演算を使用して2
つのデジタル値が組み合わされる出願の残り部分全体に
当てはまる。排他的OR演算はデジタルコンピュータで実
施すると計算上容易だが、本発明では、排他的OR演算を
行わずに、値を単に算術的に合計することによっても同
じ結果が得られる。
【0055】 第8図のステップ114および122に示された本発明の可
変キー加算機能が第10図に図表で示されている。ステッ
プ114の第1およびステップ122の第2の各可変キー加算
は、選択成分Cの値が1にセットされる10番目の暗号化
ラウンドのとき以外、選択成分Cの値が第1可変キー加
算のときより第2可変キー加算のときの方が1つ大きい
ことを除いて同一である。その他では、第8図のステッ
プ114および122で行われる可変キー加算のステップは第
10図に示されたように同一である。
【0056】 可変キー加算用としてキー表メモリ116から選択され
る特定のキーは、バイトC(BCと呼ぶ)とマスク2,Rに
よって定まる。これは、値ZをBCと等しくする第10図の
要素172と、WをZ XOR マスク2,Rと等しくする要素1
74で示されている。値Wは、可変キー加算のその特定の
ラウンド時での使用として、キー表メモリ116からキー
を選択するのに使用される。キーWの10バイトは第10図
の要素176として示されている。その後、要素170のバイ
トのブロックにおける各バイトが、要素178の排他的OR
機能で、一連の排他的ORを介して、キーWの対応するバ
イトと組み合わされる。例えば、B1 XOR キーはW1はb
1を生成する。同様に、B2 XOR キーW2はb2を生成す
る。唯一の例外は、変換されるブロック中のバイトC
(BC)がキーWの対応バイトと組み合わされず、変更な
しで直接bCになることである。これは、変換される要素
170のデータの各バイトと関連した要素180の一連の質問
で表されている。Cがバイト数と等しい場合、そのバイ
トは対応キーバイトと組み合わされない。可変キー加算
のラウンドを経たデータブロックが第10図の要素182と
して示されている。
【0057】 第8図に示した暗号化用の可変換字が、第11図により
詳細に示されている。可変キー加算と同様、選択成分C
が第2の可変換字で変更される点を除いて、ステップ13
2の第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)はこの変換ラウンド時には変換さ
れない。
【0058】 可変キー加算および可変換字の両方において、バイト
C(BC)を変換しないことが重要である。このようにし
て、逆方向の復号化操作に同じ変換を用いることが可能
になる。要素190の変換されるブロックの各バイトと結
び付いた要素198の一連の質問が、どのようにしてバイ
ドCが変えられないまま直接要素200の対応出力バイト
になるかを示している。例えば、選択成分Cが1と等し
い場合、要素190のB1は要素200のb1と等しくなる。それ
以外は、要素200の残りのバイトは、S−ボックスWに
記載された換字プロトコールに従って、要素190の当初
値と異なる値を持つ。転置表の選択でも同じ手法が使用
できる、つまり1つのバイトを使用し、それを変えない
ままにしておくのである。
【0059】 暗号文のブロックを復号化するステップが、第12図に
示されている。復号化は本質的に第8図の暗号化ステッ
プの逆方向の反復であるから、ラウンド数がステップ21
0で先ず10にセットされる。復号化されるデータブロッ
クが選択され、10データバイトのブロックとして要素21
2に表される。復号化の最初のラウンドでは、要素212の
データは当初の暗号文である。そして、操作はステップ
214へ進み、選択成分Cをラウンド数より1つ大きい値
にセットする。質問216で、選択成分Cが11と等しいか
判断する。等しくなければ、操作はステップ218へ直行
し、データに対して最初の逆可変換字を実行する。逆可
変換字は第13図に詳しく示されている。最初の逆可変換
字218はマスク表メモリ110とS′−ボックスメモリ134
からのデータを使用する。質問216で、選択成分が11と
等しければ、ステップ220で選択成分を1にセットし、
操作は要素218の最初の逆可変換字へ進む。そして、操
作はステップ222へ進み、選択成分をラウンド数と等し
くし、その後、ステップ224で第2の逆可変換字を実行
する。
【0060】 ステップ224の第2逆可変換字の後、データは要素226
で逆可変エンクレーブ機能に付される。この機能は第14
および15図との関連で後で詳しく述べる。しかし、マス
ク表メモリ110からマスク3,Rが選択され、その値が、エ
ンクレーブ表メモリ128から使用される特定のエンクレ
ーブ表の選択に使用されることに注意すべきである。
【0061】 そして、操作はステップ228へ進み、選択成分を1つ
インクリメントし、質問230で、選択成分が11の値に到
達したか判断する。選択成分がまだ11の値に到達してい
なければ、操作はステップ232の第1逆可変キー加算へ
進む。選択成分が11の値に到達していれば、ステップ23
4で1の値にリセットし、操作はステップ234の第1逆可
変キー加算へ進む。第1逆可変キー加算はマスク表メモ
リ110とキー表メモリ116からのデータを用いてデータを
変換する。この操作は第16図に詳しく示されている。そ
して、操作はステップ236へ進んで、選択成分をラウン
ド数と等しくする。そしてデータは、ステップ238で第
2逆可変キー加算を受ける。選択成分の値の相違を除い
て、ステップ232の第1逆可変キー加算はステップ238の
第2逆可変キー加算と同一である。
【0062】 そして、操作はステップ240の逆可変転置へ進む。そ
して、データは、マスク表メモリ110からの項目と転置
表メモリ108から項目を用いた特定の逆可変転置に付さ
れる。逆可変転置は第17図との関連で詳しく述べる。
【0063】 そして、操作は質問242へ進む。復号化のラウンド数
が1の値に到達していれば、復号化はこれ以上行われ
ず、データの現状が平文出力としてステップ244で出力
される。ラウンド数が1の値にまだ到達していない合、
ステップ246でラウンド数を1つ減らす。そして、操作
はステップ212へ進んで、第1逆可変換字218、第2逆可
変換字224、逆可変エンクレーブ226、第1逆可変キー加
算232、第2逆可変キー加算238、そして逆可変転置240
によって、復号化のラウンドを更に実行する。
【0064】 逆可変換字が第13図により詳細に示されている。復号
化されるデータは要素250のバイトb1〜b10で表されてい
る。選択される逆換字ボックス(S′−ボックス)が、
bC XOR マスク4,Rによって定まる。これは、ZをbCと
等しくする第13図の要素252と、WをZ XOR マスク4,
Rと等しくする要素254で示されている。そして、Wは要
素256の特定逆換字ボックス(S′−ボックスW)の選
択に使用される。そして、要素250のブロックにおける
バイトbC以外の各バイトが、選択されたS′−ボックス
のプロトコールに従って代えられる。逆可変換字の結果
は、要素260の10バイトデータブロックB1〜B10になる。
バイトbCを代えない構成が復号化される要素250のデー
タの各バイトと関連したの一連の質問258で表されてい
る。Rが10である復号化の最初のラウンドで、b10は、
逆換字に使用されるS′−ボックスの選択に用いられる
と共に、逆換字時に変更されない。第8図に示された暗
号化プロセスでデータに対して実行される最終可変換字
の際に10番目のバイトが変更されないままになっている
ので、暗号化プロセスを逆に働かせて暗号文データを元
に戻すことができる。このことは、第16図の逆可変キー
加算にも当てはまる。
【0065】 第15図の逆可変エンクレーブで使用される特定のオー
トクレーブ機能と共に、逆可変エンクレーブ機能が第14
図に示されている。第14図で実行されるステップは、本
質的に第6図に示された暗号化の可変エンクレーブで行
われるステップの逆である。要素270の復号化されるデ
ータブロックは左の半ブロック272と、右の半ブロック2
74に分割される。これら2個の半ブロックは、要素276
でビット毎の排他的OR機能によって組み合わされて、次
の右半ブロック278を生成する。要素272の左半ブロック
は、先ず逆オートクレーブ変換E′ndによって左半ブロ
ック280に変換され、そして、逆オートクレーブ機能
E′ncによって左半ブロック282に変換される。そし
て、右半ブロック278は、要素284の排他的OR機能によっ
て、左半ブロック282と組み合わされて要素286の最終的
な左半ブロックを形成する。要素278の右半ブロック
は、先ず逆オートクレーブ変換E′nbによって右半ブロ
ック要素288に変換され、そして、逆オートクレーブ機
能E′naによって最終的な右半ブロック290に変換され
る。左半ブロック要素286と右半ブロック要素290が結合
して、最終的な10バイトブロック292を形成し、これが
逆エンクレーブ機能の結果になる。
【0066】 第14図の逆エンクレーブで使用される特定のオートク
レーブ機能が、1例として第15図に示されている。大
体、上記のようにエンクレーブ表が逆オートクレーブ機
能で使用される。しかし、項目は各列の下から上の順に
読み込まれ、最初の行の項目によって示される被変換バ
イトの値が、エンクレーブ表項目の2行目および3行目
で示される他の2つのバイトの値によって減じられる。
第7図との関連で使用されたオートクレーブ機能と同
様、逆エンクレーブで使用される逆オートクレーブ機能
の例が第15図に示されている。使用されるエンクレーブ
表の最終項目が第15図の変換で最初に使用される。この
項目は「2 5 3」で、これは5番目のバイト(B1
0)と3番目のバイト(B8)が2番目のバイト(B7)か
ら引かれて、2番目のバイトの新しい値を生成すること
を意味する。暗号化で使用されたエンクレーブ機能と同
様、計算はモジュラ計算で行われる。第15図で使用され
るエンクレーブ表の最下部から次に上の項目は「1 4
2」で、これは4番目のバイト(B9)と2番目のバイ
ト(B7)が1番目のバイト(B6)から引かれて、1番目
のバイトの新しい値を生成することを意味する。同様
に、3番目の項目は「4 2 1」で、これは2番目の
バイト(B7)と1番目のバイト(B6)が4番目のバイト
(B9)から引かれて、4番目のバイトの新しい値を生成
することを意味する。エンクレーブ表の次の項目は「5
3 4」で、これは3番目のバイト(B8)と4番目の
バイト(B9)が5番目のバイト(B10)から引かれて、
5番目のバイトの新しい値を生成することを意味する。
最後に、エンクレーブ表の最初の項目は「3 1 5」
で、これは逆オートクレーブ機能の最後に使用される。
この項目は1番目のバイト(B6)と5番目のバイト(B1
0)が3番目のバイト(B8)から引かれて、3番目のバ
イトの新しい値を生成することを意味する。これらすべ
てのモジュラ計算の結果が、バイトB6〜B10を含む最終
ブロックとして第15図に示されている。逆可変キー加算
が第16図に図表で示されている。逆可変キー加算用とし
てキー表メモリ116から選択される特定のキーは、バイ
トC(bCと呼ぶ)とマスク2,Rによって定まる。これ
は、値ZをbCと等しくする第16図の要素302と、WをZ
XOR マスク2,Rと等しくする要素304で示されてい
る。値Wは、逆可変キー加算のその特定のラウンド時で
の使用として、キー表メモリ116からキーを選択するの
に使用される。キーWの10バイトは第16図の要素306と
して示されている。その後、要素300のバイトのブロッ
クにおける各バイトが、排他的OR機能で、要素310の一
連の排他的ORを介してキーWの対応するバイトと組み合
わされる。例えば、b1 XOR キーW1はB1を生成する。
同様に、b2 XOR キーW2はB2を生成する。唯一の例外
は、変換されるブロック中のバイトCがキーWの対応バ
イトと組み合わされず、変更なしで直接BCになることで
ある。これは、変換される要素300のデータの各バイト
と関連した要素310の一連の質問で表されている。Cが
バイト数と等しい場合、そのバイトは対応キーバイトと
組み合わされない。逆可変キー加算のラウンドを経たデ
ータブロックが第16図の要素312として示されている。
第12図の逆可変転置を第17図のブロック図で詳しく説明
する。変換されるデータは要素320でバイトb1〜b10とし
て表されている。転置の実行に転置表メモリ108のどれ
かの表を選択するために、データの10バイトの値を要素
322でモジュラ計算を用いて合計し、要素324の値Zを生
成する。要素324で生成された値Zを、要素326のビット
毎の排他的OR機能で、マスク表メモリ110からのマスク
1,Rと組み合わせることによって値Wを生成する。例え
ば、復号化の最初のラウンドでは、要素326でマスク1,1
を使用して、Zとの排他的OR演算でWを生成する。
【0067】 そして、操作は要素328へ進み、第4図との関連で既
に示された転置表項目を単に逆に使用する標準逆転置
が、データブロックに対して、P′Wで表される転置表
Wからの指令を使用して実行される。逆転置操作された
データブロックが、第17図の要素330にバイトB1〜B10と
して示されている。暗号化プロセスで暗号化されるデー
タの10バイト全てを用いて、変換に使用する転置表を選
択したので、どの転置表を使用すべきか決定するために
暗号文の10バイト全てを再び合計することによって、同
じデータを復号化できる。これは、転置操作が単に値の
順序を並べ変えたから可能である。暗号化段階で使用さ
れた情報は、データの値を再度合計することによって抽
出できる。
【0068】 例 上記本発明の暗号化システムの実施例を使用した平文
データの10バイトブロックの暗号化例を詳細に示す。シ
ステムは転置表、換字表およびエンクレーブ表で初期化
しなければならない。この例で使用される、上記ガイド
ラインに従って生成された表は、それぞれ以下の表1〜
表3(表I)、表4〜表6(表II A)表7〜表9(表II
B)、および表10〜表14(表III)に示される。そし
て、キー表およびマスク表を作成するために10バイトの
初期キーが選択される。この例用として当初キーは次の
ように選択される。
【0069】 キー=27 115 21 1 12 41 2 92 17 81 当初キーの最初の5個の値を合計する(mod 128): (27+115+21+1+12)mod 128=176 mod 128=48 従って、転置表48を使用する。 当初キーの最後の5個の値を合計する(mod 16): (41+2+92+17+81)mod 16=233 mod 16=9 従って、換字表9を使用する。 キーをとる:27 115 21 1 12 41 2 92 17 81 換字(表9): 50 56 15 124 102 99 109 74 26 73 転置(表48): 56 74 50 73 109 15 102 26 124 99 現在のキーブロックの値3〜7を合計する(mod 32): (50+73+109+15+102)mod 32=349 Mod 32=29 従って、エンクレーブ表29を次のステップで使用する。 現在のキーブロック: 56 74 50 73 109 15 102 26 124 99 エンクレーブ(表29): 30 34 55 63 9 73 74 107 109 33 従って、Key0= 30 34 55 63 9 73 74 107 109 33
【0070】 当初キーを用いてキー表のKey0である第1のキーを作
成したことが理解されよう。上記ステップを再生して、
キー0を用いてキー1を生成し、キー1を用いてキー2
を生成し、最後にキー126を用いてキー127を生成する。
上記当初キーを使用して完成されたキー表は、後で表15
〜表17(表IV)に示される。
【0071】 次に、先に生成されたキー表を使用してマスク表を生
成する。第1のマスクであるマスク1の1番目のバイト
つまり1番目の値を生成するために、キー0〜キー31の
1番目のバイトの値を合計する(mod 128): 0+10+26+0+102+105+111+91+95+68+6+70 +95+67+55+39+109+23+39+31+120+50+46+71 +34+48+105+51+45+123+4+1=1840 mod 128 =48 従って、マスク1の1番目の値つまり1番目のバイトは
48である。
【0072】 マスク1の値2はキー0〜キー31のバイト2の値の合
計である(mod 128)。マスク1の値3はキー0〜キー3
1のバイト3の値の合計である(mod 128)。マスク1の
値4はキー0〜キー31のバイト4の値の合計である。マ
スク1の値5はキー0〜キー31のバイト5の値の合計で
ある(mod 128)。マスク1の値6はキー0〜キー31の
バイト6の値の合計である(mod 128)。マスク1の値
7はキー0〜キー31のバイト7の値の合計である(mod
128)。マスク1の値8はキー0〜キー31のバイト8の
値の合計である(mod 128)。マスク1の値9はキー0
〜キー31のバイト9の値の合計である(mod 128)。マ
スク1の値10はキー0〜キー31のバイト10の値の合計で
ある(mod 128)。
【0073】 同様に、マスク2の10個のバイトないし値がキー32〜
キー63から生成され、マスク3の値がキー64〜キー95か
ら生成され、マスク4の値がキー96〜キー127から生成
される。表15〜表17(表IV)のキー表から生成されて完
成されたマスク表を下に示す。
【0074】 マスク1=48 2 121 18 60 105 33 50 11 60 マスク2=26 78 24 72 69 13 77 43 9 99 マスク3=64 113 72 61 37 13 49 71 24 60 マスク4=104 62 69 87 18 31 102 101 32 125
【0075】 これでキーおよびマスク表が初期キー(いずれの表に
も含まれない)から生成されたので、これに加えて後で
示す表1〜表3(表I)、表4〜表6(表II A)表7〜
表9(表II B)、および表10〜表14(表III)の転置、
エンクレーブおよび換字表を用いてデータを暗号化でき
る。本発明のシステムのもとに、10の暗号化ラウンド
で、平文データの特定のブロックが暗号化される。
【0076】 ラウンド1 ブロック(BLOCK)=104 101 108 108 111 32 116 104 101 114 (a)可変転置。 ブロックのすべての値を加える(mod 128): 104+101+108+108+111+32+116+104+101+114=999 mod 128=103 ラウンド1用のマスク1の値(マスク1,1)=48 転置表=ブロックXORマスク1,1の合計:103 XOR 48=87 従って、転置用として転置表87を使用する。 転置前のブロック: 104 101 108 108 111 32 116 104 101 114 転置後のブロック: 108 104 101 101 104 114 32 108 111 116 (b)最初のキー加算。 ラウンド1用のマスク2の値(マスク2,1)=26 第1のキー=ブロック内の値1XORマスク2,1:108 XOR 26=118 従って、最初のキー加算用としてキー118を使用する。 キー加算前のブロック: 108 104 101 101 104 114 32 108 111 116 キー加算後のブロック: 108 113 85 74 105 102 85 91 124 55 (c)第2のキー加算。 第2のキー=ブロック内の値2XORマスク2,1:113 XOR 26=107 従って、第2のキー加算用としてキー107を使用する。 キー加算前のブロック: 108 113 85 74 105 102 85 91 124 55 キー加算後のブロック: 72 113 120 64 94 93 56 118 30 47 (d)可変エンクレーブ。 エンクレーブ表=マスク3,1の値(mod 32)=64 2 mod 32=0 従って、エンクレーブ用としてエンクレーブ表04を使用
する。 エンクレーブ前のブロック: 72 113 120 64 94 93 56 118 30 47 エンクレーブ後のブロック: 2 108 96 114 88 16 101 106 118 56 (e)最初の可変換字。 ラウンド1用のマスク4の値(マスク4,1)=104 第1の換字表=ブロック内の値1XORマスク4,1:2 XOR 104=10 従って、最初の換字用として換字表10を使用する。 換字前のブロック: 2 108 96 114 88 16 101 106 118 56 換字後のブロック: 2 60 34 59 75 98 127 61 29 73 (f)第2の可変換字。 第2の換字表=ブロック内の値2XORマスク4,1:60 XOR 104=4 従って、第2の換字用として換字表4を使用する。 換字前のブロック: 2 60 34 59 75 98 127 61 29 73 換字後のブロック: 103 60 82 74 18 38 11 49 50 110
【0077】 ラウンド2 ブロック=103 60 82 74 18 38 11 49 50 110 (a)可変転置。 ブロックのすべての値を加える(mod 128): 103+60+82+74+18+38+11+49+50+110=595 mod 128=83 ラウンド2用のマスク1の値(マスク1,2)=2 転置表=ブロックXORマスク1,2の合計:83 XOR 2=81 従って、転置用として転置表81を使用する。 転置前のブロック: 103 60 82 74 18 38 11 49 50 110 転置後のブロック: 103 60 50 38 18 11 49 74 82 110 (b)最初のキー加算。 ラウンド2用のマスク2の値(マスク2,2)=78 第1のキー=ブロック内の値2XORマスク2,2:60 XOR 78=114 従って、最初のキー加算用としてキー114を使用する。 キー加算前のブロック: 103 60 50 38 18 11 49 74 82 110 キー加算後のブロック: 52 60 9 5 68 30 46 117 52 11 (c)第2のキー加算。 第2のキー=ブロック内の値3XORマスク2,2:9 XOR 78=71 従って、第2のキー加算用としてキー71を使用する。 キー加算前のブロック: 52 60 9 5 68 30 46 117 52 11 キー加算後のブロック: 35 108 9 12 107 21 112 115 84 112 (d)可変エンクレーブ。 エンクレーブ表=マスク3,2の値(mod 32)=113 mod 32=17 従って、エンクレーブ用としてエンクレーブ表17を使用
する。 エンクレーブ前のブロック: 35 108 9 12 107 21 112 115 84 112 エンクレーブ後のブロック: 43 37 14 65 92 20 110 59 17 111 (e)最初の可変換字。 ラウンド2用のマスク4の値(マスク4,2)=62 第1の換字表=ブロック内の値2XORマスク4,2:37 XOR 62=11 従って、最初の換字用として換字表11を使用する。 換字前のブロック: 43 37 14 65 92 20 110 59 17 111 換字後のブロック: 46 37 68 9 126 35 73 8 83 6 (f)第2の可変換字。 第2の換字表=ブロック内の値3XORマスク4,2:68 XOR 62=10 従って、第2の換字用として換字表10を使用する。 換字前のブロック: 46 37 68 9 126 35 73 8 83 6 換字後のブロック: 99 122 68 9 114 0 53 51 92 49
【0078】 ラウンド3 ブロック=99 122 68 9 114 0 53 51 92 49 (a)可変転置。 ブロックのすべての値を加える(mod 128): 99+122+68+9+114+0+53+51+92+49=657 mod 128=17 ラウンド3用のマスク1の値(マスク1,3)=121 転置表=ブロックXORマスク1,3の合計:17 XOR 121=104 従って、転置用として転置表104を使用する。 転置前のブロック: 99 122 68 9 114 0 53 51 92 49 転置後のブロック: 68 53 51 114 122 0 9 99 49 92 (b)最初のキー加算。 ラウンド3用のマスク2の値(マスク2,3)=24 第1のキー=ブロック内の値3XORマスク2,3:51 XOR 24=43 従って、最初のキー加算用としてキー43を使用する。 キー加算前のブロック: 68 53 51 114 122 0 9 99 49 92 キー加算後のブロック: 84 59 51 126 4 30 98 119 73 113 (c)第2のキー加算。 第2のキー=ブロック内の値4XORマスク2,3:126 XOR 24=102 従って、第2のキー加算用としてキー102を使用する。 キー加算前のブロック: 84 59 51 126 4 30 98 119 73 113 キー加算後のブロック: 19 31 85 126 117 39 113 77 17 82 (d)可変エンクレーブ。 エンクレーブ表=マスク3,3の値(mod 32)=72 mod 32=8 従って、エンクレーブ用としてエンクレーブ表8を使用
する。 エンクレーブ前のブロック: 19 31 85 126 117 39 113 77 17 82 エンクレーブ後のブロック: 127 113 18 67 108 90 103 103 96 85 (e)最初の可変換字。 ラウンド3用のマスク4の値(マスク4,3)=69 第1の換字表=ブロック内の値3XORマスク4,3:18 XOR 69=7 従って、最初の換字用として換字表7を使用する。 換字前のブロック: 127 113 18 67 108 90 103 103 96 85 換字後のブロック: 76 38 18 30 46 28 71 71 60 112 (f)第2の可変換字。 第2の換字表=ブロック内の値4XORマスク4,3:30 XOR 69=11 従って、第2の換字用として換字表11を使用する。 換字前のブロック: 76 38 18 30 46 28 71 71 60 112 換字後のブロック: 3 100 107 30 13 54 58 58 36 14
【0079】 ラウンド4 ブロック=3 100 107 30 13 54 58 58 36 14 (a)可変転置。 ブロックのすべての値を加える(mod 128): 3+100+107+30+13+54+58+58+36+14=473 mod 128=89 ラウンド4用のマスク1の値(マスク1,4)=18 転置表=ブロックXORマスク1,4の合計:89 XOR 18=75 従って、転置用として転置表75を使用する。 転置前のブロック: 3 100 107 30 13 54 58 58 36 14 転置後のブロック: 30 58 14 100 54 13 36 3 58 107 (b)最初のキー加算。 ラウンド4用のマスク2の値(マスク2,4)=72 第1のキー=ブロック内の値4XORマスク2,4:100 XOR 72=44 従って、最初のキー加算用としてキー44を使用する。 キー加算前のブロック: 30 58 14 100 54 13 36 3 58 107 キー加算後のブロック: 99 35 0 100 36 104 12 71 25 43 (c)第2のキー加算。 第2のキー=ブロック内の値5XORマスク2,4:36 XOR 72=108 従って、第2のキー加算用としてキー108を使用する。 キー加算前のブロック: 99 35 0 100 36 104 12 71 25 43 キー加算後のブロック: 77 95 115 53 36 35 19 119 56 69 (d)可変エンクレーブ。 エンクレーブ表=マスク3,4の値(mod 32)=61 mod 32=29 従って、エンクレーブ用としてエンクレーブ表29を使用
する。 エンクレーブ前のブロック: 77 95 115 53 36 35 19 119 56 69 エンクレーブ後のブロック: 117 76 52 98 12 13 113 26 108 92 (e)最初の可変換字。 ラウンド4用のマスク4の値(マスク4,4)=87 第1の換字表=ブロック内の値4XORマスク4,4:98 XOR 87=5 従って、最初の換字用として換字表5を使用する。 換字前のブロック: 117 76 52 98 12 13 113 26 108 92 換字後のブロック: 64 80 83 98 58 48 50 31 49 43 (f)第2の可変換字。 第2の換字表=ブロック内の値5XORマスク4,4:58 XOR 87=13 従って、第2の換字用として換字表13を使用する。 換字前のブロック: 64 80 83 98 58 48 50 31 49 43 換字後のブロック: 122 28 81 29 58 127 22 16 26 49
【0080】 ラウンド5 ブロック=122 28 81 29 58 127 22 16 26 49 (a)可変転置。 ブロックのすべての値を加える(mod 128): 122+28+81+29+58+127+22+16+26+49=558 mod 128=46 ラウンド5用のマスク1の値(マスク1,5)=60 転置表=ブロックXORマスク1,5の合計:46 XOR 60=18 従って、転置用として転置表18を使用する。 転置前のブロック: 122 28 81 29 58 127 22 16 26 49 転置後のブロック: 49 122 127 81 28 16 26 22 29 58 (b)最初のキー加算。 ラウンド5用のマスク2の値(マスク2,5)=69 第1のキー=ブロック内の値5XORマスク2,5:28 XOR 69=89 従って、最初のキー加算用としてキー89を使用する。 キー加算前のブロック: 49 122 127 81 28 16 26 22 29 58 キー加算後のブロック: 40 118 40 87 28 74 102 101 88 57 (c)第2のキー加算。 第2のキー=ブロック内の値6XORマスク2,5:74 XOR 69=15 従って、第2のキー加算用としてキー15を使用する。 キー加算前のブロック: 40 118 40 87 28 74 102 101 88 57 キー加算後のブロック: 15 50 22 72 90 74 7 76 15 92 (d)可変エンクレーブ。 エンクレーブ表=マスク3,5の値(mod 32)=37 mod 32=5 従って、エンクレーブ用としてエンクレーブ表5を使用
する。 エンクレーブ前のブロック: 15 50 22 72 90 74 7 76 15 92 エンクレーブ後のブロック: 98 69 120 65 54 18 6 17 59 14 (e)最初の可変換字。 ラウンド5用のマスク4の値(マスク4,5)=18 第1の換字表=ブロック内の値5XORマスク4,5:54 XOR 18=4 従って、最初の換字用として換字表4を使用する。 換字前のブロック: 98 69 120 65 54 18 6 17 59 14 換字後のブロック: 38 0 92 68 54 89 122 4 74 106 (f)第2の可変換字。 第2の換字表=ブロック内の値6XORマスク4,5:89 XOR 18=11 従って、第2の換字用として換字表11を使用する。 換字前のブロック: 38 0 92 68 54 89 122 4 74 106 換字後のブロック: 100 24 126 122 108 89 39 45 93 28
【0081】 ラウンド6 ブロック=100 24 126 122 108 89 39 45 93 28 (a)可変転置。 ブロックのすべての値を加える(mod 128): 100+24+126+122+108+89+39+45+93+28=774 mod 128=6 ラウンド6用のマスク1の値(マス1,6)=105 転置表=ブロックXORマスク1,6の合計:6 XOR 105=111 従って、転置用として転置表111を使用する。 転置前のブロック: 100 24 126 122 108 89 39 45 93 28 転置後のブロック: 126 45 122 89 93 108 24 28 39 100 (b)最初のキー加算。 ラウンド6用のマスク2の値(マスク2,6)=13 第1のキー=ブロック内の値6XORマスク2,6:108 XOR 13=97 従って、最初のキー加算用としてキー97を使用する。 キー加算前のブロック: 126 45 122 89 93 108 24 28 39 100 キー加算後のブロック: 39 78 56 40 24 108 99 80 4 77 (c)第2のキー加算。 第2のキー=ブロック内の値7XORマスク2,6:99 XOR 13=110 従って、第2のキー加算用としてキー110を使用する。 キー加算前のブロック: 39 78 56 40 24 108 99 80 4 77 キー加算後のブロック: 94 63 13 94 121 33 99 70 118 11 (d)可変エンクレーブ。 エンクレーブ表=マスク3,6の値(mod 32)=13=mod 32=13 従って、エンクレーブ用としてエンクレーブ表13を使用
する。 エンクレーブ前のブロック: 94 63 13 94 121 33 99 70 118 11 エンクレーブ後のブロック: 89 102 105 113 44 117 86 106 57 50 (e)最初の可変換字。 ラウンド6用のマスク4の値(マスク4,6)=31 第1の換字表=ブロック内の値6XORマスク4,6:117 XOR 31=10 従って、最初の換字用として換字表10を使用する。 換字前のブロック: 89 102 105 113 44 117 86 106 57 50 換字後のブロック: 78 65 30 125 17 117 57 61 89 38 (f)第2の可変換字。 第2の換字表=ブロック内の値7XORマスク4,6:57 XOR 31=6 従って、第2の換字用として換字表6を使用する。 換字前のブロック: 78 65 30 125 17 117 57 61 89 38 換字後のブロック: 6 92 76 30 120 66 57 51 58 80
【0082】 ラウンド7 ブロック=6 92 76 30 120 66 57 51 58 80 (a)可変転置。 ブロックのすべての値を加える(mod 128): 6+92+76+30+120+66+57+51+58+80=636 mod 128=124 ラウンド7用のマスク1の値(マスク1,7)=33 転置表=ブロックXORマスク1,7の合計:124 XOR 33=93 従って、転置用として転置表93を使用する。 転置前のブロック: 6 92 76 30 120 66 57 51 58 80 転置後のブロック: 66 57 120 92 30 80 58 51 6 76 (b)最初のキー加算。 ラウンド7用のマスク2の値(マスク2,7)=77 第1のキー=ブロック内の値7XORマスク2,7:58 XOR 77=119 従って、最初のキー加算用としてキー119を使用する。 キー加算前のブロック: 66 57 120 92 30 80 58 51 6 76 キー加算後のブロック: 55 9 30 92 21 117 58 32 16 97 (c)第2のキー加算。 第2のキー=ブロック内の値8XORマスク2,7:32 XOR 77=109 従って、第2のキー加算用としてキー109を使用する。
キー加算前のブロック: 55 9 30 92 21 117 58 32 16 97 キー加算後のブロック: 37 117 11 121 62 60 69 32 110 42 (d)可変エンクレーブ。 エンクレーブ表=マスク3,7の値(mod 32)=49 mod 32=17 従って、エンクレーブ用としてエンクレーブ表17を使用
する。 エンクレーブ前のブロック: 37 117 11 121 62 60 69 32 110 42 エンクレーブ後のブロック: 80 95 116 23 78 60 94 113 112 2 (e)最初の可変換字。 ラウンド7用のマスク4の値(マスク4,7)=102 第1の換字表=ブロック内の値7XORマスク4,7:94 XOR 102=8 従って、最初の換字用として換字表8を使用する。 換字前のブロック: 80 95 116 23 78 60 94 113 112 2 換字後のブロック: 1 9 24 39 52 98 94 99 108 35 (f)第2の可変換字。 第2の換字表=ブロック内の値8XORマスク4,7:99 XOR 102=5 従って、第2の換字用として換字表5を使用する。 換字前のブロック: 1 9 24 39 52 98 94 99 108 35 換字後のブロック: 85 98 36 57 83 51 90 99 49 9
【0083】 ラウンド8 ブロック=85 98 36 57 83 51 90 99 49 9 (a)可変転置。 ブロックのすべての値を加える(mod 128): 85+98+36+57+83+51+90+99+49+9=657 mod 128=17 ラウンド8用のマスク1の値(マスク1,8)=50 転置表=ブロックXORマスク1,8の合計:17 XOR 50=35 従って、転置用として転置表35を使用する。 転置前のブロック: 85 98 36 57 83 51 90 99 49 9 転置後のブロック: 98 49 90 83 99 36 57 51 85 9 (b)最初のキー加算。 ラウンド8用のマスク2の値(マスク2,8)=43 第1のキー=ブロック内の値8XORマスク2,8:51 XOR 43=24 従って、最初のキー加算用としてキー24を使用する。 キー加算前のブロック: 98 49 90 83 99 36 57 51 85 9 キー加算後のブロック: 64 86 38 82 89 88 18 51 79 87 (c)第2のキー加算。 第2のキー=ブロック内の値9XORマスク2,8:79 XOR 43=100 従って、第2のキー加算用としてキー100を使用する。 キー加算前のブロック: 64 86 38 82 89 88 18 51 79 87 キー加算後のブロック: 68 55 56 89 35 4 56 79 79 83 (d)可変エンクレーブ。 エンクレーブ表=マスク3,8の値(mod 32)=71 mod 32=7 従って、エンクレーブ用としてエンクレーブ表7を使用
する。 エンクレーブ前のブロック: 68 55 56 89 35 4 56 79 79 83 エンクレーブ後のブロック: 7 63 70 6 113 40 96 62 19 61 (e)最初の可変換字。 ラウンド8用のマスク4の値(マスク4,8)=101 第1の換字表=ブロック内の値8XORマスク4,8:62 XOR 101=11 従って、最初の換字用として換字表11を使用する。 換字前のブロック: 7 63 70 6 113 40 96 62 19 61 換字後のブロック: 87 48 91 121 80 94 52 62 110 70 (f)第2の可変換字。 第2の換字表=ブロック内の値9XORマスク4,8:110 XOR 101=11 従って、第2の換字用として換字表11を使用する。 換字前のブロック: 87 48 91 121 80 94 52 62 110 70 換字後のブロック: 25 124 95 23 67 88 102 79 110 91
【0084】 ラウンド9 ブロック=25 124 95 23 67 88 102 79 110 91 (a)可変転置。 ブロックのすべての値を加える(mod 128): 25+124+95+23+67+88+102+79+110+91=804 mod 128=36 ラウンド9用のマスク1の値(マスク1,9)=11 転置表=ブロックXORマスク1,9の合計:36 XOR 11=47 従って、転置用として転置表47を使用する。 転置前のブロック: 25 124 95 23 67 88 102 79 110 91 転置後のブロック: 91 95 124 79 88 23 25 102 110 67 (b)最初のキー加算。 ラウンド9用のマスク2の値(マスク2,9)=9 第1のキー=ブロック内の値9XORマスク2,9:110 XOR 9=103 従って、最初のキー加算用としてキー103を使用する。 キー加算前のブロック: 91 95 124 79 88 23 25 102 110 67 キー加算後のブロック: 80 72 99 87 98 39 46 44 110 44 (c)第2のキー加算。 第2のキー=ブロック内の値10XORマスク2,9:44 XOR 9=37 従って、第2のキー加算用としてキー37を使用する。 キー加算前のブロック: 80 72 99 87 98 39 46 44 110 44 キー加算後のブロック: 71 120 20 6 114 89 109 32 69 44 (d)可変エンクレーブ。 エンクレーブ表=マスク3,9の値(mod 32)=24 mod 32=24 従って、エンクレーブ用としてエンクレーブ表24を使用
する。 エンクレーブ前のブロック: 71 120 20 114 89 109 32 69 44 エンクレーブ後のブロック: 41 71 57 98 55 2 41 99 106 92 (e)最初の可変換字。 ラウンド9用のマスク4の値(マスク4,9)=32 第1の換字表=ブロック内の値9XORマスク4,9:106 XOR 32=10 従って、最初の換字用として換字表10を使用する。 換字前のブロック: 41 71 57 98 55 2 41 99 106 92 換字後のブロック: 104 42 89 39 72 31 104 10 106 67 (f)第2の可変換字。 第2の換字表=ブロック内の値10XORマスク4,9:67 XOR 32=3 従って、第2の換字用として換字表3を使用する。 換字前のブロック: 104 42 89 39 72 31 104 10 106 67 換字後のブロック: 24 49 88 105 94 71 24 124 125 67
【0085】 ラウンド10 ブロック=24 49 88 105 94 71 24 124 125 67 (a)可変転置。 ブロックのすべての値を加える(mod 128): 24+49+88+105+94+71+24+124+125+67=771 mod 128=3 ラウンド10用のマスク1の値(マスク1,10)=60 転置表=ブロックXORマスク1,10の合計:3 XOR 60=63 従って、転置用として転置表63を使用する。 転置前のブロック: 24 49 88 105 94 71 24 124 125 67 転置後のブロック: 67 124 105 88 125 24 24 94 49 71 (b)最初のキー加算。 ラウンド10用のマスク2の値(マスク2,10)=99 第1のキー=ブロック内の値10XORマスク2,10:71 XOR 99=36 従って、最初のキー加算用としてキー36を使用する。 キー加算前のブロック: 67 124 105 88 125 24 24 94 49 71 キー加算後のブロック: 110 9 114 70 70 96 91 117 12 71 (c)第2のキー加算。 第2のキー=ブロック内の値10XORマスク2,10:71 XOR 99=36 従って、第2のキー加算用としてキー36を使用する。 キー加算前のブロック: 110 9 114 70 70 96 91 117 12 71 キー加算後のブロック: 67 124 105 88 125 24 24 94 49 71 (d)可変エンクレーブ。 エンクレーブ表=マスク3,10の値(mod 32)=60 mod 32=28 従って、エンクレーブ用としてエンクレーブ表28を使用
する。 エンクレーブ前のブロック: 67 124 105 88 125 24 24 94 49 71 エンクレーブ後のブロック: 36 31 0 91 41 84 71 38 87 122 (e)最初の可変換字。 ラウンド10用のマスク4の値(マスク4,10)=125 第1の換字表=ブロック内の値10XORマスク4,10:122 XOR 125=7 従って、最初の換字用として換字表7を使用する。 換字前のブロック: 36 31 0 91 41 84 71 38 87 122 換字後のブロック: 90 27 11 41 114 117 56 33 72 122 (f)第2の可変換字。 第2の換字表=ブロック内の値10XORマスク4,10:122 XOR 125=7 従って、第2の換字用として換字表7を使用する。 換字前のブロック: 90 27 11 41 114 117 56 33 72 122 換字後のブロック: 28 4 87 114 88 23 122 105 44 122 伝送されるブロック: 28 4 87 114 88 23 122 105 44 122 本発明による10ラウンドの暗号化の結果、平文ブロッ
クは以下のように暗号文ブロックに変換された。 平文: 110 111 32 116 101 115 116 115 32 112 暗号文: 28 4 87 114 88 23 122 105 44 122
【0086】 以上、この発明の現在のところ好適な実施例を記載し
たが、付加された請求項の範囲内で別の実施が可能であ
ることを理解されたい。
【0087】
【0088】
【0089】
【0090】
【0091】
【0092】
【0093】
【0094】
【0095】
【0096】
【0097】
【0098】
【0099】
【0100】
【0101】
【0102】
【0103】 図面の簡単な説明
【図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図の復号化プロセスで使用される逆可変転置のブロ
ック図である
フロントページの続き (56)参考文献 特開 昭61−91685(JP,A) 特開 昭61−54734(JP,A) 特開 昭56−40343(JP,A) 特開 昭58−145980(JP,A)

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】電子デジタルデータを1つの形から他の形
    に暗号変換する、以下の工程からなる方法、 a.所定の暗号機能と関連した少なくとも1個の変換表を
    メモリに設定し、前記表は前記機能に従ってデータの所
    定の変換を夫々指示する複数のアドレス可能な項目を含
    む; b.1個以上のキーに基づく決定因をメモリに設定する; c.前記キーに基づく決定因の1つにある特定情報に基づ
    いて前記変換表の前記項目の1つを選択する; d.前記変換表の前記選択された項目の指示に従った前記
    機能によって前記データを暗号変換する; e.複数のマルチバイトキー項目を持ったキー表をメモリ
    に設定する; f.変換用としてデータのマルチバイトブロックを選択す
    る; g.データブロックの少なくとも1個のバイトの情報にも
    とづいてキー表から項目を選択する; h.選択されたキーの各バイトをデータブロックの対応バ
    イトと算術的に組み合わせる、但し、キー表から項目を
    選択するのに使用されるデータブロックのバイトは変更
    されない;そして i.上記工程(g)および(h)を複数ラウンド繰り返
    す。
  2. 【請求項2】さらに以下の工程からなる請求項1の方
    法、 j.当初キーを設定する; k.前記当初キーにある特定情報に基づいて前記変換表の
    前記項目を少なくとも1つ選択する; l.前記変換表の前記選択された項目の指示に従った前記
    機能によって前記当初キーを変換する; m.前記変換された当初キーを項目としてキー表メモリに
    格納する; n.当初キーまたはキー表メモリに格納されたキーにある
    特定情報に基づいて前記変換表の前記項目を少なくとも
    1つ選択する; o.前記変換表の前記選択された項目の指示に従った前記
    機能によって上記工程(n)で使用されたキーを変換す
    る; p.前記変換されたキーを別の項目としてキー表メモリに
    格納する;そして q.前記キー表メモリが所望の複数のキーを格納するまで
    上記工程(n)〜(p)を繰り返し実行する。
  3. 【請求項3】さらに以下の工程からなる請求項1の方
    法、 j.複数のバイトを持った当初キーを設定する; k.それぞれが所定の暗号機能と関連した複数の変換表を
    メモリに設定し、前記表は前記機能に従ってデータの所
    定の変換を指示する複数のアドレス可能な項目を夫々含
    む; l.前記当初キーにある特定情報に基づいて前記変換表夫
    々の前記項目を少なくとも1つ順次選択する; m.前記変換表の前記選択された項目の指示に従った前記
    機能によって前記当初キーを変換する; n.前記変換された当初キーを項目としてキー表メモリに
    格納する; o.キー表メモリに格納された少なくとも1つのキーにあ
    る特定情報に基づいて前記変換表夫々の前記項目を少な
    くとも1つ順次選択する; p.前記変換表の前記選択された項目の指示に従った前記
    機能によって上記工程(o)で使用されたキーを変換す
    る; q.前記変換されたキーを別の項目としてキー表メモリに
    格納する;そして r.前記キー表メモリが所望の複数のキーを格納するまで
    上記工程(o)〜(q)を繰り返し実行する。
  4. 【請求項4】前記工程(i)が、上記工程(g)および
    (h)を複数ラウンド、キー表から項目を選択するため
    にラウンド毎にデータブロック中の異なるバイトを用い
    て繰り返す工程であることを特徴とする請求項1の方
    法。
  5. 【請求項5】それぞれがキー表の2個以上の値の算術的
    組合せの結果である複数の項目を持った決定因表をキー
    表から生成し、キー表から項目を選択するために前記決
    定因表の項目を、変換されるデータブロックの1つの値
    と組み合わせる工程を更に含む請求項1または請求項4
    の方法。
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 JPH05501925A (ja) 1993-04-08
JP3188940B2 true 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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005534965A (ja) * 2002-07-27 2005-11-17 エクストリーム セキュリティー ソリューションズ リミテッド リミテッド ライアビリティ カンパニー 暗号化及び復号化装置及び方法
JP2010529496A (ja) * 2007-06-05 2010-08-26 オリダオ 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化方法およびデバイス

Families Citing this family (95)

* 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
AU2076695A (en) * 1994-03-23 1995-10-09 Chantilley Corporation Limited Apparatus for generating encryption/decryption look-up tables using a session key
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 Государственное унитарное предприятие "Специализированный центр программных систем "Спектр" Способ шифрования информации, представленной двоичным кодом
US6182216B1 (en) 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
JP3092567B2 (ja) * 1997-10-31 2000-09-25 日本電気株式会社 暗号鍵の生成方法および装置
CA2312358A1 (en) * 1997-12-01 1999-06-10 Siemens Aktiengesellschaft Method for reducing memory space requirement for an electronic first key, and arrangement for encryption and decryption
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
US8457302B1 (en) * 1998-05-18 2013-06-04 Giesecke & Devrient Gmbh Access-controlled data storage medium
US6644696B2 (en) * 1998-10-23 2003-11-11 Coinstar, Inc. Coin-discriminator voucher anti-counterfeiting method and apparatus
DE69932740T2 (de) * 1998-12-30 2006-12-07 Nokia Corp. Verfahren und vorrichtung zur kryptographischen datenverarbeitung
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
EP1281254A4 (en) * 2000-04-20 2003-06-04 Noel D Matchett 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
US7564970B2 (en) * 2004-08-12 2009-07-21 Cmla, Llc Exponential data transform to enhance security
US7577250B2 (en) * 2004-08-12 2009-08-18 Cmla, Llc Key derivation functions to enhance security
US8077861B2 (en) * 2004-08-12 2011-12-13 Cmla, Llc Permutation data transform to enhance security
EP1351430B1 (en) * 2002-04-03 2005-10-05 Matsushita Electric Industrial Co., Ltd. Expansion key generating device, encryption device and encryption system
JP4515716B2 (ja) * 2002-04-03 2010-08-04 パナソニック株式会社 拡大鍵生成装置、暗号化装置および暗号化システム
EP1504560A4 (en) * 2002-04-30 2007-11-28 Carl Alko Meijer PROCESS FOR PROTECTING CRYPTOGRAPHIC PROCEDURES WITH THE SECRET KEY
US20040131182A1 (en) * 2002-09-03 2004-07-08 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
CN1836415A (zh) * 2003-08-13 2006-09-20 皇家飞利浦电子股份有限公司 用于数字传输系统的加密方法和解码方法
DE10345378B4 (de) * 2003-09-30 2010-08-12 Infineon Technologies Ag Verfahren und Vorrichtung zur Ver-/Entschlüsselung
ATE472769T1 (de) * 2003-11-16 2010-07-15 Sandisk Il Ltd Verbesserte natürliche montgomery- exponentenmaskierung
JP4696449B2 (ja) * 2004-01-09 2011-06-08 ソニー株式会社 暗号化装置およびその方法
US7539305B2 (en) * 2004-03-05 2009-05-26 International Business Machines Corporation Schryption method and device
EP2131315A3 (en) 2004-03-12 2011-01-26 Ingenia Technology Limited Authenticity verification by large scale illumination
BRPI0508635A (pt) 2004-03-12 2007-08-07 Ingenia Technology Ltd dispositivo de impressão, e, aparelhos e métodos para criar artigos autenticáveis e para verificar a autenticidade de artigos
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
RU2417448C2 (ru) * 2005-07-27 2011-04-27 Инджениа Холдингс Лимитед Верификация аутентичности
US20070043977A1 (en) * 2005-08-22 2007-02-22 Moxa Technologies Co., Ltd. [program encryption method]
EP1969525A1 (en) 2005-12-23 2008-09-17 Ingenia Holdings (UK)Limited 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
GB2466465B (en) 2008-12-19 2011-02-16 Ingenia Holdings Authentication
GB2466311B (en) * 2008-12-19 2010-11-03 Ingenia Holdings Self-calibration of a matching algorithm for determining authenticity
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
US9396338B2 (en) 2013-10-15 2016-07-19 Intuit Inc. Method and system for providing a secure secrets proxy
US9384362B2 (en) 2013-10-14 2016-07-05 Intuit Inc. Method and system for distributing secrets
US9467477B2 (en) 2013-11-06 2016-10-11 Intuit Inc. Method and system for automatically managing secrets in multiple data security jurisdiction zones
US9444818B2 (en) 2013-11-01 2016-09-13 Intuit Inc. Method and system for automatically managing secure communications in multiple communications jurisdiction zones
US9894069B2 (en) 2013-11-01 2018-02-13 Intuit Inc. Method and system for automatically managing secret application and maintenance
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
KR20190131022A (ko) 2017-02-03 2019-11-25 파세토, 인크. 키잉된 디바이스들에서의 데이터 스토리지에 대한 시스템들 및 방법들
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
US10902142B2 (en) * 2017-10-09 2021-01-26 Ceruleant Systems, Llc Methods and systems for encrypting data using object-based screens
US10635829B1 (en) 2017-11-28 2020-04-28 Intuit Inc. Method and system for granting permissions to parties within an organization
CA3083988A1 (en) * 2017-12-01 2019-06-06 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
KR20210018217A (ko) 2018-04-17 2021-02-17 파세토, 인크. 실시간 피드백이 있는 디바이스 프레젠테이션
US11838402B2 (en) 2019-03-13 2023-12-05 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
US3958081A (en) * 1975-02-24 1976-05-18 International Business Machines Corporation Block cipher system for data security
US3962539A (en) * 1975-02-24 1976-06-08 International Business Machines Corporation Product block cipher system for data security
US4255811A (en) * 1975-03-25 1981-03-10 International Business Machines Corporation Key controlled block cipher cryptographic system
US4074066A (en) * 1976-04-26 1978-02-14 International Business Machines Corporation Message verification and transmission error detection by block chaining
US4078152A (en) * 1976-04-26 1978-03-07 International Business Machines Corporation Block-cipher cryptographic system with 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
JP2005534965A (ja) * 2002-07-27 2005-11-17 エクストリーム セキュリティー ソリューションズ リミテッド リミテッド ライアビリティ カンパニー 暗号化及び復号化装置及び方法
JP2010529496A (ja) * 2007-06-05 2010-08-26 オリダオ 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化方法およびデバイス
JP2014139687A (ja) * 2007-06-05 2014-07-31 Oridao 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化デバイス
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
WO1991003113A1 (en) 1991-03-07
EP0489742B1 (en) 1997-11-19
JPH05501925A (ja) 1993-04-08
ATE160476T1 (de) 1997-12-15
DE69031736D1 (de) 1998-01-02
AU6043190A (en) 1991-04-03
AU635466B2 (en) 1993-03-18
DE69031736T2 (de) 1998-06-04
EP0489742A1 (en) 1992-06-17
EP0489742A4 (en) 1993-03-17
US5003596A (en) 1991-03-26
CA2064769A1 (en) 1991-02-18
CA2064769C (en) 2000-02-08

Similar Documents

Publication Publication Date Title
JP3188940B2 (ja) 暗号化システム
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US5222139A (en) Cryptographic method and apparatus
KR100435052B1 (ko) 암호화장치
US5745577A (en) Symmetric cryptographic system for data encryption
US6189095B1 (en) Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
US20020048364A1 (en) Parallel block encryption method and modes for data confidentiality and integrity protection
US6031911A (en) Practical S box design
JP3180836B2 (ja) 暗号通信装置
Masoodi et al. Symmetric algorithms I
Natarajan et al. A novel approach for data security enhancement using multi level encryption scheme
Robshaw Block ciphers
Blaze et al. The MacGuffin block cipher algorithm
KR20030019365A (ko) 메시지 인증 코드에 대한 키 정수 치환 발생 방법 및 장치
Michener THE “GENERALIZED ROTOR” CRYPTOGRAPHIC OPERATOR AND SOME OF ITS APPLICATIONS
CN115987490A (zh) 一种适用于arx结构的轻量级分组密码算法白盒化构造方法
JPH1117673A (ja) 共通鍵暗号通信方法及びその通信ネットワーク
JPH0738558A (ja) 暗号化装置、及びそれを用いた通信システム及びその方法
Putra et al. Performance Analysis Of The Combination Of Advanced Encryption Standard Cryptography Algorithms With Luc For Text Security
JPH09269727A (ja) 暗号化方法および暗号化装置
KR100350207B1 (ko) 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법
Mukhopadhyay Cryptography: Advanced encryption standard (aes)
KR100200531B1 (ko) 암호화 방법 및 시스템
Hattab et al. Developing the Complexity and Security of the Twofish Algorithm Through a New Key Scheduling Design
Eom et al. Related-Key Amplified Boomerang Attack on Full-Round MM-128

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