JP4673857B2 - 擬似ランダム系列を生成する方法 - Google Patents

擬似ランダム系列を生成する方法 Download PDF

Info

Publication number
JP4673857B2
JP4673857B2 JP2006552404A JP2006552404A JP4673857B2 JP 4673857 B2 JP4673857 B2 JP 4673857B2 JP 2006552404 A JP2006552404 A JP 2006552404A JP 2006552404 A JP2006552404 A JP 2006552404A JP 4673857 B2 JP4673857 B2 JP 4673857B2
Authority
JP
Japan
Prior art keywords
value
key
input
module
mkey
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.)
Active
Application number
JP2006552404A
Other languages
English (en)
Other versions
JP2007532935A (ja
Inventor
ヴォドゥネ,セルジュ
ジュノド,パスカル
Original Assignee
ナグラビジョン エス アー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ナグラビジョン エス アー filed Critical ナグラビジョン エス アー
Publication of JP2007532935A publication Critical patent/JP2007532935A/ja
Application granted granted Critical
Publication of JP4673857B2 publication Critical patent/JP4673857B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H04L9/0668Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
    • 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
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation
    • 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

Description

本発明は、第1シード或いはキーに基づき暗号的に確保された擬似ランダム系列を生成する方法に関する。
数多くの場合、基本キーに依存しているデータの系列を生成する必要がある。応用の第1分野は、例えば10秒毎に生成されかつピンコードに加えて要求される識別番号である課題を生成することである。この番号は短時間の間だけ有効であり、第3者から任意の再現を回避する。そうした生成器は、識別の目的のために印刷されてユーザに送信された古い取消線リストを取り替えることを目指している。
応用の別の分野は、多数の周回を用いる暗号化アルゴリズムにおけるサブキーの生成である。次いで、第1キーが多数のサブキーを作り出すために拡張され、それらの各々は対応する1つの周回に適用される。そうした多数の周回暗号方法の一例は、米国特許第5,214,703号(特許文献1)に記載されている。
米国特許第5,214,703号
そうした生成方法の2つの特性、即ち、一方の系統を知りつつ他方の系統(或いはシード)の非予測性といずれか一方における系統の再生とを予想している。この最後の特性は、その系統が解読が逆順で複数のサブキーを使用するために必要であるので、その系統が暗号化サブキーとして使用される際に特に使用される。
共通した解決策は、シード或いはメインキーをLFSR(論理フィードバックシフトレジスタ)に適用することである。LFSR生成器は、全ての演算が線形的であるので、線形帰納的系統(LRS)と呼称されるものを作り出す。一般的に言えば、反復が生じる前の系統の長さは2つのこと、即ち、フィードバックタップ及び初期状態に依存する。いかなる所与のサイズm(レジスタの数)からなるLFSRは期間N=2−1の間、あらゆる可能性ある状態を作り出すことできるが、適切なフィードバックタップ或いは期間が選択された場合のみにそうする。そうした系統は最大限長系統、最大限系統、或いは、一般的ではないが最大長系統と呼称される。
既知の方法はそうしたシフトレジスタの出力を使用して、ブロック毎にサブキーを生成して、暗号化プロセスの周回に供給する。
1つの生成された系統を知ることによって、他の系統或いはシードにアクセスする可能性を開く方法は一般的に受け入れられている。
この発明の目的は、メインキーに基づき系統或いはサブキーを生成する方法を提案することであり、その場合、各サブキーがメインキー或いは他の任意のサブキーを回復する情報を何ら付与しない。
上記目的はメインキー(MKEY)に基づきサブキーを生成する暗号生成器が実行する方法によって達成され、当該方法が、
前記暗号生成器が前記メインキー(MKEY)を定数と混合することで線形多様性レイヤを前記メインキー(MKEY)に適用することによって第1値(A1)を求める工程と、
前記暗号生成器が前記第1値(A1)に非線形変換を適用する工程とを含み、
この変換が、
前記暗号生成器が第1代替レイヤに前記第1値(A1)を適用することによって第2値(A2)を求める工程であり、その代替レイヤが少なくとも1つの代替ボックス(sbox)を含み、各代替ボックスが、入力がポインタとして機能し、ポイントされた定数が出力として機能する複数の定数からなる少なくとも1つのテーブルを収納することからなる工程と、
− 前記第2値(A2)に基づき、多数順列タイプからなる前記暗号生成器の拡散ボックスを用いることによって、第3値(A3)を求める工程と、
前記暗号生成器が前記第3値(A3)を同一サイズのN個のブロックに分割して、N個のブロックによって形成された出力第4値(A4)を求める工程であり、その第4値(A4)のインデックスnの各ブロックが前記第3値(A3)のN−1個のブロックの組み合わせの結果であり、前記第3値(A3)のインデックスnのブロックが省かれ、前記インデックスnが1からNに変化することからなる工程と、
前記暗号生成器が前記第4値(A4)に第2代替レイヤ(sigma)を適用することによって第7値(A7)を求める工程と、
前記暗号生成器が前記第7値(A7)に対称暗号化モジュール(SENC)の前記第7値(A7)を適用することによって前記サブキー(RKEY)を求める工程であり、前記第1値(A1)がこのモジュールに対するキー入力として機能する工程と、
を含む。

この方法は以下のように要約され、即ち、線形多様性モジュールに基づく第1レベルと、非線形多様性モジュールに基づく第2レベルとである。
線形多様性はメインキーを擬似ランダム値と混合することによって達成される。この擬似ランダム値を作り出す1つの共通した方法は、LFSR関数を利用することである。この関数は、複数の定数からなるテーブルを記憶する必要性無しに、値を迅速に生成するために使用される。
LFSRは第1定数がロードされて、キー長の同一長のビットストリームを作り出すためにシフトされる。次いで、このビットストリームはメインキーと混合されて(XOR)、値A1を作り出す。
第2レベルの目的は、値A1の非線形多様性を作り出すことである。
このレベルは5つのメインレイヤを含む。第1レイヤは代替レイヤである。
代替レイヤの目的は、入力値を任意の単純な代数的関係無しに出力値に変換することである。予想される混乱結果を達成する最も迅速な方法は、複数の定数を含む検索テーブルを使用することである。
この実施例において入力データは32ビットの長さを有するので、定数の数は32ビット長の各々で232である。
好適実施例に従えば、入力データは8ビット長のグループで分割され、複数の定数の数を256バイトまで低減する。
次いで、32ビット或いは64ビットの入力データは8ビットのバイトに分割され、代替ボックスに適用されて、8ビットの出力を求める。この入力データはアドレスポインタとして使用され、その指し示された定数は出力である。
この具現化方法に依存して、定数テーブルは入力データ(32ビット或いは64ビット)全てのグループに対して同一である。別の実施例において、定数テーブルは入力データの各グループに対して異なる。
このテーブルに記憶された定数は、全てが異なってテーブル幅と同等の多数のビットによってコード化された数からなる固定された順列である。
この非線形レベルの第2メインレイヤは多数順列行列である。この多数順列行列は、あらゆる可能性ある正方サブ行列がゼロの異なる行列式を有する、即ち、行列の要素が有限フィールドの要素であるという属性を伴う正方行列である。混合演算は入力要素のベクトルを行列によって乗算することから成り、出力となるように規定されるベクトルを生じる。
第3レイヤは混合レイヤである。入力値は同一サイズを有する幾つかのブロックに分割される。所与の入力ブロックiに対して、出力ブロックiはブロックiを除いた全ての入力ブロックのXOR関数の結果である。
第4レイヤは別の代替レイヤであり、それは同一演算を第1レイヤとしての入力値に適用する。
第5レイヤは、多数周回暗号化方法の単一暗号化工程である。入力値は先行するレイヤの結果であり、キーは線形多様性レイヤ、即ちA1の結果から取り込まれる。
様々な暗号化方法は、DES、CAST、或いは、IDEA等で適用され得る。このレイヤの目的は良好な多様性を確保すること、即ち、入力データの高拡散を達成することである。
本発明の特定の実施例において、興味深いことは暗号化周回に対しても先行するレイヤを再利用することである。これは、既知の暗号化周回を再利用する代わりに、以下の工程が出力値RAを求めるために入力値A5に対して暗号化周回として実行される理由である。即ち、
− 入力値A5を少なくとも2つの値Y0L及びY0Rに分割する工程、
− 前記少なくとも2つの値Y0L及びY0Rを混合して混合値Y1を形成する工程、
− 値A1の第1部A1Hを値Y1と混合することによって値Y2を求める工程、
− 前記値Y2を代替レイヤに適用することによって値Y3を求める工程であり、その代替レイヤが少なくとも1つの代替ボックス(sbox)を含み、各代替ボックスが、入力がポインタとして機能し、ポイントされた定数が出力として機能する複数の定数からなる少なくとも1つのテーブルを収納することからなる工程、
− 前記値Y3に基づき多数順列タイプの拡散ボックスを用いることによって値Y4を求める工程、
− 前記値A1の第2部A1Lを前記値Y4と混合することによって値Y5を求める工程、
− 前記値Y5に代替レイヤを適用することによって値Y6を求める工程、
− 前記サブキーRAの第1部RAHを前記値Y6と混合することによって値Y7を求める工程、
− 前記値Y7を初期的な少なくとも2つの値Y0L及びY0Rと混合して、この暗号化周回の出力値RAを表現する少なくとも2つの値Y8L及びY8Rを求める工程。
別の実施例に従えば、付加的な変換が代替レイヤに適用される前の値A4に付加される。
この変換は定数を伴う単なる加算であり、XOR関数によって実行される。
提供されるキー長がメインキーRのサイズと異なる場合、現行キーがメインキー以外の同一サイズを有するように先ず調整されるべきである。
その現行キーがメインキーよりも大きい場合、キーは切り捨てられ、残存ビットがその切り捨てられた部分に付加される(XOR関数)。
現行キーのサイズがメインキーよりも小さい場合、水増しが付加される。この水増しが多様性の品質を低減することを回避するため、この水増しは現行キーとシャッフルされて(混ぜられて)、水増しビットが結果としてのキーの全てにわたって展開される。
先の特性は以下の長所を有するサブキーを生成することを許容する。即ち、
− 暗号的な安全
− 双方向、即ち、順逆方向モードでの生成
− 好ましくは8ビットブロックの可変長のメインキーの使用。
図1はこのキー生成の主要構造を記載している。第1段階はキー長調整LAである。この例における入力キーAKEYは予想されるサイズより小さなサイズを有する。プロセスPPrはそのサイズが公称サイズとなるように入力キーAKEYに水増しデータを付加する。この水増しデータはキーの最後に単純に付加される。結果としてのキーPKEYは公称サイズ、例えば、128或いは256ビットの公称サイズを有する。
第2プロセスは水増しシャッフルプロセスMPrである。キー内に水増しデータを混合して、該水増しデータが必ずしも同一位置にないようにすることが重要である。この混合はフィボナッチ帰納法(Fibonacci recursion)を介してなされ、それは(ビットで表現される)長さekを伴うキーPKEYを入力としてとる。より形式的には、水増しされたキーPKEYはek/8バイトPKEY1(8)、0<=I<=ek/8−1からなるアレイとして見られ、
MKEYi(8)=PKEYi(8)▲+▼(MKEYi−1(8)+MKEYi−2(8)mod2) 0<=i<=ek/8-1
に従って混合される。
次の段階は、線形多様性部DPrである多様性段階LDである。入力キーが既に予想されたサイズを有する場合、このキーはMKEYレジスタ内に直接ロードされる。
この多様性部DPrの目的は、キーMKEYを初期化ベクトルと混合することによってキーMKEYの線形多様性を作り出すことである。生成された各サブキーに対して、初期化ベクトルは異なる。相互に異なる実施例はこの初期化ベクトルを作り出すために使用され得る。
最も簡単な方法は複数の定数からなるアレイを記憶することであり、各定数はキーサイズを除いて同一サイズを有するとともに初期化ベクトルとして作用する。初期化ベクトルの数は暗号化プロセス用に使用される周回の数、或いは、システムによって使用されるサブキーの数に依存する。
第2実施例において、初期化ベクトルは、線形フィードバックシフトレジスタLFSRを用いて擬似ランダムストリームに基づく多様性部DPrを介して生成される。初期定数がこのLFSR(この例では24ビット)にロードされ、このレジスタの出力、即ち、初期化ベクトルはキーMKEYと混合されて、キーDKEYを作り出す。
この実施例は記憶されたデータの量を最少化するための長所を有し、その理由は、初期化ベクトルが記憶されずに、LFSRで生成され、初期定数だけが記憶されるか或いはアルゴリズムの部分であるためである。
第3実施例において、キー自体はLFSRにロードされ、そのLFSR出力は直接的には次のモジュール、即ち、キーDKEYの入力である。
次の段階は、非線形多様性段階NLDと呼称され、非線形モジュールNLxPrである。この段階は図2及び図3に詳細に記載されている。
図2において、キーDKEY(値A1と対応する)は4つの部分に分割され、代替レイヤsigmaに適用され、その代替レイヤが少なくとも1つの代替ボックス(sbox)を含み、各代替ボックスが、入力がポインタとして機能し、ポイントされた定数が出力として機能する複数の定数からなるテーブルを収納する。出力データA2はsigmaボックスの出力である。その定数テーブルを生成する1つの方法は、擬似ランダム生成器を使用することである。テーブルを生成する際、全ての複製値を該テーブル内の各定数が一意的となるように除去する。
この具現化例に依存して、代替ボックス(sbox)の数は、本実施例における各ボックスが8ビットデータ入力を有するので変動し得る。sigmaモジュールに適用された入力データは8ビット長の部分に分割されて、代替ボックスに適用される。次いで各ボックスの出力は連鎖されて、モジュールsigmaの出力を形成する。
次の段階は多数数列タイプmuの行列である。この行列は(n,n)多数数列タイプの拡散ボックス内である。1つのmuブロックの入力はn個の入力ベクトルに分割される。この例に対して、4要素からなる行列を選択する。拡散ボックスは、4つの入力ベクトル(Aa,Ab,Ac,Ad)に、256要素を伴う有限フィールドに属する要素を有する正方行列4x4 Mu4によって乗算することに存し、それら要素はMu(i,j)で示され、ここでiは行インデックスを示し、jは列インデックスを示す。入力ベクトル(Aa,Ab,Ac,Ad)の行列Mu4による乗算の結果は、ベクトル(Ya,Yb,Yc,Yd)であり、これら値は以下のようにして求められる。
Ya=Mu4(1,1)Aa+Mu4(1,2)Ab+Mu4(1,3)Ac+Mu4(1,4)Ad
Yb=Mu4(2,1)Aa+Mu4(2,2)Ab+Mu4(2,3)Ac+Mu4(2,4)Ad
Yc=Mu4(3,1)Aa+Mu4(3,2)Ab+Mu4(3,3)Ac+Mu4(3,4)Ad
Yd=Mu4(4,1)Aa+Mu4(4,2)Ab+Mu4(4,3)Ac+Mu4(4,4)Ad
ここで、「+」は有限フィールドにおける加算を意味し、「」はその乗算を意味する。Mu4の要素は、4つの上記式を求めるために必要とされる計算量が最小となるように選択される。従って、定数「1」による乗算(以降「恒等式」を意味する)の数は、できるだけ大きくなるように選択されている。
muブロックの出力値A3は4つの出力値Ya,Yb,Yc,Ydの連鎖である。
次の段階は混合工程である。それは値A3を同一サイズのN個のブロックに分割することに存するとともに、N個のブロックによって形成される出力値A4を求めることに存し、値A4の各ブロックは値A3のN−1個のブロックの組み合わせの結果であり、紛失ブロックが同一インデックスのブロックである。
図2の例において、ブロックの数は4である。3つの残存ブロックは一体的に混合されて、値A4の部分を形成する。
次の段階は加算器段階であり、それは定数を予測不可能な要素をプロセス中に挿入させるように加算する。
結果としての値A5は条件付きインバータに適用されるが、この転換は水増しデータが入力キーAKEYに加算される際に可能となる転換である。可能となると、値A5の全ビットは転換されて、値A6を求める。この転換は、水増しデータが入力キーAKEYに加算される場合になされる。この段階の目的は、フルサイズキーが使用されかつ水増しキーの場合に異なる振る舞いを有することである。フルサイズキーは、より小さなキーが入力されかつ水増しデータが加算される際に理論的には同一値を有し得る。水増し情報が加算されて期待されたサイズを有するように入力キーを完成すると、データA5の転換が生成プロセスの経過中に付加的な多様性を導入するようになされる。
次いで結果としての値A6は、既に先に記載された代替レイヤsigmaに適用される。
代替レイヤA7の出力値は、2つの要素を混合することによってサイズに関して半分まで低減される。
次いで、この低減された値A8は対称暗号化モジュールSENCに適用され、そこではキーがプロセスのメイン入力から取り出される(即ち、DKEY)。既に述べたように、このモジュールは基本的には単純な対称暗号化プロセスである。この発明の構成において、IDEA、DES等々周知の暗号化プロセスを用いる代わりに、暗号化プロセスは本願と同一出願人のEP03011696.6(特許文献2)に記載されたプロセスを用いることで実行される。この文献は引用することで本願に含ませる。周回の最少数は、キーDKEY全体が使用されるように決定される。そのキーが暗号化工程の入力サイズよりも長いので、そのキーは分割されて、連続的に接続された異なる周回に適用される。
EP03011696.6
この暗号化プロセスは図4ないし図7を参照して記載される。
図4は、モジュールMODを示す暗号化プロセスの概略図を示している。それぞれ32ビットの2つの部分X0L及びX0Rで表されるこの例における64ビットのエントリデータは、最初に、混合要素MXの中で混合されて、X1値を求める。この混合要素は32ビットデータの2倍の32ビット画像を提供するのを目的とする。これは、XOR関数、剰余加算、もしくは、あらゆるグループ法を用いること等の異なる方法でも達成されできるであろう。
次の工程は、サブキーDKを使用するだけでなく、32ビットの入力X1と32のビットの出力X7を含むブロックf32で示される。このブロックの詳細な説明は図7について与えられる(以下を参照のこと)。
ブロックf32の出力X7は、2つのエントリX0L及びX0Hと接続される2つの混合ブロックMXに適用される。
結果として生じるデータX8L及びX8RはモジュールMODの2つの64ビットの出力X8を表す。
図5は、2つの同等モジュールMOD、即ち、MOD1及びMOD2を用いる全体的な暗号化プロセスを示す。入力データA8は、それぞれ32ビット長である2つの部分X0L1及びX0R1によって形成される。
対称暗号化プロセスは図2におけるSENCで参照される。このモジュールは図5のブロック図と対応する。
次いで、出力X0L1及びX0R1は第1モジュールMOD1におけるエントリとして使用される。この第1モジュールは、第1サブキーDK1を用いながらデータを処理する。DK1はメインキーDKEYの一部である。X0L1及びX0R1に対する処理は、図4に従って記載されたものと同一である。この第1モジュールMOD1の出力は2つの出力X8L1及びX8R1である。オルトモーフィズム(orthomorphism)関数はこれら出力の内の一方、例えば図5に示されるX8L1に適用される。このオルトモーフィズム関数から生じる出力はX0L2として参照される。第1モジュールMOD1による処理から生じる他方の値X8R1は、第2処理モジュールMOD2でのオルトモーフィズム関数から生じる出力X0L2とともに、入力として使用される。モジュールMORはモジュールMODの結果であり、このモジュールの出力の内の一方におけるオルトモーフィズム関数ORを伴う。
この第2モジュールMOD2は、それらの入力データをメインキーDKEYの第2部分DK2に基づき処理する。この第2モジュールの出力は図4上においてX8L2及びX8R2として参照される。これら出力は組み立てられて、アセンブラモジュールAS内にサブキーRKEYを形成する。
このアセンブラモジュールASの機能は、X8L2に対する最低ビットとX8R2に対する最高ビットとを選択するか、或いは、X8L2に対する各奇数ビットとX8R2に対する各偶数ビットとを選択することのような異なる方法でも達成できるであろう。結果としてのデータを組み立てる他の方法は、RKEYの全てのビットがX8L2及びX8R2に含まれる限り、RKEYが使用できるであろう。
図7は、図4のブロックf32の機能を詳細に示す。このブロックにおいて、32ビット長データX1は入力である。このデータは、図7においてX1’とも言われる分割ブロックSPMUを介して8ビット長の各ブロック(X1a,X1b,X1c,X1d)に分離される。
このブロックは、結果としての値X1a,X1b,X1c,X1dの全ビットがX1内に存するように入力データX1を分割する機能を有している。これら4つの値は、4つの値X2a,X2b,X2c,X2dを形成すべく係わるモジュール(MOR或いはMOD)に依存するDK1或いはDK2であり得るキーDKの最高値DKHと混合される。
2つのサブキーDKL及びDKHの生成は分割モジュールSPを介してなされる。
これら値X2aないしX2dの各々は、少なくとも1つの代替ボックス(sbox)を含み、各代替ボックスが、入力がポインタとして機能し、ポイントされた定数が出力として機能する複数の定数からなるテーブルを収納することからなる代替レイヤに適用される。出力データは図7上において、X3a,X3b,X3c,X3d(値X3を形成する)として参照される。
この代替レイヤは、モジュールsigmaを記載する一方で図2を参照して既に記載されている。結果としての値はX3である。
同一のことが図2のmuモジュールと対応するMu4モジュールに適用される。結果としての値がX4である。
次いで、データの出力データX4はサブキーDKの第2部分DKLと混合されて、値X5a,X5b,X5c,X5d(値X5を形成する)を求める。
次いで、これら値X5aないしX5dの各々は、代替ブロック(sbox)に適用されて、値X6a,X6b,X6c,X6d(値X6を形成する)を求める。これら値はサブキーDKの第1部分DKHと混合されて、新しい値X7a,X7b,X7c,X7d(値X7を形成する)を求める。
次いで、これら値X7a,X7b,X7c,X7dは組み立てられて、図5に関して説明されたアセンブラモジュールAS内に出力データX7を形成する。このデータは図4におけるブロックf32の出力データX7と対応する。
図6はオルトモーフィズム関数の実施例の図示である。入力データはZIで示され、出力データはZOで示されている。そのデータ長は本機能のために検討すべき問題ではない。入力データZIは分割モジュールSPによって同一サイズの2つの値ZL及びZRに先ず分割される。次いで、それら2つの値はいわゆるMX混合要素と混合され、その要素の出力はアセンブラユニットASに適用される。他の分割値ZRは変更なしにアセンブラユニットASに直接適用される。このモジュールは2つの入力を含み、それらデータを組み合わせて出力値ZOを形成する。このモジュールは分割モジュールSPとは逆に作業する。この実施例の特殊性は、アセンブラモジュールの入力が分割モジュールSPの出力に対してクロスされるということである。分割モジュールSPの右出力ZRはアセンブラモジュールASの左入力に適用され、分割モジュールSPの左出力は、分割モジュールSPの他の出力との混合後、アセンブラモジュールASの右入力に適用される。
図3はメインキーDKEYに基づきサブキーRKEYを作り出す別の実施例である。制限されたサイズのデータを処理することがだけができるモジュールに直面しながら、より長いキーが処理される場合、入力キーDKEYをより多くの要素に分割して、それらを並列に取り扱う必要がある。図2に関して記載された原理は、値A4を形成しながら、1つの例外を伴って同一のものを維持する。
簡略化の目的のため、値X3から一体的に混合された要素の数は3つに限定されている。
対称暗号化プロセスSENCの段階で、入力キーDKEYは4つの部分に分割されて、3つの独立した暗号化モジュールMOR64に適用され、これらモジュールは結果としての値の半分に適用されるオルトモーフィズム関数を有する。最後のモジュールMOD64は、オルトモーフィズム関数無しの1つの周回暗号化プロセスである。
値A8からRKEYまで、暗号化プロセスは4つの周回で実行され、各周回は入力キーDKEYの一部を用いる。最初の3つの周回はモジュールMORを用い、即ち、MODモジュールの出力の1つにオルトモーフィズム関数を有し、最後の周回はタイプMODであり、即ち、オルトモーフィズム関数無しである。
1つの重要な点は、逆順でサブキーを生成することである。この特殊性は、サブキーが多数周回の暗号化プロセス中に使用される際に有用である。
これは、線形多様性部DPrの段階で達成される。キーMKEYと混合すべく使用される複数の初期化ベクトルからなる集合は逆順で適用される。初期化ベクトルがLFSRによって作り出されると、レジスタが逆順でクロックされ(後方プロセス)、レジスタにロードされた初期値は前方プロセス中に使用される最後の初期化ベクトルを表現する終末値である。
図1はメインキーに基づくサブキーの生成のブロック図を示す。 図2は128ビット入力キー及び64ビット出力に基づく非線形モジュールを示す。 図3は256ビット入力キー及び64ビット出力に基づく非線形モジュールを示す。 図4は暗号化プロセスにおけるメインモジュールのブロック図を示す。 図5は2つのMODモジュールとオルトモーフィズム関数ORとを用いる暗号化プロセスを示す。 図6はオルトモーフィズム関数のブロック図を示す。 図7はメイン暗号化モジュールMODの内部を示す。

Claims (6)

  1. メインキー(MKEY)に基づきサブキーを生成する暗号生成器が実行する方法であって、
    前記暗号生成器が前記メインキー(MKEY)を定数と混合することで線形多様性レイヤを前記メインキー(MKEY)に適用することによって第1値(A1)を求める工程と、
    前記暗号生成器が前記第1値(A1)に非線形変換を適用する工程と
    を含み、
    この変換が、
    前記暗号生成器が第1代替レイヤに前記第1値(A1)を適用することによって第2値(A2)を求める工程であり、その代替レイヤが少なくとも1つの代替ボックス(sbox)を含み、各代替ボックスが、入力がポインタとして機能し、ポイントされた定数が出力として機能する複数の定数からなる少なくとも1つのテーブルを収納することからなる工程と、
    − 前記第2値(A2)に基づき、多数順列タイプからなる前記暗号生成器の拡散ボックスを用いることによって、第3値(A3)を求める工程と、
    前記暗号生成器が前記第3値(A3)を同一サイズのN個のブロックに分割して、N個のブロックによって形成された出力第4値(A4)を求める工程であり、その第4値(A4)のインデックスnの各ブロックが前記第3値(A3)のN−1個のブロックの組み合わせの結果であり、前記第3値(A3)のインデックスnのブロックが省かれ、前記インデックスnが1からNに変化することからなる工程と、
    前記暗号生成器が前記第4値(A4)に第2代替レイヤ(sigma)を適用することによって第7値(A7)を求める工程と、
    前記暗号生成器が前記第7値(A7)に対称暗号化モジュール(SENC)の前記第7値(A7)を適用することによって前記サブキー(RKEY)を求める工程であり、前記第1値(A1)がこのモジュールに対するキー入力として機能する工程と
    を含む方法。
  2. 提供されたキー(AKEY)が前記メインキー(MKEY)よりも小さいサイズであることを特徴とし、
    前記暗号生成器が前記提供されたキー(AKEY)を前記メインキー(MKEY)のサイズまで完成するために水増しデータを付加する工程と、
    前記暗号生成器が前記水増しビットが結果としてのキー(DKEY)の全てにわたって展開されるように前記水増しデータを前記提供されたキー(AKEY)と混合する工程と
    に従って、前記提供されたキー(AKEY)から前記メインキー(MKEY)を求めることに存する、請求項1記載の方法。
  3. 前記第1値(A1)を求めるために前記メインキー(MKEY)と混合される前記定数が、第1定数がロードされたLFSRを用いて、擬似ランダムに生成されることを特徴とする、請求項1又は2記載の方法。
  4. 前記対称暗号化モジュール(SENC)の入力サイズが前記第7値(A7)のサイズより小さい場合、前記暗号生成器がその第7値(A7)を2の倍数で分割して、前記対称暗号化モジュール(SENC)の入力サイズまで結果としての部分を2つずつ混合する工程を含むことを特徴とする、請求項1ないし3いずれか1項に記載の方法。
  5. 前記暗号生成器が前記定数を、前記代替レイヤ(sigma)に適用される前に前記第4値(A4)に付加することを特徴とする、請求項1ないし4いずれか1項に記載の方法。
  6. 前記暗号生成器が前記水増しデータが前記提供されたキー(AKEY)に付加されている間に、前記代替レイヤ(sigma)の入力値(A6)の全ビットに転換がなされることを特徴とする、請求項2ないし5いずれか1項に記載の方法。
JP2006552404A 2003-09-05 2004-09-02 擬似ランダム系列を生成する方法 Active JP4673857B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03103307A EP1513285A1 (en) 2003-09-05 2003-09-05 Method for generating pseudo-random sequence
PCT/EP2004/052020 WO2005025123A1 (en) 2003-09-05 2004-09-02 Method for generating pseudo-random sequence

Publications (2)

Publication Number Publication Date
JP2007532935A JP2007532935A (ja) 2007-11-15
JP4673857B2 true JP4673857B2 (ja) 2011-04-20

Family

ID=34130323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006552404A Active JP4673857B2 (ja) 2003-09-05 2004-09-02 擬似ランダム系列を生成する方法

Country Status (23)

Country Link
US (1) US7512241B2 (ja)
EP (2) EP1513285A1 (ja)
JP (1) JP4673857B2 (ja)
KR (1) KR101086940B1 (ja)
CN (1) CN100574183C (ja)
AP (1) AP1949A (ja)
AT (1) ATE407493T1 (ja)
AU (1) AU2004302919B2 (ja)
BR (1) BRPI0411184A (ja)
CA (1) CA2525541C (ja)
DE (1) DE602004016350D1 (ja)
DK (1) DK1661296T3 (ja)
EA (1) EA008677B1 (ja)
ES (1) ES2314453T3 (ja)
HK (1) HK1085592A1 (ja)
HR (1) HRP20080526T3 (ja)
IL (1) IL171934A (ja)
NO (1) NO20055403L (ja)
NZ (1) NZ543948A (ja)
PL (1) PL1661296T3 (ja)
PT (1) PT1661296E (ja)
SI (1) SI1661296T1 (ja)
WO (1) WO2005025123A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100622128B1 (ko) * 2004-12-17 2006-09-19 한국전자통신연구원 병렬 처리 축소 키 생성기
US7602906B2 (en) * 2005-08-25 2009-10-13 Microsoft Corporation Cipher for disk encryption
US8145691B2 (en) 2006-02-24 2012-03-27 Novell, Inc. Techniques for random bit generation
US20130114805A1 (en) * 2010-04-29 2013-05-09 Dongguk University Industry-Academic Cooperate Foundation Encryption system using discrete chaos function
US9135834B2 (en) * 2013-04-30 2015-09-15 The United Sates of America as represented by the Secretary of the Air Force Apparatus and method to prevent side channel power attacks in advanced encryption standard using floating point operation
US9160523B2 (en) * 2013-04-30 2015-10-13 The United States Of America As Represented By The Secretary Of The Air Force Apparatus and method to prevent side channel power attacks in advanced encryption standard
EP3073407B1 (en) * 2015-03-26 2019-12-18 Nagravision S.A. Method and system for searching for at least a specific datum in a user unit
RU2632119C9 (ru) * 2016-06-02 2017-11-22 Андрей Валерьевич Менячихин Устройство для построения ортоморфизмов, использующее парные разности
US10402169B2 (en) * 2017-07-12 2019-09-03 Dell Products L.P. Method and system of secure random seed generation for a cryptographically secure pseudo-random number generator
US10361627B1 (en) * 2018-09-12 2019-07-23 Texas Instruments Incorporated Reduction of low frequency noise in a discrete spread spectrum timebase
CN110909375B (zh) * 2019-10-12 2022-04-08 浙江工业大学 一种保留分布特征的地址脱敏方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US44651A (en) * 1864-10-11 Improvement in cider-mills
JPH06342257A (ja) * 1993-06-02 1994-12-13 Matsushita Electric Ind Co Ltd 逐次暗号方式
US5404402A (en) * 1993-12-21 1995-04-04 Gi Corporation Clock frequency modulation for secure microprocessors
US5745577A (en) * 1996-07-25 1998-04-28 Northern Telecom Limited Symmetric cryptographic system for data encryption
CA2302784A1 (en) * 1997-09-17 1999-03-25 Frank C. Luyster Improved block cipher method
JPH11224183A (ja) * 1998-02-05 1999-08-17 Toyo Commun Equip Co Ltd 擬似乱数発生装置
US6189095B1 (en) * 1998-06-05 2001-02-13 International Business Machines Corporation Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
JP3679936B2 (ja) * 1998-11-27 2005-08-03 東芝ソリューション株式会社 暗復号装置及び記憶媒体
WO2000041356A1 (en) * 1998-12-30 2000-07-13 Koninklijke Kpn N.V. Method and device for cryptographically processing data
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
US6763363B1 (en) * 1999-12-02 2004-07-13 Honeywell International Inc. Computer efficient linear feedback shift register
US6804355B1 (en) * 2000-01-06 2004-10-12 Intel Corporation Block cipher for small selectable block sizes
US6891951B2 (en) * 2000-01-21 2005-05-10 Victor Company Of Japan, Ltd. Cryptosystem-related method and apparatus
US20020044651A1 (en) * 2000-05-16 2002-04-18 Tuvell Walter E. Method and apparatus for improving the security of cryptographic ciphers
WO2003101020A1 (en) * 2002-05-23 2003-12-04 Atmel Corporation Advanced encryption standard (aes) hardware cryptographic engine
CN1384621A (zh) * 2002-06-21 2002-12-11 清华大学 量子密钥分配中的加速全效及扩容方法
US7028059B2 (en) * 2002-06-24 2006-04-11 Sun Microsystems, Inc. Apparatus and method for random number generation

Also Published As

Publication number Publication date
BRPI0411184A (pt) 2006-07-25
PT1661296E (pt) 2008-10-08
DE602004016350D1 (de) 2008-10-16
CA2525541C (en) 2013-03-26
HRP20080526T3 (en) 2008-11-30
AP1949A (en) 2009-02-05
ES2314453T3 (es) 2009-03-16
EA008677B1 (ru) 2007-06-29
PL1661296T3 (pl) 2009-02-27
WO2005025123A1 (en) 2005-03-17
AU2004302919B2 (en) 2009-03-05
SI1661296T1 (sl) 2009-02-28
AP2005003444A0 (en) 2005-12-31
NZ543948A (en) 2007-08-31
NO20055403L (no) 2005-11-18
EA200501622A1 (ru) 2006-08-25
IL171934A (en) 2010-11-30
EP1513285A1 (en) 2005-03-09
KR20060119716A (ko) 2006-11-24
CN1813439A (zh) 2006-08-02
US7512241B2 (en) 2009-03-31
JP2007532935A (ja) 2007-11-15
CA2525541A1 (en) 2005-03-17
EP1661296B1 (en) 2008-09-03
US20050053233A1 (en) 2005-03-10
AU2004302919A1 (en) 2005-03-17
ATE407493T1 (de) 2008-09-15
CN100574183C (zh) 2009-12-23
IL171934A0 (en) 2006-04-10
EP1661296A1 (en) 2006-05-31
DK1661296T3 (da) 2008-12-08
KR101086940B1 (ko) 2011-11-29
HK1085592A1 (en) 2006-08-25

Similar Documents

Publication Publication Date Title
JP3992742B2 (ja) データブロックおよび鍵を非線形的に結合する暗号方法および装置
JP4871944B2 (ja) 乱数列の反復周期を延長するよう構成された暗号システム
US5745577A (en) Symmetric cryptographic system for data encryption
JP4127472B2 (ja) データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体
US6314186B1 (en) Block cipher algorithm having a robust security against differential cryptanalysis, linear cryptanalysis and higher-order differential cryptanalysis
US6769063B1 (en) Data converter and recording medium on which program for executing data conversion is recorded
US7809132B2 (en) Implementations of AES algorithm for reducing hardware with improved efficiency
JP4052480B2 (ja) 疑似乱数発生方法、疑似乱数発生器、及び疑似乱数発生プログラム
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
CA2486713A1 (en) Advanced encryption standard (aes) hardware cryptographic engine
EP1281254A1 (en) Cryptographic system for data encryption standard
JP4663635B2 (ja) データのブロックを暗号化及び復号化するための装置が実行する方法
JP4673857B2 (ja) 擬似ランダム系列を生成する方法
US10237066B1 (en) Multi-channel encryption and authentication
IL262556A (en) Customizable encryption / decryption algorithm
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
Masoodi et al. Symmetric Algorithms I
WO2009104827A1 (en) Method and apparatus for generating key stream for stream cipher, s-box for block cipher and method for substituting input vector using the s-box
JP3748184B2 (ja) 秘話通信装置
KR20050019086A (ko) 진보된 암호화 표준(aes)의 하드웨어 암호 엔진
Nakahara Jr Key-Shedule Analysis of AES Candidates
CN114969847A (zh) 一种基于数据地址混合加密的存储器加密电路

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060119

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20070417

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070803

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100817

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101112

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101214

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110121

R150 Certificate of patent or registration of utility model

Ref document number: 4673857

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140128

Year of fee payment: 3

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

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

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