JP4728657B2 - 回転バッファを用いたストリーム暗号設計 - Google Patents

回転バッファを用いたストリーム暗号設計 Download PDF

Info

Publication number
JP4728657B2
JP4728657B2 JP2005033533A JP2005033533A JP4728657B2 JP 4728657 B2 JP4728657 B2 JP 4728657B2 JP 2005033533 A JP2005033533 A JP 2005033533A JP 2005033533 A JP2005033533 A JP 2005033533A JP 4728657 B2 JP4728657 B2 JP 4728657B2
Authority
JP
Japan
Prior art keywords
walk
storage units
random
value
processor
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 - Fee Related
Application number
JP2005033533A
Other languages
English (en)
Other versions
JP2005295507A5 (ja
JP2005295507A (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005295507A publication Critical patent/JP2005295507A/ja
Publication of JP2005295507A5 publication Critical patent/JP2005295507A5/ja
Application granted granted Critical
Publication of JP4728657B2 publication Critical patent/JP4728657B2/ja
Expired - Fee Related 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G39/00Rollers, e.g. drive rollers, or arrangements thereof incorporated in roller-ways or other types of mechanical conveyors 
    • B65G39/02Adaptations of individual rollers and supports therefor
    • B65G39/08Adaptations of individual rollers and supports therefor the rollers being magnetic
    • 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
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mechanical Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)
  • Lock And Its Accessories (AREA)
  • Complex Calculations (AREA)

Description

本発明は、一般には、暗号化に関し、より詳細には、ストリーム暗号に回転(revolving,rotating)バッファを使用することに関する。
デジタル通信がより一般的になるにつれて、関連する通信チャネルを安全にする必要性がますます重要になる。例えば、現在の技術は、ユーザが銀行口座、医療データ、ならびに他の私的な機密の情報にリモートでアクセスすることを可能にする。
安全なデジタル通信を提供するために、暗号が広く用いられてきた。暗号は一般に、メッセージの暗号化(enciphering,encrypting)および解読(deciphering,decrypting)に関する。暗号化および解読では、何らかの秘密の情報(鍵など)が使用される。様々な暗号化方法において、暗号化および解読のために、単一の鍵または複数の鍵が使用される。
現在、2つのタイプの暗号が一般に使用されている。ブロック暗号は、大きいデータブロックに作用する。一方、ストリーム暗号は、テキストの比較的小さい単位(ビットなど)に作用する。その実施に応じて、ストリーム暗号は、ブロック暗号より遥かに高速であり得る。
ストリーム暗号は、それによって生成されるストリーム(キーストリームとも称される)がワンタイムパッドまたはバーナム暗号の高い安全性に近づいているので、最近は特別な関心事になっている。一般に、ワンタイムパッド暗号は、暗号化されるテキストメッセージと同じ長さのキーストリームを生成する。ワンタイムパッドのキーストリームは、完全にランダムであり、非常に高い安全性のレベルをもたらすと考えられるが、一部の応用にとっては望ましくない場合があるメモリのオーバヘッドが生じる。
A. Menezes, P van Oorschot, and S. Vanstone, "Handbook of Applied Cryptography," fifth printing (August 2001), published by CRC Press
ストリーム暗号は通常、擬似乱数ジェネレータをもとに作られる。暗号は、シミュレーションに適した効率的な、統計的に有効な多くのジェネレータを支配しようとする攻撃に耐える必要がある。
したがって、現在の解決策は、ストリーム暗号を用いた迅速で安全なデータ暗号化/解読のための効率的な方法論を提供できていない。
ストリーム暗号のキーストリームジェネレータの出力に関連する短期的な相関を制限するための技術が開示される。ジェネレータの出力値は、対をなす出力が互いに独立していると見なされるほど十分に離れているように対にされる。
説明する一実施形態では、方法は、ストリーム暗号出力規則によってもたらされた複数の結果を第1、第2および第3の記憶ユニット内に順次格納することを含む。対形成関数(pairing function)は、少なくとも閾値だけ離れた第1および第3記憶ユニットからの別個の値を対にする。出力規則の結果の閾値に達すると、第1、第2および第3記憶ユニットの内容が順次回転される。
説明する別の実施形態では、比較的単純な更新が、効率的な出力規則(対形成関数によって強化される規則など)と組み合わせられて、ストリーム暗号の構成が強化され、および/または様々な新しい暗号が構成される。
詳細な説明について、添付の図面を参照して述べる。図では、参照番号の最も左の桁によって、その参照番号が最初に現れる図を識別する。それぞれ異なる図中で同じ参照番号を使用することにより、類似または同一のアイテムを示す。
以下の説明は、読者が暗号技術に精通していることを前提としている。暗号技術の基本的な序論について、非特許文献1に記載のテキストを参照されたい。
以下の開示では、ストリーム暗号のキーストリームジェネレータの出力に関連するローカルな(または短期的な)相関を制限するための効率的な技術について説明する。この技術は、互いに独立していると見なされるほど十分に離れているジェネレータ出力を対にすることに基づく。ある実施形態では、1つには攻撃者が変数をほとんど含まない比較的短い方程式を分離することができないという理由から、対形成グラフ(pairing graph)内に短いサイクルが存在しないことによって、線形攻撃および代数的攻撃が実質上制限される。
ある実施形態では、(例えば図2を参照してさらに説明するように)比較的単純な更新(「更新規則」の節で以下に詳しく説明する)が、効率的な出力規則と組み合わせられて、(例えば、望ましい特性を有するプロセスのうちの2つ以上を組み合わせることによって)多数の既知のストリーム暗号構成が強化されおよび/または多種多様な新しい暗号が構成される。こうした実施形態は、ソフトウェアでも効率的であると考えられる。
ストリーム暗号概要
図1に、例示的なストリーム暗号システム100を示す。システム100は、キーストリームジェネレータ102を含む。鍵(k)104を使用して、キーストリーム(z)を生成するキーストリームジェネレータ102を含む。生成されたキーストリーム(z)とメッセージ(m)108を組み合わせるために出力関数が適用されて(106)、暗号文(110)が生成される。生成されたキーストリーム(z)は、時間によって変化し、また最初の小さいキーストリーム(シードなど)から、シードと前の暗号文からなど、ランダムに生成される。出力関数(106)は、メッセージ(m)の個々の文字(またはビット)に1度に1つ適用される。
したがって、システム100は、生成されたキーストリームを使用して、メッセージ(m)を暗号文(c)に暗号化する。ストリーム暗号アルゴリズムの典型的な設計は一般に、3つの要素からなる。
1.暗号の内部状態Ωを(例えば図1の104などの鍵および/またはランダム値を使用することによって)初期化するための規則。
2.E:Ω→Ω、すなわち状態Ωを発展させるかまたは更新する(例えばキーストリームジェネレータ102によって行われる)ための機構。
3.H:Ω→{0,1}、すなわちnビット出力(図1の102によって生成されるキーストリーム(z)など)を生成するための出力規則。
安全で効率的な暗号を設計する際に注意深く選択されるべき多くの可能なトレードオフが存在する。具体的には、更新規則Eと出力規則Hの間には当然のトレードオフが存在する。例えば、状態の更新が非常に徹底的に行われる場合、その出力は、状態の比較的単純な関数であり、またその逆の場合も同様であり得る。
ある実施形態では、(例えば図2を参照してさらに説明するように)比較的単純な更新(「更新規則」の節で以下にさらに説明する)が効率的な出力規則と組み合わせられる。例えば、速い更新規則Eおよび単純な出力規則Hを用いたシナリオが与えられると、発展する規則Eは、長期的に有効であり、例えば規則がT回適用された後には、状態E(Ω)がΩにほとんどまたはまったく類似しないような何らかの特徴的な時間Tが存在する。こうした技術は、上記の特性を有するプロセスのうちの2つ以上を組み合わせることによって、知られている多くのストリーム暗号の構成を強化することができ、または多種多様な新しい暗号を構成するために使用されることができる。こうした実施形態は、ソフトウェアでも効率的であると考えられる。
回転ストレージまたはバッファ
図2に、回転記憶ユニットを使用することによって出力規則Hを強化するための例示的な方法200を示す。ある実施形態では、方法200によって、キーストリームジェネレータ(図1の102など)によって生成されるキーストリームを向上させる。出力規則Hによって生成された要素(個々の文字またはビットなど)が格納される(202)。要素を格納するために、レジスタ、キャッシュ、または他のタイプのメモリ(例えば図7のコンピューティング環境を参照して説明するメモリ)など、様々なタイプの装置または媒体が使用される。格納されたデータは、同じ装置内に常駐することも、それぞれ異なる装置内に常駐することもある。
(同じ表題のもとで以下に説明する)対形成関数Pは、少なくとも2つの対応する記憶ユニット(図3および4に示される記憶ユニットAおよびCなど)内に格納された値に基づいて対形成結果を提供する(204)。ある実施形態では、対形成関数は、2つより多い入力を取り得る。インデックス(例えば記憶ユニットおよび/または対形成関数に索引付けするために使用される)は、例えば1だけ更新される(206)。例えば更新されたインデックスを閾値と比較することによって判断されるが、所与の閾値(T)に達していない場合(208)、この方法200は、段階202に戻って、出力規則Hによって生成された次の要素を格納する。
そうでない場合、閾値に達すると(208)、記憶ユニットは、(例えば格納されている値を左または右にシフトすることによって)順次回転される(210)。ある実施形態では、効率をもたらすために回転がポインタに適用され、それによって、データの移動を回避する(例えば単に記憶ユニットが名前変更される)。ついで、インデックスが(例えば0に)初期化され(212)、方法200は、段階202で再開して、出力規則Hによって生成された次の要素を格納する。方法200は、所望の長さのキーストリームが生成されるまで実施される。
したがって、出力規則は、少なくともTステップ離れている(すなわち段階208を参照して説明したように閾値量だけ離れている)2つの出力要素を対にする対形成関数pによって強化される。そうすることによって、互いにTステップ離れて行われる内部状態の2つの観察は、実用的な目的のために、実質上無関係であると見なされる。1つの解決策は、中間の結果(段階202によって生成される結果など)を捨てることである。代わりに、結果は、記憶ユニット(またはバッファ)内に格納され、出力結果が適切に対にされる。結果が格納され、対にされるやり方が、この技術の効率の1つの源泉になっている。
ある実施形態では、所与の時点で、A、BおよびC(図3)と称される、長さTの3つの記憶ユニット(または同じ記憶ユニット内の3つの部分)が存在する。ストリーム暗号出力規則からの結果は、記憶ユニット内に順次格納される(202)。Tサイクルごとに、記憶ユニットの内容が左にシフトされ(Aが廃棄され、BがAに移動し、Cが空にされ)または右にシフトされる(Cが廃棄され、BがCに移動し、Aが空にされる)。こうした実施形態では、AおよびCの配列だけがアクティブに読み出され、Bは、(左シフトの場合は)Cが一杯になるまで休止状態にある。したがって、記憶ユニットを左にシフトする場合、図2を参照して説明したように、以下のステップが反復される。
1.C[i]←出力規則Hによって生成された要素(202)。
2.p(A[n];C[i])を提供する(204)。
3.i←i+1(206)。
4.i=Tの場合(208)、A←B、B←C(210)、i←0(212)。
ある実施形態では、最後の操作は、3つのバッファを指すポインタを回転させることによって効率的に実施される。ある実施形態では、方法200の諸段階の実施に先立って、記憶ユニットAおよびBが(例えばランダム値、または出力関数Hによって生成された値によって)初期化される。
対形成関数pを定義するために、i∈{0,T}について、定数nのテーブル(i,n)が定義される。第1に、a,...,aT_1およびc,...,cT_1でラベル付けされた頂点を含む無向グラフ(undirected graph)Gが定義される(図4)。第2に、0≦i≦T−1の場合は、エッジ(a,ai+1)および(c,ci+1)が追加され、0≦i≦Tの場合は、
Figure 0004728657
が追加される。対(n,i)では、グラフGの内周(girth)が比較的大きい(ただし、内周は一般に、G内の最短サイクルの長さである)。対形成関数の代わりに、またはそれに加えて、複数の引数(multiple argument)の関数を使用することが考えられる。さらに、その関数は、2つより多い引数(例えば各バッファから1つ)を取り得る。
対形成関数
対形成関数p:{0,1}×{0,1}→{0,1}に関して、例えばそれぞれのxについて、関数y→p(x,y)は1対1である。同様に、それぞれのyについて、関数x→p(x,y)も全単射である。ある実施形態では、関数は、計算上効率的であり、その入力において対称的でない。対形成関数の一部の例示的な選択肢は以下の通りである。
A:
Figure 0004728657
ただし、Sは固定の置換テーブルである。
B:
Figure 0004728657
ただし、aおよびbは2つの定数であり、aは奇数である。この操作は、(図7の処理装置704を参照して説明するプロセッサなど)現在のプロセッサの一部で使用可能なSSE(ストリーミングSIMD(single instruction multiple data:単一命令複数データ)拡張)を使用して効率的に実施される。
以下の規則の反復によって、C:p(x,y)=γ,δが、ほぼ普遍的なハッシュ関数として選択される。
α=ax mod22n
β=by mod22n
γ=α+β mod22n
δ=α+β mod22n
ただし、xおよびxはxの左半分および右半分をそれぞれ表し、a,bはランダムに選択される。
グラフGは、相手方に知られている関係を概略的に反映しており、(a,ai+1)と(c,ci+1)は内部状態の更新によって接続され、また
Figure 0004728657
は対形成関数の引数である。
対形成関数は、その引数の両方において全単射であるので、その正確な引数を知ることによって、その引数のいずれかに関する情報は漏洩されない。関数の構成時に取消しが行われなければ、導出される最良の関係は、少なくともk入力(グラフの内周)を含む。実際に、任意のm<kの出力、z=対(x,y),z=対(x,y),...,z=対(x,y)では、これらの出力をもたらす多くの入力対(x,y),...,(x,y)が存在し得る。
ある実施形態では、テーブルnは、オフラインに構成されており、したがって、グラフの内周を最大にするように選択される。発見的には、以下でさらに説明するように、n=c*i modT(ただし、cはTとの増分素数である)を設定することによって、望ましい結果がもたらされる。ある実施形態では、こうした技術によって、出力がバイトごとに入力と同じサイズであるという意味でロスのない結果がもたらされる。
置換:バッファサイズ、グラフ特性
グラフの内周は、ジェネレータによって出力される要素間の既知の関係について詳述するグラフGの主な特性の1つである。線形攻撃を妨げるために重要な他のパラメータ(線形オペレータを用いた規則Eの更新に近似)は、最短の「単純」サイクルであり、例えば(図5に示される)対形成関数が厳密に2つ適用されたサイクルである。
=c*i modT(ただし、cはTとの増分素数である)と定義されるグラフについて考慮すると、可能な増分値を網羅的に探索することは比較的容易であり得る。以下の表1に、(n=8,16,32,128)について、内周および最小「単純」サイクルが最大化される例示的な増分値を列挙する。表1には、n/2より小さいcだけが示されている。
Figure 0004728657
追加のバッファ
図6に、記憶ユニットを繰り返し(帰納的に)回転することによって出力規則Hを強化するための例示的な方法600を示す。図6に示すように、ある実施形態では、規則Hの出力を複雑にすることと引き換えに、遅延バッファおよび対形成関数を含む層を追加することが帰納的に適用される。また、対形成関数は、1サイクルの秘密の置換を使用してウォークスルーされる別のバッファを追加することによって単純化される。秘密の置換は、緩やかに変化し得る。ある実施形態では、方法600によって、キーストリームジェネレータ(図1の102など)によって生成されたキーストリームが向上する。
可変遅延とともにランダム値で初期化される、遅延バッファDが使用される。ある実施形態では、Sを1サイクルのランダム置換とする、更新関数遅延=S[遅延]が使用される。図示するように、記憶ユニットを左にシフトする場合、以下の諸ステップが反復される。
1.C[i]←出力規則Hによってもたらされる要素(602)。
2.対形成関数p(A[n];C[i])の一部(左半分など)およびD[遅延]を提供する(604)。
3.対形成関数pの残りの部分(右半分など)をバッファD(D[遅延])の遅延位置に挿入する(606)。
4.遅延の値を更新し、i←i+1に設定する(608)。
5.i=Tであれば(610)、A←B、B←C(612)、i←0(614)。
もちろん、記憶ユニットを右にシフトする場合も、類似のステップが反復される(例えばステップ2で右半分を提供し、ステップ3で左半分を挿入し、ステップ5で記憶ユニットを右にシフトする)。さらに、ある実施形態では、最後の操作は、3つのバッファを指すポインタを回転することによって効率的に実施される。さらに、図2を参照して説明したように、方法600の段階の実施に先立って、記憶ユニットAおよびBが(例えばランダム値または出力関数Hによって生成された値で)初期化される。
したがって、出力関数Hによって生成された要素(個々の文字またはビットなど)が格納される(602)。図2を参照して説明したように、要素を格納するために、バッファ、レジスタ、キャッシュまたは他のタイプのメモリなど、様々なタイプの装置または媒体が使用される。対形成関数pの結果の一部および遅延値(D[遅延])(図3および4で示した記憶ユニットなどの少なくとも2つの対応する記憶ユニット内に格納された値など)が提供される(604)。対形成関数の残りの部分は、(遅延、例えばD[遅延]で索引付けされた)遅延バッファ内に挿入される(606)。記憶ユニットおよび遅延関数に索引付けするために使用されるインデックス、ならびに遅延バッファ(遅延)のインデックスが更新される(608)。
例えば更新されたインデックスを閾値と比較することによって判断されるが、所与の閾値に達しない場合(610)、方法600は、段階602に戻って、出力規則Hによって生成された次の要素を格納する。そうでない場合、閾値に達すると(610によって判断される)、(例えば格納された値を左または右にシフトすることによって)記憶ユニットが回転される(612)。ついで、インデックスが(例えば0に)初期化され、方法600は、段階602で再開して、出力規則Hによって生成された次の要素を格納する。方法600は、所望の長さのキーストリームが生成されるまで実施される。
更新規則
図2および6を参照して説明するように、回転記憶ユニットを使用して、ストリーム暗号を強化することができる。ある実施形態では、比較的単純な更新が、図2および6の効率的な出力規則と組み合わせられる。こうした技術を使用して、ソフトウェア実装でも比較的効率的であり得る多種多様な新しい暗号を構成することができる。
ランダムウォーク、T関数、LFSR(linear feedback shift register:線形フィードバックシフトレジスタ)、および断定された(alleged)RC4(Ron’s Code 4−RSA(Rivest,Shamir,and Adleman公開鍵暗号技術)のRon Rivestによる可変鍵サイズ暗号アルゴリズム)などのワードベースのストリーム暗号に基づく規則を含めて、いくつかの例示的な更新規則について以下で説明する。
エキスパンダグラフ(expander graph)上のランダムウォーク
エキスパンダグラフは、(疑似)ランダム性の自然源であり、それには、エキストラクタ、デランダマイザなど、様々な応用がある。しかし、エキスパンダが暗号に応用される前に解決しなければならない問題が少しある。
ある実施形態では、基礎となるグラフは有向であると想定される。以下のウォークは、ケーリーグラフ上のウォークであると便宜上見なされる。ジュネレータS[1],...,S[n]を含むG上のケーリーグラフは一般に、形
Figure 0004728657
のノードおよびエッジとして、グループGの要素を含む。
グラフが無向である場合、そのグラフがエキスパンダグラフを形成し、ランダムウォークが迅速に混在することが知られている。無向グラフを使用する際に、2つの重要な実用的な問題がある。まず、こうしたグラフでのウォークは、一定の数のステップで以前のノードに戻る一定の確率を有する。この問題を解決する1つの方法は、有効な短期的特性を有する別のプロセスの状態に現在の状態(バイナリ列)を追加することであるが、これは、ストレージのサイズ(キャッシュサイズなど)を増加させ得る。グラフが有向である場合、この問題は対処されるが、伸張および迅速な混在の特性を確保する問題に依然として対処する必要があり得る。グラフにオイラーの向きが与えられる場合、伸張を確実にすることができる。さらに、グラフが大きい有向グラフであれば、短期の戻りの確率は、最小限に抑えられ得る。
効率的な実施を可能にするいくつかの例示的なグラフには以下のものがある。
加法型ウォーク(additive walk)。x:=x+s[i]。本式でSは、法2の下の加法群内のランダム要素のテーブルである。
乗法型ウォーク(multiple walk)。
Figure 0004728657
本式でSは、法(モジュロ,modulo)2の下の乗法群内のランダム要素のテーブルである。
ガバー−ガリル(Gabber−Galil)型ウォーク。このグラフは、シフトおよび加算を用いて実施される更新規則Eを有する。無向グラフと同様に、これは、エキスパンダであることが明らかになっている。
ラマヌジャン型ウォーク。このグラフは、LPS(Lubotzky,Phillips,and Sarnak)によって定義されている。このグラフは、効率的に実施するのが比較的難しい。それは、無向グラフと同様に、優れたエキスパンダであり、また大きい内周(すなわちグラフのサイズの対数)を有することも分かっている。ある実施形態では、このグラフは、有向グラフとして使用される。
置換型ウォーク(permulation walk)。このグラフはSであり、更新規則Eは2つのランダム位置をスワップする。このウォークは、迅速に混在することが知られている。これは、断定されたRC4のモデルとして使用される。
動的ジェネレータを用いたランダムウォーク。これは、ケーリーグラフのジェネレータの更新規則Eを提示する。
状態更新のための反復T関数
可逆性の写像{0,1}→{0,1}(T関数と称される)のクラスによって、基本のレジスタ操作
Figure 0004728657
を用いて非線形性を取り入れることが可能である。ある実施形態では、一部には比較的より高速なソフトウェアソリューションのために、T関数を使用して、更新関数を提供する。
こうした関数の一例は、f(x)=x+(x∨5)mod2であり、ただし、列xi+1=f(x)は1サイクルの領域全体に渡る。ある実施形態では、それぞれの反復に、3つのサイクルだけが必要である。n=64を選択し、xの上位半分(すなわちH(x)=MSB32(x))を出力することによって、有意水準(significant level)α=0.01を有するAES(advanced encryption service:高度暗号サービス)のための統計的なテストスィートにパスする疑似乱数列がもたらされる。最も知られている解読は、反復出力の構造を使用することに依存しており、またcを定数として、時間2cnを一般に要する。したがって、その構造は、こうした関数の特性を証明するのに重要であり、構造を多少変更することによって、その特性が破壊される。こうした関数によって、一定の制約付きで、そのパラメータの一部をランダムに選択することができる。本明細書で説明する実施形態は、最小限のオーバヘッドでこうした攻撃に耐え、またストリーム暗号の基礎となる鍵の長さを長くすることが想定されている。
状態更新のためのLFSR規則およびこうしたジェネレータの組合せ
比較的多数のストリーム暗号が線形フィードバックシフトレジスタ(LFSR:linear−feedback shift register)に基づいている。その一部の理由には、それがハードウェア実装に適しており、比較的大きい期間の列を生成し、比較的有効な統計的特性を有する列を生成し、またその構造のために、代数的技術を使用して容易に解析されることがある。また後者は、LFSRの正確な出力列を隠すことを必要とする。
収縮(shrinking)ジェネレータ、クロックベースのジェネレータ、アルゴリズムM(すなわちマクローリン−マーサグリアアルゴリズム)に基づくジェネレータおよび/またはアルゴリズムB(すなわちベイズ−ダーハムトリック)などの様々なやり方で出力を組み合わせる、LFSRの様々な構成が使用される。LFSRに関するさらなる情報および他の暗号の基本については、非特許文献1に記載のテキストを参照されたい。
256上のワードベースのストリーム暗号
ワードベースのストリーム暗号は一般に、例えば256要素のテーブルとしてS256の要素のコンパクト表現を使用して、バイトレベルで機能する。
Figure 0004728657
に拡張するには、今日の技術による非実用的なテーブルサイズを伴う。代替として、テーブルコーディングδ∈S256は、法256の下のテーブルが依然としてδであるように24ランダムビット追加して、テーブルの各エントリを拡張することによって、ワード配列に拡張することができる。したがって、テーブルのエントリは、関数fa,b=ax+b(ただし、要素a,b自体は
Figure 0004728657
上のランダムウォークを使用して更新されている)を使用して最下位バイトを保持しながら更新されている。
ハードウェア実装
図7に、本明細書で説明する技術を実施するために使用される一般的なコンピュータ環境700を示す。例えば、コンピュータ環境700を使用して、上記の図面を参照して説明したタスクの実施に関連する命令を実行することができる。コンピュータ環境700は、コンピューティング環境の一例にすぎず、コンピュータおよびネットワークアーキテクチャの使用または機能の範囲に関する限定を示唆することは意図されていない。コンピュータ環境700は、例示的なコンピュータ環境700内に示す構成要素のいずれか1つまたはその組合せに関する依存関係または要求を有すると解釈されるべきでない。
コンピュータ環境700は、コンピュータ702の形の汎用コンピューティング装置を含む。コンピュータ702の構成要素は、それだけに限らないが、1つまたは複数のプロセッサまたは処理装置704(任意選択で暗号プロセッサまたはコプロセッサを含む)、システムメモリ706、およびプロセッサ704を含めて様々なシステム構成要素をシステムメモリ706に結合するシステムバス708を含み得る。
システムバス708は、メモリバスまたはメモリコントローラ、周辺バス、アクセラレイテッドグラフィックポート、および様々なバスアーキテクチャのいずれかを用いたプロセッサまたはローカルバスを含めて、複数タイプのバス構造のいずれかの1つまたは複数を表す。例を挙げると、こうしたアーキテクチャは、業界標準アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロチャネルアーキテクチャー(MCA:Micro Channel Architecture)バス、拡張ISA(EISA:Enhanced ISA)バス、ビデオ電子規格協会(VESA:Video Electronics Standards Association)ローカルバス、およびメザニンバスとも呼ばれる周辺コンポーネント相互接続(PCI:Peripheral Component Interconnects)バスが含まれ得る。
コンピュータ702は一般に、様々なコンピュータ読取り可能媒体を含む。こうした媒体は、コンピュータ702からアクセスすることができ、また揮発性と不揮発性、取出し可能と取出し不可能の両方の媒体を含む使用可能な任意の媒体であり得る。
システムメモリ706は、ランダムアクセスメモリ(RAM)710などの揮発性メモリおよび/または読出し専用メモリ(ROM)712などの不揮発性メモリの形のコンピュータ読取り可能媒体を含む。起動時などにコンピュータ702内の要素間で情報を転送する助けとなる基本ルーチンを含む基本入出力システム(BIOS)714は、ROM712に格納される。RAM710は一般に、処理装置704によって直接にアクセス可能であり、および/またはそれによる操作を現在受けているデータおよび/またはプログラムモジュールを含む。
コンピュータ702は、他の取出し可能/取出し不可能、揮発性/不揮発性のコンピュータ記憶媒体をも含み得る。例示するために、図7に、取出し不可能な不揮発性の磁気媒体(図示せず)から読み出し、またそこに書き込むためのハードディスクドライブ716、取出し可能な不揮発性の磁気ディスク720(「フロッピー(登録商標)ディスク」など)から読み出し、またそこに書き込むための磁気ディスクドライブ718、およびCD−ROM、DVD−ROMまたは他の光媒体などの取出し可能な不揮発性の光ディスク724に対して読出しおよび/または書込みを行うための光ディスクドライブ722を示す。ハードディスクドライブ716、磁気ディスクドライブ718および光ディスクドライブ722はそれぞれ、1つまたは複数のデータメディアインターフェース726によってシステムバス708に接続される。代わりに、ハードディスクドライブ716、磁気ディスクドライブ718および光ディスクドライブ722は、1つまたは複数のインターフェース(図示せず)によってシステムバス708に接続される。
ディスクドライブおよびその関連のコンピュータ記憶媒体によって、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、およびコンピュータ702のその他のデータの不揮発性の記憶域がもたらされる。この例には、ハードディスク716、取出し可能磁気ディスク720、および取出し可能光ディスク724が示されているが、磁気カセットまたは他の磁気記憶装置、フラッシュメモリカード、CD−ROM、デジタル多用途ディスク(DVD)また他の光ストレージ、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、電気的消去可能プログラマブル読出し専用メモリ(EEPROM)など、コンピュータによってアクセス可能なデータを格納することができる他のタイプのコンピュータ読取り可能媒体を使用して、例示的なコンピューティングシステムおよび環境を実施することもできることを理解されたい。
例えば、オペレーティングシステム726、1つまたは複数のアプリケーションプログラム728、他のプログラムモジュール730およびプログラムデータ732を含めて、任意の数のプログラムモジュールが、ハードディスク716、磁気ディスク720、光ディスク724、ROM712および/またはRAM710に格納される。こうしたオペレーティングシステム726、1つまたは複数のアプリケーションプログラム728、他のプログラムモジュール730およびプログラムデータ732のそれぞれ(またはその組合せ)によって、分散ファイルシステムをサポートする常駐の構成要素のすべてまたは一部を実施することができる。
ユーザは、キーボード734、ポインティング装置736(「マウス」)など)の入力装置を用いて、コンピュータ702にコマンドおよび情報を入力することができる。他の入力装置738(具体的には図示せず)は、マイク、ジョイスティック、ゲームパッド、パラボラアンテナ、シリアルポート、スキャナおよび/またはその同類物などを含み得る。これらのおよび他の入力装置は、システムバス708に結合される入出力インターフェース740を介して処理装置704に接続されるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス(USB)など、他のインターフェースおよびバス構造によって接続されることもできる。
モニタ742または他のタイプの表示装置もまた、ビデオアダプタ744などのインターフェースを介してシステムバス708に接続される。他の出力周辺装置は、モニタ742に加え、入出力インターフェース740を介してコンピュータ702に接続されるスピーカ(図示せず)およびプリンタ746などの構成要素を含み得る。
コンピュータ702は、リモートコンピューティング装置748などの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。例を挙げると、リモートコンピューティング装置748は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイスまたは他の通常のネットワークノード、ゲームコンソールなどとすることができる。リモートコンピューティング装置748は、本明細書でコンピュータ702に関して説明した要素および特徴の多くまたはすべてを含み得るポータブルコンピュータとして図示されている。
コンピュータ702とリモートコンピューティング装置748の間の論理接続は、ローカルエリアネットワーク(LAN)750、および一般的な広域エリアネットワーク(WAN)752として示されている。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットでは一般的である。
LANネットワーキング環境内で実施される場合、コンピュータ702は、ネットワークインターフェースまたはアダプタ754を介してローカルネットワーク750に接続される。WANネットワーキング環境内で実施される場合、コンピュータ702は一般に、モデム756、または広域ネットワーク752を介して通信を確立する他の手段を含む。内部にあることも、外部にあることもあるモデム756は、入出力インターフェース740または他の適切な機構を介してシステムバス708に接続される。図示されるネットワーク接続は例であり、コンピュータ702と748間の通信リンクを確立する他の手段が使用されることを理解されたい。
コンピューティング環境700によって示した環境などのネットワーク化された環境では、コンピュータ702に関して示したプログラムモジュールまたはその一部は、リモートメモリ記憶装置内に格納される。例を挙げると、リモートアプリケーションプログラム758は、リモートコンピュータ748のメモリ装置内に常駐する。図示するため、本明細書では、アプリケーションプログラム、およびオペレーティングシステムなどの他の実行可能プログラム構成要素が別個のブロックとして示されているが、こうしたプログラムおよび構成要素は、様々なときにコンピューティング装置702のそれぞれ異なるストレージ構成要素内に常駐し、コンピュータのデータプロセッサによって実行されることが理解されよう。
本明細書では、様々なモジュールおよび技術について、1つまたは複数のコンピュータまたは他の装置によって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。プログラムモジュールは一般に、特定のタスクを実施し、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などを含む。プログラムモジュールの機能は一般に、様々な実施形態で所望されるように組み合わせられ、または分散される。
こうしたモジュールおよび技術の実施形態は、何らかの形態のコンピュータ読取り可能媒体内に格納されても、それ全体に渡って送信されてもよい。コンピュータ読取り可能媒体は、コンピュータによってアクセスすることができる使用可能な任意の媒体であり得る。限定のためでなく、例を挙げると、コンピュータ読取り可能媒体には、「コンピュータ記憶媒体」および「通信媒体」が含まれ得る。
「コンピュータ記憶媒体」は、コンピュータ読取り可能命令、データ構造体、プログラムモジュールまたは他のデータなどの情報を格納するための任意の方法または技術で実施された揮発性と不揮発性、取出し可能と取出し不可能媒体を含む。コンピュータ記憶媒体には、それだけに限らないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を格納するために使用することができ、またコンピュータによってアクセスすることができる他の任意の媒体が含まれる。
「通信媒体」は一般に、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、または搬送波や他のトランスポート機構などの変調されたデータ信号の形の他のデータを含む。通信媒体は、任意の情報送達媒体をも含む。用語「変調されたデータ信号」は、信号に情報を符号化するようにその特性の1つまたは複数が設定されまたは変更された信号を意味する。限定のためではなく、例を挙げると、通信媒体には、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、無線周波数(RF)、赤外線(IR)、ワイヤレスフィデリティ(IEEE802.11b無線ネットワーキング)(Wi−Fi:wireless fidelity)、セルラ、Bluetooth対応型および他の無線媒体などの無線媒体が含まれる。上記内容のいずれかの組合せもまた、コンピュータ読取り可能媒体の範囲内に含まれる。
結論
本発明について構造上の特徴および/または方法論的行為に特有の言語で説明したが、添付の特許請求の範囲中に定められる本発明は、説明した具体的な特徴または行為に必ずしも限定されないことを理解されたい。そうではなく、具体的な特徴または行為は、特許請求の範囲に記載された発明を実施する例示的な形として開示されている。
例示的なストリーム暗号システムを示す図である。 回転記憶ユニットを使用することによって出力規則Hを強化するための例示的な方法を示す図である。 回転記憶ユニットの例示的な対形成を示す図である。 回転記憶ユニットの対形成に対応する例示的な無向グラフを示す図である。 回転記憶ユニットに対応する例示的な最短「単純」サイクルグラフを示す図である。 記憶ユニットを帰納的に回転することによって出力規則Hを強化するための例示的な方法を示す図である。 本明細書で説明する技術を実施するために使用される一般的なコンピュータ環境700の図である。
符号の説明
102 キーストリームジェネレータ
104 鍵
108 メッセージ
110 暗号文

