JP3992742B2 - データブロックおよび鍵を非線形的に結合する暗号方法および装置 - Google Patents

データブロックおよび鍵を非線形的に結合する暗号方法および装置 Download PDF

Info

Publication number
JP3992742B2
JP3992742B2 JP54191697A JP54191697A JP3992742B2 JP 3992742 B2 JP3992742 B2 JP 3992742B2 JP 54191697 A JP54191697 A JP 54191697A JP 54191697 A JP54191697 A JP 54191697A JP 3992742 B2 JP3992742 B2 JP 3992742B2
Authority
JP
Japan
Prior art keywords
block
sub
key
data
blocks
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
JP54191697A
Other languages
English (en)
Other versions
JPH11509940A (ja
Inventor
ブール ホイベルト デン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Philips Electronics NV filed Critical Philips Electronics NV
Publication of JPH11509940A publication Critical patent/JPH11509940A/ja
Application granted granted Critical
Publication of JP3992742B2 publication Critical patent/JP3992742B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は、ディジタル入力ブロックをディジタル出力ブロックに変換する方法に関係し、前記変換は、前記ディジタル入力ブロックの選択された部分M1を第1鍵K1と結合し、前記選択された部分M1および第1鍵K1に非線形的に依存するデータブロックB1を発生するステップを具え、前記ディジタル出力ブロックの選択された部分を前記データブロックB1から得る。
さらに本発明は、ディジタル入力ブロックをディジタル出力ブロックに暗号的に変換する装置に関係し、前記装置は、前記ディジタル入力ブロックを得る第1入力手段と、第1鍵K1を得る第2入力手段と、前記ディジタル入力ブロックを前記ディジタル出力ブロックに変換する暗号処理手段と、前記ディジタル出力ブロックを出力する出力手段とを具え、前記変換が、前記ディジタル入力ブロックの選択された部分M1を前記第1鍵K1と結合することと、前記選択された部分M1および第1鍵K1に非線形的に依存するデータブロックB1を発生することとを具え、前記ディジタル出力ブロックの選択された部分を前記データブロックB1から得る。
国家標準局のデータ暗号化標準(DES)[FIPS刊行物46、1977年1月15日]は、ディジタル入力ブロックをディジタル出力ブロックに変換する、広く使用されているアルゴリズムを記載している。このようなアルゴリズムは、一般的に、ブロック暗号と呼ばれている。このDESアルゴリズムは、バイナリ符号化情報の暗号化および暗号復号化に使用される。暗号化は、プレーンテキストと呼ばれる明瞭なデータを、暗号テキストと呼ばれる不明瞭な形態に変換する。前記暗号テキストを暗号復号化することは、そのデータをその元の形態に変換し戻す。いわゆる電子コードブックモードにおいて、DESを使用し、プレーンテキストの64ビットのブロックを、対応する暗号テキストの64ビットのブロックに変換する。このモードにおいて、暗号化は、64ビット鍵から得られる鍵を使用し、その56ビットを自由に選択してもよい。図1は、暗号化中のDESの構造のすべてを示す。暗号化計算において、最初に入力(プレーンテキスト)を64ビットから固定された順列IPを使用する64ビットに並べ替える。その結果、32左ビットL0および32右ビットR0に分割される。これら右ビットを、暗号関数f(R0,K1)を使用して変換し、ここでK1をサブ鍵とする。この結果f(R0,K1)を前記左ビットに(2を法とするビット幅)加算し、その後、2つの結果32ビットブロックL0▲+▼f(R0,K1)およびR0を交換する。この手順を、合計16ラウンド、反復的に続ける。最後のラウンドの終了において、最初の順列の逆順列を用いる。
f(Ri,Ki+1)の計算において、図2に示すように、最初に32右ビットRiをボックスEにおける48ビットに拡張する。所定の表に従って、この拡張を、いくつかの入力ビットの出力ビットを2倍にし、他の入力ビットの出力ビットを1倍にすることによって行う。次に、拡張された48ビットを、48鍵ビットKiに(2を法とするビット幅)加算する。結果として生じる48ビットを、各々6ビットの8グループに分割する。これらのグループの各々を、Sボックス(Si)によって処理し、Sボックスは、前記6ビットを4ビットに非線形演算において減少させる。8個のSiボックスを、表の形態において与える。合計の出力は32ビットであり、これをボックスPにおいて並べ替える。Pも、表の形態において与える。
図3は、鍵スケジュール計算を説明する。64ビットの鍵内容のうち56ビットのみをこのアルゴリズムにおいて使用する。これらの56ビットを、ランダムに選択すべきである。8個の補足するエラー検出ビットを使用し、前記鍵の各々のビットを部分的に余りにする。前記56ビットの選択を、並べ替えと共にボックスPC1において行う。その結果を、2つのビットワードC0およびD0に分割する。各々のラウンド毎に48鍵ビットを得るために、最初にワードC0およびD0を左に1回または2回シフトする。次に、選択および並べ替えPC2をこの結果に用いる。PC2の出力は、f(R0,K1)に使用する48ビットサブ鍵K1である。前記シフト、選択および並べ替えのプロセスを繰り返し、各々のラウンド毎にサブ鍵を発生する。表は、その後のラウンドのサブ鍵の次の48ビットを得るためにどの位多くのシフトを行わなければならないかを明示する。
同じアルゴリズムおよび鍵を、暗号テキストの暗号復号化に使用することができる。暗号復号化に対する最初の並べ替えは、暗号化の逆並べ替えを取り消す。各々のラウンドは、いわゆるFeistel暗号から成り立つ。Feistel暗号に関して、逆の演算は、暗号化に対して使用したのと同じラウンドを使用するが、前記サブ鍵を逆の順序で用いることから成り立つことが知られている。このように、第1の復号化ラウンドには、第16の暗号化ラウンドに使用したのと同じサブ鍵を供給しなければならず、第2の復号化ラウンドには、第15の暗号化ラウンドに使用したのと同じサブ鍵を供給しなければならない、等である。どのようにDESアルゴリズムを暗号フィードバックモードのような他の暗号化モードにおいて使用できるかも既知である。このモードにおいて、DESアルゴリズムを使用し、統計的にランダムのバイナリビットのストリームを発生し、これらを、例えば、排他的論理和を使用して前記プレーンテキストに結合する。
DESアルゴリズムは、本質的に、最初の並べ替えを具え、データの一部における16の鍵依存計算が続き、逆並べ替えによって終了する。各々の鍵依存計算は、鍵依存ビットの前記データ部分への(2を法とする)加算を具え、前記データ部分のサブブロックにおける非線形演算が続き、前記データ部分の並べ替え(線形演算)によって終了する。
一般的に、DESは、良好な暗号化/暗号復号化ツールであると考えられる。しかしながら、特に、最近の極めて強力な差別的な暗号解読攻撃にかんがみて、DESが長年に渡り安全であったかどうかは未解決の問題である。
本発明の目的は、暗号解読攻撃に対してより堅牢な、上述した種類の暗号方法および装置を提供することである。
この目的を達成するために、本発明による暗号方法は、前記結合ステップを、前記選択された部分M1および第1鍵K1を、1つの逐次的に分離できないステップにおいて非線形的に結合する非線形関数gを実行することによって行うことを特徴とする。図2に示すようなDESシステムにおいて、第1の処理ステップにおいて、前記Rデータを前記鍵にビット幅加算し、その結果(Sボックス)を非線形的に処理する第2の処理ステップが続く。本発明によれば、データを鍵に1つのステップ(すなわち、1つの逐次的に分離できないステップ)において結合するアルゴリズムを使用する。このように、前記鍵ビットの前記データへの加算は、非線形演算の1つに統合された部分となり、システムを、差別的な暗号解読のような最近の攻撃に対して、より免疫性にする。
従属の請求の範囲2に規定される本発明による方法の1実施形態において、各々のラウンドにおいて、前記ディジタル入力ブロックの双方の部分を処理し、これは、各々のラウンド中に前記ディジタル入力ブロックの半分のみを処理する、DESのような慣例的なFeistel暗号に対するよりも良い暗号化結果を与える。同じシステムを暗号化および暗号復号化の双方に使用できることを保証するために、前記データの一方の部分を演算gを使用して処理し、他方の半分を逆演算g-1を使用して処理する。この案を使用することによって、暗号復号化を、同じシステムを使用するが、前記鍵を前記ラウンドと逆の順序で供給する(暗号復号化中、前記第1の非線形ステップに、暗号化中に前記最後の非線形ステップに供給した鍵を供給する、等)ことによって行う。2倍多くのラウンドを使用するFeistel暗号の慣例的な実現化と比較して、本発明によるシステムはより高速である。
従属の請求の範囲3に規定される方法は、例えば64ビットの比較的より大きいデータブロックおよび鍵を、より小さいサブブロックおよびサブ鍵に分割し、リアルタイム非線形処理を簡単にする。
従属の請求の範囲5に規定される本発明による方法の1実施形態において、定数を使用し、前記暗号化の品質を向上させる。有利に、前記定数をシステム毎に予め決定し、例えば、顧客特定定数を形成する。代わりに、前記定数を、疑似乱数発生器によって発生する。
従属の請求の範囲6に規定の方法は、1ステップにおける前記データサブブロックおよびサブ鍵の非線形結合の方法を与える。加えて、異なった入力は、すべて異なった出力になる。これは、非線形演算が6ビット入力サブブロックを4ビット出力サブブロックに減少し、同じ出力が4つの異なった入力毎に発生するDESと比較して、暗号解析攻撃に対するシステムの免疫性を増加する。
従属の請求の範囲7に規定される本発明による方法の1実施形態において、定数を使用し、前記暗号化の品質を向上させる。有利に、前記定数をシステム毎に予め決定し、例えば、顧客特定定数を形成する。代わりに、前記定数を、疑似乱数発生器によって発生する。
従属の請求の範囲8に規定の方法は、前記暗号化の品質をさらに向上させる。
従属の請求の範囲10に規定される本発明による方法の1実施形態において、前記ディジタル入力ブロックの異なった部分に対応する個々のサブブロックを交換し、前記暗号化の品質を改善する。
好適には、サブブロックmiは、8個のデータビットを具える。これは、前記非線形演算が6から4ビットに変換するDESと比較して、前記非線形演算の品質をさらに改善する。
従属の請求の範囲11に規定される方法は、GF(28)における乗算をGF(24)における演算に減少し、より簡単またはより費用効果的な実現化を達成できるようにするという利点を有する。
従属の請求の範囲12に規定される方法は、GF(28)における乗算をGF(24)における演算に減少する効率的な方法を与える。
本発明による方法の1実施形態は、βを、GF(2)に関する既約多項式h(x)=x4+x3+x2+x+1の根とすることを特徴とする。これは、βに対する好適な選択であり、いわゆる、シフトされた多項式の底の使用を可能にする。
本発明による方法の1実施形態は、GF(28)の逆関数の計算が、GF(24)における一組の計算の実行を具えることを特徴とする。GF(28)における逆演算がGF(24)における演算に減少することによって、より簡単、またはより費用効果的な実現化を達成することができる。
本発明による方法の1実施形態は、前記要素bの逆数の計算が、(a0 2+a01+a1 2β)-1((a0+a1)+a1D)の計算を具えることを特徴とする。これは、GF(28)における逆演算をGF(24)における演算に減少する効率的な方法である。
本発明による方法の1実施形態は、前記第1鍵K1が64ビットデータを具え、前記サブ鍵kiの各々が8データビットを具えることを特徴とする。大きな鍵を使用することによって、前記暗号化の品質は向上する。
本発明の目的を達成するために、本発明による装置は、前記暗号処理方法を、前記結合を前記選択された部分M1および第1鍵K1を、1つの逐次的に分離できないステップにおいて非線形的に結合する非線形関数gを実行することによって行うように配置したことを特徴とする。
本発明のこれらのおよび他の態様は、図面に示す実施形態の参照から明らかになるであろう。
図1は、DESシステムに関する処理ステップを示す。
図2は、データを鍵に結合することと、DESにおける非線形演算との詳細を説明する。
図3は、DESにおける鍵計算の詳細を説明する。
図4は、暗号装置のブロック図を示す。
図5は、ディジタル入力ブロックの2つの部分の別々の処理を説明する。
図6は、サブブロックの形態におけるディジタル入力ブロックの一部の処理を説明する。
図7は、サブブロックの形態における2つの部分の処理を説明する。
図8は、全体的な暗号システムを示す。
図4は、本発明による暗号装置400のブロック図を示す。本発明を説明する目的のために、本システムを電子コードブックモードにおいて説明する。当業者は、本システムを他のモードにおいて同様に使用することができるであろう。装置400は、ディジタル入力ブロックMを得る第1入力手段410を具える。ディジタル入力ブロックMを、どのような適切なサイズとしてもよい。好適には、Mを十分に大きく、例えば128ビットとし、適度に安全な暗号結果を得る。装置400は、前記ディジタル入力ブロックをディジタル出力ブロックに変換する暗号処理手段420をさらに具える。有利に、前記ディジタル出力ブロックは、前記ディジタル入力ブロックとほぼ等しい長さを有する。装置400は、前記ディジタル出力ブロックを出力する出力手段430を具える。基本的に、暗号処理手段420は、前記ディジタル入力ブロックMを前記ディジタル出力ブロックに、前記ディジタル入力ブロックMの選択された部分M1を第1鍵K1に結合し、M1およびK1に非線形的に依存するデータブロックB1を発生することによって変換する。この結合を、1つの逐次的に分離できないステップにおいて行う。前記ディジタル出力ブロックを、B1と、M1の部分でないMの残りの部分とから得る。第1鍵K1を得るために、暗号装置400は、第2入力手段440を具える。後により詳細に説明するように、前記ディジタル入力ブロックの第2の部分M2を、好適には、M1およびK1を結合する演算と逆の演算を使用して第2鍵K2と非線形的に結合し、データブロックB2を発生してもよい。この場合において、前記ディジタル出力ブロックは、B2にも依存する。第2鍵K2を得るために、暗号装置400は、第3入力手段450を具える。
暗号装置400を、PCのような慣例的なコンピュータを使用するか、専用の暗号化/暗号復号化装置を使用して実現してもよいことは明らかであろう。前記ディジタル入力ブロックを、ハードディスクまたはフロッピーディスクのようなデータ記憶媒体から通信ネットワークを経るような、または、ユーザによって直接入力するような種々の方法において得ても良い。同様に、前記ディジタル出力ブロックを、通信ネットワークを経て、データ記憶媒体に格納するか、ユーザに対して表示するような、種々の方法において出力してもよい。好適には、安全な手段をこの目的に使用する。暗号処理手段420を、例えば、パーソナルコンピュータにおいて使用されるような慣例的なプロセッサとしてもよいが、専用の暗号プロセッサとしてもよい。暗号装置400を、部分的または全体的に、スマートカードにおいて実現してもよい。
この文書の残りの部分において、前記暗号変換の詳細を、プレーンテキストの128ビットのブロックを、対応する暗号テキストの128ビットのブロックに暗号化することについて与えた。当業者は、本システムを他のブロックサイズに同様に使用することができるであろう。図に示すデータサイズは、明瞭にする目的のために与えられており、例としてのみ取り扱うべきである。この説明は、データの非線形処理と、1ラウンドにおいて行われる鍵のデータとの結合とに焦点を合わせている。このように、本発明を、多数のラウンドを具え、各々のラウンドにおいて前記データブロックにおける線形演算を含む、図1に示すようなシステムにおいて使用することができる。
図5に示すように、128ビットのメッセージブロックMを、第1の部分M1および第2の部分M2(左および右ブロック)に分割する。好適には、双方の部分を、等しいサイズ、64ビットのものとする。M1を、非線形関数gを使用して処理する。原理的に、同じラウンド中にM2を処理する必要はない。有利に、M2を、同じラウンド中に逆関数g-1を使用して処理する。関数gおよびg-1の各々は、M1または各々M2を、鍵K1または各々K2と非線形的に結合する。好適には、前記データ部分および鍵は、同じサイズを有する。大きなデータブロックにおける良好な非線形演算は困難であり、大きなデータブロックにおける非線形処理は時間が掛かることから、データ部分M1およびM2をサブブロックに分割する。図6は、M1に関するこの分割を説明する。図7は、M1およびM2の分割を説明する。64ビットデータ部分M1およびM2を使用して、有利に、これらの部分を、8個の8ビット要素に各々分割し、M1=(m0,m1,...,m7)およびM2=(m8,m9,...,m15)とする。2つの鍵K1およびK2を、より大きな鍵から、例えば、128ビット鍵を2つの64ビット鍵K1およびK2に分割することによって得る。2つの鍵K1およびK2を、さらに分割してもよい。64ビット鍵を使用して、有利に、各々の鍵を8ビットサブ鍵に分割し、合計16個の8ビットサブ鍵kj,j=0..15を与える。サブ鍵kjの各々を、対応するサブブロックmjに関連付ける。各々のサブブロックを、別々に処理する。好適には、これらのサブブロックを、並列に処理する。望ましければ、あるラウンドに関係する前記サブブロックを、順次に処理してもよい。M1を形成する前記サブブロックの第1のグループを、暗号関数fによって各々処理する。前記サブブロックの第2のグループを、逆関数f-1によって各々処理する。
前記暗号演算に関して、nビットサブブロックまたはサブ鍵を、GF(2n)(ガロア域)の要素を表すと考える。したがって、すべての演算は、GF(2n)における。
その基本的な形態において、暗号関数fは、図6および7にも説明するように、2つの入力mjおよびkjと1つの出力tjとを有し、ここでj=0ないし7に対して、tj=f(mj,kj)とする。この基本的な形態において、暗号関数fは、bjとほぼ等しいサイズの出力を伴う1つの演算h(bj,kj)を含む。関数hは、データサブブロックbjおよびサブ鍵kjを入力として有し、暗号関数fのこの基本的な形態に関して、bj=mjとする。関数f(この実施形態において関数hと同じ)を、j=0..7に関して以下のように規定する。
1.h(bj,kj)=
j≠0,kj≠0かつbj≠kjならば、(bj.kj-1
j=0ならば、(kj-2
j=0ならば、(bj-2
j=kjならば、0
同様に、その基本的な形態において、逆暗号関数f-1は、図6および7にも説明するように、2つの入力mjおよびkjと1つの出力tjとを有し、ここでj=8ないし15に対して、tj=f-1(mj,kj)とする。逆暗号関数f-1も、bjとほぼ等しいサイズの出力を伴う1つの演算h-1(bj,kj)を含む。関数h-1をhの逆関数とする。前のように、暗号関数f-1のこの基本的な形態において、bj=mjとする。関数f-1(この実施形態において関数h-1と同じ)を、j=8..15に関して以下のように規定する。
1.h-1(bj,kj)=
j≠0,kj≠0かつbj.kj 2≠1ならば、(bj.kj-1
j=0ならば、kj
j=0ならば、(bj-1/2
j.kj 2=1ならば、0
他の実施形態において、暗号関数fの出力tj(j=0ないし7に関して、tj=f(mj,kj))および逆暗号関数f-1の出力(j=8ないし15に関して、tj=f-1(mj,kj))を以下の方法において交換する。tj<−>t15-j。これを、図7において説明する。
他の実施形態において、関数hを実行する前に、定数を各々のデータサブブロックmjに(2を法とするビット幅)加算する。好適には、8個の別個の定数pj(j=1..7)を使用し、各々を対応するデータサブブロックmjに加算する。前と同じ関数hを使用し、ここでは、bj=mj▲+▼pjにおいて演算する。暗号関数fを、ここで以下のように規定する。
1.bj=mj▲+▼pj
2.h(bj,kj)=
j≠0,kj≠0かつbj≠kjならば、(bj.kj-1
j=0ならば、(kj-2
j=0ならば、(bj-2
j=kjならば、0
同様に、逆暗号関数f-1に関しても、定数を各々のデータサブブロックmjに(2を法とするビット幅)加算する。逆関数f-1を、暗号関数fを使用して暗号化されたテキストを暗号復号化するために使用できるようにするために、関数hの後、前記定数を加算する。好適には、暗号関数fに使用したのと同じ8個の別個の定数pj(j=0..7)を使用する。ここで、定数pjを、15−j番目のストリーム(j=0..7)に加算する。結果として、逆暗号関数f-1は、以下の2つの演算を含む(j=8..15)。
1.h-1(bj,kj)=
j≠0,kj≠0かつbj.kj 2≠1ならば、(bj.kj-1
j=0ならば、kj
j=0ならば、(bj-1/2
j.kj 2=1ならば、0
2.tj=h-1(bj,kj)▲+▼p15-j
最後に、tjおよびt15-jを交換する(j=0..7)。
他の実施形態において、関数hの実行後に、他の定数を各々のデータサブブロックmjに(2を法とするビット幅)加算する。好適には、8個の別個の定数dj(j=1..7)を使用し、各々を対応するデータサブブロックmjに加算する。前と同じ関数hを使用する。暗号関数fを、ここで以下のように規定する。
1.bj=mj▲+▼pj
2.h(bj,kj)=
j≠0,kj≠0かつbj≠kjならば、(bj.kj-1
j=0ならば、(kj-2
j=0ならば、(bj-2
j=kjならば、0
3.tj=h(bj,kj)▲+▼dj
同様に、逆暗号関数f-1に関しても、定数を各々のデータサブブロックmjに(2を法とするビット幅)加算する。逆関数f-1を、暗号関数fを使用して暗号化されたテキストを暗号復号化するために使用できるようにするために、関数hの実行前に、前記定数を加算する。好適には、暗号関数fに使用したのと同じ8個の別個の定数dj(j=0..7)を使用する。ここで、定数djを、15−j番目のストリーム(j=0..7)に加算する。前と同じ関数h-1を使用し、ここでは、bj=mj▲+▼d15-jにおいて演算する。結果として、逆暗号関数f-1は、以下の3つの演算を含む(j=8..15)。
1.bj=mj▲+▼d15-j
2.h-1(bj,kj)=
j≠0,kj≠0かつbj.kj 2≠1ならば、(bj.kj-1
j=0ならば、kj
j=0ならば、(bj-1/2
j.kj 2=1ならば、0
3.tj=h-1(bj,kj)▲+▼p15-j
最後に、tjおよびt15-jを交換する(j=0..7)。定数pjを使用せずに定数djを使用することもできることは、明らかであろう。
他の実施形態において、暗号関数fは、関数hの結果を自乗する。前と同じ関数を使用する。暗号関数fを、ここで以下のように規定する。
1.bj=mj▲+▼pj
2.h(bj,kj)=
j≠0,kj≠0かつbj≠kjならば、(bj.kj-1
j=0ならば、(kj-2
j=0ならば、(bj-2
j=kjならば、0
3.sj=h(bj,kj2+i
4.tj=sj▲+▼dj
同様に、暗号関数f-1も、データサブブロックを自乗する。逆関数f-1を、暗号関数fを使用して暗号化されたテキストを暗号復号化するために使用できるようにするために、関数hの実行前に、前記加算演算を行う。前と同じ関数h-1を使用し、ここでは、bj=mj▲+▼d15-jにおいて演算する。結果として、逆暗号関数f-1は、以下の4つの演算を含む(j=8..15)。
1.qj=mj▲+▼d15-j
2.bj=qj 2+(j-7)
3.h-1(bj,kj)=
j≠0,kj≠0かつbj.kj 2≠1ならば、(bj.kj-1
j=0ならば、kj
j=0ならば、(bj-1/2
j.kj 2=1ならば、0
4.tj=h-1(bj,kj)▲+▼p15-j
最後に、tjおよびt15-jを交換する(j=0..7)。定数djおよびpjの一方または双方を使用せずに、自乗の演算を使用することもできることは、明らかであろう。
暗号復号化のために、暗号化に使用したのと同じアルゴリズムを使用するが、前記サブ鍵を交換し、kjの代わりにk15-jを使用し、j=0..15とする。
GF(28)における乗算
原理的に、本発明に関して、GF(28)におけるどのような乗算を使用してもよい。GF(2m)におけるVLSI実現化の一例は、[P. A. Scott,“A fast VLSI multiplier for GF(2m)”, IEEE Journal on selected areas in communications, Vol. SAC-4, No.1, January 1986, pages 62-66]において与えられる。有利に、以下の方法を使用し、GF(2mnにおける乗算をGF(24)における乗算および加算の列に減少する。
GF(24)において、βをβ5=1の自明でない根とする(自明でないとはβ≠1を意味し、または、等しく、x5+1=(x+1)(x4+x3+x2+x+1)から、βをGF(2)に関する既約多項式h(x)=x4+x3+x2+x+1の根とする)。底β、β2、β4、β8を、GF(24)における底として選択する。多項式β8=β3に従うことから、これは、いわゆるシフトされた多項式底β、β2、β3、β4と同じである。
Dを、GF(24)に関する既約多項式h(x)=x2+x+βの根として規定されるGF(28)の要素とする。GF(28)のすべての要素を、a0+a1.Dとして表すことができ、a0およびa1をGF(24)の要素とする。バイナリ用語において、GF(28)の数bを、ベクトル(a0,a1)として配置された8ビットを使用して表すことができ、a0,a1は、GF(24)の数を表す4ビットを有する。このように、GF(28)における底は、β、β2、β3、β4、Dβ、Dβ2、Dβ3、Dβ4である。ai∈GF(24)として、b=a0+a1.Dおよびc=a2+a3.Dとして表され、GF(28)の2つの要素bおよびcを、
b.c=(a0+a1.D).(a2+a3.D)
=a02+(a12+a03).D+a13.D2
のように乗算することができる。Dがk(x)の根であり、D2=D+βを意味するという事実を利用して、これは、乗算結果、
b.c=(a02+a13β)+(a12+a03+a13).D
を与える。これは、GF(28)の2つの要素の乗算を、GF(24)における乗算および加算の列に減少している。
GF(28)における逆
原理的に、どのような既知の方法を使用してGF(28)における要素の逆を計算してもよい。有利に、前の方法を使用してGF(28)における乗算をGF(24)における乗算に減少し、次に以下の方法を使用してGF(28)における逆演算をGF(24)における逆演算に減少する。
GF(28)における要素bの逆b-1は、ai∈GF(24)として、bをb=a0+a1.Dとして表し、
-1.b=(a0 2+a01+a1 2β)-1.(a0+a1+a1D)
.(a0+a1D)
=(a0 2+a01+a1 2β)-1.(a0 2+a01
+a1 2D+a1 22
であり、D2+D=βで、これは、b-1.b=1を与えることから、
-1=(a0 2+a01+a1 2β)-1.(a0+a1+a1D)
によって与えられる。この方法において、GF(28)における逆演算を、GF(24)における逆演算と、GF(24)における乗算および加算の列とに減少する。
GF(24)における乗算
原理的に、GF(24)におけるどのような乗算を使用してもよい。有利に、上述したように、シフトされた多項式底β、β2、β3、β4をGF(24)における底として選択し、ここでβをGF(2)に関する既約多項式h(x)=x4+x3+x2+x+1の根とし、β5=1とする。βをhの根とし、これは、β4+β3+β2+β=1を意味する。これらの底要素をe1、e2、e3およびe4と名付け、ei=βiとし、これらの底要素を、βの定義を使用して、
1.e1=β.β=β2=e2
1.e2=β.β2=β3=e3
1.e3=β.β3=β4=e4
1.e4=β.β4=β5=1=e1+e2+e3+e4
2.e2=β2.β2=β4=e4
2.e3=β2.β3=β5=1=e1+e2+e3+e4
2.e4=β2.β4=β6=β=e1
3.e3=β3.β3=β6=β=e1
3.e4=β3.β4=β7=β2=e2
4.e4=β4.β4=β8=β3=e3
のように乗算する。これは、原理的に、GF(24)における乗算を規定する。バイナリにおいて、前記乗算を、以下のように考えることができる。前記底に関して、GF(24)における各々の要素bを、bi∈GF(2)として、b=b01+b12+b23+b34として表すことができる。このように、要素bを、バイナリ成分(b0,b1,b2,b3)を有する4次元ベクトルによって表すことができる。マイクロプロセッサにおいて、これを、ニブルを使用して表すことができる。バイナリにおいて、GF(24)における2つの要素bおよびcの乗算を、これら2つの要素をb=(b0,b1,b2,b3)およびc=(c0,c1,c2,c3)によって表すとして、以下のように考えることができる。通常の方法におけるこれら2つの要素の乗算は、
b.c=(b00)β2+(b01+b10)β3+(b02
+b11+b20)β4+(b03+b12十b21
+b30)β5+(b13+b22+b31)β6
+(b23+b32)β7+(b33)β8
を与える。β5をβ4+β3+β2+βと交換し、β6をβと交換し、β7をβ2と交換し、β8をβ3と交換するβの定義を使用することは、以下の4つの成分、
b.c=(b13+b22+b31+b03+b12+b21
+b30)β+(b00+b23+b32+b03
+b12+b21+b30)β2+(b01+b10
+b33+b03+b12+b21+b30)β3
+(b02+b11+b20+b03+b12+b21
+b30)β4
を与える。したがって、この乗算のバイナリにおける結果は、
b.c=(b13+b22+b31+b03+b12+b21
+b30,b00+b23+b32+b03+b12
+b21+b30,b01+b10+b33+b03
+b12+b21+b30,b02+b11+b20
+b03+b12+b21+b30
によって与えられる。
GF(24)における逆演算
基底β、β2、β4、β8を使用して、GF(24)の各々の要素xを、a、b、c、d∈GF(2)として、b=a.β+b.β2+c.β4+d.β8と書くことができる。このように、各々の要素を、4次元ベクトル(a,b,c,d)によって表すことができる。
bの逆数(b-1)を得るために、
− 以下の中間結果、
Figure 0003992742
を計算し、ここで、abをaおよびbのバイナリAND(aANDb)とし、
Figure 0003992742
を(NOTa)のバイナリ成分とし、
Figure 0003992742
のように使用することによって、b-1の第1ビットを計算し、
Figure 0003992742
のように使用することによって、b-1の第2ビットを計算し、
Figure 0003992742
のように使用することによって、b-1の第3ビットを計算し、
Figure 0003992742
のように使用することによって、b-1の第4ビットを計算する。
図1に示すようなDESのようなシステムにおいて使用するのに加えて、専用のシステムを、本発明の非線形アルゴリズムの周囲に組み立てることができるこのようなシステムを、図8において示す。このシステムにおいて、前記ブロックを、本発明の非線形演算NLと、線形演算LINとを使用して処理する。前記第1ステップは、非線形演算である。これに、線形演算の繰り返しを続け、非線形演算を続ける。線形演算が前記データビットを完全に混合するならば、十分に安全なシステムを、6つの非線形演算を実行することによって達成することが期待される。好適には、15ラウンドを使用する。これらの線形演算の各々は、同じである。また、前記非線形演算の各々も同じであるが、各々の非線形演算は、128ビットの異なった鍵を使用する。有利に、鍵を、例えば、256ビットの1つの包括的な鍵から、鍵スケジュール計算を使用して得る。同じ鍵を、暗号化と暗号復号化とに使用する。大部分の場合において、前記鍵を、スマートカードを使用して与える。前記線形演算に関して、有利に、順列の代わりに、より複雑なマトリックスを使用する。上述したように、前記鍵に加えて、各々の非線形演算は、定数pjおよびdjに分割する128ビットの定数Cを任意に使用してもよい。この定数を、各々の演算に対して同じにしてもよい。有利に、各々の非線形演算に、別々の定数を与える。これらの定数を、システムごとに予め決めてもよい(例えば、顧客特定定数)。代わりに、前記定数を、擬似乱数発生器を使用して発生する。

Claims (20)

  1. ディジタル入力ブロックをディジタル出力ブロックに暗号的に変換する方法であって、前記変換が、前記ディジタル入力ブロックの選択された第1の部分M1を第1鍵K1と結合し、前記選択された第1の部分M1および第1鍵K1に非線形的に依存するデータブロックB1を発生するステップを実行するための暗号処理手段を使用するステップを具え、前記暗号処理手段を使用して、前記ディジタル出力ブロックの選択された部分前記データブロックB1から得られる方法において、
    前記第1の部分M1を第1鍵K1と結合するステップ、前記選択された第1の部分M1および第1鍵K1を、1つの順次分離できないステップにおいて非線形的に結合するためのアルゴリズムを使用する非線形関数gを実行することによって行われることを特徴とする方法。
  2. 請求の範囲1に請求の方法において、該方法が、
    − 前記結合するステップを実行する前に、前記ディジタル入力ブロックを、前記選択された第1の部分M1と、第2の部分M2とに分割するステップと、
    前記ディジタル入力ブロックの第2の部分M2を第2鍵K2に1つの順次分離できないステップにおいて結合するためのアルゴリズムを使用する非線形関数g-1を実行し、データブロックB2を出力として発生し、前記非線形関数g-1 前記非線形関数gの逆関数になるステップと、
    − 前記データブロックB1におけるデータと前記データブロックB2におけるデータとから結合されたデータを形成し、前記ディジタル出力ブロック前記結合されたデータから得られるステップと
    実行するための暗号処理手段を使用するステップを有する方法。
  3. 請求の範囲1に請求の方法において、前記非線形関数gを実行する前記結合するステップが、
    − 前記選択された第1の部分M1を、等しい長さの第1の複数nのサブブロックm0,..,mn-1に分割するステップと、
    − 前記第1鍵K1を、等しい長さを有する第1の複数nのサブ鍵k0,..,kn-1に分割し、前記サブ鍵kiがi=0ないしn−1に対して前記サブブロックmiに対応るステップと、
    − b i =m i とすることによって、前記サブブロックm i の各々からサブブロックb i を得るステップと、
    − 前記サブブロックmiの各々を、前記サブブロックmiの各々に対して、前記サブブロックmiから得られた前記サブブロックbiを前記対応するサブ鍵kiに1つの順次分離できないステップにおいて一つのステップで非線形的に結合するアルゴリズムを使用する同じ非線形関数hを実行することによって別々に処理し、前記第1の複数の出力サブブロックh(bi,ki)を発生するステップと、
    − t i =h(b i ,k i )とすることによって、前記第1の複数nの前記出力サブブロックh(b i ,k i )からサブブロックt i を得るステップと、
    − 前記第1の複数前記出力サブブロックh(bi,ki)から得られる前記サブブロックtiを結合し、前記データブロックB1を形成するステップとを具えることを特徴とする方法。
  4. 請求の範囲2または3に請求の方法において、前記非線形関数g-1を実行するステップが、
    − 前記第2部分M2を、等しい長さを有する第1の複数nのサブブロックmn,..,m2n-1に分割するステップと、
    − 前記第2鍵K2を、等しい長さを有する前記第1の複数nのサブ鍵kn,..,k2n-1に分割し、前記サブ鍵kiがi=nないし2n−1に対して前記サブブロックmiに対応るステップと、
    − b i =m i とすることによって、i=nないし2n−1に対して、前記サブブロックm i の各々からサブブロックb i を得るステップと、
    i=nないし2n−1に対して、前記サブブロックmiの各々に対して、前記サブブロックmiから得られた前記サブブロックbiを前記対応するサブ鍵ki1つのステップにおいて非線形的に結合すると共に前記第1の複数の出力サブブロックh-1(bi,ki)を発生させるためのアルゴリズムを使用する同じ非線形関数h -1 を実行し、前記関数h-1 前記関数hの逆関数になるステップと、
    − t i =h -1 (b i ,k i )とすることによって、i=nないし2n−1に対して、前記第1の複数nの前記出力サブブロックh -1 (b i ,k i )からサブブロックt i を得るステップと、
    i=nないし2n−1に対して、前記第1の複数前記出力サブブロックh-1(bi,ki)から得られた前記サブブロックtiを結合し、前記データブロックB2を形成するステップと
    を具えることを特徴とする方法。
  5. 請求の範囲3に請求の方法において、所定の定数pi各々の前記サブブロックmi2を法としてビット加算することによって、前記サブブロックb i は前記サブブロックm i から得られ、前記定数piが前記サブブロックmi等しい長さを有することを特徴とする方法。
  6. 請求の範囲3に請求の方法において、前記関数h(bi,ki
    j≠0,kj≠0かつbj≠kjならば、h(bj,kj)=(bj,kj-1
    j=0ならば、h(bj,kj)=(kj-2
    j=0ならば、h(bj,kj)=(qj-2
    j=kjならば、h(bj,kj)=0
    によって規定され前記h(b j ,k j )を規定する乗算および逆演算所定のガロア域乗算および逆演算になることを特徴とする方法。
  7. 請求の範囲6に請求の方法において、前記サブブロックtiを前記出力サブブロックh(bi,ki)から得るステップが、所定の定数di各々の前記出力サブブロックh(bi,ki)に2を法としてビット加算するステップを具え、前記定数di 前記サブブロックmiとほぼ等しい長さを有することを特徴とする方法。
  8. 請求の範囲7に請求の方法において、前記サブブロックtiを前記出力サブブロックh(bi,ki)から得るステップが、前記所定のガロア域乗算を使用して、h(bi,ki)+diを2i乗するステップをさらに具えることを特徴とする方法。
  9. 請求の範囲6に請求の方法において、前記サブブロックtiを前記出力サブブロックh(bi,ki)から得るステップが、前記所定のガロア域(GF)乗算を使用して、前記出力サブブロックh(bi,ki)を2i乗するステップを具えることを特徴とする方法。
  10. 請求の範囲4に請求の方法において、前記結合されたデータ
    − 前記サブブロックtiおよびt2n-1-iをi=0ないしn−1に関して交換するステップと
    − これらの交換されたサブブロックを連結するステップと
    によって形成されることを特徴とする方法。
  11. 請求の範囲6に請求の方法において、前記サブブロックmi は、8データビットを具え、前記GF(28)の2つの要素 i 及びk i の乗算ステップが、GF(24)における乗算および加算の列を実行するステップを具え、GF(2 4 )は2 4 要素でのガロア域を示すことを特徴とする方法。
  12. 請求の範囲11に請求の方法において、前記2つの要素 i 及びk i の乗算ステップが、
    i をa0+a1.Dとして表し、 i をa2+a3.Dとして表し、a0、a1、a2およびa3 GF(24)の要素であり、D、GF(24)に関する既約多項式h(x)=x2+x+βの根として規定されるGF(28)の要素であり、βGF(24)の要素であるステップと、
    − (a02+a13β)+(a12+a03+a13).Dを計算するステップ
    を具えることを特徴とする方法。
  13. 請求の範囲12に請求の方法において、β、GF(2)に関する既約多項式h(x)=x4+x3+x2+x+1の根であることを特徴とする方法。
  14. 請求の範囲6に請求の方法において、前記サブブロックmiが8データビットを具え、前記GF(28)の要素 i i 又はk i 2 若しくはq i 2 の逆数を計算するステップが、GF(24)における計算の列を実行するステップを具え、前記GF(2 4 )は2 4 要素でのガロア域を示すことを特徴とする方法。
  15. 請求の範囲14に請求の方法において、前記要素 i i 又はk i 2 若しくはq i 2 の逆数を計算するステップが、
    − 前記要素 i i 又はk i 2 若しくはq i 2 をa0+a1.Dとして表し、a0およびa1 GF(24)の要素であり、D、GF(24)に関する既約多項式h(x)=x2+x+βの根として規定されるGF(28)の要素であり、βGF(24)の要素であるステップと、
    − (a0 2+a01+a1 2β)-1((a0+a1)+a1D)を計算するステップ
    を具えることを特徴とする方法。
  16. ディジタル入力ブロックをディジタル出力ブロックに暗号的に変換する装置であって、
    前記ディジタル入力ブロックを得る第1入力手段と、
    第1鍵K1を得る第2入力手段と、
    前記ディジタル入力ブロックを前記ディジタル出力ブロックに変換する暗号処理手段であって、前記変換が、前記ディジタル入力ブロックの選択された第1の部分M1を前記第1鍵K1と結合するステップと、前記選択された第1の部分M1および第1鍵K1に非線形的に依存するデータブロックB1を発生するステップとを具え、前記ディジタル出力ブロックの選択された部分前記データブロックB1から得られる、暗号処理手段と、
    前記ディジタル出力ブロックを出力する出力手段と
    を具える装置において、前記暗号処理手段、前記選択された第1の部分M1第1鍵K1、1つの順次分離できないステップにおいて非線形的に結合するためのアルゴリズムを使用する非線形関数gを実行することによって前記結合するステップを行うことを特徴とする装置。
  17. 請求の範囲16に請求の装置において、該装置が、第2鍵K2を得る第3入力手段を具え、前記変換が、
    − 前記結合するステップを行う前に、前記ディジタル入力ブロックを、前記選択された第1の部分M1と、第2の部分M2とに分割するステップと、
    前記ディジタル入力ブロックの第2の部分M2を第2鍵K2に1つの順次分離できないステップにおいて結合するためのアルゴリズムを使用する非線形関数g-1を実行し、データブロックB2を出力として発生し、前記非線形関数g-1 前記非線形関数gの逆関数になるステップと、
    − 前記データブロックB1におけるデータと前記データブロックB2におけるデータとから結合されたデータを形成するステップ
    を具え、前記ディジタル出力ブロック前記結合されたデータから得られるようにしたことを特徴とする装置。
  18. 請求の範囲16に請求の装置において、前記第1の部分M1を第1鍵K1と結合するステップが、
    − 前記選択された第1の部分M1を、等しい長さの第1の複数nのサブブロックm0,..,mn-1に分割するステップと、
    − 前記第1鍵K1を、等しい長さを有する第1の複数nのサブ鍵k0,..,kn-1に分割し、前記サブ鍵kiがi=0ないしn−1に対して前記サブブロックmiに対応るステップと、
    − b i =m i とすることによって、前記サブブロックm i の各々からサブブロックb i を得るステップと、
    − 前記サブブロックmiの各々を、前記サブブロックmiの各々に対して、前記サブブロックmiから得られたサブブロックbiを前記対応するサブ鍵kiに1つの順次分離できないステップにおいて一つのステップで非線形的に結合するアルゴリズムを使用する同じ非線形関数hを実行することによって別々に処理し、前記第1の複数の出力サブブロックh(bi,ki)を発生するステップと、
    − t i =h(b i ,k i )とすることによって、前記第1の複数nの前記出力サブブロックh(b i ,k i )からサブブロックt i を得るステップと、
    − 前記第1の複数前記出力サブブロックh(bi,ki)から得られサブブロックtiを結合し、前記データブロックB1を形成するステップと
    を具えることを特徴とする装置。
  19. 請求の範囲18に請求の装置において、前記関数h(bi,ki
    j≠0,kj≠0かつbj≠ならばKj、h(bj,kj)=(bj,kj-1
    j=0ならば、h(bj,kj)=(kj-2
    j=0ならば、h(bj,kj)=(bj-2
    j=kjならば、h(bj,kj)=0
    によって規定され前記h(b j ,k j )を規定する乗算および逆演算所定のガロア域乗算および逆演算になることを特徴とする装置。
  20. 請求の範囲19に請求の装置において、前記サブブロックmiが8データビットを具え、前記GF(28)の2つの要素 i 及びk i の乗算ステップが、
    i をa0+a1.Dとして表し、 i をa2+a3.Dとして表し、a0、a1、a2およびa3 GF(24)の要素であり、D、GF(24)に関する既約多項式h(x)=x2+x+βの根として規定されるGF(28)の要素であり、βGF(24)の要素であるステップと、
    − (a02+a13β)+(a12+a03+a13).Dを計算するステップ
    を具え、
    前記GF(28)の要素 i i 又はk i 2 若しくはq i 2 の逆数を計算するステップが、
    − (a0 2+a01+a1 2β)((a0+a1)+a1D)の計算するステップを具えることを特徴とする装置。
JP54191697A 1996-05-20 1997-05-13 データブロックおよび鍵を非線形的に結合する暗号方法および装置 Expired - Lifetime JP3992742B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
NL1003159 1996-05-20
NL1003159 1996-05-20
PCT/IB1997/000544 WO1997044935A1 (en) 1996-05-20 1997-05-13 Cryptographic method and apparatus for non-linearly merging a data block and a key

Publications (2)

Publication Number Publication Date
JPH11509940A JPH11509940A (ja) 1999-08-31
JP3992742B2 true JP3992742B2 (ja) 2007-10-17

Family

ID=19762893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP54191697A Expired - Lifetime JP3992742B2 (ja) 1996-05-20 1997-05-13 データブロックおよび鍵を非線形的に結合する暗号方法および装置

Country Status (5)

Country Link
US (2) US6298136B1 (ja)
EP (1) EP0839418B1 (ja)
JP (1) JP3992742B2 (ja)
DE (1) DE69721439T2 (ja)
WO (1) WO1997044935A1 (ja)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3992742B2 (ja) * 1996-05-20 2007-10-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データブロックおよび鍵を非線形的に結合する暗号方法および装置
RU2103829C1 (ru) * 1997-04-02 1998-01-27 Государственное унитарное предприятие "Специализированный центр программных систем "Спектр" Способ шифрования информации, представленной двоичным кодом
ES2293665T3 (es) * 1997-11-28 2008-03-16 Alexandr Andreevich Moldovyan Metodo para la conversion criptografica de bloques de entrada de l bits de informacion de datos digitales en bloques de salida de l bits.
JPH11225138A (ja) * 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd 暗号処理装置、暗号処理方法及びその方法を記録した記録媒体
DE19820422A1 (de) * 1998-05-07 1999-11-11 Giesecke & Devrient Gmbh Verfahren zur Authentisierung einer Chipkarte innerhalb eines Nachrichtenübertragungs-Netzwerks
AU5458199A (en) * 1998-07-02 2000-01-24 Cryptography Research, Inc. Leak-resistant cryptographic indexed key update
US7292693B1 (en) * 1998-08-13 2007-11-06 Teledyne Technologies Incorporated Deterministically generating block substitution tables which meet a given standard of nonlinearity
US6578061B1 (en) * 1999-01-19 2003-06-10 Nippon Telegraph And Telephone Corporation Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
FR2789535B1 (fr) * 1999-02-04 2001-09-28 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique
US6760440B1 (en) * 1999-12-11 2004-07-06 Honeywell International Inc. One's complement cryptographic combiner
US6807649B1 (en) * 2000-05-23 2004-10-19 Hewlett-Packard Development Company, L.P. Encryption keys for multiple drive fault tolerance
US20020021801A1 (en) * 2000-07-13 2002-02-21 Takeshi Shimoyama Computing apparatus using an SPN structure in an F function and a computation method thereof
US7366300B2 (en) * 2000-12-13 2008-04-29 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
US7142671B2 (en) * 2000-12-13 2006-11-28 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
US7502463B2 (en) * 2000-12-13 2009-03-10 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
JP4787434B2 (ja) * 2001-08-24 2011-10-05 富士通コンポーネント株式会社 暗号化方法、通信システム、データ入力装置
US7269615B2 (en) 2001-12-18 2007-09-11 Analog Devices, Inc. Reconfigurable input Galois field linear transformer system
US7283628B2 (en) * 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US7508937B2 (en) * 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US7076059B1 (en) * 2002-01-17 2006-07-11 Cavium Networks Method and apparatus to implement the data encryption standard algorithm
KR100583635B1 (ko) * 2003-01-24 2006-05-26 삼성전자주식회사 다수의 동작 모드들을 지원하는 암호화 장치
KR100800468B1 (ko) * 2004-01-29 2008-02-01 삼성전자주식회사 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
KR20050087271A (ko) * 2004-02-26 2005-08-31 삼성전자주식회사 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치
FR2871969B1 (fr) * 2004-06-18 2006-12-01 Sagem Procede et dispositif d'execution d'un calcul cryptographique
US8312551B2 (en) * 2007-02-15 2012-11-13 Harris Corporation Low level sequence as an anti-tamper Mechanism
US7937427B2 (en) * 2007-04-19 2011-05-03 Harris Corporation Digital generation of a chaotic numerical sequence
US8611530B2 (en) * 2007-05-22 2013-12-17 Harris Corporation Encryption via induced unweighted errors
US7921145B2 (en) * 2007-05-22 2011-04-05 Harris Corporation Extending a repetition period of a random sequence
US7995757B2 (en) * 2007-05-31 2011-08-09 Harris Corporation Closed galois field combination
US7962540B2 (en) * 2007-06-07 2011-06-14 Harris Corporation Mixed radix number generator with chosen statistical artifacts
US7974413B2 (en) * 2007-06-07 2011-07-05 Harris Corporation Spread spectrum communications system and method utilizing chaotic sequence
US7970809B2 (en) * 2007-06-07 2011-06-28 Harris Corporation Mixed radix conversion with a priori defined statistical artifacts
US8005221B2 (en) * 2007-08-01 2011-08-23 Harris Corporation Chaotic spread spectrum communications system receiver
US7873828B2 (en) * 2007-08-07 2011-01-18 Optica Technologies, Inc. Method and apparatus for encrypting and decrypting data to/from an ESCON tape system
IL185285A0 (en) * 2007-08-14 2008-01-06 Yeda Res & Dev A method and apparatus for implementing a novel one-way hash function on highly constrained devices such as rfid tags
US7995749B2 (en) 2007-10-30 2011-08-09 Harris Corporation Cryptographic system configured for extending a repetition period of a random sequence
US8189792B2 (en) * 2007-12-28 2012-05-29 Intel Corporation Method and apparatus for performing cryptographic operations
US8180055B2 (en) * 2008-02-05 2012-05-15 Harris Corporation Cryptographic system incorporating a digitally generated chaotic numerical sequence
US8363830B2 (en) 2008-02-07 2013-01-29 Harris Corporation Cryptographic system configured to perform a mixed radix conversion with a priori defined statistical artifacts
US8040937B2 (en) * 2008-03-26 2011-10-18 Harris Corporation Selective noise cancellation of a spread spectrum signal
US8139764B2 (en) * 2008-05-06 2012-03-20 Harris Corporation Closed galois field cryptographic system
US8320557B2 (en) 2008-05-08 2012-11-27 Harris Corporation Cryptographic system including a mixed radix number generator with chosen statistical artifacts
US8200728B2 (en) * 2008-05-29 2012-06-12 Harris Corporation Sine/cosine generator
US8145692B2 (en) * 2008-05-29 2012-03-27 Harris Corporation Digital generation of an accelerated or decelerated chaotic numerical sequence
US8064552B2 (en) * 2008-06-02 2011-11-22 Harris Corporation Adaptive correlation
US8068571B2 (en) * 2008-06-12 2011-11-29 Harris Corporation Featureless coherent chaotic amplitude modulation
US8325702B2 (en) * 2008-08-29 2012-12-04 Harris Corporation Multi-tier ad-hoc network in which at least two types of non-interfering waveforms are communicated during a timeslot
US8165065B2 (en) * 2008-10-09 2012-04-24 Harris Corporation Ad-hoc network acquisition using chaotic sequence spread waveform
US8406276B2 (en) * 2008-12-29 2013-03-26 Harris Corporation Communications system employing orthogonal chaotic spreading codes
US8351484B2 (en) * 2008-12-29 2013-01-08 Harris Corporation Communications system employing chaotic spreading codes with static offsets
US8457077B2 (en) * 2009-03-03 2013-06-04 Harris Corporation Communications system employing orthogonal chaotic spreading codes
US8509284B2 (en) * 2009-06-08 2013-08-13 Harris Corporation Symbol duration dithering for secured chaotic communications
US8428102B2 (en) * 2009-06-08 2013-04-23 Harris Corporation Continuous time chaos dithering
US8428103B2 (en) * 2009-06-10 2013-04-23 Harris Corporation Discrete time chaos dithering
US8428104B2 (en) 2009-07-01 2013-04-23 Harris Corporation Permission-based multiple access communications systems
US8385385B2 (en) 2009-07-01 2013-02-26 Harris Corporation Permission-based secure multiple access communication systems
US8363700B2 (en) 2009-07-01 2013-01-29 Harris Corporation Rake receiver for spread spectrum chaotic communications systems
US8379689B2 (en) * 2009-07-01 2013-02-19 Harris Corporation Anti-jam communications having selectively variable peak-to-average power ratio including a chaotic constant amplitude zero autocorrelation waveform
US8340295B2 (en) * 2009-07-01 2012-12-25 Harris Corporation High-speed cryptographic system using chaotic sequences
US8369376B2 (en) * 2009-07-01 2013-02-05 Harris Corporation Bit error rate reduction in chaotic communications
US8406352B2 (en) 2009-07-01 2013-03-26 Harris Corporation Symbol estimation for chaotic spread spectrum signal
US8848909B2 (en) * 2009-07-22 2014-09-30 Harris Corporation Permission-based TDMA chaotic communication systems
US8369377B2 (en) 2009-07-22 2013-02-05 Harris Corporation Adaptive link communications using adaptive chaotic spread waveform
US9544133B2 (en) * 2009-12-26 2017-01-10 Intel Corporation On-the-fly key generation for encryption and decryption
US8345725B2 (en) 2010-03-11 2013-01-01 Harris Corporation Hidden Markov Model detection for spread spectrum waveforms
US8538023B2 (en) * 2010-03-29 2013-09-17 Intel Corporation Methods and apparatuses for administrator-driven profile update
US9584310B2 (en) * 2014-03-19 2017-02-28 Nxp B.V. Protecting a white-box implementation against attacks
US11310043B2 (en) * 2019-01-03 2022-04-19 Rolls-Royce Corporation Frequency encryption for communication signals

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3244537A1 (de) * 1982-12-02 1984-06-07 Ant Nachrichtentech Verfahren zur ver- und entschluesselung von datenbloecken
US4947447A (en) * 1986-04-24 1990-08-07 Hitachi, Ltd. Method for data coding
EP0406457A1 (de) * 1989-07-03 1991-01-09 Matthias Zahn Verfahren zum Verschlüsseln und Entschlüsseln von Daten
US5003596A (en) * 1989-08-17 1991-03-26 Cryptech, Inc. Method of cryptographically transforming electronic digital data from one form to another
DE4016203A1 (de) * 1990-05-19 1991-11-21 Rolf Prof Dr Trautner Verfahren zur blockweisen chiffrierung von digitalen daten
JP2862030B2 (ja) * 1991-06-13 1999-02-24 三菱電機株式会社 暗号化方式
US5398284A (en) * 1993-11-05 1995-03-14 United Technologies Automotive, Inc. Cryptographic encoding process
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
US5757923A (en) * 1995-09-22 1998-05-26 Ut Automotive Dearborn, Inc. Method of generating secret identification numbers
JP3992742B2 (ja) * 1996-05-20 2007-10-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データブロックおよび鍵を非線形的に結合する暗号方法および装置

Also Published As

Publication number Publication date
JPH11509940A (ja) 1999-08-31
DE69721439T2 (de) 2004-03-18
WO1997044935A1 (en) 1997-11-27
US7079651B2 (en) 2006-07-18
US20020034295A1 (en) 2002-03-21
US6298136B1 (en) 2001-10-02
EP0839418A1 (en) 1998-05-06
EP0839418B1 (en) 2003-05-02
DE69721439D1 (de) 2003-06-05

Similar Documents

Publication Publication Date Title
JP3992742B2 (ja) データブロックおよび鍵を非線形的に結合する暗号方法および装置
US5442705A (en) Hardware arrangement for enciphering bit blocks while renewing a key at each iteration
DK1686722T3 (en) Block encryption device and block encryption method comprising rotation key programming
US5745577A (en) Symmetric cryptographic system for data encryption
KR100435052B1 (ko) 암호화장치
JP4828082B2 (ja) 対称キー暗号用の置換ボックス
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
EP1081889A2 (en) Extended key generator, encryption / decryption unit, extended key generation method, and storage medium
US20080304664A1 (en) System and a method for securing information
JPWO2001067425A1 (ja) 補助変換を用いたブロック暗号装置
JPH10171350A (ja) ハッシュ値生成方法および装置
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
US7499542B2 (en) Device and method for encrypting and decrypting a block of data
Elgeldawi et al. A comparative analysis of symmetric algorithms in cloud computing: a survey
CN113728583B (zh) 数字系统的增强的随机性
JPH0675525A (ja) 暗号通信装置
Kwan et al. A general purpose technique for locating key scheduling weaknesses in DES-like cryptosystems
JPH09269727A (ja) 暗号化方法および暗号化装置
Hassan New approach for modifying des algorithm using 4-states multi-keys
JP2001142395A (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
JP2000089666A (ja) 暗号化/復号化装置
KR980007156A (ko) 비밀키 블록 암호화 및 복호화 방법
ElKamchouchi et al. REBC2 cipher
Park et al. An Implementation on the High Speed Blowfish
JP2001215874A (ja) 副鍵生成装置およびそのプログラム記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040511

A72 Notification of change in name of applicant

Free format text: JAPANESE INTERMEDIATE CODE: A721

Effective date: 20040511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061107

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20061213

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20061215

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20061218

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070206

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070507

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070626

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070725

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100803

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100803

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20100803

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110803

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110803

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120803

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130803

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term