JP3188940B2 - Encryption system - Google Patents

Encryption system

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
table
block
mask
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.)
Expired - Lifetime
Application number
JP51035390A
Other languages
Japanese (ja)
Other versions
JPH05501925A (en
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
Priority to US07/395,448 priority Critical patent/US5003596A/en
Priority to US395,448 priority
Application filed by クリプテック・インク filed Critical クリプテック・インク
Publication of JPH05501925A publication Critical patent/JPH05501925A/ja
Application granted granted Critical
Publication of JP3188940B2 publication Critical patent/JP3188940B2/en
Anticipated expiration legal-status Critical
Application status is Expired - Lifetime legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • 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 communication
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communication 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

Description

【発明の詳細な説明】 DETAILED DESCRIPTION OF THE INVENTION

【0001】 発明の背景 1.発明の分野 この発明は暗号法、より具体的には記憶ないし伝送されたデータを解読攻撃から保護するためのシステムに関する。 [0001] The present invention cryptography FIELD OF BACKGROUND 1. invention, more particularly to a system for protecting stored or transmitted data from the decryption attacks.

【0002】 2.従来技術の説明 秘密または精密性の情報を理解可能な形から理解不能な形に変換するための種々の暗号システムの使用が確立されている。 [0002] 2. use of various cryptographic systems for converting from the prior art described secret or precision of the information understandable form impossible shape understanding has been established. 情報またはデータの理解可能な形は「平文」と呼ばれ、理解不能な形は「暗号文」と呼ばれる。 Understandable form of information or data is called "plaintext", unintelligible form is called "ciphertext".
平文から暗号文への変換プロセスは「暗号化」または「暗号変換」と呼ばれ、逆のプロセスは「復号化」または「復号変換」と呼ばれる。 Conversion process from plaintext to ciphertext is called "encryption" or "encryption conversion", the reverse process is called "decryption" or "decoded transform". ほとんどの暗号システムは、キーと呼ばれる秘密値を利用する。 Most of the encryption system, to use a secret value called the key. 暗号化および復号化は、アルゴリズムとキーが判っていれば簡単だが、 Encryption and decryption, but it's easy if you know the algorithm and key,
復号化は、正しいキーを使用しなければ実際上不可能であるべきである。 Decoding should be practically impossible unless the correct key. キーが判らずに暗号文を解読するための、アルゴリズムの設計者が想像しない近道の方法を見つけようとするプロセスは、「暗号解読」と呼ばれる。 The process of trying to find for decrypting the ciphertext to not know the key, the method of the shortcuts the designer of the algorithm is not imagine is referred to as a "decryption".

【0003】 暗号法の歴史は長く、そのルーツは少なくとも、平文中の各文字がアルファベット中3つ後の文字に換えられる換字式暗号を採用したジュリアス・シーザーの時代にさかのぼる。 [0003] The history of cryptography is long, its roots at least, dating back to the era of Julius Caesar in which each character has adopted a substitution cipher, which is instead of the character after three in the alphabet in the plaintext. このように、ジュリアス・シーザーは第3 In this way, Julius Caesar is the third
番を秘密のキーとして使用する線形換字式暗号を採用した。 The turn was adopted linear substitution cipher to be used as a secret key. アルファベットが混ぜ合わされる非線形式換字も周知である。 Nonlinear equation substitution alphabet are mixed are also well known. しかし、線形、非線形にかかわらず、単純な換字は、暗号文の2、3の文章が判っていれば、攻撃が比較的簡単である。 However, linear, regardless of the nonlinear, simple substitution, as long as found sentences few ciphertext attack is relatively easy. 実際、エドガー・アラン・ポーの短編「こがね虫」に出てくるウイリアム・レグランドは、 In fact, William le Grand, which comes out to Edgar Allan Poe's short story "Kogane insects" is,
キャプテン・キッドの通信文を解読することによって、 By decoding the communication sentence of Captain Kidd,
埋蔵金および宝石を見つけて富を得ている。 It has gained wealth and find the buried gold and jewels.

【0004】 今日の業務は、コンピュータ、ファクシミリ、銀行取引機などから送られる私的通信を保護するため、ずっと精巧で安全な暗号化システムを必要とする。 [0004] Today's business, computer, facsimile, in order to protect the private communication sent from, such as banking machines, and require a much sophisticated and secure encryption system. 暗号法の歴史上最も安全なキー使用システムは、1回限りのテープまたは1回限りのパッドである。 History's most secure key used systems of cryptography is a tape or a pad of a one-time one-time-only. このシステムでは、キーが暗号化される通信文と同じ長さで、通信文に単に加えられる(モジュラ計算)。 In this system, the key is the same length as a communication sentence to be encrypted, just added to the communication text (modular calculation). キーは1回だけ使用され、 Key is used only once,
ランダムに得られる。 Obtained at random. この方法は安全だが、送られる情報のブロック毎に新しいキーを生成し、これらのキーを秘密に分配するといった効率の悪さがある。 This method is safe, and generate a new key for each block of information sent, these keys have the inefficiency such distributes secret. 従って、1 Therefore, 1
回限りのテープは大抵の用途で、稀にしか使用されていない。 Tape as long as the times in most applications, not only been used rarely.

【0005】 現代の暗号法の目標は、現在ある暗号解読技術に侵されないか、システムを見破ることの利益がそれに要する苦労に見合わないような暗号化システムを生成することにある。 [0005] Modern cryptography goal is to either not attacked by currently cryptanalysis, the benefit of see through the system to generate the encrypted system that does not justify the trouble required for it. つまり、目標は、現在ある暗号解読法で見破ることが非常に困難なシステムの設計にある。 That is, the target is in a very difficult system design can see through by cryptography in currently. これは、理論上も実際上も見破ることができない1回限りパッド技術と対象的である。 This theory is also practically be a one-time pad techniques and symmetrical it is not possible to see through. 1回限りのテープは、暗号解読技術の発達に拘らず、暗号学上いつまでも見破ることができないはずである。 Tape of one-time, regardless of the development of decryption technology, should not be able to see through even cryptographically on forever. しかし、他の従来システムは、いずれ見破ることができ、見破られるであろう。 However, other conventional systems may see through any would be caught out.

【0006】 現代の暗号化システムは、一般的に、長さが8文字程度の短いキーを使用する。 [0006] Modern encryption system is, in general, the length is to use the short key of about 8 characters. 現代のシステムの好例として、1970年代の初期にIBMによって開発され、アメリカ標準局によってビジネスおよび非軍事行政での使用のための標準暗号化システムとして採用されたデータ暗号化規格(“DES")がある。 As a good example of a modern system, developed by IBM in the early 1970s, the United States Bureau of Standards by the business and non-military government adopted as a standard encryption system for use with the Data Encryption Standard ( "DES") is is there. DESに関する特許は、アメリカ特許第3,958,081号および第3,962,539号を含む。 Patents on DES includes US Patent No. 3,958,081 and No. 3,962,539. データ暗号化規格は、暗号化されるデータの一部ないしブロックが所定の転置表で転置され、キーで改変されてから、 Data Encryption Standard, a part of the data to be encrypted or block is transposed by a predetermined permutation table, after being modified with key,
予め設定された換字表で換字されるブロック型の暗号である。 A block type of cipher being substitution at a preset substitution table. このプロセスは、ラウンドと呼ばれる形で多数回繰り返される。 This process is repeated many times in a manner called round. 転置は「転換」とも呼ばれ、通信文中の文字の位置を予め設定された指示の組合せに従って混ぜ合わす、ごく普通の暗号機能である。 Transposition, also known as "transformation", to mix in accordance with a combination of preset indicating the position of the communication sentence character, is very common cryptographic functions.

【0007】 他の現代の暗号化システムは、無作為の統計的性質を持った長い一連のキーを生成する疑似ランダム生成手段を使用して、1回限りのパッドのキー生成プロセスを模倣することを試みている。 [0007] Other modern encryption systems, that use the pseudo-random generation means for generating a long series of keys having the statistical properties of random, to mimic as much of the pad of the key generation process once the trying. そのような特許としては、アメリカ特許第3,700,806号および第4,369,332号が含まれる。 Such patents include US Patent Nos. 3,700,806 and No. 4,369,332. 受信者は、キーを生成して、送られた暗号文の復号化にそれを使用する疑似ランダム生成手段を持つことになる。 The recipient generates a key, will have a pseudo-random generator using it to decrypt the transmitted ciphertext. 従って、そのシステムは望むだけ頻繁にキーを変え、復号化されるブロック毎にキーを変えることさえできる。 Thus, the system only frequently changing key desired can even change the key for each block to be decoded. 疑似ランダム生成手段の使用は多くのシステムを非常に強化したが、1回限りパッドを完全に作りだしたわけではない。 The use of pseudo-random generator was greatly enhanced many systems, but not created the pads completely only once.

【0008】 非軍事用暗号化システムの暗号解読において、一般的に次のような想定がなされる。 [0008] In decryption non military encryption systems, generally assumed as follows is performed. 即ち、(1)暗号解読者は使用される暗号化システムと表を知っている。 That knows encryption system and tables used are (1) cryptanalyst. 疑似ランダム生成手段が使用される場合も、それが知られていると想定する。 May pseudorandom generating means are used, it assumes that it is known. (2)暗号解読者はキーを知らない。 (2) cryptanalyst do not know the key. 第1、2項はまとめて、一般的にケルクホフの想定(Kerc The first and second terms together, generally assumptions Kerkhoff (Kerc
khoff's assumption)と呼ばれる。 Called the khoff's assumption). (3)暗号解読者は、以前に送られた平文を大量に持っている。 (3) cryptanalyst has large quantities with a plain text that was sent previously. (4)暗号解読者は、平文に対応して以前に獲得した暗号文を大量に持っている。 (4) cryptanalyst has the ciphertext was previously acquired in response to the clear text in large quantities.

【0009】 暗号システムは、上記条件下で十分な強さを証明しなければならない。 [0009] The encryption system, must prove strong enough under the conditions described above. 疑似ランダム生成システムは、1回限りのテープ用の基準をすべて満たしているわけではない。 Pseudo-random generation system, do not meet all the criteria for a tape of one-time-only. 疑似ランダム生成手段が使用されると、生成されるキー同士の関係が定まる。 When the pseudo random generation unit is used, the relationship between keys is determined to be generated. 暗号解読者は出力される組になったキー(生成手段がキーを使用する場合)を知らないとしても、一連のキーの関係が疑似ランダム生成アルゴリズムに記されているのでそれを知っている。 Cryptanalyst be unaware of key forming a pair of output (if generating means uses key), know it the relationship of a series of keys are written in a pseudo-random generation algorithm. 更に、 In addition,
疑似ランダム生成手段は「シード」値をも備えなければならない。 Pseudo-random generator must also includes a "seed" value. これは、本質的には、このシステム用として生成され、分配されるべきもう一つのキーである。 This essentially is generated for this system, is another key to be dispensed. 所定の転置および換字表と、これらの表の所定の使用順序とを持ったデータ暗号化規格も、暗号解読の攻撃を受ける。 And a predetermined permutation and substitution table, also given use order and the got data encryption standard in these tables, attacked decryption. データ暗号化規格アルゴリズムは、かなり複雑であるから強い暗号化システムであるが、数学的解析による攻撃に対して不透過性ではない。 Data Encryption Standard algorithm is a strong encryption system because it is rather complicated, not impervious to attack by mathematical analysis.

【0010】 1回限りのパッドの特徴をいくつか採用した別の技術は、キー表を使用する。 [0010] Another technique for the features of the one-time pad was adopted some, to use the key table. この技術では、多くの所定のキーを含む表が暗号化システムに含まれる。 In this technique, a table that contains a number of predetermined key included in the encryption system. そして、キーはそれぞれ秘密キーによって変えられる。 And, the key is changed by a secret key, respectively. この方法の1 1 of this method
例がアメリカ特許第4,776,011号に見られる。 Examples can be seen in US Pat. No. 4,776,011. この技術は、疑似ランダム生成手段と同じ理由で、1回限りのパッドを完全に模倣していない。 This technique, for the same reason as the pseudo-random generator, not fully mimic the one-time pad. オリジナルのキー表はキー同士の関係を示す。 The original key table shows the relationship between keys. 又、そのようなシステムでは、キーが選択される順序がシステムのアルゴリズムに記載され、選択されるキーの組合せが繰り返されることもあり、初期化ベクトルがないと、新しい秘密キーが与えられるまで同じキー表が常に使用されることになる。 Further, in such systems, the key is described in the algorithm of order that is chosen by the system, sometimes repeated key combination to be selected, if there is no initialization vector, the same until a new private key is given so that the key table is always used. このような弊害を除くために、ここに開示する発明はユニークは方法でキー表を使用する。 To eliminate such adverse effect, the invention described herein will uniquely uses key table in a way.

【0011】 強い理論的および実際的な暗号化システムのもう一つの方法は、1回限りの機能(function)を使用することにある。 [0011] Another method of strong theoretical and practical encryption system is to use the function of one-time a (function). この方法では、暗号化される各データブロックが、異なる暗号機能の組合せによって暗号に変換される。 In this way, each data block to be encrypted is converted into encrypted by a combination of different cryptographic functions. つまり、暗号化プロセスで使用される表が可変で、 That is, a variable table to be used in the encryption process,
各データブロックによって異なる組合せが選択される。 Different combinations by each data block is selected.

【0012】 可変機能も従来行われている。 [0012] The variable function is conventionally done. 1例がアメリカ特許第 One example is the United States Patent No.
4,751,733号に記載され、それは可変換字の使用を含んでいる。 Is described in JP 4,751,733, it involves the use of a variable conversion character. この特許は多くの制限がある。 This patent has a number of limitations. つまり、この特許は特に2値ワード用の暗号化を提供していること、換字表が秘密キーの2進配置に密接な関係で設定され、運用されなければならないこと、キー補足ないし補助キーを構成する制御コードが換字プロセスの遂行に必要であること、この方法は具体的には換字・転置式の暗号化手法であること、この方法は可変転置等の機能を与えないこと、この方法は1回限りのテープの模倣に必要な初期化ベクトルを与えないこと等である。 In other words, that the patent is that in particular provide encryption for binary word substitution table is set in a close relationship to the binary arrangement of the secret key, it must be operated, the key supplemental or auxiliary key that the control code that constitutes it is necessary for the performance of the substitution process, that this method is typically as encryption technique of substitution, transposition expression, that this method does not give the function such as a variable permutation, the method , and the like may not provide an initialization vector required for tape imitation of one-time.

【0013】 従って、この発明の目的は、他のシステムの弱点を克服して、1回限りのパッドプロセスを模倣しながら、単一のキーのみを必要とするシステムを作り出すことにある。 [0013] Therefore, an object of the present invention is to overcome the weaknesses of the other systems, while mimicking the pads one-time process is to create a system that requires only a single key. 本発明の他の目的は、理論的にも実際的にも侵され得ず、1回限りのパッドシステムの完全な模倣を可能にする暗号化システムを提供することにある。 Another object of the present invention, theoretically neither obtained is practical to be affected is to provide a cryptographic system that allows full imitation pad system only once. 又、ユニークなデータブロック毎にユニークに機能的に変換するといった1回限りの方法の手法を取り入れた暗号化システムを生成することも本発明の目的である。 It is also an object of the present invention of producing a cryptographic system that incorporates the method of the method of one-time such that uniquely converts functionally each unique data blocks. これは従来の技術で達成されてなく、その結果として、このシステムは攻撃に対してより強い暗号化策を提供する。 This is not being achieved in the prior art, as a result, this system provides a strong encryption measures than to attack. 又、ファイル格納、データ伝送、遠隔通信コード化など、種々の用途に十分な柔軟性を持った安全な暗号化システムを提供することも本発明の目的である。 Also, file storage, data transmission, etc. telecommunications coding, it is also an object of the present invention to provide a secure encryption system with sufficient flexibility for a variety of applications. 更に、ブロック暗号フォーマットの使用を許し、そこに完全なシンボル間依存を可能にする暗号化システムを提供することも本発明の目的である。 Moreover, allows the use of a block cipher format, it is also an object of the present invention to provide a cryptographic system that allows dependencies between complete symbol therein.

【0014】 発明の要約 従って、私は、たとえシステムの実行を知っていてもキーとキー表の関係を判断できないように、1つのキーからキー表を生成することを含む暗号システムを開発した。 [0014] SUMMARY OF THE INVENTION Accordingly, I, even so can not determine the relationship between the key and the key tables even know the execution of the system was developed cryptographic system comprising generating a key table from one key. これは可変機能の使用を通して達成されるが、そこでは決定因によって選択される可変機能が決定因を変更する。 This is accomplished through the use of variable functions, where the variable function selected by the determinant changes the determinant. 従って、キー表の作成に使用する機能は1対1の機能である必要はない。 Therefore, the ability to use to create a key table does not have a function of one-to-one. 決定因はキーにもとづいている。 Determinant is based on the key. キー表から、キーにもとづく追加的な決定因のバイトのブロックが形成され、これらはマスクと呼ばれる。 From the key table, block additional determinants of bytes based on the key is formed, these are referred to as a mask.
これらのマスクはキーから形成される。 These masks are formed from the key. 当初のキーはキー表にもマスク表にも存在しない。 The original key does not exist even in the mask table is also in the key table.

【0015】 本発明の好適実施例におけるシステムは、多ラウンド暗号プロセスでキー表を使用する。 The system in the preferred embodiment of the present invention uses the key table in multiple rounds encryption process. 従って、考え得るすべての平文の組合せが、異なるキーの組合せで暗号化できる。 Thus, the combination of all plaintext possible can be encrypted with a combination of different keys. キー加算操作用として表から選択されるキーは、 The key is selected from the table as a key addition operation,
平文、暗号文の現状、それにマスク値の関数である。 Plain text, which is a function of the current situation, mask value of the ciphertext. 従って、キー選択順序は予め設定、もしくはパターン化されない。 Therefore, the key selection order is not preset, or patterned. 又、システムは、平文、暗号文の現状およびマスク値によって、転置および換字を含む他の暗号機能を選択する。 Further, the system, the plaintext, the current and the mask value of the ciphertext, select other cryptographic functions, including transposition and substitution. このように、各ブロックが転置と換字の異なった組合せで暗号化される。 Thus, each block is encrypted with different combinations of substitution and transposition.

【0016】 この暗号システムは、以下、本書でエンクレーブ機能(enclave function)と呼ぶ機能を導入する。 [0016] The encryption system is, below, to introduce the enclave function (enclave function) and call functions in this document. この機能もルックアップテーブルで働き、バイトのブロックに完全なシンボル間依存を作り出す。 This feature also works in the look-up table, create a dependency between the perfect symbol to a block of bytes. エンクレーブ機能と共に使用される特定の表は、マスク値のみによって決定される。 Specific tables to be used with the enclave function is determined only by the mask value. このように、あらゆるブロックが同じエンクレーブの組合せを受ける。 Thus, every block is subjected to a combination of the same enclave. しかし、選択される組合せが、 However, a combination to be selected,
知られていないキーから生じるマスクによって定まるので、その組合せは攻撃には判らない。 Since determined by the mask resulting from the unknown key, I do not know in the combination attack.

【0017】 情報は、転置、キー加算、エンクレーブおよび換字の所定ラウンド数を経た後で、伝送または格納することができる。 [0017] Information, transposition, key addition, after passing through a predetermined number rounds enclave and substitution, it can be transmitted or stored. 復号化は、操作の順を反対にして、換字、エンクレーブ、キー加算および転置の逆機能で達成できる。 Decoding, by the order of the operations in the opposite, substitution, enclave, can be achieved with the reverse function of the key addition and transposition.
キー加算はその逆と同じである。 Key addition is the same as the reverse.

【0018】 好適実施例の説明 好適実施例では、本発明の暗号システムがブロック暗号フォーマットで操作され、平文データの通常ブロックと呼ばれる小さなかたまりが1回限り暗号化および復号化される。 [0018] In the description a preferred embodiment of the preferred embodiment, the cryptographic system of the present invention is operated in a block cipher format, small chunks, usually called blocks of plaintext data is encrypted and decrypted only once. 暗号化および復号化がマルチラウンドブロック型のフォーマットで行われることが望ましい。 It is desirable that encryption and decryption are performed in the format of multi-round block type. しかし、本件出願の発明はストリーム暗号等の他の暗号システムでも使用でき、マルチラウンドを採用しなくてもよいことを理解されたい。 However, the invention of the present application can also be used in other cryptographic systems, such as stream cipher is to be understood that it is not necessary to employ a multi-round. しかし、マルチラウンドはシステムをかなり強化する。 However, multi-round is to strengthen the system considerably.

【0019】 本発明の暗号システムは、好適実施例では、モジュラスと呼ばれる特定の整数に基づく巡回的な(cyclic)数学機能であるモジュラ計算を使用する。 The cryptographic system of the present invention, in the preferred embodiment, using a cyclic specific (Cyclic) modular calculation is a mathematical function based on the specific integers called modulus. 計数は、到達するモジュラスより数字1が小さくなるまで順次インクリメントし、再度ゼロから開始することによって行われる。 Figures are sequentially incremented from arriving modulus until numeral 1 is reduced, it is carried out by starting from zero again. 整数と比べたモジュラ3の例を次のように示すことができる。 It can be an example of a modular 3 compared to integers as follows.

【0020】 整数:0 1 2 3 4 5 6 7 8 9 10 モジュラ3:0 1 2 0 1 2 0 1 2 0 [0020] Integer: 0 1 2 3 4 5 6 7 8 9 10 modular 3: 0 1 2 0 1 2 0 1 2 0
1

【0021】 従って、10モジュラ3、通常10mod3と略、は1と等しい。 [0021] Thus, 10 modular 3, usually 10mod3 substantially, is equal to 1. モジュラ計算は、結果がゼロとモジュラスマイナス1の間になるまで、当該数からモジュラを順次引算することによって、より容易に行える。 Modular calculation result until between zero and the modulus minus 1, by sequentially subtracting the modular from the number, easier way. 例えば:10−3=7;7 For example: 10-3 = 7; 7
−3=4;そして4−3=1となる。 A and 4-3 = 1; -3 = 4. 従って、最後の引算の答が0と2の間で、2=モジュラス−1であるから、 Accordingly, among the answer of the last subtraction of 0 and 2, because it is 2 = modulus -1,
10mod3=1である。 10mod3 = 1. モジュラ計算機能の一般的フォーマットは(整数)mod(モジュラス)=モジュラスより小さい整数である。 General Format of modular calculation function is a small integer from = modulus (integer) mod (modulus).

【0022】 第1図に示すように、このシステムは参照番号10のスタートで開始し、そして操作は参照番号12のメモリ内の種々の表の初期化へ進む。 As shown in FIG. 1, the system begins at the start of the reference number 10, and the operation proceeds to the initialization of various tables in the reference number 12 a memory. 後に、より詳細に説明するように、いくつかの表がシステムに供給され、いくつかの表がシステム内で生成される。 Later, as described in greater detail, several tables are supplied to the system, a number of tables are generated in the system. これは、当初、平文または暗号文が暗号化ないし復号化される前に行われる。 This initially takes place before the plaintext or ciphertext is encrypted or decrypted. そして、操作は参照番号14へ進み、平文の最初のブロックが選択される。 Operation then proceeds to reference number 14, the first block of plaintext is selected. 第1図は平文のブロックの暗号化と関連して示されているが、暗号文の選択されたブロックの復号化でも同様なステップが実行される。 Figure 1 is shown in connection with encryption of blocks of plaintext, the same steps also decoding of the selected block of ciphertext is performed. そして、操作は参照番号16へ進み、平文の選択されたブロックが、本発明の暗号システムに従って暗号化される。 Operation then proceeds to reference numeral 16, the selected block of plaintext is encrypted in accordance cryptosystem of the present invention. 質問18の結果、暗号化すべき平文がまだ残っていれば、参照番号20 The results of question 18, if still remains the plain text to be encrypted, reference number 20
で平文の次のブロックが選択され、この次のブロックが暗号化される。 In the next block selection plaintext, the next block is encrypted. 平文が残っていない場合は、参照番号22 If the plaintext there are no more, reference number 22
でシステムが作動を停止する。 In the system to stop the operation.

【0023】 メモリ内のテーブルの初期化ステップの詳細が、第2 [0023] Details of the initialization step of the table in memory, the second
図に示されている。 It is shown in FIG. 参照番号30で転置表、S−ボックス(BOX)表およびエンクレーブ表がシステムのメモリに先ず読み込まれる。 Transposition table by the reference numeral 30, S- box (BOX) table and an enclave table is loaded first into the memory of the system. 転置表は、暗号化されるデータのブロックのバイト位置をどのように混ぜ合わせたり、復号化のために元の位置に戻したりするかを、特定の仕方で指令するアドレス可能な複数の項目を含む。 Transposition table, or to how mixing the byte position of the block of data to be encrypted, whether or return to the original position for decoding a plurality of items that can address instruction in a particular manner including. これは普通に使用される暗号技術である。 This is a cryptographic technique that is commonly used. S−ボックス表は、特定の項目によって指示されて、変換されるブロックの各バイトの実際値がいかにして他の値に変えられるかを指令する複数の換字のための構成である。 S- box table is indicated by a particular item is a configuration for a plurality of substitution for commanding whether actual values ​​of each byte of the block to be transformed is changed in how to other values. これは標準換字表の形で含まれ得るが、S−ボックス構成は計算上より効率的で、暗号学の分野で周知である。 This is can be included in the form of a standard substitution table, S- box structure efficient computationally more, well known in the art of cryptography. 参照番号30でメモリに読み込まれるエンクレーブ表は、後で詳細に説明する。 Enclave table is loaded into memory by the reference numeral 30 will be described later in detail.

【0024】 そして、参照番号32で初期のキーがシステムに読み込まれる。 [0024] Then, the initial key is loaded into the system by the reference number 32. キーとは、システム実行、アルゴリズムまたは表に明示ないし記載されず、暗号プロセスを指示するためにシステムにインストールないし読み込まれる秘密の値またはデータブロックである。 A key system execution is not explicitly or according to an algorithm or table, is a secret value or data block installed or loaded into the system to indicate the encryption process. 基本的に、キーは暗号プロセスの作動の基になる秘密の値であり、アルゴリズム実行の一部ではない。 Essentially, the key is the value of the secret on which to base the operation of the encryption process, not part of the algorithm execution. その後、質問34でシステムは初期化ベクトルが含まれるか否か決定する。 Thereafter, a question 34 the system determines whether include initialization vector. 初期化ベクトルの使用はこの分野で普通のことであり、データを電話回線等で送信する際の使用が典型的である。 The use of an initialization vector is commonplace that in this field, it is typical to use in transmitting the data on the telephone line or the like. 初期化ベクトルは暗号化されたデータの前に回線を介して送られ、 Initialization vector is sent via the line before the encrypted data,
後で行われるデータの復号化に使用される。 It is used to decrypt the data performed later. 参照番号36 Reference number 36
で示されたように、排他的OR演算でキーがビット毎に初期化ベクトルと組み合わされて、初期のキーが改変され、それが参照番号38でキー表を作成するために使用される。 In as shown, combined with the initialization vector key exclusive OR operation for each bit, the initial keys are modified, it is used to create a key table by the reference numeral 38. 初期のキーを改変するために、排他的OR機能を使用せず、キーの各バイトの値を初期化ベクトルの各バイトの値に加えることもできる。 To modify the initial key, without using the exclusive-OR function can also be added to the value of each byte of the key to the value of each byte of the initialization vector. これらは両方とも、キーと共に初期化ベクトルを使用するための暗号法における標準的な技術である。 Both of these are standard techniques in cryptography for using an initialization vector with the key. 初期化ベクトルが使用されない場合、操作は参照番号38へ直接進み、変更されない初期キーからキー表が生成される。 If the initialization vector is not used, the operation proceeds directly to the reference numeral 38, a key table is generated from the initial key unchanged. 一旦キー表が作成されると、操作は参照番号40へ進み、キー表に生成された項目からマスク表が生成される。 Once the key table is created, the operation proceeds to the reference number 40, mask table from the generated item to the key table is generated. 初期キーからキー表とマスク表項目を生成するために使用される特定のプロセスは、後で詳細に説明する。 Specific process used to generate the key table and mask table entries from the initial key will be described later in detail.

【0025】 本発明の好適実施例によれば、暗号変換されるデータのブロックサイズは10バイトの長さになるよう選定され、各バイトが8デジタルビットを含む。 According to a preferred embodiment of the invention, the block size of the data to be encrypted conversion is chosen to be the length of 10 bytes, each byte containing 8 digital bits. 各バイト中の7ビットがデータ値に使用され、8番目のビットがこの分野で周知のパリティビットである。 7 bits in each byte are used for data values, the eighth bit is a known parity bit in this field. 好適実施例では、 In the preferred embodiment,
キーが、暗号化および復号化されるデータのブロックと同じ長さに選定されている。 Key has been selected the same length as the block of data to be encrypted and decrypted. しかし、望むならキーが他の長さでもよい。 However, the key if desired may be of other length. キーは、徹底した攻撃によるキーの推測を非常に困難にするに十分な長さである必要がある。 Key is required to be long enough to make it very difficult to guess the key by thorough attack.
各バイト中の7ビットを使用する場合、各キーが8〜20 If you want to use the 7 bits in each byte, each key is 8 to 20
バイトを含むことが望ましい。 It is desirable to include a byte. 20バイトより長いキー長さを使用できるが、暗号システムでの計算をずっと困難で時間が掛かるものにし、システムで使用される種々の表の長さを増し、それに応じて必要なメモリスペースを増大させる。 Can be used longer than the key length 20 bytes, and much more difficult and time-consuming ones calculations in cryptography system, increasing the length of the various tables used in the system, increasing the memory space required accordingly make. 暗号化される平文のブロックの選択においても、特に情報の小ブロックがシステムを通される場合に、同様な考え方が当てはまる。 Also in the selection of a block of plaintext to be encrypted, especially when small blocks of information is passed through the system, it applies the same concept. 本発明のエンクレーブ機能が使用される場合、ブロックサイズは偶数バイトを含むべきである。 If enclave function of the present invention is used, the block size should include an even number of bytes. しかし、エンクレーブ機能を使用しないとすれば、ブロックサイズは奇数バイトでもよい。 However, if not used enclave function, the block size may be an odd number of bytes.

【0026】 本発明の暗号システムの大きな要素は、データの特定の暗号機能の実行に使用される特定の転置、換字またはエンクレーブ表が変換されるデータ中のある種の値または要素の関数だということである。 The major elements of the cryptographic system of the present invention, the particular permutation that is used to perform certain cryptographic functions of the data, that it is a function of certain values ​​or elements in the data substitution or enclave table is converted it is. 本発明のこの側面は可変機能と呼ばれ、それは、2つ以上の考え得る選択肢が存在する場合のいかなる機能でもある。 This aspect of the present invention is called a variable function, it is in any function when two or more possible choices exist. 本発明のこの側面は、後で暗号化・復号化プロセスで使用されるキー表を初期キーから最初に生成する際にも使用される。 This aspect of the present invention is also used when initially generating the key table for use in encryption and decryption processes later from an initial key. 一般的に、キーから1つ以上の要素が選択され、又、所定の数学的機能の結果が可変機能法の選択に使用される。 Generally, one or more elements selected from the key, and, given the results of the mathematical function is used to select the variable function method. この機能は、新しいキーを生成するために選択された表に従ってキーの現状に対して実行される。 This function is performed on the current state of the key according to the table which is selected to generate a new key. 数学機能の結果は、特定の表と共に使用される特定の機能を、考え得る多くの可能性から選ぶためにも使用できる。 Results of mathematical functions, specific functions to be used with a particular table, can be used to select from a number of potentially possible. この発明の好適実施例では、特定の種類の機能が前もって設定され、その機能と共に使用される表のみが暗号化・復号化されるデータを用いて選択される。 In the preferred embodiment of the present invention, certain types of functions are set in advance, only the table to be used with that function is selected by using data encryption and decryption.

【0027】 換字、転置およびエンクレーブ機能を使用する、キー表の要素を作り出すための特定の構成が、第3図に示されている。 The substitution, using the transpose and enclave functions, particular configuration for producing the elements of the key table is shown in Figure 3. 変換されるキーの10バイトがKn1〜Kn10として要素50に示されている。 10-byte to be converted key is shown in element 50 as Kn1~Kn10. 使用される換字表の選択にあたって、要素51のモジュラ計算を用いてキーの最後の5 In selection of substitution table used, 5 last key using modular calculation element 51
バイトが合計され、要素52のメモリレジスタYに格納されるデジタル数を生成する。 Bytes are summed to generate a digital number stored in memory register Y elements 52. 要素51で使用されるモジュラ計算のモジュラスは、システムで使用する換字表のサイズによって定まる。 Modulus of modular calculation used in the element 51 is determined by the size of substitution table used in the system. 好適実施例では、換字表は128バイトの値に対して32個の表を含み、従って、要素51で使用される計算は32のモジュラスを持つ。 In the preferred embodiment, substitution table contains 32 tables with respect to 128 byte value, therefore, calculation used in the element 51 has a modulus of 32. 本件出願中で後で記載される1例では、理解を容易にするために、換字表が16個のみの表を持ち、要素51はモジュラ16になる。 In one example described later in this application, for ease of understanding, substitution table having a table 16 only, the element 51 is a modular 16.
第3図では、換字表の選択に用いる数を生成するために、変換されるキーの最後の5バイトの値が合計されるが、要素52におけるY値の生成に、10バイトのいかなる組合せも、10すべてでも、使用できることを理解されたい。 In Figure 3, in order to generate a number to be used for selection of the substitution table, but the last five bytes of the key value to be converted is summed to generate the Y value at element 52, any combination of the 10-byte , even 10 all, it is to be understood that it can be used.

【0028】 第3図で使用される転置表の選択にあたって、要素53 [0028] When selecting the permutation table used in FIG. 3, element 53
のモジュラ計算を用いてキーの最初の5バイトが合計され、要素54のメモリレジスタXに格納されるデジタル数を生成する。 Modular calculated using the total first five bytes of the key to generate a digital number stored in memory register X of the element 54. 換字表の計算と同様に、転置表Xを生成するために要素53で使用されるモジュラ計算は、システムで使用する転置表のサイズによって定まる。 Similar to the substitution table calculation, the modular calculation used by element 53 to produce a transposed table X is determined by the size of the permutation table used in the system. 好適実施例では、転置表に128項目があり、従って、要素53でのモジュラ計算はモジュラ128になる。 In the preferred embodiment, there are 128 items to transpose table, therefore, modular calculation in element 53 becomes modular 128.

【0029】 要素52で生成された値Yは、キーの現状を改変するために使用される換字表の選択に使用される。 [0029] generated by the elements 52 value Y is used to select the substitution table which is used to modify the current key. そして、キーはこの表に従って換えられる。 And, the key is in place in accordance with this table. その後、要素54で生成された値Xが特定の転置表を選定するために使用される。 Thereafter, the value X generated at element 54 is used to select a specific transposition table. 前に換字操作を受けたキーが、選択された表に従って今度は転置される。 Key that has received the substitution operation before is, in turn, be transposed in accordance with the selected table. keynをPSKnと呼ぶ中間状態に変換するこの操作は、第3図の要素55に示されている。 The operation for converting keyn an intermediate state called a PSKn is shown in element 55 of FIG. 3. 最初に換字され、その後転置で受けて変換されたキーは、第3図中、バイトPSKn1〜PSKn10を含む要素56として示されている。 First be substitution, is transformed key by receiving a subsequent transposition, in FIG. 3, it is shown as element 56, including bytes PSKn1~PSKn10.

【0030】 サンプル転置表項目が、第4図に示されている。 The samples transposed sheet items is illustrated in Figure 4. 第4 4th
図上部の8つのビットバイトの位置が種々の矢印で示されるように混ぜ合わされて、第4図下部に示される新しい位置になる。 FIG position of the eight-bit byte of the upper is intermingled as indicated by the various arrows, the new position shown in Figure 4 the lower. 上部から下部への操作がデータの暗号化を構成する。 Operation from top to bottom to constitute a data encryption. データの復号化では、位置づけが下部から上部へ再編成され、データの当初の配置を復活させる。 The decoding of data, positioning is rearranged from the bottom to top, revive the original arrangement of the data.
これは多くの暗号システムで使用される標準技術であり、この出願でこれ以上詳細に説明する必要はない。 This is a standard technique used in many cryptographic systems and need not be described in further detail in this application. 同様に、換字表の典型的な項目が第5図に示されている。 Similarly, typical fields of substitution table is shown in Figure 5.
特定の平文値が、変換されるデータのバイトのどれかになっている場合は、使用される換字表がその平文値を新しい値に換えるよう指令する。 Particular plaintext value, if it is one of the bytes of data to be converted, substitution table used to command to replace the plaintext value to a new value. 例えば、平文値がP0の場合、第5図の表にしたがって、それは新しい値S1に換えられる。 For example, if the plaintext value is P0, according to the table in FIG. 5, it is replaced with a new value S1. 換字表を通じて逆に操作することにより、暗号化されたデータを復号化し、元の平文値を復活できる。 By operating in reverse through the substitution table, and decrypts the encrypted data, you can restore the original plaintext values.
これも標準技術であり、これ以上詳細に説明する必要はない。 This is also a standard technique and need not be described in further detail. 第4および5図に示された特定の構成は、転置および換字表項目の多くの可能性の代表例にすぎず、本発明の暗号システムで使用する表に他の多くの項目が含まれることを理解しなければならない。 Specific configurations shown in the fourth and fifth figures transposition and substitution only representative examples of the many possibilities of sheet item, the table that contains many other items used by the encryption system of the present invention it should be understood.

【0031】 第3図で、要素56のキーの中間状態は、出願人がエンクレーブ機能と呼ぶ新開発機能に従って更に改変される。 [0031] In Figure 3, the intermediate state of the key elements 56 are further modified according to a newly developed features that applicant referred to as the enclave function. エンクレーブプロセスも可変機能で、変換されるデータの特定の値を用いて数を生成し、今度はそれを用いて、複数のエンクレーブ表のどれで、データを更に変換するかを選択する。 In enclave process is also a variable function, to generate a number by using a specific value of data to be transformed, now using it, in which of a plurality of enclave tables, selects whether further converts the data. 第3図に示された実施例では、要素 In the embodiment shown in Figure 3, element
56のキーの中間状態の特定の値、つまり図中のハイド3、4、5、6および7、が要素57のモジュラ計算を用いて合計され、要素58のメモリレジスタZに格納されるデジタル数Zを生成する。 Specific value of the intermediate state of the 56 keys, i.e. Hyde 3, 4, 5, 6 and 7 in the figure, but are summed with the modular calculation of the element 57, the digital number stored in memory register Z in element 58 to generate a Z. 好適実施例では、エンクレーブ表は32項目を含み、従って要素57で行われる計算はモジュラ32になる。 In the preferred embodiment, the enclave table includes 32 items, thus the calculations performed by the elements 57 is a modular 32. その後、キーの中間状態が特定のエンクレーブ表に従って更に変換され、この変換されたキーが要素59でキー表に記入される。 Thereafter, the intermediate state of the key is further transformed according to the particular enclave table, this transformed key is entered into the key table at element 59. 以下、第6および7図と関連してエンクレーブ機能を詳細に説明する。 Hereinafter, detailed explanation of the enclave function in connection with the sixth and 7 FIG.

【0032】 本件出願で使用する表記に従って、「Key」は当初のキーを表すのに使用する。 [0032] in accordance with the notation used in this application, "Key" is used to represent the original key. 当初のキーはキー表の第1のキーKey0を生成するために使用する。 Initially the keys used to generate the first key Key0 key table. Key0はキー表に入れられ、その後、キー表の次の項目、つまりKey1、の生成に使用される。 Key0 is placed in the key table, then the next item in the key table, ie Key1, is used to generate. Key1は、当初のキーからKey0を生成する第3図に示された同じステップに従って、Key0から生成される。 Key1 according to the same steps illustrated from the original key in Figure 3 for generating Key0, is generated from Key0. キー表の残りのキーが、キー表が満たされるまで、直前のキーから順次生成される。 The remaining keys in the key table, until the key table is filled, are sequentially generated from the last key. キー表中で先行するキーからのキーの生成は、第3図中の要素59で示され、そこではKeynを用いてKeyn+1が生成されている。 Key generation from the key preceding in key table is shown by element 59 in FIG. 3, wherein KEYN + 1 are generated using KEYN is. キー表の項目数は因数、つまりアルファベットスペースに均等に分割すべきである。 The number of items of key table factor, in other words it should be equally divided in alphabetical space. 本書に記載する好適実施例では、アルファベットスペースは27、つまり128である。 In the preferred embodiment described herein, the alphabet space is 27, that is, 128. 項目数がアルファベットスペースの因数でない場合は、使用される、あるキーの統計的機会が他のキーより大きくなる。 If the number of entries is not a factor of the alphabet space, is used, the statistical chance of certain keys is larger than the other keys. この不一致は、暗号解読者の助けになり得ることから避けるべきである。 This discrepancy, should be avoided because it can be a help of a cryptanalyst. キー表の最大項目数はアルファベットスペースのサイズであり、好適実施例では最大数が使用される。 Maximum number of items in the key table is the size of the alphabet space and the maximum number is used in the preferred embodiment.

【0033】 一般的に、キー表の各キーは前のキーに対して実行された可変機能の結果生成され、特定の可変機能が先にインストールないし生成されたキーから抽出された情報によって定まる。 [0033] In general, each key in the key table is generated as a result of the variable function performed on the previous key, determined by the information particular variable function is extracted from the key installed or generated earlier. 当初のキーがインストールされたキーで、生成されたキーはKey0、Key1等と名付けられる。 With a key that the original key has been installed, the generated key is termed Key0, Key1, and the like. このように、キー表は当初のキーを含まず、従ってキー表中の情報の知識から当初のキーを捜し当てることは不可能である。 Thus, the key table does not include the original key, hence it Sagashiateru the initial key from knowledge of information in the key table is impossible. 後で詳細に説明するように、暗号化の各ラウンドで異なるキーの組合せが選択され、これによって、 As will be described later in detail, the combination of different key in each round of encryption is selected, thereby,
繰り返し使用される1つのキーを見つけ出すこと、あるいは数学的に解きあかすことが不可能になる。 Find a single key to be used repeatedly, or become mathematically Revealed impossible. 伝送毎に当初のキーと関連して初期化ベクトルを使用すると、1 Using an initialization vector associated with the original key for each transmission, 1
回限りのテープを模倣することになる。 It will mimic the tape as long as times. 又、暗号解読者はキー表を逆方向に進めないから、攻撃者が1つのキーを知っても前のキーは判らない。 In addition, because the cryptanalyst can not proceed with the key table in the opposite direction, the attacker does not know the previous key even know one of the key. 従って、この構成は疑似ランダムキー生成手段よりずっと優れている。 Therefore, this arrangement is much better than the pseudo-random key generation means.

【0034】 第3図に示された構成は、本発明の実施の1つの可能性にすぎないことに留意すべきである。 The arrangement shown in Figure 3, it should be noted that only one possible embodiment of the present invention. 発明の精神または範囲を変えずに、ほとんど無数の変更が可能である。 Without changing the spirit or scope of the invention, it is possible to almost infinite number of changes.
選択される可変機能表が、生成された新しいキーから定められないように、キー表を生成するための可変機能を、当初のキーまたはインストールされたデータブロックを用いて選択するいかなるプロセスも、この発明の範囲に入る。 Variable function table chosen so as not determined from the new key generated, the variable function for generating the key table, any process selected using the initial key or an installed data block is also the fall within the scope of the invention.

【0035】 第6図は、本発明で使用するエンクレーブ機能のブロック図を示す。 [0035] FIG. 6 shows a block diagram of the enclave function used in the present invention. エンクレーブ機能は、第3図のキー表の生成と、後で第8図に示す暗号化プロセスの両方で使用される。 Enclave function is the generation of a key table in FIG. 3, is used in both the encryption process shown in Figure 8 later. 変換されるブロックは、第6図で要素60と名付けられる。 Block to be converted is termed element 60 in Figure 6. このブロックは2つの部分、つまり最初の5 The block consists of two parts, i.e. the first five
バイトを含む第1または左の半ブロック61と、最後の5 The first or left half block 61 including a byte, the last 5
バイトを含む第2または右の半ブロック62に分割される。 It is divided into a second or right half block 62 containing a byte. 第1半ブロックに偶数バイトを使用し、第2半ブロックに奇数バイトを使用する等、ブロックの他の分割構成も使用できる。 Using the even byte in the first half block, etc. to use the odd number of bytes in the second half block, the other split configuration of the blocks can be used. 変換されるブロックは、エンクレーブ機能のために偶数のバイトを含まなければならない。 Block to be converted must contain an even number of bytes for the enclave function.

【0036】 オートクレーブ機能は、ブロックをそれ自体に対して実行される機能によって変えるための、暗号システムにおける公知の技術である。 The autoclave function is to change the functions performed block to itself, is a known technique in cryptographic systems. 本発明のエンクレーブプロセスは、10バイトのブロック全体を通じて完全なシンボル間依存を達成するために、データブロックに対する他の操作と関連してオートクレーブ型機能を使用する。 Enclave process of the present invention, in order to achieve a dependence between complete symbol throughout the 10-byte block, in conjunction with other operations on a data block using the autoclave type function. 完全なシンボル間依存は、ブロックの各バイトがブロックの他の各バイトとそれ自体の関数である場合に達成される。 Between complete symbol dependent, each byte of the block is achieved when the other functions of each byte and its own block.

【0037】 第6図に示された構成では、右の半ブロック62がEna [0037] In the configuration shown in Figure 6, half block 62 on the right Ena
と付されたオートクレーブ機能によって、要素63と名付けられた新しいデータブロックに変換される。 By autoclaving functionality attached and is converted into a new data block named element 63. Enaで使用される特定のオートクレーブ機能は、後で第7図を参照しながら詳細に説明する。 Particular autoclave function used in Ena will be described in detail with reference to Figure 7 later. 要素63の右半ブロックは、 The right half block of the element 63,
Enbと付された第2のオートクレーブ変換を受け、要素6 Receiving a second autoclave transformation, labeled as Enb, element 6
4の半ブロックを生成する。 To generate a half-block of 4. そして、この半ブロックは、要素65でビット毎の排他的OR機能によって、変更されない左の半ブロック61と組み合わされて、要素66で新しい左の半ブロックを生成する。 Then, this semi-block, the exclusive-OR function of each bit in element 65, in combination with half block 61 left unchanged, to produce a half block of the new left element 66. そして、要素66の左半ブロックは、オートクレーブ機能Encを受けて、要素67 Then, the left half block element 66 receives the autoclave function Enc, elements 67
の変換された左半ブロックを生成する。 Generating a transformed left half blocks. その後、要素67 Then, element 67
の左半ブロックは、次のオートクレーブ変換Endを受けて、要素68の改変された左半ブロックを生成する。 The left half blocks, receives the next autoclave transformation End, to produce a modified left half blocks of element 68. そして、要素58の左半ブロックは、排他的OR機能によって、 Then, the left half block element 58, by exclusive-OR function,
先に変換された要素64の右半ブロックと組み合わされる。 Combined with the right half block of the converted first element 64. この排他的OR機能は、要素70の新しい右半ブロックを生成する。 The exclusive OR function generates a new right half block elements 70. そして、要素68の左半ブロックは、右半ブロック70と結合されて、本発明のエンクレーブ機能を受けた要素71の全体ブロックを生成する。 Then, the left half block elements 68 is coupled with the right half block 70, to generate the entire block element 71 which has received the enclave function of the present invention.

【0038】 右半ブロック62がEnaおよびEnbに従って2つのオートクレーブ機能を受けた後、右半ブロックはそれ自体の中で完全なシンボル間依存を達成している。 The right half block 62 after receiving two autoclave functions in accordance with Ena and Enb, the right half blocks have achieved depends inter complete symbol within itself. 左半ブロック The left half block
61と現在の右半ブロック64が、要素65の排他的OR機能によって組み合わされると、左半ブロックが右半ブロックと完全なシンボル依存関係になる。 61 and the current right half blocks 64, when combined by an exclusive-OR function of the element 65, the left half block is complete symbol dependencies and right half block. そして、要素66の左半ブロックが2つのオートクレーブ機能EncおよびEndによって変換されると、要素68の左半ブロックがそれ自体と右半ブロックに対して完全なシンボル間依存関係になる。 When the left-half block elements 66 is converted by the two autoclaves functions Enc and End, the left half block elements 68 is dependent among complete symbol to itself and right half block. 従って、左半ブロックは10バイトのブロック全体との完全なシンボル間依存を達成している。 Therefore, the left half blocks have achieved depends inter complete symbol of a whole block of 10 bytes. 要素64の右半ブロックが、要素69で排他的OR機能によって、現在の左半ブロック組み合わされると、右半ブロックが10バイトのブロック全体に完全にシンボル間依存する。 Right half block element 64, by exclusive-OR function in element 69, when combined current left half block, right half block is totally dependent intersymbol on the entire block of 10 bytes. 要素68の左半ブロックと要素70の右半ブロックが結合して要素71 Right half blocks are bonded to the elements of the left half blocks and elements 70 of the elements 68 71
の完全ブロックを形成すると、ブロックの各バイトがブロックの他の各バイトとそれ自体の関数になる。 To form a complete block of each byte of the block is another function of each byte and its own block.

【0039】 第6図に示すエンクレーブ機能で使用される特定のオートクレーブ機能は、変換される半ブロックの要素ないしバイトを半ブロックの他の2つの要素に加えるプロセスである。 The particular autoclave function used in the enclave function shown in FIG. 6 is a process of adding an element to byte half block to be converted to the other two elements of the half block. このプロセスは、半ブロック内の各要素が、 This process, each element in the half-block,
そのように改変されるまで繰り返される。 It is repeated until so modified. 夫々の半ブロック内で完全なシンボル間依存を生成するために、変えられる要素に少なくとも2つの要素を加える必要がある。 To generate the dependency between complete symbol in each of the half-block, it is necessary to add at least two elements to be changed element. 更に、このオートクレーブ機能は、半ブロックのすべてのバイトがそれ自体と他の各バイトの関数になることを確実にするために、半ブロック全体に対して2度実行される。 Moreover, the autoclave function is to ensure that all bytes of the half block is itself and other functions of each byte is performed twice on the entire half-block. Ena、End、EncおよびEndは、項目a、項目b、項目cおよび項目dを夫々が含む複数のエンクレーブ表で表される。 Ena, End, Enc and End, the item a, item b, is represented by a plurality of enclave tables, including the s husband item c and item d. サンプル表Enを下に示す。 The sample table En shown below.

【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 [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段階で実行される。 [0041] Each sub-table has five columns, the autoclave function is performed in five steps from top to bottom. 各サブテーブルの列の高さは、変換される半ブロックの長さと等しくなければならない。 The height of the column of each sub-table must be equal to the length of half a block to be converted. . 好適実施例では、ブロックの長さが10バイトで、半ブロックの長さが5バイトであるから、列の高さは5である。 In the preferred embodiment, the length of the block is 10 bytes, since the length of half a block is 5 bytes, the height of the column is 5. 各列は半ブロック内の各バイトを意味する数を含まなければならない。 Each column must include a number of means each byte in half block. 好適実施例では、各半ブロックに5バイトが存在するので、1〜5の数がバイトを指定している。 In the preferred embodiment, since the 5 bytes each half block exists, the number of 1 to 5 specifies a byte. 各列が各バイトを示さなければならない。 Each column must show each byte. 行の長さは半ブロックの長さの半分より大きくなければならず、各行1〜5の明確な数値を含まなければならない。 The line length must be greater than half the length of half a block, it must contain a clear numerical value of each line 1-5. 言い換えれば、1〜5のどの数も、サブテーブルのいかなる行においても繰り返されるべきでない。 In other words, the number of 1-5 throat also should not be repeated in any row of the subtable. table
Enの総数は暗号化スペースの因数であるべきである。 The total number of En should be a factor of the encryption space. 要するに、Enの各サブテーブルの縦の行が1〜5の異なる数を持ち、横の行がすべて1〜5の異なる数を持たなければならない。 In short, the vertical line of each sub-table of En is has a number of different 1 to 5, the horizontal line must all have a number of different 1 to 5. 更に、特定の行におけるサブテーブルの第2および第3の要素の夫々が第1の項目と異ならなければならない。 Furthermore, the respective second and third elements of the sub-table in a particular row must be different from the first item. 第1の項目(つまり、1行目にある)が変換されるブロックのバイトを特定し、第2および第3 The first item (i.e., in the first line) will identify the bytes of the block to be converted, second and third
の項目(2行目および3行目にある)が変換されるバイトに算術的に結合されて新しい値を作り出すバイトを表す。 Items (in the second and third rows) is arithmetically coupled to byte to be converted indicates the byte to create a new value.

【0042】 このオートクレーブ機能は、上記した具体的なサンプル表Enaに従った右の半ブロックの変換を示す第7図との関連で、よりよく表すことができる。 [0042] The autoclave function, in conjunction with Figure 7 showing the conversion of half block right in accordance with the specific sample table Ena described above, can be expressed better. Enaの第1の項目は「3 1 5」で、これは半ブロックの3番目のバイト(つまり、バイト8またはB8)が1番目のバイト(B6)と5番目のバイト(B10)の値に加えられて、3 The first item in Ena is "3 1 5", which is the value of the third byte of the half block (i.e., byte 8 or B8) is 1 byte (B6) and the fifth byte (B10) been added, 3
番目のバイト(B8)の新しい値を生成することを意味する。 It means to generate a new value of the second byte (B8). 各足し算用のモジュラ計算は、アルファベットスペースのサイズに従って使用される。 Modular calculated for each addition is used in accordance with the size of the alphabet space. ここでは、アルファベットスペースが好適実施例の7個のデータビットによって定まる27つまり128であるから、計算ステップでモジュラ128が使用される。 Here, since the alphabet space is 27 i.e. 128 defined by seven data bits of the preferred embodiment, the modular 128 is used in the calculation step. Enaの次の項目は「5 3 The following items of Ena is "5 3
4」で、これは5番目のバイト(B10)が3番目のバイト(先に変換されたB8)と4番目のバイト(B9)に加えられることを意味する。 4 ", which means that applied to the fifth byte (B10) is a third byte (converted previously B8) and the fourth byte (B9). 第3項目は「4 2 1」で、 The third item is "4 2 1",
これは4番目のバイト(B9)が2番目のバイト(B7)と5番目のバイト(B5)に加えられることを意味する。 This means that the fourth byte (B9) is added to the second byte (B7) and 5 th byte (B5). 第4項目は「1 4 2」で、これは1番目のバイト(B The fourth item is "1 4 2", this is the first byte (B
6)が4番目のバイト(B9)と2番目のバイト(B7)に加えられることを指示する。 6) indicating that is added to the fourth byte (B9) and the second byte (B7). 表Enaの第5項目は「2 The fifth item of the table Ena is "2
5 3」で、これは2番目のバイト(B7)が5番目のバイト(B10)と3番目のバイト(B8)に加えられて、新しい2番目のバイト(B7)を生成することを意味する。 5 3 ", this is the second byte (B7) is fifth byte (B10) and added to the third byte (B8), it means generating a new second byte (B7) .
以上のように、オートクレーブ機能は他の表Enbを使用して繰り返され、変換される特定の半ブロック内に完全なシンボル間依存を生成する。 As described above, the autoclave function is repeated using the other table Enb, to generate dependency between complete symbol in a particular half block to be converted. Ena、Enb、EncおよびEnd Ena, Enb, Enc and End
はすべて同一でもよいが、特定のエンクレーブ表En内の各サブテーブルが互いに異なる方が良い。 Although all may be identical, different better together each subtable within a particular enclave table En.

【0043】 選択される特定のエンクレーブ表Enは、変換されるデータに対する計算機能を通じて先に生成された数に従って定まる。 The particular enclave table En selected is determined according to the number previously generated through calculation function for data to be converted. キー表の生成と関連して、選択されるエンクレーブ表は、第3図の要素58で生成される数Zによって定まる。 In connection with the generation of the key table, the enclave table selected is determined by the number Z which is generated by the element 58 of FIG. 3. 第6図のエンクレーブプロセスと関連した表記「n」は、第3図のキー表項目の生成と関連して使用された表記「n」と区別されるべきものである。 Notation "n" in connection with the enclave process Figure 6 are to be distinguished from the FIG. 3 notation "n" used in connection with the generation of the key table entry.

【0044】 第2図に示す初期化ルーチンの最終ステップは、ステップ40のマスク表作成である。 The final step of the initialization routine shown in FIG. 2 is a mask table creation step 40. マスク値は、データ変換を行うために表中の特定項目の選択を助けるために、暗号化および復号化プロセスで使用される決定因である。 The mask value, in order to assist the selection of a specific item in the table in order to perform the data conversion, is determinative for use in encryption and decryption processes.
後で明らかにされるマスクの機能は、暗号解読者が暗号アルゴリズムを逆方向に進め、システムで使用される当初のキーを計算することを不可能にするように、他の顕著な要因を付加することにある。 Later function of a mask is revealed, cryptanalyst is advanced encryption algorithm in the opposite direction, so that it impossible to calculate the original key used in the system, adding another significant factor It is to.

【0045】 一般的に、マスク値は、キー表または当初のキーから得た2個以上の値の計算結果である。 [0045] In general, the mask value is the calculated result of the two or more values ​​from the key table or the original key. 好適実施例はMask Preferred embodiment Mask
nと表記された4個のマスク値を含み、nは1〜4である。 n and includes inscribed four mask values, n represents 1 to 4. nの最大範囲は、暗号システムに含まれる可変機能の数に相当する。 Maximum range of n corresponds to the number of variable functions included in the cryptographic system. 好適実施例では、システムが転置、キー加算、エンクレーブおよび換字の可変機能を含み、従って、マスクの最大数nは4である。 In the preferred embodiment, the system is transposed, key addition, comprises a variable function of the enclave and substitution, therefore, the maximum number n of the mask is 4. 各マスク表項目は Each mask sheet items
10バイトのブロックである。 It is a block of 10 bytes. 従って、これらの各バイトはMaskn,bとアドレスでき、bは1〜10である。 Thus, each of these bytes is maskN, can b and address, b is 1 to 10. 好適実施例では、マスクが次のように生成される。 In the preferred embodiment, the mask is generated as follows. Mask1,1と名付けられたMask1の最初のバイトが、キー表の最初の3 The first byte of Mask1 named Mask1,1 is, the first three of the key table
2個のキーにおける最初のバイトの値を合計することによって生成される。 It generated by summing the value of the first byte in the two keys. これらの値は、アルファベットスペースによって定まるモジュラ計算、ここではモジュラ12 These values ​​are modular calculations determined by the alphabet space, modular 12 here
8、を使用して合計される。 8, are summed using. 最初のマスクの後続バイトは、夫々キー表の最初の32個のキーのそれぞれにおける対応バイトを合計することによって生成される。 Subsequent bytes of the first mask is generated by summing the corresponding byte in each of the first 32 keys each key table. Mask2 Mask2
と名付けられた第2のマスクが、表の次の32個のキー、 Second mask named the next 32 keys in the table,
つまりキー32...キー63、におけるバイトの同様な合計によって生成される。 That key 32 ... key 63 are generated by a similar total bytes in. 同様に、第3のマスクが、キー表の次の32個のキー、つまりキー64〜キー95、に対する処理によって生成される。 Similarly, the third mask, next 32 keys of the key table, that is generated by the processing for the key 64 to key 95,. 最後に第4のマスクがキー96〜 Finally, the fourth of the mask key 96 to
キー127を使用して生成される。 It is generated using the key 127. マスクの生成は次の式で数学的に表現することができる(1がb以下で、bが Generating mask can be expressed mathematically by the following equation (1 hereinafter at b, b is
10以下)。 less than 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 [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】 キー表およびマスクを生成するための他の選択が可能である。 The key table and is capable of other choices for generating mask. マスク生成は、単にキー表作成において更に4 Mask generation is simply a further 4 in the creation key tables
個のキーを生成し、これら4個の追加のキーを4個のマスクとして使用すればよい。 Generates a number of keys, it may be used to these four additional keys as the four masks. 又、キー表のキーはマスク生成に使用するものと同じ方法で生成できる。 Also, the key of the key table can be generated in the same way as that used in the mask generation. 又、キー表は、キー表の最初の2項目を生成した後、可変機能を利用してもしなくても、第3のキーを最初の2個のキーの関数とすることによって生成できる。 Also, the key table, after generating the first two items of the key table, or may not use a variable function can be generated by the third key a function of the first two keys. このように、先に生成されたいずれかのキーで後続のキーを作成できる。 In this way, you create a subsequent key any key previously generated.

【0048】 本発明の好適実施例による暗号化プロセスのフローチャートを第8図に示す。 [0048] The flowchart of the encryption process according to a preferred embodiment of the present invention shown in FIG. 8. この好適実施例は、各データブロックについて、いくつかの暗号化ラウンドを含むので、以下で「R」の文字を使用してラウンド番号を示す。 The preferred embodiment, for each data block, because it includes a number of encryption rounds, indicating the round number using the letter "R" in the following. 最初に、ステップ100で、ラウンド番号をゼロにセットする。 First, in step 100, to set the round number to zero. そして、ステップ102で、マウンド番号Rを1つインクリメントする。 Then, in step 102, it is incremented by one mound number R. ステップ104で、暗号化されるデータが10バイトのブロックで表される。 In step 104, data to be encrypted is represented by the 10-byte blocks. 暗号化の最初のラウンドのとき、要素104のデータは暗号化される平文である。 When the first round of encryption, the data elements 104 are plaintext to be encrypted. その後のラウンドでは、このデータが当初の平文データと異なる中間物になるが、まだ最終の暗号文出力でない。 In subsequent rounds, this data is the original plain text data with different intermediate, not yet final ciphertext output.

【0049】 ステップ106で、データが先ず可変転置操作を受ける。 [0049] In step 106, the data is first subjected to variable transpose operation. 第9図との関連で後で詳しく説明するが、可変転置を行うために、転置表メモリ108から項目が選択され、 As described below in detail in conjunction with FIG. 9, in order to perform variable transposition item is selected from the transposition table memory 108,
マスク表メモリ110から値が選択される。 Values ​​from the mask table memory 110 is selected. そして、操作はステップ112へ進み、「C」が付された選択成分をラウンド数Rと等しくする。 Operation then proceeds to step 112, equal to the number of rounds R a selection component "C" is attached. そして、操作はステップ114 Then, the operation step 114
へ進み、データに対して最初の可変キー加算を実行する。 To proceed, the execution of the first variable key addition to the data. 第10図との関連で後で詳しく説明するが、可変キー加算を実行するために、キー表メモリ116からキーが選択され、マスク表メモリ110から値が選択される。 As described below in detail in conjunction with FIG. 10, in order to perform the variable key addition, the key is selected from the key table memory 116, the value from the mask table memory 110 is selected. そして、操作はステップ118へ進み、選択成分Cをラウンド数より1つ大きい値にセットする。 Operation then proceeds to step 118 and sets the selected component C one greater than the number of rounds. ステップ118の後、 After the step 118,
操作は質問120へ進み、選択成分Cが11と等しいか判断する。 Operation proceeds to question 120 determines whether selection component C is equal to 11. 等しくなければ、操作はステップ122へ直行し、 Not equal, the operation will straight to step 122,
キー表メモリ116からのキーを使用し、マスク表メモリ1 Use the key from the key table memory 116, mask table memory 1
10からの値を使用して、データに対する第2の可変キー加算を実行する。 Using the values ​​from 10 to execute the second variable key addition for data. ステップ118での加算後に選択成分C Selected after the addition in step 118 the component C
が11と等しい場合は、操作はステップ124へ進み、選択成分を1の値にセットする。 If There equals 11, the operation proceeds to step 124 and sets the selected component to a value of one. そして、操作はステップ12 Then, the operation step 12
2の第2可変キー加算の作業に進む。 Proceed to the work of the second variable key addition of two.

【0050】 ステップ122の第2可変キー加算機能の後、操作は126 [0050] After the second variable key addition function at step 122, operation 126
へ進み、データに対して可変エンクレーブが行われる。 Proceed to, variable enclave is performed on the data.
この可変エンクレーブ機能は、第6および7図との関連で既に述べたが、そこでエンクレーブ表メモリ128から項目が選択される。 This variable enclave function is already mentioned in connection with the sixth and FIG. 7, where an item is selected from the enclave table memory 128. 選択される特定のエンクレーブ表は、マスク表メモリ110から得られるマスク3,Rによって定まる。 Particular enclave table selected is determined by the mask 3, R derived from the mask table memory 110. これは式n=マスク3,Rで表すことができ、n This can be represented by the formula n = mask 3, R, n
は第6および7図の操作用に選択されたエンクレーブ表メモリである。 Is enclave table memory selected for the operations of the sixth and Figure 7. 後で詳しく説明するが、マスク1はステップ106の可変転置操作との関連で使用され、マスク2 As will be described in detail later, the mask 1 is used in connection with the variable permutation operation at step 106, the mask 2
はステップ114および122の可変キー加算との関連で使用され、マスク4は後の可変換字操作で使用される。 Is used in connection with the variable key addition of steps 114 and 122, it is used in a soluble conversion shaped Operations after mask 4.

【0051】 そして、操作はステップ130へ進み、選択成分Cをもう一度ラウンド数Rと等しくする。 [0051] Then, the operation proceeds to step 130, to equal again round number R selective component C. その後、ステップ13 Then, step 13
2で、第1の可変換字に従ってデータが変換される。 2, data is transformed in accordance with a first variable conversion character. 後で詳しく説明するが、可変換字はマスク表メモリ110からの置を使用し、S−ボックスおよびS′−ボックスメモリ134から適当なS−ボックス表を選択する。 As will be described in detail later, the variable conversion character uses location from the mask table memory 110, selects the appropriate S- box table from S- boxes and S'- box memory 134. そして、操作はステップ136へ進み、選択成分Cの値を1つインクリメントする。 Operation then proceeds to step 136 and increments one value of the selected component C. 質問138で、選択成分が11と等しいか判断する。 A question 138 determines whether selected component is equal to 11. 等しくなければ、操作はステップ140の第2可変換字へ直行する。 Not equal, the operation is perpendicular to the second friendly conversion-shaped step 140. ステップ136後の選択成分が1 Selection component after step 136 is 1
1と等しければ、操作は質問138からステップ142へ進み、選択成分を1の値にセットする。 Equal to 1, the operation proceeds from the question 138 to step 142 and sets the selected component to a value of one. その後、操作はステップ140の第2可変換字へ進む。 Thereafter, the operation proceeds to the second-friendly conversion-shaped step 140. ステップ140の第1可変換字と同様、第2可変換字は第11図で詳細に説明するが、これはマスク表メモリ110からの値とS−ボックスおよびS′−ボックスメモリ134からの表を用いてデータを変換する。 Similar to the first friendly conversion-shaped step 140, the second-friendly conversion character table from the first 11 will be described in detail Figure, which is a value from the mask table memory 110 S- boxes and S'- box memory 134 to convert the data used.

【0052】 その後、操作は質問144へ進み、ラウンド数が10の値に到達したか判断する。 [0052] Thereafter, the operation proceeds to question 144, the number of rounds it is determined whether reaches the value of 10. ラウンド数が10に到達した場合は、暗号化プロセスが完了し、暗号文がステップ146で出力として表される。 If the round number has reached 10, the encryption process is complete, the ciphertext is represented as an output in step 146. ラウンド数が10にまだ到達していない場合、操作はステップ102へ戻り、ラウンド数を1 If the round number has not yet reached 10, the operation returns to step 102, the number of rounds 1
つインクリメントする。 One increment to. そして、可変転置106、第1可変キー加算112、可変エンクレーブ126、第1可変換字13 Then, the variable permutation 106, the first variable key addition 112, the variable enclave 126, the first allowed conversion character 13
2および第2可変換字140を含む上記ステップをすべて実行する。 All of the above steps, including a 2 and a second friendly conversion shaped 140 executes.

【0053】 第8図の可変転置を、第9図のブロック図で詳しく説明する。 [0053] The variable permutation of FIG. 8, will be described in detail in the block diagram of Figure 9. 変換されるデータは要素150でバイトB1〜B10として表されている。 Data to be converted is represented as byte B1~B10 in element 150. 転置の実行に転置表メモリ108のどれかの表を選択するために、データの10バイトの値を要素152で合計し、要素154のメモリレジスタZに格納される値を生成する。 To select one of the tables in the transposition table memory 108 to perform the permutation, the sum of the values ​​of the 10-byte data element 152, to generate a value stored in memory register Z in element 154. 要素154のレジスタZの値を、ビット毎の排他的OR機能で、マスク表メモリ110からのマスク The value of the register Z in element 154, an exclusive OR function of each bit mask from the mask table memory 110
1,Rと組み合わせることによって値を生成する。 1, to produce a value by combining R. この値は要素156のメモリレジスタWに格納される。 This value is stored in memory register W element 156. 例えば、 For example,
暗号化の最初のラウンドでは、要素156でマスク1,1を使用して、Zとの排他的OR演算でWを生成する。 In the first round of encryption, using a mask 1,1 in element 156, to produce a W exclusive OR operation with Z. 好適実施例では暗号化が10ラウンドであるので、暗号化ラウンドでマスク1の10個の値が順次使用される。 Since in the preferred embodiment encrypted it is 10 rounds, 10 values ​​of the mask 1 are sequentially used in cipher round.

【0054】 そして、操作は要素158へ進み、Pwで表される転置表Wからの指令を使用して、データブロックに対する標準転置が実行される。 [0054] Then, the operation proceeds to element 158, using the command from the transposition table W, represented by Pw, the standard transposition for a data block is performed. 転置されたデータブロックが、第9 Transposed data block, 9
図の要素160にバイトb1〜b10として示されている。 It is shown as byte b1~b10 in FIG element 160. 同じデータを同じステップで復号化できるよう、暗号化されるデータの10バイト全てを用いて、変換に使用する転置表を選択することが重要である。 As to decode the same data at the same step, using all 10 bytes of data to be encrypted, it is important to select the permutation table used for conversion. 仮にブロックのいくつかのバイトのみを用いて、使用される転置表を決定したとすれば、復号化プロセス時にどの転置表が選択されたか判断できなくなる。 If using only a few bytes of a block, if determined the transposition table for use, it can not be determined what permutation table was selected when the decoding process. 排他的OR演算でZをマスク1,Rと組み合わせてWを生成せず、モジュラ計算でZとマスク Without generating a W a Z exclusive OR operation in conjunction with mask 1, R, Z and the mask in modular calculation
1,Rの値を合計して、使用される転置表を決定することも可能である。 1, and the sum of the values ​​of R, it is also possible to determine the permutation table used. このことは、排他的OR演算を使用して2 This uses an exclusive OR operation 2
つのデジタル値が組み合わされる出願の残り部分全体に当てはまる。 One of the digital values ​​are combined applies to the entire remainder of the application. 排他的OR演算はデジタルコンピュータで実施すると計算上容易だが、本発明では、排他的OR演算を行わずに、値を単に算術的に合計することによっても同じ結果が得られる。 Exclusive OR operation but readily on calculated implemented in a digital computer, in the present invention, without an exclusive OR operation, the same results can be obtained by summing merely arithmetically values.

【0055】 第8図のステップ114および122に示された本発明の可変キー加算機能が第10図に図表で示されている。 [0055] Variable key addition function of the present invention shown in step 114 and 122 of Figure 8 is shown graphically in Figure 10. ステップ114の第1およびステップ122の第2の各可変キー加算は、選択成分Cの値が1にセットされる10番目の暗号化ラウンドのとき以外、選択成分Cの値が第1可変キー加算のときより第2可変キー加算のときの方が1つ大きいことを除いて同一である。 Each variable key addition a second of the first and step 122 of step 114, except when the 10-th cipher round the value of the selected component C is set to 1, the value is the first variable key addition of selected components C are identical except that the larger one of the time than the second variable key addition when. その他では、第8図のステップ114および122で行われる可変キー加算のステップは第 Elsewhere, the step variable key addition performed in step 114 and 122 of FIG. 8 is a
10図に示されたように同一である。 As shown in FIG. 10 are the same.

【0056】 可変キー加算用としてキー表メモリ116から選択される特定のキーは、バイトC(BCと呼ぶ)とマスク2,Rによって定まる。 [0056] particular key selected from the key table memory 116 for the variable key addition is (referred to as BC) bytes C and determined by the mask 2, R. これは、値ZをBCと等しくする第10図の要素172と、WをZ XOR マスク2,Rと等しくする要素1 This is an element 172 of FIG. 10 to equal the value Z and BC, element 1 equal to Z XOR mask 2, R and W
74で示されている。 It is shown at 74. 値Wは、可変キー加算のその特定のラウンド時での使用として、キー表メモリ116からキーを選択するのに使用される。 The value W as used at the time of that particular round of the variable key addition is used from the key table memory 116 to select a key. キーWの10バイトは第10図の要素176として示されている。 10 bytes of key W is shown as element 176 in FIG. 10. その後、要素170のバイトのブロックにおける各バイトが、要素178の排他的OR Thereafter, each byte in the block of bytes in element 170, exclusive-OR element 178
機能で、一連の排他的ORを介して、キーWの対応するバイトと組み合わされる。 In function, through a series of exclusive OR, combined with the corresponding byte of the key W. 例えば、B1 XOR キーはW1はb For example, B1 XOR key W1 is b
1を生成する。 To produce one. 同様に、B2 XOR キーW2はb2を生成する。 Likewise, B2 XOR key W2 generates b2. 唯一の例外は、変換されるブロック中のバイトC The only exception is, byte C in the block to be converted
(BC)がキーWの対応バイトと組み合わされず、変更なしで直接bCになることである。 (BC) is not combined with the corresponding byte of the key W, it is to become directly without change bC. これは、変換される要素 This is the conversion element
170のデータの各バイトと関連した要素180の一連の質問で表されている。 It is represented by a series of questions related elements 180 and 170 each byte of data. Cがバイト数と等しい場合、そのバイトは対応キーバイトと組み合わされない。 If C is equal to the number of bytes, the bytes are not combined with the corresponding key byte. 可変キー加算のラウンドを経たデータブロックが第10図の要素182として示されている。 Variable key data block after the round addition is shown as element 182 in FIG. 10.

【0057】 第8図に示した暗号化用の可変換字が、第11図により詳細に示されている。 [0057] variable conversion shaped for encryption shown in FIG. 8 is illustrated in more detail in Figure 11. 可変キー加算と同様、選択成分C Similar to the variable key addition, optional components C
が第2の可変換字で変更される点を除いて、ステップ13 There except that it is modified by the second variable converting character, step 13
2の第1可変換字とステップ140に第2可変換字は同一である。 First Allowed converting characters and step 140 of the 2 second-friendly conversion character is the same. その他は、各ステップとも同じである。 The rest is the same for each step. 換字プロセスでは、選択されるS−ボックスZが、変換されるデータのバイトCとマスク4,Rによって定まる。 The substitution process, S- box Z to be selected, determined by byte C and the mask 4, R data to be converted. これは、 this is,
値ZをBCと等しくする第11図の要素192と、WをZ XOR And Figure 11 elements 192 to equal the value Z and BC, W and Z XOR
マスク4,Rと等しくする要素194で示されている。 It indicated by element 194 equal to the mask 4, R. 要素 element
194で生成された値Wは、換字で使用される要素196の特定S−ボックスを選択するのに使用される。 Values ​​W generated in 194 is used to select a particular S- box element 196 used in the substitution. S−ボックス選択後、要素190の被変換ブロックにおける各バイトが、S−ボックスWに従って、選択された値に代えられるが、バイトC(BC)はこの変換ラウンド時には変換されない。 After S- box selection, each byte in the transform block elements 190, according S- box W, but are instead chosen value, byte C (BC) is not converted during the conversion rounds.

【0058】 可変キー加算および可変換字の両方において、バイトC(BC)を変換しないことが重要である。 [0058] In both the variable key addition and variable conversion character, it is important not to convert the byte C (BC). このようにして、逆方向の復号化操作に同じ変換を用いることが可能になる。 In this way, it is possible to use the same conversion in the opposite direction of the decoding operation. 要素190の変換されるブロックの各バイトと結び付いた要素198の一連の質問が、どのようにしてバイドCが変えられないまま直接要素200の対応出力バイトになるかを示している。 Series of questions elements 198 associated with each byte of the block to be converted in element 190 indicates how the become corresponding output byte remains directly element 200 Bide not C are varied. 例えば、選択成分Cが1と等しい場合、要素190のB1は要素200のb1と等しくなる。 For example, if the selected component C is equal to 1, B1 element 190 is equal to b1 of the element 200. それ以外は、要素200の残りのバイトは、S−ボックスWに記載された換字プロトコールに従って、要素190の当初値と異なる値を持つ。 Otherwise, the remaining bytes of the element 200, in accordance with substitution protocol described in S- box W, with the original value different from the value of the element 190. 転置表の選択でも同じ手法が使用できる、つまり1つのバイトを使用し、それを変えないままにしておくのである。 Can be used the same approach in the selection of transposition table, i.e. using a single byte is to leave without changing it.

【0059】 暗号文のブロックを復号化するステップが、第12図に示されている。 [0059] decrypting a block of ciphertext is shown in FIG. 12. 復号化は本質的に第8図の暗号化ステップの逆方向の反復であるから、ラウンド数がステップ21 Since decoding is essentially the reverse iteration of the encryption step of FIG. 8, the number of rounds Step 21
0で先ず10にセットされる。 0 is first set to 10. 復号化されるデータブロックが選択され、10データバイトのブロックとして要素21 Data block to be decoded is selected, the element 21 as a block of 10 data bytes
2に表される。 Represented in 2. 復号化の最初のラウンドでは、要素212のデータは当初の暗号文である。 In the first round of decryption, data elements 212 are initially ciphertext. そして、操作はステップ Then, the operation step
214へ進み、選択成分Cをラウンド数より1つ大きい値にセットする。 The process proceeds to 214 and sets the selected component C one greater than the number of rounds. 質問216で、選択成分Cが11と等しいか判断する。 A question 216 determines whether selection component C is equal to 11. 等しくなければ、操作はステップ218へ直行し、データに対して最初の逆可変換字を実行する。 Not equal, the operation will straight to step 218, performing a first inverse-friendly conversion character to the data. 逆可変換字は第13図に詳しく示されている。 Conversely friendly transformation shape is shown in detail in Figure 13. 最初の逆可変換字218はマスク表メモリ110とS′−ボックスメモリ134 The first inverse-friendly conversion character 218 is a mask table memory 110 S'box memory 134
からのデータを使用する。 Using the data from. 質問216で、選択成分が11と等しければ、ステップ220で選択成分を1にセットし、 A question 216, equal selection component 11, is set to 1 to select components in step 220,
操作は要素218の最初の逆可変換字へ進む。 Operation proceeds to the initial reverse Allowed conversion-shaped element 218. そして、操作はステップ222へ進み、選択成分をラウンド数と等しくし、その後、ステップ224で第2の逆可変換字を実行する。 Operation then proceeds to step 222, equal to the number of rounds of selection ingredients, then performing a second inverse-friendly conversion character in step 224.

【0060】 ステップ224の第2逆可変換字の後、データは要素226 [0060] After the second inverse-friendly conversion-shaped step 224, the data elements 226
で逆可変エンクレーブ機能に付される。 In is subjected to the inverse variable enclave function. この機能は第14 This feature is the first 14
および15図との関連で後で詳しく述べる。 And described in greater detail below in connection with Figure 15. しかし、マスク表メモリ110からマスク3,Rが選択され、その値が、エンクレーブ表メモリ128から使用される特定のエンクレーブ表の選択に使用されることに注意すべきである。 However, selected from the mask table memory 110 mask 3, R is the value, it should be noted that are used to select particular enclave table used from enclave table memory 128.

【0061】 そして、操作はステップ228へ進み、選択成分を1つインクリメントし、質問230で、選択成分が11の値に到達したか判断する。 [0061] Then, the operation proceeds to step 228, is incremented by one selected component, a question 230, selection component determines whether reached the value of 11. 選択成分がまだ11の値に到達していなければ、操作はステップ232の第1逆可変キー加算へ進む。 If the selected component has not yet reached the value of 11, the operation proceeds to the first inverse variable key addition at step 232. 選択成分が11の値に到達していれば、ステップ23 If selected component has reached the value of 11, step 23
4で1の値にリセットし、操作はステップ234の第1逆可変キー加算へ進む。 4 is reset to a value of 1, the operation proceeds to the first inverse variable key addition at step 234. 第1逆可変キー加算はマスク表メモリ110とキー表メモリ116からのデータを用いてデータを変換する。 The first inverse variable key addition is to convert the data using the data from the mask table memory 110 and the key table memory 116. この操作は第16図に詳しく示されている。 This operation is shown in detail in FIG. 16. そして、操作はステップ236へ進んで、選択成分をラウンド数と等しくする。 Operation then proceeds to step 236, equal to the number of rounds of selection component. そしてデータは、ステップ238で第2逆可変キー加算を受ける。 The data is subjected to a second inverse variable key addition at step 238. 選択成分の値の相違を除いて、ステップ232の第1逆可変キー加算はステップ238の第2逆可変キー加算と同一である。 Except for the differences in the values ​​of the selected component, the first inverse variable key addition at step 232 is identical to the second inverse variable key addition at step 238.

【0062】 そして、操作はステップ240の逆可変転置へ進む。 [0062] Then, the operation proceeds to the inverse variable permutation of step 240. そして、データは、マスク表メモリ110からの項目と転置表メモリ108から項目を用いた特定の逆可変転置に付される。 Then, the data is subjected from the item and transposition table memory 108 from the mask table memory 110 to the particular inverse variable permutation using item. 逆可変転置は第17図との関連で詳しく述べる。 Conversely variable permutation is described in detail in connection with Figure 17.

【0063】 そして、操作は質問242へ進む。 [0063] Then, the operation proceeds to question 242. 復号化のラウンド数が1の値に到達していれば、復号化はこれ以上行われず、データの現状が平文出力としてステップ244で出力される。 If the number of decoding round has reached to a value of 1, the decoding is not performed any more, the current state of the data is output in step 244 as the plaintext output. ラウンド数が1の値にまだ到達していない合、 If the number of rounds has not yet reached to a value of 1,
ステップ246でラウンド数を1つ減らす。 The number of rounds remove one at step 246. そして、操作はステップ212へ進んで、第1逆可変換字218、第2逆可変換字224、逆可変エンクレーブ226、第1逆可変キー加算232、第2逆可変キー加算238、そして逆可変転置240 Operation then proceeds to step 212, the first inverse variable substitution 218, the second inverse variable substitution 224, the inverse variable enclave 226, the first inverse variable key addition 232, the second inverse variable key addition 238, and the inverse variable transposed 240
によって、復号化のラウンドを更に実行する。 By further performing a round of decoding.

【0064】 逆可変換字が第13図により詳細に示されている。 [0064] Conversely friendly transformation shape is shown in more detail in Figure 13. 復号化されるデータは要素250のバイトb1〜b10で表されている。 Data to be decoded is represented in bytes b1~b10 elements 250. 選択される逆換字ボックス(S′−ボックス)が、 Conversely substitution box (S'box) is to be selected,
bC XOR マスク4,Rによって定まる。 Determined by the bC XOR mask 4, R. これは、ZをbCと等しくする第13図の要素252と、WをZ XOR マスク4, This is an element 252 of FIG. 13 be equal to bC to Z, a W Z XOR mask 4,
Rと等しくする要素254で示されている。 It indicated by element 254 be equal to R. そして、Wは要素256の特定逆換字ボックス(S′−ボックスW)の選択に使用される。 Then, W is used to select the particular inverse substitution box element 256 (S'box W). そして、要素250のブロックにおけるバイトbC以外の各バイトが、選択されたS′−ボックスのプロトコールに従って代えられる。 Each byte other than the byte bC in the block elements 250, is replaced according to the protocol of the selected S'- box. 逆可変換字の結果は、要素260の10バイトデータブロックB1〜B10になる。 Result of the inverse-friendly conversion character will 10 byte data blocks B1~B10 elements 260.
バイトbCを代えない構成が復号化される要素250のデータの各バイトと関連したの一連の質問258で表されている。 Configuration without changing the byte bC is represented by a series of questions 258 associated with each byte of data elements 250 to be decoded. Rが10である復号化の最初のラウンドで、b10は、 In the first round of decryption R is 10, the b10,
逆換字に使用されるS′−ボックスの選択に用いられると共に、逆換字時に変更されない。 Together used is the S'- box selected using the reverse substitution is not changed during the reverse substitution. 第8図に示された暗号化プロセスでデータに対して実行される最終可変換字の際に10番目のバイトが変更されないままになっているので、暗号化プロセスを逆に働かせて暗号文データを元に戻すことができる。 Since 10-th byte in the final friendly conversion shaped to be performed on the data in the encryption process shown in FIG. 8 is left unchanged, the ciphertext data exert an encryption process in the opposite it can be returned to the original. このことは、第16図の逆可変キー加算にも当てはまる。 This also applies in the reverse variable key addition of FIG. 16.

【0065】 第15図の逆可変エンクレーブで使用される特定のオートクレーブ機能と共に、逆可変エンクレーブ機能が第14 [0065] with the particular autoclave function used in the inverse variable enclave in FIG. 15, the inverse variable enclave function 14
図に示されている。 It is shown in FIG. 第14図で実行されるステップは、本質的に第6図に示された暗号化の可変エンクレーブで行われるステップの逆である。 Steps performed in FIG. 14 is a reverse of the steps performed essentially variable enclave of encryption that shown in Figure 6. 要素270の復号化されるデータブロックは左の半ブロック272と、右の半ブロック2 The data block to be decoded of the element 270 and half block 272 of the left and right half block 2
74に分割される。 It is divided into 74. これら2個の半ブロックは、要素276 These two half blocks, elements 276
でビット毎の排他的OR機能によって組み合わされて、次の右半ブロック278を生成する。 In combined by exclusive-OR function of each bit, to produce the next right half block 278. 要素272の左半ブロックは、先ず逆オートクレーブ変換E′ndによって左半ブロック280に変換され、そして、逆オートクレーブ機能E′ncによって左半ブロック282に変換される。 Left half block element 272 is converted into left-half block 280 by first inverse autoclave transform E'nd, and is converted into left-half block 282 by an inverse autoclave function E'nc. そして、右半ブロック278は、要素284の排他的OR機能によって、左半ブロック282と組み合わされて要素286の最終的な左半ブロックを形成する。 The right half block 278, the exclusive-OR function of the element 284, in combination with left-hand block 282 to form the final left half blocks of elements 286. 要素278の右半ブロックは、先ず逆オートクレーブ変換E′nbによって右半ブロック要素288に変換され、そして、逆オートクレーブ機能E′naによって最終的な右半ブロック290に変換される。 Right half block element 278 is converted into the right-half block element 288 by first inverse autoclave transform E'nb, and is converted to the final right half block 290 by an inverse autoclave function E'na. 左半ブロック要素286と右半ブロック要素290が結合して、最終的な10バイトブロック292を形成し、これが逆エンクレーブ機能の結果になる。 Left half block element 286 and right half block elements 290 are bonded, the final 10-byte block 292 is formed, this becomes a result of the inverse enclave function.

【0066】 第14図の逆エンクレーブで使用される特定のオートクレーブ機能が、1例として第15図に示されている。 [0066] Certain autoclave function used in the inverse enclave of FIG. 14 is illustrated in FIG. 15 as an example. 大体、上記のようにエンクレーブ表が逆オートクレーブ機能で使用される。 Roughly, enclave table as described above is used in reverse autoclave function. しかし、項目は各列の下から上の順に読み込まれ、最初の行の項目によって示される被変換バイトの値が、エンクレーブ表項目の2行目および3行目で示される他の2つのバイトの値によって減じられる。 However, items are read from the bottom up in each column, the value of the conversion bytes indicated by the items in the first row, the other two bytes represented by the second and third rows of the enclave table entry It is reduced by the value.
第7図との関連で使用されたオートクレーブ機能と同様、逆エンクレーブで使用される逆オートクレーブ機能の例が第15図に示されている。 Similar to the autoclave function used in connection with FIG. 7, an example of the inverse autoclave function used in the inverse enclave is shown in Figure 15. 使用されるエンクレーブ表の最終項目が第15図の変換で最初に使用される。 The final item of the enclave table used is used first in the transformation of Figure 15. この項目は「2 5 3」で、これは5番目のバイト(B1 This item is "2 5 3", this is the fifth byte (B1
0)と3番目のバイト(B8)が2番目のバイト(B7)から引かれて、2番目のバイトの新しい値を生成することを意味する。 0) and the third byte (B8) is the subtracted from the second byte (B7), means generating a new value of the second byte. 暗号化で使用されたエンクレーブ機能と同様、計算はモジュラ計算で行われる。 As with enclave function used in the encryption calculation is performed in a modular calculation. 第15図で使用されるエンクレーブ表の最下部から次に上の項目は「1 4 Next item above the bottom of the enclave table used in FIG. 15, "1 4
2」で、これは4番目のバイト(B9)と2番目のバイト(B7)が1番目のバイト(B6)から引かれて、1番目のバイトの新しい値を生成することを意味する。 2 ", which is subtracted from the fourth byte (B9) and the second byte (B7) is 1 byte (B6), it means generating a new value of the first byte. 同様に、3番目の項目は「4 2 1」で、これは2番目のバイト(B7)と1番目のバイト(B6)が4番目のバイト(B9)から引かれて、4番目のバイトの新しい値を生成することを意味する。 Similarly, the third item is "4 2 1", which is the second byte (B7) and the first byte (B6) are subtracted from the fourth byte (B9), the fourth byte It means to generate a new value. エンクレーブ表の次の項目は「5 The next item in the enclave table "5
3 4」で、これは3番目のバイト(B8)と4番目のバイト(B9)が5番目のバイト(B10)から引かれて、 3 4 ", which is subtracted from the third byte (B8) and the fourth byte (B9) is the fifth byte (B10),
5番目のバイトの新しい値を生成することを意味する。 The new value of the fifth byte is meant to generate.
最後に、エンクレーブ表の最初の項目は「3 1 5」 At the end, the first item in the enclave table "3 1 5"
で、これは逆オートクレーブ機能の最後に使用される。 In, which is used at the end of the reverse autoclave function.
この項目は1番目のバイト(B6)と5番目のバイト(B1 This item is the first byte (B6) and the fifth byte (B1
0)が3番目のバイト(B8)から引かれて、3番目のバイトの新しい値を生成することを意味する。 0) is the subtracted from the third byte (B8), is meant to produce a new value of the third byte. これらすべてのモジュラ計算の結果が、バイトB6〜B10を含む最終ブロックとして第15図に示されている。 Results of all these modular calculation is shown in Figure 15 as the last block containing the byte B6~B10. 逆可変キー加算が第16図に図表で示されている。 Conversely variable key addition is shown graphically in FIG. 16. 逆可変キー加算用としてキー表メモリ116から選択される特定のキーは、バイトC(bCと呼ぶ)とマスク2,Rによって定まる。 Particular key selected from the key table memory 116 for the inverse variable key addition is (referred to as bC) bytes C and determined by the mask 2, R. これは、値ZをbCと等しくする第16図の要素302と、WをZ This is an element 302 of Figure 16 to equal the value Z and bC, the W Z
XOR マスク2,Rと等しくする要素304で示されている。 Indicated by element 304 be equal to the XOR mask 2, R. 値Wは、逆可変キー加算のその特定のラウンド時での使用として、キー表メモリ116からキーを選択するのに使用される。 The value W as used at the time of that particular round of the inverse variable key addition is used from the key table memory 116 to select a key. キーWの10バイトは第16図の要素306として示されている。 10 bytes of key W is shown as element 306 in FIG. 16. その後、要素300のバイトのブロックにおける各バイトが、排他的OR機能で、要素310の一連の排他的ORを介してキーWの対応するバイトと組み合わされる。 Thereafter, each byte in the block of bytes in element 300, an exclusive OR function, combined with the corresponding byte of the key W through a series of exclusive-OR elements 310. 例えば、b1 XOR キーW1はB1を生成する。 For example, b1 XOR key W1 generates B1.
同様に、b2 XOR キーW2はB2を生成する。 Likewise, b2 XOR key W2 generates B2. 唯一の例外は、変換されるブロック中のバイトCがキーWの対応バイトと組み合わされず、変更なしで直接BCになることである。 The only exception is the byte C in the block to be transformed is not combined with the corresponding byte of the key W, is that the immediate BC without modification. これは、変換される要素300のデータの各バイトと関連した要素310の一連の質問で表されている。 This is represented by a series of questions related elements 310 and each byte of data to be converted element 300. Cがバイト数と等しい場合、そのバイトは対応キーバイトと組み合わされない。 If C is equal to the number of bytes, the bytes are not combined with the corresponding key byte. 逆可変キー加算のラウンドを経たデータブロックが第16図の要素312として示されている。 Data blocks having undergone the inverse variable key addition round is shown as element 312 in FIG. 16.
第12図の逆可変転置を第17図のブロック図で詳しく説明する。 The inverse variable permutation of Figure 12 is described in detail in the block diagram of FIG. 17. 変換されるデータは要素320でバイトb1〜b10として表されている。 Data to be converted is represented as byte b1~b10 in element 320. 転置の実行に転置表メモリ108のどれかの表を選択するために、データの10バイトの値を要素 To select one of the tables in the transposition table memory 108 to perform the transposition elements a value of 10 bytes of data
322でモジュラ計算を用いて合計し、要素324の値Zを生成する。 Summed with modular calculation in 322, to generate a value Z elements 324. 要素324で生成された値Zを、要素326のビット毎の排他的OR機能で、マスク表メモリ110からのマスク The value Z generated at element 324, an exclusive OR function of each bit of the element 326, a mask from the mask table memory 110
1,Rと組み合わせることによって値Wを生成する。 1, generates a value W by combining R. 例えば、復号化の最初のラウンドでは、要素326でマスク1,1 For example, in the first round of decryption, mask elements 326 1,1
を使用して、Zとの排他的OR演算でWを生成する。 Use, to produce a W exclusive OR operation with Z.

【0067】 そして、操作は要素328へ進み、第4図との関連で既に示された転置表項目を単に逆に使用する標準逆転置が、データブロックに対して、P′Wで表される転置表Wからの指令を使用して実行される。 [0067] Then, the operation proceeds to element 328, the standard inverse permutation of using transposition sheet items already indicated in connection with FIG. 4 simply reversed, to the data blocks, represented by P'W use the command from the transposition table W is executed. 逆転置操作されたデータブロックが、第17図の要素330にバイトB1〜B10として示されている。 Conversely transpose operation data blocks is shown as byte B1~B10 element 330 of FIG. 17. 暗号化プロセスで暗号化されるデータの10バイト全てを用いて、変換に使用する転置表を選択したので、どの転置表を使用すべきか決定するために暗号文の10バイト全てを再び合計することによって、同じデータを復号化できる。 Using all 10 bytes of data to be encrypted in the encryption process, so was chosen permutation table used for conversion, summing again all 10 bytes of ciphertext to determine whether to use any permutation table the can decrypt the same data. これは、転置操作が単に値の順序を並べ変えたから可能である。 This is possible because transpose operation is simply rearranged the order of the values. 暗号化段階で使用された情報は、データの値を再度合計することによって抽出できる。 Information used in the encryption stage can be extracted by summing the values ​​of the data again.

【0068】 例 上記本発明の暗号化システムの実施例を使用した平文データの10バイトブロックの暗号化例を詳細に示す。 [0068] Examples encryption example 10-byte blocks of plaintext data using the embodiment of the encryption system shown in detail in the present invention. システムは転置表、換字表およびエンクレーブ表で初期化しなければならない。 The system must be initialized with permutation table, substitution table and an enclave table. この例で使用される、上記ガイドラインに従って生成された表は、それぞれ以下の表1〜 This is used in the example, the table generated in accordance with the above guidelines, Table 1 below, respectively
表3(表I)、表4〜表6(表II A)表7〜表9(表II Table 3 (Table I), Tables 4 6 (Table II A) Table 7 Table 9 (Table II
B)、および表10〜表14(表III)に示される。 B), and it is shown in Tables 10 14 (Table III). そして、キー表およびマスク表を作成するために10バイトの初期キーが選択される。 Then, 10 bytes initial key to create a key table and mask table is selected. この例用として当初キーは次のように選択される。 Initially key as for example is selected as follows.

【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を使用する。 [0069] key = 27 115 21 1 12 41 2 92 17 81 Sum the first five values ​​of the initial key (mod 128): (27 + 115 + 21 + 1 + 12) mod 128 = 176 mod 128 = 48 Therefore, using the transpose Table 48 to. 当初キーの最後の5個の値を合計する(mod 16): (41+2+92+17+81)mod 16=233 mod 16=9 従って、換字表9を使用する。 Initially summing the last five values ​​of the key (mod 16): (41 + 2 + 92 + 17 + 81) mod 16 = 233 mod 16 = 9 Therefore, using the substitution table 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を次のステップで使用する。 Take key: 27 115 21 1 12 41 2 92 17 81 substitution (Table 9): 50 56 15 124 102 99 109 74 26 73 transposition (Table 48): 56 74 50 73 109 15 102 26 124 99 Current key block summing the values ​​3~7 (mod 32): (50 + 73 + 109 + 15 + 102) mod 32 = 349 mod 32 = 29 Therefore, using the enclave table 29 in the next step. 現在のキーブロック: 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 Current key block: 56 74 50 73 109 15 102 26 124 99 Enclave (Table 29): 30 34 55 63 9 73 74 107 109 33 Thus, Key0 = 30 34 55 63 9 73 74 107 109 33

【0070】 当初キーを用いてキー表のKey0である第1のキーを作成したことが理解されよう。 [0070] It is possible that originally created the first key is a Key0 of the key table using the key be appreciated. 上記ステップを再生して、 To play the above steps,
キー0を用いてキー1を生成し、キー1を用いてキー2 Generate the key 1 using the key 0, key 2 using the key 1
を生成し、最後にキー126を用いてキー127を生成する。 Generates, finally generates the key 127 by using the key 126.
上記当初キーを使用して完成されたキー表は、後で表15 Key table that has been completed using the above-mentioned original key, later Table 15
〜表17(表IV)に示される。 And Table 17 are shown in (Table IV).

【0071】 次に、先に生成されたキー表を使用してマスク表を生成する。 [0071] Next, using the key table that has been previously generated to produce a mask table. 第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番目のバイトは To generate the first 1 byte, i.e. the first value of the mask 1 is a mask, summing the first byte of a key 0 key 31 (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 Therefore, the first value, i.e. the first byte of the mask 1
48である。 It is 48.

【0072】 マスク1の値2はキー0〜キー31のバイト2の値の合計である(mod 128)。 [0072] The value 2 of the mask 1 is the sum of the value of the byte 2 of the key 0 to key 31 (mod 128). マスク1の値3はキー0〜キー3 Value 3 of the mask 1 key 0 key 3
1のバイト3の値の合計である(mod 128)。 Is the sum of the values ​​of 1 byte 3 (mod 128). マスク1の値4はキー0〜キー31のバイト4の値の合計である。 Value 4 of the mask 1 is the sum of the value of byte 4 of the key 0 to key 31. マスク1の値5はキー0〜キー31のバイト5の値の合計である(mod 128)。 The value 5 of the mask 1 is the sum of the values ​​of byte 5 of the key 0 key 31 (mod 128). マスク1の値6はキー0〜キー31のバイト6の値の合計である(mod 128)。 The value 6 of the mask 1 is the sum of the values ​​of byte 6 Key 0 Key 31 (mod 128). マスク1の値7はキー0〜キー31のバイト7の値の合計である(mod Value 7 of the mask 1 is the sum of the value of byte 7 of the key 0 to key 31 (mod
128)。 128). マスク1の値8はキー0〜キー31のバイト8の値の合計である(mod 128)。 The value 8 of the mask 1 is the sum of the values ​​of byte 8 Key 0 Key 31 (mod 128). マスク1の値9はキー0 Value 9 of the mask 1 key 0
〜キー31のバイト9の値の合計である(mod 128)。 Is the sum of the values ​​of byte 9 of ~ key 31 (mod 128). マスク1の値10はキー0〜キー31のバイト10の値の合計である(mod 128)。 The value 10 of the mask 1 is the sum of the values ​​of byte 10 of the key 0 key 31 (mod 128).

【0073】 同様に、マスク2の10個のバイトないし値がキー32〜 [0073] Similarly, 10 bytes or the value of the mask 2 is key 32 to
キー63から生成され、マスク3の値がキー64〜キー95から生成され、マスク4の値がキー96〜キー127から生成される。 Is generated from the key 63, the value of the mask 3 is generated from the key 64 to key 95, the value of the mask 4 is generated from the key 96 to the key 127. 表15〜表17(表IV)のキー表から生成されて完成されたマスク表を下に示す。 Table 15 Table 17 shows the key mask table has been completed is generated from Table (Table IV) below.

【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 [0074] Mask 1 = 48 2 121 18 60 105 33 50 11 60 mask 2 = 26 78 24 72 69 13 77 43 9 99 mask 3 = 64 113 72 61 37 13 49 71 24 60 mask 4 = 104 62 69 87 18 31 102 101 32 125

【0075】 これでキーおよびマスク表が初期キー(いずれの表にも含まれない)から生成されたので、これに加えて後で示す表1〜表3(表I)、表4〜表6(表II A)表7〜 [0075] Now that the key and mask tables have been generated from the initial key (not included in any of the table), Table 1 to Table 3 shown later addition (Table I), Tables 4 6 (Table II A) Table 7
表9(表II B)、および表10〜表14(表III)の転置、 Table 9 (Table II B), and transposition of Tables 10 14 (Table III),
エンクレーブおよび換字表を用いてデータを暗号化できる。 Data can encrypt using enclave and substitution table. 本発明のシステムのもとに、10の暗号化ラウンドで、平文データの特定のブロックが暗号化される。 To the original system of the present invention, at 10 encryption rounds of a particular block of plaintext data is encrypted.

【0076】 ラウンド1 ブロック(BLOCK)=104 101 108 108 111 32 116 104 101 114 (a)可変転置。 [0076] Round 1 block (BLOCK) = 104 101 108 108 111 32 116 104 101 114 (a) Variable transposition. ブロックのすべての値を加える(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を使用する。 Add all values ​​in block (mod 128): Total 104 + 101 + 108 + 108 + 111 + 32 + 116 + 104 + 101 + 114 = 999 mod 128 = 103 Round 1 the value of the mask 1 for (mask 1,1) = 48 transposition table = block XOR mask 1,1: 103 XOR 48 = 87 Therefore, using the transpose table 87 for the transposition. 転置前のブロック: 104 101 108 108 111 32 116 104 101 114 転置後のブロック: 108 104 101 101 104 114 32 108 111 116 (b)最初のキー加算。 Before transposition block: 104 101 108 108 111 32 116 104 101 114 Block after permutation: 108 104 101 101 104 114 32 108 111 116 (b) the first key addition. ラウンド1用のマスク2の値(マスク2,1)=26 第1のキー=ブロック内の値1XORマスク2,1:108 XOR 26=118 従って、最初のキー加算用としてキー118を使用する。 Value 1XOR masks in value of the mask 2 (mask 2,1) = 26 first key = block for round 1 2,1: 108 XOR 26 = 118 Therefore, using the key 118 for the first key addition. キー加算前のブロック: 108 104 101 101 104 114 32 108 111 116 キー加算後のブロック: 108 113 85 74 105 102 85 91 124 55 (c)第2のキー加算。 Before key addition block: 108 104 101 101 104 114 32 108 111 116 Key after addition of the block: 108 113 85 74 105 102 85 91 124 55 (c) the second key addition. 第2のキー=ブロック内の値2XORマスク2,1:113 XOR 26=107 従って、第2のキー加算用としてキー107を使用する。 Second key = value 2XOR mask in the block 2,1: 113 XOR 26 = 107 Therefore, using the key 107 as a second key for addition. キー加算前のブロック: 108 113 85 74 105 102 85 91 124 55 キー加算後のブロック: 72 113 120 64 94 93 56 118 30 47 (d)可変エンクレーブ。 Key before addition of the block: 108 113 85 74 105 102 85 91 124 55 Block after key addition: 72 113 120 64 94 93 56 118 30 47 (d) Variable Enclave. エンクレーブ表=マスク3,1の値(mod 32)=64 2 mod 32=0 従って、エンクレーブ用としてエンクレーブ表04を使用する。 The value of the enclave table = mask 3,1 (mod 32) = 64 2 mod 32 = 0 Therefore, using the enclave table 04 for the enclave. エンクレーブ前のブロック: 72 113 120 64 94 93 56 118 30 47 エンクレーブ後のブロック: 2 108 96 114 88 16 101 106 118 56 (e)最初の可変換字。 Enclave previous block: 72 113 120 64 94 93 56 118 30 47 enclave after block: 2 108 96 114 88 16 101 106 118 56 (e) the first variable substitution. ラウンド1用のマスク4の値(マスク4,1)=104 第1の換字表=ブロック内の値1XORマスク4,1:2 XOR 104=10 従って、最初の換字用として換字表10を使用する。 The value of the mask 4 for Round 1 (mask 4,1) = 104 first value 1XOR mask substitution table = the block 4,1: 2 XOR 104 = 10 Therefore, using the substitution table 10 for the first substitution . 換字前のブロック: 2 108 96 114 88 16 101 106 118 56 換字後のブロック: 2 60 34 59 75 98 127 61 29 73 (f)第2の可変換字。 Substitution previous block: 2 108 96 114 88 16 101 106 118 56 substitution after block: 2 60 34 59 75 98 127 61 29 73 (f) a second variable substitution. 第2の換字表=ブロック内の値2XORマスク4,1:60 XOR 104=4 従って、第2の換字用として換字表4を使用する。 The value of the second substitution table = the block 2XOR mask 4, 1: 60 XOR 104 = 4 Therefore, using the substitution table 4 for the second substitution. 換字前のブロック: 2 60 34 59 75 98 127 61 29 73 換字後のブロック: 103 60 82 74 18 38 11 49 50 110 Substitution previous block: 2 60 34 59 75 98 127 61 29 73 substitution after block: 103 60 82 74 18 38 11 49 50 110

【0077】 ラウンド2 ブロック=103 60 82 74 18 38 11 49 50 110 (a)可変転置。 [0077] Round 2 blocks = 103 60 82 74 18 38 11 49 50 110 (a) Variable transposition. ブロックのすべての値を加える(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を使用する。 Add all values ​​in block (mod 128): 103 + 60 + 82 + 74 + 18 + 38 + 11 + 49 + 50 + 110 = 595 mod 128 = 83 Round 2 value of the mask 1 for (mask 1) = 2 Total transposition table = block XOR mask 1,2: 83 XOR 2 = 81 Therefore, using the transpose table 81 for the transposition. 転置前のブロック: 103 60 82 74 18 38 11 49 50 110 転置後のブロック: 103 60 50 38 18 11 49 74 82 110 (b)最初のキー加算。 Before transposition block: 103 60 82 74 18 38 11 49 50 110 Block after permutation: 103 60 50 38 18 11 49 74 82 110 (b) the first key addition. ラウンド2用のマスク2の値(マスク2,2)=78 第1のキー=ブロック内の値2XORマスク2,2:60 XOR 78=114 従って、最初のキー加算用としてキー114を使用する。 Round 2 the value of the mask 2 for (mask 2, 2) = 78 first key = value 2XOR mask in the block 2,2: 60 XOR 78 = 114 Therefore, using the key 114 for the first key addition. キー加算前のブロック: 103 60 50 38 18 11 49 74 82 110 キー加算後のブロック: 52 60 9 5 68 30 46 117 52 11 (c)第2のキー加算。 Before key addition block: 103 60 50 38 18 11 49 74 82 110 Block after key addition: 52 60 9 5 68 30 46 117 52 11 (c) the second key addition. 第2のキー=ブロック内の値3XORマスク2,2:9 XOR 78=71 従って、第2のキー加算用としてキー71を使用する。 Second key = value 3XOR mask in the block 2, 2: 9 XOR 78 = 71 Therefore, using a key 71 as a second key for addition. キー加算前のブロック: 52 60 9 5 68 30 46 117 52 11 キー加算後のブロック: 35 108 9 12 107 21 112 115 84 112 (d)可変エンクレーブ。 Key before addition of the block: 52 60 9 5 68 30 46 117 52 11 after key addition block: 35 108 9 12 107 21 112 115 84 112 (d) Variable Enclave. エンクレーブ表=マスク3,2の値(mod 32)=113 mod 32=17 従って、エンクレーブ用としてエンクレーブ表17を使用する。 The value of the enclave table = mask 3,2 (mod 32) = 113 mod 32 = 17 Therefore, using the enclave table 17 for the enclave. エンクレーブ前のブロック: 35 108 9 12 107 21 112 115 84 112 エンクレーブ後のブロック: 43 37 14 65 92 20 110 59 17 111 (e)最初の可変換字。 Enclave previous block: 35 108 9 12 107 21 112 115 84 112 enclave after block: 43 37 14 65 92 20 110 59 17 111 (e) the first variable substitution. ラウンド2用のマスク4の値(マスク4,2)=62 第1の換字表=ブロック内の値2XORマスク4,2:37 XOR 62=11 従って、最初の換字用として換字表11を使用する。 The value of the mask 4 for Round 2 (mask 4,2) = 62 first substitution table = value of the block 2XOR mask 4,2: 37 XOR 62 = 11 Therefore, using the substitution table 11 for the first substitution . 換字前のブロック: 43 37 14 65 92 20 110 59 17 111 換字後のブロック: 46 37 68 9 126 35 73 8 83 6 (f)第2の可変換字。 Substitution previous block: 43 37 14 65 92 20 110 59 17 111 substitution after block: 46 37 68 9 126 35 73 8 83 6 (f) a second variable substitution. 第2の換字表=ブロック内の値3XORマスク4,2:68 XOR 62=10 従って、第2の換字用として換字表10を使用する。 Second substitution table = value of the block 3XOR mask 4, 2: 68 XOR 62 = 10 Therefore, using the substitution table 10 for the second substitution. 換字前のブロック: 46 37 68 9 126 35 73 8 83 6 換字後のブロック: 99 122 68 9 114 0 53 51 92 49 Substitution previous block: 46 37 68 9 126 35 73 8 83 6 substitution after Block: 99 122 68 9 114 0 53 51 92 49

【0078】 ラウンド3 ブロック=99 122 68 9 114 0 53 51 92 49 (a)可変転置。 [0078] Round 3 blocks = 99 122 68 9 114 0 53 51 92 49 (a) variable permutation. ブロックのすべての値を加える(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を使用する。 Add all values ​​in block (mod 128): Total 99 + 122 + 68 + 9 + 114 + 0 + 53 + 51 + 92 + 49 = 657 mod 128 = 17 values ​​of the mask 1 for round 3 (mask 1, 3) = 121 transposition table = block XOR mask 1,3: 17 XOR 121 = 104 Accordingly, using the transpose table 104 for the transpose. 転置前のブロック: 99 122 68 9 114 0 53 51 92 49 転置後のブロック: 68 53 51 114 122 0 9 99 49 92 (b)最初のキー加算。 Before transposition block: 99 122 68 9 114 0 53 51 92 49 transposed block: 68 53 51 114 122 0 9 99 49 92 (b) the first key addition. ラウンド3用のマスク2の値(マスク2,3)=24 第1のキー=ブロック内の値3XORマスク2,3:51 XOR 24=43 従って、最初のキー加算用としてキー43を使用する。 Round the value of the mask 2 for 3 (mask 2,3) = 24 first key = value of the block 3XOR mask 2,3: 51 XOR 24 = 43 Therefore, using the key 43 for the first key addition. キー加算前のブロック: 68 53 51 114 122 0 9 99 49 92 キー加算後のブロック: 84 59 51 126 4 30 98 119 73 113 (c)第2のキー加算。 Before key addition block: 68 53 51 114 122 0 9 99 49 92 after key addition block: 84 59 51 126 4 30 98 119 73 113 (c) the second key addition. 第2のキー=ブロック内の値4XORマスク2,3:126 XOR 24=102 従って、第2のキー加算用としてキー102を使用する。 Second key = value 4XOR mask in the block 2,3: 126 XOR 24 = 102 Therefore, using the key 102 as a second key for addition. キー加算前のブロック: 84 59 51 126 4 30 98 119 73 113 キー加算後のブロック: 19 31 85 126 117 39 113 77 17 82 (d)可変エンクレーブ。 Key before addition of the block: 84 59 51 126 4 30 98 119 73 113 after key addition block: 19 31 85 126 117 39 113 77 17 82 (d) Variable Enclave. エンクレーブ表=マスク3,3の値(mod 32)=72 mod 32=8 従って、エンクレーブ用としてエンクレーブ表8を使用する。 Enclave table = value of Mask 3,3 (mod 32) = 72 mod 32 = 8 Therefore, using the enclave table 8 for the enclave. エンクレーブ前のブロック: 19 31 85 126 117 39 113 77 17 82 エンクレーブ後のブロック: 127 113 18 67 108 90 103 103 96 85 (e)最初の可変換字。 Enclave previous block: 19 31 85 126 117 39 113 77 17 82 enclave after Block: 127 113 18 67 108 90 103 103 96 85 (e) the first variable substitution. ラウンド3用のマスク4の値(マスク4,3)=69 第1の換字表=ブロック内の値3XORマスク4,3:18 XOR 69=7 従って、最初の換字用として換字表7を使用する。 The value of the mask 4 for rounds 3 (mask 4,3) = 69 first value 3XOR mask substitution table = the block 4,3: 18 XOR 69 = 7 Therefore, using the substitution table 7 for the first substitution . 換字前のブロック: 127 113 18 67 108 90 103 103 96 85 換字後のブロック: 76 38 18 30 46 28 71 71 60 112 (f)第2の可変換字。 Substitution previous block: 127 113 18 67 108 90 103 103 96 85 substitution after block: 76 38 18 30 46 28 71 71 60 112 (f) a second variable substitution. 第2の換字表=ブロック内の値4XORマスク4,3:30 XOR 69=11 従って、第2の換字用として換字表11を使用する。 Second substitution table = Value 4XOR mask in the block 4,3: 30 XOR 69 = 11 Therefore, using the substitution table 11 for the second substitution. 換字前のブロック: 76 38 18 30 46 28 71 71 60 112 換字後のブロック: 3 100 107 30 13 54 58 58 36 14 Substitution previous block: 76 38 18 30 46 28 71 71 60 112 substitution after Block: 3 100 107 30 13 54 58 58 36 14

【0079】 ラウンド4 ブロック=3 100 107 30 13 54 58 58 36 14 (a)可変転置。 [0079] Round 4 blocks = 3 100 107 30 13 54 58 58 36 14 (a) variable permutation. ブロックのすべての値を加える(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を使用する。 Add all values ​​in block (mod 128): Total 3 + 100 + 107 + 30 + 13 + 54 + 58 + 58 + 36 + 14 = 473 mod 128 = 89 values ​​of the mask 1 for round 4 (mask 1,4) = 18 transposition table = block XOR mask 1,4: 89 XOR 18 = 75 Therefore, using the transpose table 75 for the transposition. 転置前のブロック: 3 100 107 30 13 54 58 58 36 14 転置後のブロック: 30 58 14 100 54 13 36 3 58 107 (b)最初のキー加算。 Before transposition block: 3 100 107 30 13 54 58 58 36 14 Block after permutation: 30 58 14 100 54 13 36 3 58 107 (b) the first key addition. ラウンド4用のマスク2の値(マスク2,4)=72 第1のキー=ブロック内の値4XORマスク2,4:100 XOR 72=44 従って、最初のキー加算用としてキー44を使用する。 The value of the mask 2 for Round 4 (mask 2,4) = 72 The value of the first key = block 4XOR mask 2, 4: 100 XOR 72 = 44 Therefore, using the key 44 for the first key addition. キー加算前のブロック: 30 58 14 100 54 13 36 3 58 107 キー加算後のブロック: 99 35 0 100 36 104 12 71 25 43 (c)第2のキー加算。 Key before addition of the block: 30 58 14 100 54 13 36 3 58 107 key after addition of the block: 99 35 0 100 36 104 12 71 25 43 (c) the second key addition. 第2のキー=ブロック内の値5XORマスク2,4:36 XOR 72=108 従って、第2のキー加算用としてキー108を使用する。 Second key = value 5XOR mask in the block 2, 4: 36 XOR 72 = 108 Therefore, using the key 108 as a second key for addition. キー加算前のブロック: 99 35 0 100 36 104 12 71 25 43 キー加算後のブロック: 77 95 115 53 36 35 19 119 56 69 (d)可変エンクレーブ。 Key before addition of the block: 99 35 0 100 36 104 12 71 25 43 after key addition block: 77 95 115 53 36 35 19 119 56 69 (d) Variable Enclave. エンクレーブ表=マスク3,4の値(mod 32)=61 mod 32=29 従って、エンクレーブ用としてエンクレーブ表29を使用する。 Enclave table = value of Mask 3,4 (mod 32) = 61 mod 32 = 29 Therefore, using the enclave table 29 for the enclave. エンクレーブ前のブロック: 77 95 115 53 36 35 19 119 56 69 エンクレーブ後のブロック: 117 76 52 98 12 13 113 26 108 92 (e)最初の可変換字。 Enclave previous block: 77 95 115 53 36 35 19 119 56 after 69 enclave Block: 117 76 52 98 12 13 113 26 108 92 (e) the first variable substitution. ラウンド4用のマスク4の値(マスク4,4)=87 第1の換字表=ブロック内の値4XORマスク4,4:98 XOR 87=5 従って、最初の換字用として換字表5を使用する。 The value of the mask 4 for Round 4 (mask 4,4) = 87 first substitution table = value of the block 4XOR mask 4,4: 98 XOR 87 = 5 Therefore, using the substitution table 5 for the first substitution . 換字前のブロック: 117 76 52 98 12 13 113 26 108 92 換字後のブロック: 64 80 83 98 58 48 50 31 49 43 (f)第2の可変換字。 Substitution previous block: 117 76 52 98 12 13 113 26 108 92 substitution after block: 64 80 83 98 58 48 50 31 49 43 (f) a second variable substitution. 第2の換字表=ブロック内の値5XORマスク4,4:58 XOR 87=13 従って、第2の換字用として換字表13を使用する。 Second substitution table = value of the block 5XOR mask 4, 4: 58 XOR 87 = 13 Therefore, using the substitution table 13 for the second substitution. 換字前のブロック: 64 80 83 98 58 48 50 31 49 43 換字後のブロック: 122 28 81 29 58 127 22 16 26 49 Substitution previous block: 64 80 83 98 58 48 50 31 49 43 substitution after block: 122 28 81 29 58 127 22 16 26 49

【0080】 ラウンド5 ブロック=122 28 81 29 58 127 22 16 26 49 (a)可変転置。 [0080] Round 5 blocks = 122 28 81 29 58 127 22 16 26 49 (a) variable permutation. ブロックのすべての値を加える(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を使用する。 Add all values ​​in block (mod 128): 122 + 28 + 81 + 29 + 58 + 127 + 22 + 16 + 26 + 49 = 558 mod 128 = 46 rounds 5 value of the mask 1 for (mask 1,5) = 60 Total transposition table = block XOR mask 1,5: 46 XOR 60 = 18 Therefore, using the transpose table 18 for the transposition. 転置前のブロック: 122 28 81 29 58 127 22 16 26 49 転置後のブロック: 49 122 127 81 28 16 26 22 29 58 (b)最初のキー加算。 Before transposition block: 122 28 81 29 58 127 22 16 26 49 Block after permutation: 49 122 127 81 28 16 26 22 29 58 (b) the first key addition. ラウンド5用のマスク2の値(マスク2,5)=69 第1のキー=ブロック内の値5XORマスク2,5:28 XOR 69=89 従って、最初のキー加算用としてキー89を使用する。 Round 5 the value of the mask 2 for (mask 2,5) = 69 first key = value of the block 5XOR mask 2,5: 28 XOR 69 = 89 Therefore, using the key 89 for the first key addition. キー加算前のブロック: 49 122 127 81 28 16 26 22 29 58 キー加算後のブロック: 40 118 40 87 28 74 102 101 88 57 (c)第2のキー加算。 Before key addition block 49 122 127 81 28 16 26 22 29 58 after key addition block: 40 118 40 87 28 74 102 101 88 57 (c) the second key addition. 第2のキー=ブロック内の値6XORマスク2,5:74 XOR 69=15 従って、第2のキー加算用としてキー15を使用する。 Second key = value 6XOR mask in the block 2, 5: 74 XOR 69 = 15 Therefore, using a key 15 as a second key for addition. キー加算前のブロック: 40 118 40 87 28 74 102 101 88 57 キー加算後のブロック: 15 50 22 72 90 74 7 76 15 92 (d)可変エンクレーブ。 Key before addition of the block: 40 118 40 87 28 74 102 101 88 57 keys after addition of the block: 15 50 22 72 90 74 7 76 15 92 (d) Variable Enclave. エンクレーブ表=マスク3,5の値(mod 32)=37 mod 32=5 従って、エンクレーブ用としてエンクレーブ表5を使用する。 The value of the enclave table = mask 3,5 (mod 32) = 37 mod 32 = 5 Therefore, using the enclave table 5 for the enclave. エンクレーブ前のブロック: 15 50 22 72 90 74 7 76 15 92 エンクレーブ後のブロック: 98 69 120 65 54 18 6 17 59 14 (e)最初の可変換字。 Enclave previous block: 15 50 22 72 90 74 7 76 15 92 enclave after block: 98 69 120 65 54 18 6 17 59 14 (e) the first variable substitution. ラウンド5用のマスク4の値(マスク4,5)=18 第1の換字表=ブロック内の値5XORマスク4,5:54 XOR 18=4 従って、最初の換字用として換字表4を使用する。 The value of the mask 4 for Round 5 (mask 4,5) = 18 first substitution table = value of the block 5XOR mask 4,5: 54 XOR 18 = 4 Therefore, using the substitution table 4 for the first substitution . 換字前のブロック: 98 69 120 65 54 18 6 17 59 14 換字後のブロック: 38 0 92 68 54 89 122 4 74 106 (f)第2の可変換字。 Substitution previous block: 98 69 120 65 54 18 6 17 59 14 substitution after Block: 38 0 92 68 54 89 122 4 74 106 (f) a second variable substitution. 第2の換字表=ブロック内の値6XORマスク4,5:89 XOR 18=11 従って、第2の換字用として換字表11を使用する。 Second substitution table = Value 6XOR mask in the block 4, 5: 89 XOR 18 = 11 Therefore, using the substitution table 11 for the second substitution. 換字前のブロック: 38 0 92 68 54 89 122 4 74 106 換字後のブロック: 100 24 126 122 108 89 39 45 93 28 Substitution previous block: 38 0 92 68 54 89 122 4 74 106 substitution after block: 100 24 126 122 108 89 39 45 93 28

【0081】 ラウンド6 ブロック=100 24 126 122 108 89 39 45 93 28 (a)可変転置。 [0081] Round 6 blocks = 100 24 126 122 108 89 39 45 93 28 (a) variable permutation. ブロックのすべての値を加える(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を使用する。 Add all values ​​in block (mod 128): Total 100 + 24 + 126 + 122 + 108 + 89 + 39 + 45 + 93 + 28 = 774 mod 128 = 6 rounds 6 value of the mask 1 for (mass 1,6) = 105 transposition table = block XOR mask 1,6: 6 XOR 105 = 111 Accordingly, using the transpose table 111 for the transpose. 転置前のブロック: 100 24 126 122 108 89 39 45 93 28 転置後のブロック: 126 45 122 89 93 108 24 28 39 100 (b)最初のキー加算。 Before transposition block: 100 24 126 122 108 89 39 45 93 28 Block after permutation: 126 45 122 89 93 108 24 28 39 100 (b) the first key addition. ラウンド6用のマスク2の値(マスク2,6)=13 第1のキー=ブロック内の値6XORマスク2,6:108 XOR 13=97 従って、最初のキー加算用としてキー97を使用する。 Round 6 the value of the mask 2 for (mask 2,6) = 13 first key = value 6XOR mask in the block 2,6: 108 XOR 13 = 97 Therefore, using the key 97 for the first key addition. キー加算前のブロック: 126 45 122 89 93 108 24 28 39 100 キー加算後のブロック: 39 78 56 40 24 108 99 80 4 77 (c)第2のキー加算。 Key before addition of the block: 126 45 122 89 93 108 24 28 39 100 key after addition of the block: 39 78 56 40 24 108 99 80 4 77 (c) the second key addition. 第2のキー=ブロック内の値7XORマスク2,6:99 XOR 13=110 従って、第2のキー加算用としてキー110を使用する。 Second key = value 7XOR mask in the block 2, 6: 99 XOR 13 = 110 Therefore, using the key 110 as a second key for addition. キー加算前のブロック: 39 78 56 40 24 108 99 80 4 77 キー加算後のブロック: 94 63 13 94 121 33 99 70 118 11 (d)可変エンクレーブ。 Before key addition block: 39 78 56 40 24 108 99 80 4 77 keys after addition of the block: 94 63 13 94 121 33 99 70 118 11 (d) Variable Enclave. エンクレーブ表=マスク3,6の値(mod 32)=13=mod 32=13 従って、エンクレーブ用としてエンクレーブ表13を使用する。 The value of the enclave table = mask 3,6 (mod 32) = 13 = mod 32 = 13 Therefore, using the enclave table 13 for the enclave. エンクレーブ前のブロック: 94 63 13 94 121 33 99 70 118 11 エンクレーブ後のブロック: 89 102 105 113 44 117 86 106 57 50 (e)最初の可変換字。 Enclave previous block: 94 63 13 94 121 33 99 70 118 11 enclave after Block: 89 102 105 113 44 117 86 106 57 50 (e) the first variable substitution. ラウンド6用のマスク4の値(マスク4,6)=31 第1の換字表=ブロック内の値6XORマスク4,6:117 XOR 31=10 従って、最初の換字用として換字表10を使用する。 Round 6 the value of the mask 4 for (mask 4,6) = 31 first substitution table = value of the block 6XOR mask 4,6: 117 XOR 31 = 10 Therefore, using the substitution table 10 for the first substitution . 換字前のブロック: 89 102 105 113 44 117 86 106 57 50 換字後のブロック: 78 65 30 125 17 117 57 61 89 38 (f)第2の可変換字。 Substitution previous block: 89 102 105 113 44 117 86 106 57 50 substitution after block: 78 65 30 125 17 117 57 61 89 38 (f) a second variable substitution. 第2の換字表=ブロック内の値7XORマスク4,6:57 XOR 31=6 従って、第2の換字用として換字表6を使用する。 Second substitution table = value of the block 7XOR mask 4, 6: 57 XOR 31 = 6 Therefore, using the substitution table 6 for the second substitution. 換字前のブロック: 78 65 30 125 17 117 57 61 89 38 換字後のブロック: 6 92 76 30 120 66 57 51 58 80 Substitution previous block: 78 65 30 125 17 117 57 61 89 38 substitution after block: 6 92 76 30 120 66 57 51 58 80

【0082】 ラウンド7 ブロック=6 92 76 30 120 66 57 51 58 80 (a)可変転置。 [0082] Round 7 blocks = 6 92 76 30 120 66 57 51 58 80 (a) variable permutation. ブロックのすべての値を加える(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を使用する。 Add all values ​​in block (mod 128): Total 6 + 92 + 76 + 30 + 120 + 66 + 57 + 51 + 58 + 80 = 636 mod 128 = 124 Round 7 value of the mask 1 for (mask 1,7) = 33 transposition table = block XOR mask 1,7: 124 XOR 33 = 93 Therefore, using a transposition table 93 for the transposition. 転置前のブロック: 6 92 76 30 120 66 57 51 58 80 転置後のブロック: 66 57 120 92 30 80 58 51 6 76 (b)最初のキー加算。 Before transposition block: 6 92 76 30 120 66 57 51 58 80 Block after permutation: 66 57 120 92 30 80 58 51 6 76 (b) the first key addition. ラウンド7用のマスク2の値(マスク2,7)=77 第1のキー=ブロック内の値7XORマスク2,7:58 XOR 77=119 従って、最初のキー加算用としてキー119を使用する。 Round 7 the value of the mask 2 for (mask 2,7) = 77 first key = value of the block 7XOR mask 2,7: 58 XOR 77 = 119 Therefore, using the key 119 for the first key addition. キー加算前のブロック: 66 57 120 92 30 80 58 51 6 76 キー加算後のブロック: 55 9 30 92 21 117 58 32 16 97 (c)第2のキー加算。 Before key addition block 66 57 120 92 30 80 58 51 6 76 after key addition block: 55 9 30 92 21 117 58 32 16 97 (c) the second key addition. 第2のキー=ブロック内の値8XORマスク2,7:32 XOR 77=109 従って、第2のキー加算用としてキー109を使用する。 Second key = value 8XOR mask in the block 2, 7: 32 XOR 77 = 109 Therefore, using the key 109 as a second key for addition.
キー加算前のブロック: 55 9 30 92 21 117 58 32 16 97 キー加算後のブロック: 37 117 11 121 62 60 69 32 110 42 (d)可変エンクレーブ。 Before key addition block: 55 9 30 92 21 117 58 32 16 97 after key addition block: 37 117 11 121 62 60 69 32 110 42 (d) Variable Enclave. エンクレーブ表=マスク3,7の値(mod 32)=49 mod 32=17 従って、エンクレーブ用としてエンクレーブ表17を使用する。 Enclave table = value of Mask 3,7 (mod 32) = 49 mod 32 = 17 Therefore, using the enclave table 17 for the enclave. エンクレーブ前のブロック: 37 117 11 121 62 60 69 32 110 42 エンクレーブ後のブロック: 80 95 116 23 78 60 94 113 112 2 (e)最初の可変換字。 Enclave previous block: 37 117 11 121 62 60 69 32 110 42 enclave after block: 80 95 116 23 78 60 94 113 112 2 (e) the first variable substitution. ラウンド7用のマスク4の値(マスク4,7)=102 第1の換字表=ブロック内の値7XORマスク4,7:94 XOR 102=8 従って、最初の換字用として換字表8を使用する。 The value of the mask 4 for rounds 7 (mask 4,7) = 102 first substitution table = value of the block 7XOR mask 4,7: 94 XOR 102 = 8 Therefore, using the substitution table 8 for the first substitution . 換字前のブロック: 80 95 116 23 78 60 94 113 112 2 換字後のブロック: 1 9 24 39 52 98 94 99 108 35 (f)第2の可変換字。 Substitution previous block: 80 95 116 23 78 60 94 113 112 2 substitution after Block: 1 9 24 39 52 98 94 99 108 35 (f) a second variable substitution. 第2の換字表=ブロック内の値8XORマスク4,7:99 XOR 102=5 従って、第2の換字用として換字表5を使用する。 Second substitution table = value of the block 8XOR mask 4, 7: 99 XOR 102 = 5 Therefore, using the substitution table 5 for the second substitution. 換字前のブロック: 1 9 24 39 52 98 94 99 108 35 換字後のブロック: 85 98 36 57 83 51 90 99 49 9 Substitution previous block: 1 9 24 39 52 98 94 99 108 35 substitution after block: 85 98 36 57 83 51 90 99 49 9

【0083】 ラウンド8 ブロック=85 98 36 57 83 51 90 99 49 9 (a)可変転置。 [0083] Round 8 block = 85 98 36 57 83 51 90 99 49 9 (a) Variable transposition. ブロックのすべての値を加える(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を使用する。 Add all values ​​in block (mod 128): 85 + 98 + 36 + 57 + 83 + 51 + 90 + 99 + 49 + 9 = 657 mod 128 = 17 values ​​of the mask 1 for round 8 (mask 1, 8) = 50 Total transposition table = block XOR mask 1,8: 17 XOR 50 = 35 Therefore, using the transpose table 35 for the transposition. 転置前のブロック: 85 98 36 57 83 51 90 99 49 9 転置後のブロック: 98 49 90 83 99 36 57 51 85 9 (b)最初のキー加算。 Before transposition block: 85 98 36 57 83 51 90 99 49 9 after transposition block: 98 49 90 83 99 36 57 51 85 9 (b) the first key addition. ラウンド8用のマスク2の値(マスク2,8)=43 第1のキー=ブロック内の値8XORマスク2,8:51 XOR 43=24 従って、最初のキー加算用としてキー24を使用する。 The value of the mask 2 for round 8 (mask 2,8) = 43 first key = value of the block 8XOR mask 2,8: 51 XOR 43 = 24 Therefore, using the key 24 for the first key addition. キー加算前のブロック: 98 49 90 83 99 36 57 51 85 9 キー加算後のブロック: 64 86 38 82 89 88 18 51 79 87 (c)第2のキー加算。 Before key addition block: 98 49 90 83 99 36 57 51 85 9 after key addition block: 64 86 38 82 89 88 18 51 79 87 (c) the second key addition. 第2のキー=ブロック内の値9XORマスク2,8:79 XOR 43=100 従って、第2のキー加算用としてキー100を使用する。 Second key = value 9XOR mask in the block 2, 8: 79 XOR 43 = 100 Therefore, using the key 100 as a second key for addition. キー加算前のブロック: 64 86 38 82 89 88 18 51 79 87 キー加算後のブロック: 68 55 56 89 35 4 56 79 79 83 (d)可変エンクレーブ。 Key before addition of the block: 64 86 38 82 89 88 18 51 79 87 Key after addition of the block: 68 55 56 89 35 4 56 79 79 83 (d) Variable Enclave. エンクレーブ表=マスク3,8の値(mod 32)=71 mod 32=7 従って、エンクレーブ用としてエンクレーブ表7を使用する。 Enclave table = value of Mask 3,8 (mod 32) = 71 mod 32 = 7 Therefore, using the enclave table 7 for the enclave. エンクレーブ前のブロック: 68 55 56 89 35 4 56 79 79 83 エンクレーブ後のブロック: 7 63 70 6 113 40 96 62 19 61 (e)最初の可変換字。 Enclave previous block: 68 55 56 89 35 4 56 79 79 83 enclave after Block: 7 63 70 6 113 40 96 62 19 61 (e) the first variable substitution. ラウンド8用のマスク4の値(マスク4,8)=101 第1の換字表=ブロック内の値8XORマスク4,8:62 XOR 101=11 従って、最初の換字用として換字表11を使用する。 The value of the mask 4 for round 8 (mask 4,8) = 101 first substitution table = value of the block 8XOR mask 4,8: ​​62 XOR 101 = 11 Therefore, using the substitution table 11 for the first substitution . 換字前のブロック: 7 63 70 6 113 40 96 62 19 61 換字後のブロック: 87 48 91 121 80 94 52 62 110 70 (f)第2の可変換字。 Substitution previous block: 7 63 70 6 113 40 96 62 19 61 substitution after block: 87 48 91 121 80 94 52 62 110 70 (f) a second variable substitution. 第2の換字表=ブロック内の値9XORマスク4,8:110 XOR 101=11 従って、第2の換字用として換字表11を使用する。 Second substitution table = value of the block 9XOR mask 4, 8: 110 XOR 101 = 11 Therefore, using the substitution table 11 for the second substitution. 換字前のブロック: 87 48 91 121 80 94 52 62 110 70 換字後のブロック: 25 124 95 23 67 88 102 79 110 91 Substitution previous block: 87 48 91 121 80 94 52 62 110 70 substitution after Block: 25 124 95 23 67 88 102 79 110 91

【0084】 ラウンド9 ブロック=25 124 95 23 67 88 102 79 110 91 (a)可変転置。 [0084] Round 9 block = 25 124 95 23 67 88 102 79 110 91 (a) variable permutation. ブロックのすべての値を加える(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を使用する。 Add all values ​​in block (mod 128): 25 + 124 + 95 + 23 + 67 + 88 + 102 + 79 + 110 + 91 = 804 mod 128 = 36 Round 9 value of the mask 1 for (mask 1,9) = 11 Total transposition table = block XOR mask 1,9: 36 XOR 11 = 47 Therefore, using the transpose table 47 for the transposition. 転置前のブロック: 25 124 95 23 67 88 102 79 110 91 転置後のブロック: 91 95 124 79 88 23 25 102 110 67 (b)最初のキー加算。 Before transposition block: 25 124 95 23 67 88 102 79 110 91 Block after permutation: 91 95 124 79 88 23 25 102 110 67 (b) the first key addition. ラウンド9用のマスク2の値(マスク2,9)=9 第1のキー=ブロック内の値9XORマスク2,9:110 XOR 9=103 従って、最初のキー加算用としてキー103を使用する。 Round 9 the value of the mask 2 for (mask 2,9) = 9 first key = value of the block 9XOR mask 2,9: 110 XOR 9 = 103 Therefore, using the key 103 for the first key addition. キー加算前のブロック: 91 95 124 79 88 23 25 102 110 67 キー加算後のブロック: 80 72 99 87 98 39 46 44 110 44 (c)第2のキー加算。 Before key addition block 91 95 124 79 88 23 25 102 110 67 after key addition block: 80 72 99 87 98 39 46 44 110 44 (c) the second key addition. 第2のキー=ブロック内の値10XORマスク2,9:44 XOR 9=37 従って、第2のキー加算用としてキー37を使用する。 Second key = value 10XOR mask in the block 2, 9: 44 XOR 9 = 37 Therefore, using a key 37 as a second key for addition. キー加算前のブロック: 80 72 99 87 98 39 46 44 110 44 キー加算後のブロック: 71 120 20 6 114 89 109 32 69 44 (d)可変エンクレーブ。 Key before addition of the block: 80 72 99 87 98 39 46 44 110 44 Key after addition of the block: 71 120 20 6 114 89 109 32 69 44 (d) Variable Enclave. エンクレーブ表=マスク3,9の値(mod 32)=24 mod 32=24 従って、エンクレーブ用としてエンクレーブ表24を使用する。 Enclave table = value of Mask 3,9 (mod 32) = 24 mod 32 = 24 Therefore, using the enclave table 24 for the enclave. エンクレーブ前のブロック: 71 120 20 114 89 109 32 69 44 エンクレーブ後のブロック: 41 71 57 98 55 2 41 99 106 92 (e)最初の可変換字。 Enclave previous block: 71 120 20 114 89 109 32 69 after 44 enclave block: 41 71 57 98 55 2 41 99 106 92 (e) the first variable substitution. ラウンド9用のマスク4の値(マスク4,9)=32 第1の換字表=ブロック内の値9XORマスク4,9:106 XOR 32=10 従って、最初の換字用として換字表10を使用する。 The value of the mask 4 for round 9 (mask 4,9) = 32 first substitution table = value of the block 9XOR mask 4,9: 106 XOR 32 = 10 Therefore, using the substitution table 10 for the first substitution . 換字前のブロック: 41 71 57 98 55 2 41 99 106 92 換字後のブロック: 104 42 89 39 72 31 104 10 106 67 (f)第2の可変換字。 Substitution previous block: 41 71 57 98 55 2 41 99 106 92 substitution after block: 104 42 89 39 72 31 104 10 106 67 (f) a second variable substitution. 第2の換字表=ブロック内の値10XORマスク4,9:67 XOR 32=3 従って、第2の換字用として換字表3を使用する。 Second substitution table = value of the block 10XOR mask 4, 9: 67 XOR 32 = 3 Therefore, using the substitution table 3 for the second substitution. 換字前のブロック: 104 42 89 39 72 31 104 10 106 67 換字後のブロック: 24 49 88 105 94 71 24 124 125 67 Substitution previous block: 104 42 89 39 72 31 104 10 106 67 substitution after block: 24 49 88 105 94 71 24 124 125 67

【0085】 ラウンド10 ブロック=24 49 88 105 94 71 24 124 125 67 (a)可変転置。 [0085] Round 10 block = 24 49 88 105 94 71 24 124 125 67 (a) variable permutation. ブロックのすべての値を加える(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を使用する。 Add all values ​​in block (mod 128): 24 + 49 + 88 + 105 + 94 + 71 + 24 + 124 + 125 + 67 = 771 mod 128 = value of the mask 1 for 3 rounds 10 (mask 1, 10) = 60 Total transposition table = block XOR mask 1, 10: 3 XOR 60 = 63 Therefore, using the transpose table 63 for the transposition. 転置前のブロック: 24 49 88 105 94 71 24 124 125 67 転置後のブロック: 67 124 105 88 125 24 24 94 49 71 (b)最初のキー加算。 Before transposition block: 24 49 88 105 94 71 24 124 125 67 transposed blocks: 67 124 105 88 125 24 24 94 49 71 (b) the first key addition. ラウンド10用のマスク2の値(マスク2,10)=99 第1のキー=ブロック内の値10XORマスク2,10:71 XOR 99=36 従って、最初のキー加算用としてキー36を使用する。 The value of the mask 2 for round 10 (mask 2, 10) = 99 first key = value of the block 10XOR mask 2,10: 71 XOR 99 = 36 Therefore, using the key 36 for the first key addition. キー加算前のブロック: 67 124 105 88 125 24 24 94 49 71 キー加算後のブロック: 110 9 114 70 70 96 91 117 12 71 (c)第2のキー加算。 Before key addition block 67 124 105 88 125 24 24 94 49 71 after key addition block: 110 9 114 70 70 96 91 117 12 71 (c) the second key addition. 第2のキー=ブロック内の値10XORマスク2,10:71 XOR 99=36 従って、第2のキー加算用としてキー36を使用する。 Second key = value 10XOR mask in the block 2,10: 71 XOR 99 = 36 Therefore, using a key 36 as a second key for addition. キー加算前のブロック: 110 9 114 70 70 96 91 117 12 71 キー加算後のブロック: 67 124 105 88 125 24 24 94 49 71 (d)可変エンクレーブ。 Before key addition block: 110 9 114 70 70 96 91 117 12 71 after key addition block: 67 124 105 88 125 24 24 94 49 71 (d) Variable Enclave. エンクレーブ表=マスク3,10の値(mod 32)=60 mod 32=28 従って、エンクレーブ用としてエンクレーブ表28を使用する。 Enclave table = value of Mask 3,10 (mod 32) = 60 mod 32 = 28 Therefore, using the enclave table 28 for the enclave. エンクレーブ前のブロック: 67 124 105 88 125 24 24 94 49 71 エンクレーブ後のブロック: 36 31 0 91 41 84 71 38 87 122 (e)最初の可変換字。 Enclave previous block: 67 124 105 88 125 24 24 94 49 71 enclave after block: 36 31 0 91 41 84 71 38 87 122 (e) the first variable substitution. ラウンド10用のマスク4の値(マスク4,10)=125 第1の換字表=ブロック内の値10XORマスク4,10:122 XOR 125=7 従って、最初の換字用として換字表7を使用する。 The value of the mask 4 for rounds 10 (mask 4,10) = 125 first substitution table = value of the block 10XOR mask 4,10: 122 XOR 125 = 7 Therefore, using the substitution table 7 for the first substitution . 換字前のブロック: 36 31 0 91 41 84 71 38 87 122 換字後のブロック: 90 27 11 41 114 117 56 33 72 122 (f)第2の可変換字。 Substitution previous block: 36 31 0 91 41 84 71 38 87 122 substitution after block: 90 27 11 41 114 117 56 33 72 122 (f) a second variable substitution. 第2の換字表=ブロック内の値10XORマスク4,10:122 XOR 125=7 従って、第2の換字用として換字表7を使用する。 Second substitution table = value of the block 10XOR mask 4, 10: 122 XOR 125 = 7 Therefore, using the substitution table 7 for the second substitution. 換字前のブロック: 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ラウンドの暗号化の結果、平文ブロックは以下のように暗号文ブロックに変換された。 Substitution previous block: 90 27 11 41 114 117 56 33 72 122 substitution after Block: 28 4 87 114 88 23 122 105 44 122 transmitted the block: 28 4 87 114 88 23 122 105 44 122 present 10 rounds according to the invention result of the encryption, a plaintext block has been converted into ciphertext block as follows. 平文: 110 111 32 116 101 115 116 115 32 112 暗号文: 28 4 87 114 88 23 122 105 44 122 Plaintext: 110 111 32 116 101 115 116 115 32 112 ciphertext: 28 4 87 114 88 23 122 105 44 122

【0086】 以上、この発明の現在のところ好適な実施例を記載したが、付加された請求項の範囲内で別の実施が可能であることを理解されたい。 [0086] Having described the presently preferred embodiments of the invention, it should be understood that it is capable of further practiced within the scope of the appended claims.

【0087】 [0087]

【0088】 [0088]

【0089】 [0089]

【0090】 [0090]

【0091】 [0091]

【0092】 [0092]

【0093】 [0093]

【0094】 [0094]

【0095】 [0095]

【0096】 [0096]

【0097】 [0097]

【0098】 [0098]

【0099】 [0099]

【0100】 [0100]

【0101】 [0101]

【0102】 [0102]

【0103】 [0103] 図面の簡単な説明 BRIEF DESCRIPTION OF THE DRAWINGS

【図1】 本発明に従ったある長さの平文の暗号化のフローチャートである Is a flow chart of the encryption of a length of plaintext in accordance with the invention; FIG

【図2】 第1図に示された表初期化工程のフローチャートである Is a flow chart of the table initialization step shown in FIG. 2 FIG. 1

【図3】 キー表の各記入事項の生成を示すブロック図である Is a block diagram illustrating the generation of Figure 3 each entry item of a key table

【図4】 転置表の記入事項の1例を示す線図である Is a diagram showing an example of FIG. 4 transposition table entry matters

【図5】 換字表の記入事項の1例を示す略図である Is a schematic diagram showing an example of Figure 5 substitution table fill matters

【図6】 本発明で使用されるエンクレーブ機能のブロック図である Is a block diagram of the enclave function used in the present invention; FIG

【図7】 第6図のエンクレーブ機能で使用されるオートクレーブ機能のブロック図である Is a block diagram of the autoclave function used in Figure 7 enclave function of FIG. 6

【図8】 本発明の好適実施例による平文ブロックの暗号化プロセス全体のフローチャートである Is a flow chart of the overall encryption process of plaintext block according to a preferred embodiment of the present invention; FIG

【図9】 第8図の暗号化プロセスで使用される可変転置のブロック図である Is a block diagram of a variable permutation used in the encryption process of FIG. 9 Figure 8

【図10】 第8図の暗号化プロセスで使用される可変キー加算のブロック図である Is a block diagram of a variable key addition used in the encryption process of FIG. 10] Figure 8

【図11】 第8図の暗号化プロセスで使用される可変換字のブロック図である Is a block diagram of a variable conversion character used in the encryption process of FIG. 11] Figure 8

【図12】 第8図の暗号化プロセスで暗号化された暗号文の単一ブロックの復号化プロセス全体のフローチャートである Is a flow chart of the overall decryption process of a single block in FIG. 12 ciphertext encrypted by the encryption process Figure 8

【図13】 第12図の復号化プロセスで使用される逆可変換字のブロック図である Is a block diagram of the inverse-friendly conversion character used in Figure 13 the decoding of the Figure 12 process

【図14】 第12図の復号化プロセスで使用される逆エンクレーブ機能のブロック図である It is a block diagram of inverse enclave function used in the decoding process of FIG. 14] Figure 12

【図15】 第14図の逆エンクレーブ機能で使用されるオートクレーブ機能の一部のブロック図である Is part of a block diagram of the autoclave function used in the inverse enclave function of FIG. 15] Figure 14

【図16】 第12図の復号化プロセスで使用される逆可変キー加算のブロック図である It is a block diagram of the inverse variable key addition used in the decryption process of FIG. 16] Figure 12

【図17】 第12図の復号化プロセスで使用される逆可変転置のブロック図である It is a block diagram of inverse variable permutation used in the decryption process of FIG. 17] Figure 12

フロントページの続き (56)参考文献 特開 昭61−91685(JP,A) 特開 昭61−54734(JP,A) 特開 昭56−40343(JP,A) 特開 昭58−145980(JP,A) Front page of the continuation (56) Reference Patent Sho 61-91685 (JP, A) JP Akira 61-54734 (JP, A) JP Akira 56-40343 (JP, A) JP Akira 58-145980 (JP , A)

Claims (5)

    (57)【特許請求の範囲】 (57) [the claims]
  1. 【請求項1】電子デジタルデータを1つの形から他の形に暗号変換する、以下の工程からなる方法、 a.所定の暗号機能と関連した少なくとも1個の変換表をメモリに設定し、前記表は前記機能に従ってデータの所定の変換を夫々指示する複数のアドレス可能な項目を含む; b.1個以上のキーに基づく決定因をメモリに設定する; c.前記キーに基づく決定因の1つにある特定情報に基づいて前記変換表の前記項目の1つを選択する; d.前記変換表の前記選択された項目の指示に従った前記機能によって前記データを暗号変換する; e.複数のマルチバイトキー項目を持ったキー表をメモリに設定する; f.変換用としてデータのマルチバイトブロックを選択する; g.データブロックの少なくとも1個のバイトの情報にもとづいてキー表から項目を選択 1. A cipher converts electronic digital data from one form to another form, the method comprising the steps, a. Configure at least one conversion table associated with a predetermined cryptographic function memory, the Table includes a plurality of addressable items respectively instruct a predetermined conversion of data according to the function: setting a determinant based on b.1 or more keys in the memory;. c of determinant based on the key 1 one selects one of the items of the conversion table based on the specific information in the;. d encrypting converts the data by said converting the selected instruction the functions according to the item table;. e more setting the key table with a multibyte key fields in the memory;. an item from the key table based on at least one byte of information in g data blocks;. which f for selecting the multi-byte block of data for the conversion Choice する; h.選択されたキーの各バイトをデータブロックの対応バイトと算術的に組み合わせる、但し、キー表から項目を選択するのに使用されるデータブロックのバイトは変更されない;そして i.上記工程(g)および(h)を複数ラウンド繰り返す。 To;. H selected combining each byte of key data blocks corresponding bytes and arithmetic, however, the bytes of the data blocks used from the key table to select an item will not be changed;. Then i said step (g) and the (h) is repeated multiple rounds.
  2. 【請求項2】さらに以下の工程からなる請求項1の方法、 j.当初キーを設定する; k.前記当初キーにある特定情報に基づいて前記変換表の前記項目を少なくとも1つ選択する; l.前記変換表の前記選択された項目の指示に従った前記機能によって前記当初キーを変換する; m.前記変換された当初キーを項目としてキー表メモリに格納する; n.当初キーまたはキー表メモリに格納されたキーにある特定情報に基づいて前記変換表の前記項目を少なくとも1つ選択する; o.前記変換表の前記選択された項目の指示に従った前記機能によって上記工程(n)で使用されたキーを変換する; p.前記変換されたキーを別の項目としてキー表メモリに格納する;そして q.前記キー表メモリが所望の複数のキーを格納するまで上記工程(n)〜(p)を繰り . 2. A method of claim 1, further comprising the steps, j initially sets the key;. K least one selects the entry of the conversion table based on the specific information in the original key; .. n original key or keys; storing the key tables memory as m item the converted original key is;. which l converting the initial key by said selected instructed the functions according to the item of the conversion table specific information in the key stored in the table memory at least one of selecting the item of the conversion table based on;. o the process by the in accordance with the instructions of the selected item of the conversion table the function (n converting the key used in);. p the stores in the key table memory transformed key as another item;. and q the above step until said key table memory storing a desired plurality of keys (n ) repeated - the (p) し実行する。 To be executed.
  3. 【請求項3】さらに以下の工程からなる請求項1の方法、 j.複数のバイトを持った当初キーを設定する; k.それぞれが所定の暗号機能と関連した複数の変換表をメモリに設定し、前記表は前記機能に従ってデータの所定の変換を指示する複数のアドレス可能な項目を夫々含む; l.前記当初キーにある特定情報に基づいて前記変換表夫々の前記項目を少なくとも1つ順次選択する; m.前記変換表の前記選択された項目の指示に従った前記機能によって前記当初キーを変換する; n.前記変換された当初キーを項目としてキー表メモリに格納する; o.キー表メモリに格納された少なくとも1つのキーにある特定情報に基づいて前記変換表夫々の前記項目を少なくとも1つ順次選択する; p.前記変換表の前記選択された項目の指示に従った前記機能に . Setting k a plurality of conversion tables which are associated with a predetermined cryptographic function, respectively in the memory; 3. The method of claim 1, further comprising the steps, j sets a plurality of original key with a byte. and said table a plurality of addressable entry to instruct the predetermined conversion data each including according to the function: sequentially at least one said item of said conversion table respectively based on the specific information in l the original key. select;. m converting said initial key by said function in accordance with the instructions of the selected item of the conversion table;. n stores the converted original key is in the key table memory as an item;. o key at least certain information in one key stored in the table memory at least one sequentially selecting the item of the conversion table each based on;. p the functions according to the instruction of the selected item of the conversion table to って上記工程(o)で使用されたキーを変換する; q.前記変換されたキーを別の項目としてキー表メモリに格納する;そして r.前記キー表メモリが所望の複数のキーを格納するまで上記工程(o)〜(q)を繰り返し実行する。 What converts the key used in the step (o);. Q the stored in the key table memory transformed key as another item;. And r the key table memory storing a desired plurality of keys repeat the above step (o) ~ (q) until.
  4. 【請求項4】前記工程(i)が、上記工程(g)および(h)を複数ラウンド、キー表から項目を選択するためにラウンド毎にデータブロック中の異なるバイトを用いて繰り返す工程であることを特徴とする請求項1の方法。 Wherein said step (i) is, is the process repeated with the step (g) and (h) a plurality of rounds, different byte of the data block in each round for selecting the entry from the key table the method of claim 1, wherein the.
  5. 【請求項5】それぞれがキー表の2個以上の値の算術的組合せの結果である複数の項目を持った決定因表をキー表から生成し、キー表から項目を選択するために前記決定因表の項目を、変換されるデータブロックの1つの値と組み合わせる工程を更に含む請求項1または請求項4 5. generates a determinant table having a plurality of items is a result of an arithmetic combination of two or more values ​​of each key tables from the key table, the decision to select an item from the key table claim items cause table, further comprising the step of combining a single value of the data block to be converted 1 or claim 4
    の方法。 the method of.
JP51035390A 1989-08-17 1990-03-14 Encryption system Expired - Lifetime JP3188940B2 (en)

Priority Applications (2)

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

Publications (2)

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

Family

ID=23563086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51035390A Expired - Lifetime JP3188940B2 (en) 1989-08-17 1990-03-14 Encryption system

Country Status (8)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005534965A (en) * 2002-07-27 2005-11-17 エクストリーム セキュリティー ソリューションズ リミテッド リミテッド ライアビリティ カンパニー Encryption and decryption apparatus and method
JP2010529496A (en) * 2007-06-05 2010-08-26 オリダオ Encryption method and device for pseudo-random generator, data encryption, and message encryption hashing

Families Citing this family (82)

* 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 (en) * 1991-06-13 1999-02-24 三菱電機株式会社 Encryption method
US5293576A (en) * 1991-11-21 1994-03-08 Motorola, Inc. Command authentication process
US6644696B2 (en) * 1998-10-23 2003-11-11 Coinstar, Inc. Coin-discriminator voucher anti-counterfeiting method and apparatus
DE19581586T1 (en) * 1994-03-23 1997-05-28 Chantilley Corp Ltd A device for generating encryption / decryption look-up tables using a session key
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
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
US5583939A (en) * 1995-06-01 1996-12-10 Chung N. Chang Secure, swift cryptographic key exchange
US5835592A (en) * 1995-06-01 1998-11-10 Chang; Chung Nan 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
WO1997044935A1 (en) * 1996-05-20 1997-11-27 Philips Electronics N.V. Cryptographic method and apparatus for non-linearly merging a data block and a key
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 (en) 1997-04-02 1998-01-27 Государственное унитарное предприятие "Специализированный центр программных систем "Спектр" Method for encoding information which is represented in binary code
CA2302784A1 (en) 1997-09-17 1999-03-25 Frank C. Luyster Improved block cipher method
JP3092567B2 (en) * 1997-10-31 2000-09-25 日本電気株式会社 Generating method and apparatus of the encryption key
JP2001525624A (en) * 1997-12-01 2001-12-11 シーメンス アクチエンゲゼルシヤフト First desired memory location reducing method and encryption and apparatus for decryption of the electronic key
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
CA2332350C (en) * 1998-05-18 2015-07-07 Giesecke & Devrient Gmbh Access-protected data carrier
WO2000041356A1 (en) * 1998-12-30 2000-07-13 Koninklijke Kpn N.V. 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 (en) * 2000-12-28 2005-08-26 Patricia Etienne Device and method of protection of documents or verification of the authenticity of a document, by use of an encrypted information prepared by the method, and documents protected by said information
US6691132B2 (en) * 2001-05-16 2004-02-10 Reengineering Llc Semantic encoding and compression of database tables
JP4515716B2 (en) * 2002-04-03 2010-08-04 パナソニック株式会社 Expanded key generation device, encryption device and encryption systems
EP1351430B1 (en) * 2002-04-03 2005-10-05 Matsushita Electric Industrial Co., Ltd. Expansion key generating device, encryption device and encryption system
AU2003223022A1 (en) * 2002-04-30 2003-11-17 Carl Alko Meijer Method for protecting secret key cryptographic schemes
AU2003270296A1 (en) * 2002-09-03 2004-03-29 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
US20060291656A1 (en) * 2003-08-13 2006-12-28 Koninklijke Philips Electronics, N.V. Encryption method and decoding method for a digital transmission system
DE10345378B4 (en) * 2003-09-30 2010-08-12 Infineon Technologies Ag Method and device for encryption / decryption
WO2005048008A2 (en) * 2003-11-16 2005-05-26 M-Systems Flash Disk Pioneers Ltd. Enhanced natural montgomery exponent masking
JP4696449B2 (en) * 2004-01-09 2011-06-08 ソニー株式会社 Encryption apparatus and method
US7539305B2 (en) * 2004-03-05 2009-05-26 International Business Machines Corporation Schryption method and device
EP1730675B1 (en) * 2004-03-12 2015-05-20 Ingenia Holdings Limited Authenticity verification methods, products and apparatuses
KR101168932B1 (en) 2004-03-12 2012-08-02 인제니아 홀딩스 리미티드 Methods and apparatuses for creating authenticatable printed articles and subsequently verifying them
JP4646050B2 (en) * 2004-05-06 2011-03-09 大日本印刷株式会社 A method of performing encryption / decryption by issuing the Ic card
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
US7564970B2 (en) * 2004-08-12 2009-07-21 Cmla, Llc Exponential data transform to enhance security
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
GB2438424B (en) * 2004-08-13 2008-02-13 Ingenia Technology Ltd Article manufacturing screen
GB2417592B (en) 2004-08-13 2006-07-26 Ingenia Technology Ltd Authenticity verification of articles
KR101223204B1 (en) * 2005-07-27 2013-01-17 인제니아 홀딩스 리미티드 Verification of authenticity
US20070043977A1 (en) * 2005-08-22 2007-02-22 Moxa Technologies Co., Ltd. [program encryption method]
WO2007072044A1 (en) 2005-12-23 2007-06-28 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
CA2688592C (en) * 2007-10-01 2014-04-15 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 (en) 2013-02-19 2017-10-04 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Apparatus and method for holding the obfuscated data to the server
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
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
US9282122B2 (en) 2014-04-30 2016-03-08 Intuit Inc. Method and apparatus for multi-tenancy secrets management
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
US20170085371A1 (en) * 2015-04-07 2017-03-23 Secure Channels Sa System and method for an enhanced xor cipher through extensions
UY36412A (en) * 2015-11-27 2017-06-30 Murguía Hughes Julián Symmetric encryption technique polialgorítmica

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 (en) * 1976-12-22 1978-07-06 Ibm Deutschland cipher machine and decipher
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
US4160120A (en) * 1977-11-17 1979-07-03 Burroughs Corporation Link encryption device
US4172213A (en) * 1977-11-17 1979-10-23 Burroughs Corporation Byte stream selective encryption/decryption device
SE7714587L (en) * 1977-12-21 1979-06-22 Brendstrom Hugo Messaging system
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 (en) * 1985-05-15 1990-03-09 Thomson Csf encryption device by 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 (en) * 1987-02-13 1995-03-29 沖電気工業株式会社 Encryption device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005534965A (en) * 2002-07-27 2005-11-17 エクストリーム セキュリティー ソリューションズ リミテッド リミテッド ライアビリティ カンパニー Encryption and decryption apparatus and method
JP2010529496A (en) * 2007-06-05 2010-08-26 オリダオ Encryption method and device for pseudo-random generator, data encryption, and message encryption hashing
JP2014139687A (en) * 2007-06-05 2014-07-31 Oridao Encryption device for pseudo-random generation, encryption of data, and cryptographically hashing of messages
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
EP0489742A1 (en) 1992-06-17
CA2064769C (en) 2000-02-08
JPH05501925A (en) 1993-04-08
DE69031736D1 (en) 1998-01-02
AU635466B2 (en) 1993-03-18
AU6043190A (en) 1991-04-03
CA2064769A1 (en) 1991-02-18
EP0489742B1 (en) 1997-11-19
EP0489742A4 (en) 1993-03-17
US5003596A (en) 1991-03-26
DE69031736T2 (en) 1998-06-04
WO1991003113A1 (en) 1991-03-07
AT160476T (en) 1997-12-15

Similar Documents

Publication Publication Date Title
Chow et al. A white-box DES implementation for DRM applications
US5142579A (en) Public key cryptographic system and method
CN1326353C (en) Method and system for integrated protection of data distributed processing in computer networks
CA2449662C (en) Block encryption device using auxiliary conversion
US6804355B1 (en) Block cipher for small selectable block sizes
US4850019A (en) Data randomization equipment
Coppersmith Small solutions to polynomial equations, and low exponent RSA vulnerabilities
US6415032B1 (en) Encryption technique using stream cipher and block cipher
Adams et al. The structured design of cryptographically good S-boxes
US5295188A (en) Public key encryption and decryption circuitry and method
CA2150681C (en) A method and apparatus for generating a cipher stream
US7283628B2 (en) Programmable data encryption engine
US5351299A (en) Apparatus and method for data encryption with block selection keys and data encryption keys
EP1052611B9 (en) Data converter and recording medium on which program for executing data conversion is recorded
Rueppel Analysis and design of stream ciphers
Sorkin Lucifer, a cryptographic algorithm
US5727062A (en) Variable size block ciphers
JP2862030B2 (en) Encryption method
Lai On the design and security of block ciphers
US5365589A (en) Method and apparatus for encryption, decryption and authentication using dynamical systems
US7096369B2 (en) Data transformation apparatus and data transformation method
KR100389902B1 (en) Fast block encryption method guaranteeing security for differential cryptanalysis and linear cryptanalysis
US6504931B1 (en) Method and apparatus for encrypting data
US20040008841A1 (en) Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
US5745577A (en) Symmetric cryptographic system for data encryption

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 (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090518

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100518

Year of fee payment: 9

EXPY Cancellation because of completion of term