Claims (40)

  1. ストリーム暗号出力規則によってもたらされた複数の結果を第1、第2および第3の記憶ユニットにプロセッサにより順次格納するステップ(202)と、
    少なくとも閾値だけ離れた前記第1および第3記憶ユニットからの個々の値を対にする対形成関数から複数の結果を前記プロセッサにより提供するステップ(204)と、
    インデックスの値を前記プロセッサにより更新するステップ(206)と、
    前記閾値と前記インデックスの値を前記プロセッサにより比較するステップと、
    前記インデックスの値が前記閾値に達すると、前記第1、第2および第3記憶ユニットの内容を前記プロセッサにより順次回転するステップ(210)と
    を含むことを特徴とする方法。
  2. 前記閾値は前記第1および第3記憶ユニットからの前記個々の値の間の短期的相関を阻止するように予め与えられていることを特徴とする請求項1に記載の方法。
  3. 前記第1、第2および第3記憶ユニットのそれぞれの長さは前記閾値に等しいことを特徴とする請求項1に記載の方法。
  4. 前記第1、第2および第3記憶ユニットが単一のメモリ装置内で実装されることを特徴とする請求項1に記載の方法。
  5. 前記順次回転は、前記第1、第2および第3記憶ユニットを同じ方向に前記プロセッサによりシフトすることによって実行されることを特徴とする請求項1に記載の方法。
  6. 前記対形成関数の結果がテーブル内に格納されることを特徴とする請求項1に記載の方法。
  7. ストリーム暗号キーストリームジェネレータの出力を強化するために使用されることを特徴とする請求項1に記載の方法。
  8. 所与の任意の時点において前記第1および第3記憶ユニットだけがアクティブであることを特徴とする請求項1に記載の方法。
  9. 前記第1および第3記憶ユニットだけがランダム値で前記プロセッサにより初期化されることを特徴とする請求項1に記載の方法。
  10. 請求項1に記載の方法が繰り返し実行されることを特徴とする請求項1に記載の方法。
  11. 前記出力規則が、ランダムウォーク、T関数、LFSR(線形フィードバックシフトレジスタ)およびワードベースのストリーム暗号を含むグループの中の1つまたは複数の更新規則組み合わせであることを特徴とする請求項1に記載の方法。
  12. 前記ランダムウォークが、加法型ウォーク、乗法型ウォーク、ガバー−ガリル型ウォーク、ラマヌジャン型ウォーク、置換型ウォーク、および動的ジェネレータを用いたランダムウォークを含むグループ内の1つウォークであることを特徴とする請求項11に記載の方法。
  13. 第4の記憶ユニットを使用することによって前記対形成関数を前記プロセッサにより強化するステップをさらに含むことを特徴とする請求項1に記載の方法。
  14. 前記第4記憶ユニットが、1サイクルの秘密の置換を前記プロセッサにより使用することによってウォークスルーされることを特徴とする請求項13に記載の方法。
  15. 前記秘密の置換は緩やかに変化することを特徴とする請求項14に記載の方法。
  16. 前記第4記憶ユニットがランダム値で前記プロセッサにより初期化されることを特徴とする請求項13に記載の方法。
  17. 前記第4記憶ユニットがランダム値および可変遅延で前記プロセッサにより初期化されることを特徴とする請
    求項13に記載の方法。
  18. プロセッサと、
    前記プロセッサに結合されたシステムメモリであって、
    ストリーム暗号出力規則によってもたらされた複数の結果を前記システムメモリの第1、第2および第3の部分に順次格納し、
    少なくとも閾値だけ離れた前記システムメモリの前記第1および第3の部分からの個々の値を対にする対形成関数から複数の結果を提供し、
    インデックスの値を更新し(206)、
    前記閾値と前記インデックスの値を比較し、
    前記インデックスの値が前記閾値に達すると、前記システムメモリの前記第1、第2および第3の部分の内容を順次回転する(210)
    ためのシステムメモリと
    を備えたことを特徴とするシステム。
  19. 前記システムメモリの前記第1および第3の部分からの前記個々の値の間の短期的相関が制限されることを特徴とする請求項18に記載のシステム。
  20. 前記システムメモリの前記第1、第2および第3の部分のそれぞれの長さは前記閾値に等しいことを特徴とする請求項18に記載のシステム。
  21. 前記第1、第2および第3の部分が複数のメモリ装置内で実装されることを特徴とする請求項18に記載のシステム。
  22. 前記順次回転は、前記第1、第2および第3の部分を同じ方向にシフトすることによって実行されることを特徴とする請求項18に記載のシステム。
  23. 前記対形成関数の結果が前記システムメモリのテーブル内に格納されることを特徴とする請求項18に記載のシステム。
  24. ストリーム暗号キーストリームジェネレータの出力を強化するために使用されることを特徴とする請求項18に記載のシステム。
  25. 前記第1および第3の部分がランダム値で初期化されることを特徴とする請求項18に記載のシステム。
  26. 前記出力規則が、ランダムウォーク、T関数、LFSR(線形フィードバックシフトレジスタ)およびワードベースのストリーム暗号を含むグループから選択された1つまたは複数の更新規則と組み合わせられることを特徴とする請求項18に記載のシステム。
  27. 前記ランダムウォークが、加法型ウォーク、乗法型ウォーク、ガバー−ガリル型ウォーク、ラマヌジャン型ウォーク、置換型ウォーク、および動的ジェネレータを用いたランダムウォークを含むグループ内の1つまたは複数のウォークから選択されることを特徴とする請求項26に記載のシステム。
  28. 前記対形成関数の操作が前記システムメモリの第4の部分を使用することによって強化されることを特徴とする請求項18に記載のシステム。
  29. 前記第4の部分がランダム値で初期化されることを特徴とする請求項28に記載のシステム。
  30. 前記第4の部分がランダム値および可変遅延で初期化されることを特徴とする請求項28に記載のシステム。
  31. 実行された場合にマシンに、
    ストリーム暗号出力規則によってもたらされた複数の結果を第1、第2および第3の記憶ユニットに順次格納するステップ(202)と、
    少なくとも閾値だけ離れた前記第1および第3記憶ユニットからの個々の値を対にする対形成関数から複数の結果を提供するステップ(204)と、
    インデックスの値を更新するステップ(206)と、
    前記閾値と前記インデックスの値を比較するステップと、
    前記インデックスの値が前記閾値に達すると、前記第1、第2および第3の記憶ユニットを順次回転するステップと
    を含む行為を実行するように指示する命令が格納されていることを特徴とする1つまたは複数のコンピュータ読取り可能記憶媒体。
  32. 前記閾値は前記第1および第3記憶ユニットからの前記個々の値の間の短期的相関を阻止するように予め与えられていることを特徴とする請求項31に記載の1つまたは複数のコンピュータ読取り可能記憶媒体。
  33. 前記第1、第2および第3記憶ユニットのそれぞれの長さは前記閾値に等しいことを特徴とする請求項31に記載の1つまたは複数のコンピュータ読取り可能記憶媒体。
  34. 前記第1、第2および第3記憶ユニットが単一のメモリ装置内で実装されることを特徴とする請求項31に記載の1つまたは複数のコンピュータ読取り可能記憶媒体。
  35. 前記順次回転は、前記第1、第2および第3記憶ユニットを同じ方向にシフトすることによって実行されることを特徴とする請求項31に記載の1つまたは複数のコンピュータ読取り可能記憶媒体。
  36. 前記対形成関数の結果がテーブル内に格納されることを特徴とする請求項31に記載の1つまたは複数のコンピュータ読取り可能記憶媒体。
  37. 前記行為が繰り返し実行されることを特徴とする請求項31に記載の1つまたは複数のコンピュータ読取り可能記憶媒体。
  38. 前記出力規則が、ランダムウォーク、T関数、LFSR(線形フィードバックシフトレジスタ)およびワードベースのストリーム暗号を含むグループの中の1つまたは複数の更新規則組み合わせであることを特徴とする請求項31に記載の1つまたは複数のコンピュータ読取り可能記憶媒体。
  39. 前記ランダムウォークが、加法型ウォーク、乗法型ウォーク、ガバー−ガリル型ウォーク、ラマヌジャン型ウォーク、置換型ウォーク、および動的ジェネレータを用いたランダムウォークを含むグループ内ウォークであることを特徴とする請求項38に記載の1つまたは複数のコンピュータ読取り可能記憶媒体。
  40. 第4の記憶ユニットを使用することによって前記対形成関数を強化するステップをさらに含むことを特徴とする請求項31に記載の1つまたは複数のコンピュータ読取り可能記憶媒体。
JP2005033533A 2004-03-31 2005-02-09 回転バッファを用いたストリーム暗号設計 Expired - Fee Related JP4728657B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/815,572 US7505588B2 (en) 2004-03-31 2004-03-31 Stream cipher design with revolving buffers
US10/815,572 2004-03-31

Publications (3)

Publication Number Publication Date
JP2005295507A JP2005295507A (ja) 2005-10-20
JP2005295507A5 JP2005295507A5 (ja) 2008-03-27
JP4728657B2 true JP4728657B2 (ja) 2011-07-20

Family

ID=34887748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005033533A Expired - Fee Related JP4728657B2 (ja) 2004-03-31 2005-02-09 回転バッファを用いたストリーム暗号設計

Country Status (12)

Country Link
US (1) US7505588B2 (ja)
EP (1) EP1583278B1 (ja)
JP (1) JP4728657B2 (ja)
KR (1) KR101143041B1 (ja)
CN (1) CN1677917B (ja)
AT (1) ATE466430T1 (ja)
AU (1) AU2005200388B2 (ja)
BR (1) BRPI0500539A (ja)
CA (1) CA2497935C (ja)
DE (1) DE602005020872D1 (ja)
MX (1) MXPA05002553A (ja)
RU (1) RU2390949C2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853018B2 (en) * 2005-11-10 2010-12-14 Atallah Mikhail J Method and apparatus for hiding a private key
US7907726B2 (en) * 2006-01-19 2011-03-15 Microsoft Corporation Pseudorandom number generation with expander graphs
DE102006030325B4 (de) * 2006-06-30 2009-12-31 Gerhard Kosel Verfahren für die Konstruktion eines Schlüsselstrom-Generators zur Erzeugung von Pseudo-Zufallszahlen für kryptographische Anwendungen
KR100885994B1 (ko) * 2006-11-09 2009-03-03 한국전자통신연구원 비선형 필터링된 t함수에 기반한 스트림 암호화 장치 및방법
US8036377B1 (en) 2006-12-12 2011-10-11 Marvell International Ltd. Method and apparatus of high speed encryption and decryption
KR100931581B1 (ko) * 2007-12-06 2009-12-14 한국전자통신연구원 Tsc-4 스트림 암호 연산을 수행하기 위한 장치
US8588408B2 (en) * 2008-12-19 2013-11-19 France Telecom Method of implementing a block cipher algorithm
US8719593B2 (en) * 2009-05-20 2014-05-06 Harris Corporation Secure processing device with keystream cache and related methods
KR101588279B1 (ko) * 2009-05-26 2016-01-25 삼성전자주식회사 무선 통신 시스템에서 데이터 암호화 방법 및 장치
EA021803B1 (ru) * 2012-04-25 2015-09-30 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" (Оао "Инфотекс") Способ шифрования данных для вычислительных платформ с simd-архитектурой
US9584313B2 (en) 2013-08-09 2017-02-28 Introspective Power, Inc. Streaming one time pad cipher using rotating ports for data encryption
US9584488B2 (en) 2013-08-09 2017-02-28 Introspective Power, Inc. Data encryption cipher using rotating ports
US20160105276A1 (en) * 2014-10-10 2016-04-14 Qualcomm Incorporated Rotation-based cipher
RU2595921C1 (ru) * 2015-03-12 2016-08-27 Евгения Александровна Алисевич Способ усиления радиосигналов путем управляемой регенерации
US11955988B2 (en) * 2015-12-28 2024-04-09 Vivek Sathyanarayana Nittoor System and method for generation of error-correcting codes in communication systems
RU2706463C1 (ru) * 2018-07-14 2019-11-19 Хаджимурат Магомедович Гаджиев Способ кодирования информации в компьютерных сетях с использованием переменного PIN-кода, наборов случайных чисел и функциональных преобразований, проводимых синхронно для передающей и принимающей сторон
RU2710669C1 (ru) * 2018-11-06 2019-12-30 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ шифрования данных
CN112764782A (zh) * 2021-01-28 2021-05-07 维沃移动通信有限公司 应用程序的更新方法、应用程序的更新装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724427A (en) * 1995-08-17 1998-03-03 Lucent Technologies Inc. Method and apparatus for autokey rotor encryption
US6182216B1 (en) * 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
US6252958B1 (en) * 1997-09-22 2001-06-26 Qualcomm Incorporated Method and apparatus for generating encryption stream ciphers
US6496928B1 (en) 1998-01-07 2002-12-17 Microsoft Corporation System for transmitting subscription information and content to a mobile device
US6646639B1 (en) * 1998-07-22 2003-11-11 Nvidia Corporation Modified method and apparatus for improved occlusion culling in graphics systems
US6560338B1 (en) * 1998-08-28 2003-05-06 Qualcomm Incorporated Limiting delays associated with the generation of encryption stream ciphers
US7170997B2 (en) * 2000-12-07 2007-01-30 Cryptico A/S Method of generating pseudo-random numbers in an electronic device, and a method of encrypting and decrypting electronic data
WO2002054601A1 (en) * 2000-12-29 2002-07-11 Morphics Technology, Inc. Channel codec processor configurable for multiple wireless communications standards
US6947960B2 (en) 2002-02-21 2005-09-20 Koninklijke Philips Electronics N.V. Randomness test utilizing auto-correlation
WO2004023694A1 (en) * 2002-09-09 2004-03-18 Koninklijke Philips Electronics N.V. Image encryption method and visual decryption device

Also Published As

Publication number Publication date
CN1677917A (zh) 2005-10-05
US7505588B2 (en) 2009-03-17
EP1583278B1 (en) 2010-04-28
KR101143041B1 (ko) 2012-05-08
DE602005020872D1 (de) 2010-06-10
MXPA05002553A (es) 2005-10-05
CA2497935C (en) 2012-11-27
AU2005200388B2 (en) 2009-09-24
JP2005295507A (ja) 2005-10-20
BRPI0500539A (pt) 2005-11-01
US20050220302A1 (en) 2005-10-06
EP1583278A1 (en) 2005-10-05
RU2005104020A (ru) 2006-07-20
KR20060042385A (ko) 2006-05-12
CN1677917B (zh) 2010-08-25
CA2497935A1 (en) 2005-09-30
RU2390949C2 (ru) 2010-05-27
ATE466430T1 (de) 2010-05-15
AU2005200388A1 (en) 2005-10-20

Similar Documents

Publication Publication Date Title
JP4728657B2 (ja) 回転バッファを用いたストリーム暗号設計
Aumasson Serious cryptography: a practical introduction to modern encryption
US7995757B2 (en) Closed galois field combination
US8139764B2 (en) Closed galois field cryptographic system
JP4669046B2 (ja) 暗号的に安全な擬似乱数生成器
JP5139578B2 (ja) 有限体アルゴリズムを使用したランダム数発生器を含む暗号化システム
US8041031B2 (en) Cryptographic primitives, error coding, and pseudo-random number improvement methods using quasigroups
Anees et al. Designing secure substitution boxes based on permutation of symmetric group
Camtepe et al. Compcrypt–lightweight ans-based compression and encryption
KR20050078271A (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
Eastlake 3rd et al. Rfc 4086: randomness requirements for security
Kebande Extended-Chacha20 Stream Cipher With Enhanced Quarter Round Function
Paar et al. Stream ciphers
Ding et al. Related-key chosen IV attack on K2
Saeb The Chameleon Cipher-192 (CC-192)-A Polymorphic Cipher.
Abbaas et al. Hybrid Efficient Stream Cipher KeyGenerator Based on LFSR's and Chaotic Map
Zillmer A STATISTICAL ANALYSIS OF SOME STANDARD CIPHERS’CRYPTOGRAPHIC PRIMITIVES
Nuthan et al. Development of Randomized Hybrid Cryptosystem Using Public and Private Keys
Sivasankar Generation of key bit-streams using sparse matrix-vector multiplication for video encryption
Erdem et al. Use of Rijndael Block Cipher on J2ME Devices for encryption and hashing
Cipher THE CHAMELEON CIPHER-192 (CC-192)
JP2005210633A (ja) 暗号化方法及び暗号化装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080212

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110314

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110408

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

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

Year of fee payment: 3

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

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees