JP5911654B2 - 乱数生成器及びストリーム暗号 - Google Patents

乱数生成器及びストリーム暗号 Download PDF

Info

Publication number
JP5911654B2
JP5911654B2 JP2015547089A JP2015547089A JP5911654B2 JP 5911654 B2 JP5911654 B2 JP 5911654B2 JP 2015547089 A JP2015547089 A JP 2015547089A JP 2015547089 A JP2015547089 A JP 2015547089A JP 5911654 B2 JP5911654 B2 JP 5911654B2
Authority
JP
Japan
Prior art keywords
random number
sequence
function
electronic
number sequence
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
JP2015547089A
Other languages
English (en)
Other versions
JP2016505887A (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
Koninklijke Philips 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 Koninklijke Philips NV filed Critical Koninklijke Philips NV
Publication of JP2016505887A publication Critical patent/JP2016505887A/ja
Application granted granted Critical
Publication of JP5911654B2 publication Critical patent/JP5911654B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/586Pseudo-random number generators using an integer algorithm, e.g. using linear congruential method
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明は、乱数列の生成、及び、乱数列を用いたストリーム暗号によるデータシーケンスの暗号化又は解読に関する。
乱数生成は多くの暗号アルゴリズムにとって重要な要素である。例えば、ノンス、セッション鍵などの鍵等を生成するために乱数が必要とされる。また、暗号アルゴリズム自体を制御するために乱数が必要な場合がある。特に多数の乱数を必要とする暗号アルゴリズムの1つの種類は、いわゆるストリーム暗号である。ストリーム暗号では、平文のストリームを乱数のストリームと結合することにより平文のストリームが暗号化され、典型的には、2つのストリームがXORされる。平文のストリームについて統計的仮定を立てないことが好ましく、これは、特に攻撃者が大量に入手可能な可能性があるため、乱数のストリームが攻撃に対して特に強くならなければならないことを意味する。生成される乱数について述べるとき、真の乱数ではなく疑似乱数を意味することを理解されたい。
乱数は暗号以外の分野でも使用される。例えば、乱数は統計において使用される。また、現実世界のイベントの予測不能性をモデル化するためにシミュレーションが乱数を使用し得る。しかし、暗号の分野で乱数に課される要求は、他の分野のそれとは異なる。暗号ではセキュリティが最重要である。暗号及び統計は共に、生成された乱数が真の乱数と区別がつかないことを好む。しかし、これに対するアプローチは異なる。統計及び関連分野では、適切な統計的検定が2つのストリームの間に違いを検出できなければ十分である。しかし、暗号では、攻撃者が推定乱数の調査に大きな計算資源を投入しようとすることを仮定しなければならない。例えば、攻撃者は過去の値から将来の値を予測することに関心を持ち得る。
暗号で使用される乱数のストリームは、好ましくは、高速で生成されるが低資源、例えば小さいスマートカード又はRFIDチップ等を必要とし得る。同時に、これは、不釣合いな計算量を投入しようとする攻撃者に対して安全でなければならない。これらの相反する要求は、多数の設計案を生み出してきた。
例えば、乱数生成器の1つの種類は、いわゆる線形シフトレジスタである。線形シフトレジスタはビットシーケンスを生成する。シーケンス内の次のビットは、シーケンス内の選択された前のビットの固定組み合わせを計算することによって算出される。線形シフトレジスタは長い周期、比較的良好な統計的特性を有し、低資源を使用して高速である。残念ながら、線形シフトレジスタは暗号攻撃に対して不安全であり、いわゆるBerlekamp-Masseyアルゴリズムがストリームを攻撃するために使用され得る。
James E Gentleによる著書“Random Number Generation and Monte Carlos Methods (Second Edition)”, 1 January 2005 (2005-01-01), Springer, New York, XP055082923, ISBN: 978-0-38-700178-4の“Chapter 1. Simulating Random Numbers from a Uniform Distribution”, pages 1-56は、いくつかの従来技術のソリューションを開示する。Section 1.8, page 46には、2つ以上の生成器を組み合わせることにより、しばしば乱数生成を改良することができ、また、任意の種類の乱数生成器が組み合わせられ得ることが記載されている。更に、線形合同法及び2つのシフトレジスタを使用する結合生成器が記載されている。
2つの独立して生成された線形シフトレジスタシーケンスを取り、それらを何らかの非線形な方法で結合することにより改良が得られた。このアプローチの例はいわゆるshrinking generator又はalternating step generatorである。アイデアは、2つの独立した線形シフトレジスタを有することが、シーケンスを攻撃するために決定しなければならないパラメータの数を2倍にし、更に、両者の効果が混同している単一のストリームから、2つの無関係なパラメータのセットを何らかの方法で推測しなければならないというものである。
実際に、線形シフトレジスタによって生成された2つの独立シーケンスの組み合わせは、暗号攻撃の困難性を確かに高める。しかし、より多くの乱数から作業することを要することになるが、かかる攻撃はそれでも可能である。したがって、改良された乱数生成器へのニーズが依然として存在する。
特に暗号アルゴリズムにおいて使用される改良された乱数生成器を得ることは有益であろう。本発明は独立請求項によって定められる。従属請求項は好適な実施形態を定める。
乱数列を生成するための電子乱数生成デバイスが提供される。電子乱数生成デバイスは電子パラメータストレージ、電子関数評価デバイス、及び出力部を含む。電子パラメータストレージは、複数の関数と、複数の関数の関数毎に、関連付けられたモジュラスとを記憶するよう構成される。全てのモジュラスが等しくはない。
電子関数評価デバイスは、内部乱数列を生成するよう構成される。電子関数評価デバイスは、複数の関数の関数毎に、内部乱数列内の前に生成された値に関する当該関数モジュロ当該評価関数に関連付けられたモジュラスを評価して、複数の評価結果を取得し、複数の評価結果に結合関数を適用して、内部数列内の次の数を取得することにより、内部乱数列内の次の数を生成するよう構成される。
出力部は、内部数列内の生成された次の数から乱数列内の次の数を生成するよう構成される。
発明者は、2つの独立した数列から乱数列を生成することは、必ずしも好適ではないことを認識した。独立性は問題を複雑化するよりもむしろ攻撃者を援助し得る。実際に、組み合わされた線形シフトレジスタに対する攻撃は、ストリームを別々に攻撃するためにストリームを互いに分離しようとする。これは典型的には、1つのストリームについて何らかの仮説(「推測」)を立て、他方のストリームに関して計算することでこれらを検証することにより行われる。例えば、T. Johanssonによる論文“Reduced Complexity Correlation Attacks on Two Clock-Controlled Generators”, published in ASIACRYPT 1998: 342-356では、alternating step generatorに対する攻撃が説明されている。少数の1を含む長さMのセグメントを待ち、ゼロのうちの半分だけが第1の線形シフトレジスタに由来すると仮定することが提案されている。この場合、全ての1及び残りの0は第2の線形シフトレジスタに由来すると仮定される。
発明者が提案する乱数生成器は、この本質的な欠点を克服する。内部乱数列、すなわち乱数列を生成するための電子デバイスの内部の乱数列が、複数の評価結果に対して結合関数を適用することにより生成される。複数の評価結果は独立して取得されず、それぞれが同じ内部数列に依存する。異なるモジュラス上で評価される関数から複数の評価結果を得ることにより、大きなパラメータ状態及び内部乱数列に対する独立寄与が達成される。数学的には、これは、複数の評価結果が数学的に互換性の無い(incompatible)構造から得られることを意味する。例えば、モジュラスが素数の場合、これらの数学的構造はいわゆる「体」であり、各体の間の加算及び乗算の間には関連性が無い。モジュラスが(全ては)素数ではない場合、同様の所見が成立し、この場合、結果の構造は環として特徴付けられ得る。
好ましくは、複数の関数の評価は、共有される入力として、少なくとも1つの前の値を共有する。複数の評価結果はやはり独立して取得されず、それぞれが同じ内部数列に、更にその数列内の共有される値に依存する。この場合、前の値の取得は、全ての関数に関して一斉に行われ得る。例えば、関数評価デバイスは、内部乱数列内の前に生成された数を取得するよう構成され、取得された数が全ての関数評価において使用されてもよい。あるいは、各評価は、前に生成された数を別々に取得する。
これらのステップにより、発明者は、攻撃を単純化するために攻撃者によって利用され得る複数の完全に独立したシーケンスを生成することを回避すると同時に、複雑性に寄与するパラメータをそれぞれが運ぶ複数のソースにランダム性の寄与が由来することを確実にした。言い換えれば、独立性は独立に生成されたシーケンスからではなく、互換性の無い基礎的な数学的構造によって得られる。
好適な一実施形態では、乱数列はストリーム暗号等の暗号アルゴリズムにおいて使用される。
関数の記憶は、関数の係数を記憶することによって行われ得る。例えば多様な関数を包含する関数テンプレートが定められ、記憶される関数は、テンプレートから選択することにより、例えば係数を選択することにより、多様な関数から関数を選択する。好適な一実施形態では、関数のうちの1つ以上は多項式である。
非多項式関数の例は、いわゆるSボックス及びそれらの連結を含む。Sボックスは、その高い非線形特性から選択されるテーブルである。例えば、AESのいわゆる「SubBytes」ステップが使用され得るが、固定AES Sボックスを使用する代わりに、より大きなSボックスの集合からパラメータによって選択されるSボックスを使用してもよい。好ましくは、Sボックスアレイは何らかの拡散関数と組み合わせられ、例えば多項式が後続する。
暗号では、暗号アルゴリズムのセキュリティが異なる分野の問題の困難性にリンクされ得る場合、有利であると考えられる。このようなリンクを有することは、かかる暗号システムの信頼を高める。所与の暗号システムに対してどのようにしてかかる問題を見つけるか、又は反対に、ある難問が特定された後、どのようにして暗号システムを得るかは問題である。従来、難問がしばしば多岐にわたる分野で、すなわち数論、束論、離散最適化、NP完全性等で得られたことが、より難しくさせる。
最も好ましい実施形態では、複数の関数の全てが多項式である。実際に、この場合、システムへの攻撃は別の難問の解決に関するように見える。特に、多項式の次数が全て1の場合、システムに対する攻撃は、いわゆる「hidden number problem」の解決に関する。多項式の次数がより高い場合、すなわち少なくとも1つの次数が2以上の場合、乱数列に対する攻撃は、いわゆる「extended hidden number problem」に関する。好適な一実施形態では、複数の関数の全てが次数が2以上の多項式である。例えば、それぞれの次数が2のちょうど2つの多項式が取られてもよい。
関連付けられたモジュラスは、全てが等しくはない。これは、結合後にさえ少なくとも2つの数学的に互換性が無い構造が残ることを保証する。全てのモジュラスが異なる場合、互換性の無い構造の数は最大化され、よって好ましい。代わりに、又はより好ましくは追加で、複数の関数に関連付けられたモジュラスが互いに素であることが要求され得る。共通の除数を有することは必ずしも構造を同じにさせないが、例えば共通の除数によって生成されたイデアル上に、いくらかの重なりが存在し得る。互いに素であるモジュラスを有することは、この部分的な互換性の可能性さえ排除するために好ましい。実践では、これは、モジュラスを異なる素数として選択することにより達成され得る。一実施形態では、第1のモジュラスを有する第1の多項式と第2のモジュラスを有する第2の多項式とが存在し、第2のモジュラスは第1のモジュラスとは異なる。
モジュラスのサイズはシステムのセキュリティに関係する。商業的に安全なシステムは、例えば128ビット長のモジュラスを使用し得る。例えば128以上、256以上等のより長いモジュラス、又は例えば64ビット以上等のより短いモジュラスも可能である。
好適な一実施形態では、前に生成された数は直前に生成された数であり、すなわち、xn−1、xn−2等の数列が既に生成されている場合、次の生成される数は少なくともxn−1に依存し得る。
関数は単一の前の値にのみ依存してもよいが、これは必須ではなく、例えば、関数は多変数でもよく、例えば二変数多項式等の多変数多項式であってもよい。一実施形態では、関数のうちの少なくとも1つがある数、すなわち2以上の数の変数を取る多変数関数であり、関数評価デバイスは、変数の数と同じ数の内部乱数列内の前に生成された数を取得し、少なくとも多変数関数を取得された複数の前に生成された数に関して評価するよう構成される。好ましくは、複数の関数のための、内部数列からの使用される前の値の間には、いくらかの又は場合によっては完全な重なりが存在する。
結合関数に関しては、複数の選択が可能である。結合関数の好ましい一選択は整数加算、すなわち自然数上で定義される加算である。整数加算は、異なるモジュラスから得られる非互換性を良好に混合する。しかし、他の選択も可能である。結合関数の他の可能性は、全ての関数の評価結果のバイナリ表現に適用されるXOR関数である。
出力関数は単純に内部数列を外部に複製してもよいが、発明者は、関数の出力の少なくとも一部を外界から保護することによりセキュリティを一層高められることを認識した。例えば、出力部は、内部数列内の生成された次の数からある数のビット(b)を選択することにより、すなわち、全てではなく一部のビットを選択することにより、乱数列内の次の数を生成するよう構成され得る。例えば、選択されるビットのパターン、例えばビット3、5、8、13、21、34、55、89(この場合、b=8)が指定されてもよい。後述するように、値「b」を設計の他の部分、例えば結合関数と結び付けることが好適であることが認識された。好適な一実施形態では、b最下位ビットが選択される。
結合関数内に更にリダクションステップを、典型的には結合の最終ステップとして含めることが好適であることが認識された。例えば、結合関数は結合モジュラス上のモジュロ演算を含み得る。結合は、複数の関数に関連付けられた複数のモジュラスのうちの少なくとも1つが、結合モジュラス引く複数のモジュラスのうちの当該少なくとも1つが2のべき乗の倍数であるという特性を有するよう選択され、より好ましくは、全てのモジュラスが異なる倍数でそのような差を有する。電子デバイス外でより多くのビットが見られる場合、2のべき乗はより大きく選択され得る。倍数の乗数は係数に対して小さく、例えば2のべき乗より小さい。例えば、2^8又は2^16として2のべき乗(2^b)を取る場合、2のべき乗の倍数は2^2b、すなわち、それぞれ2^16又は2^32より小さくされてもよい。
例えば、一実施形態では、全てのモジュラスmが条件
を満たし、ここで
であり、Nは128ビットの大きな奇数、例えば乱数又は素数である。値Nは結合モジュラスとして取られ得る。この選択は、(extended)hidden number problemの困難性を高める。
出力ビット数を減らすことは、乱数列をいわゆるノイジー多項式補間問題に関連付ける。知られる限り、ノイジー多項式補間問題は、相当に大きな計算労力で格子ベーススキームを使用してのみ攻撃され得る。例えば、論文‘Noisy Polynomial Interpolation and Noisy Chinese Remaindering’ by Daniel Bleichenbacher and Phong Qを参照されたい。ノイジー多項式補間問題に結び付けられた乱数生成は未だ提唱されていない。
他の関数が偶然に異常に小さく又は大きくなる場合、各関数から出力へのいわば漏れは最大になる。おそらくは、攻撃は、特定の出力ストリングがほとんどの関数の小さい値に対応し、よってほぼ全ての寄与が1つの関数に由来するという仮定(推測)に基づき得る。現在、このような攻撃は知られていないが、これは結合数列に対する攻撃のパターンに従うであろう。かかる試みを事前に阻むために、一実施形態では、1つの関数の寄与が他の関数の寄与よりも顕著に大きいか否かを決定する検定関数が使用され、顕著に大きい場合、出力部がこの値を取得することが阻まれる。その後、次の反復が実行される。一実施形態では、関数評価デバイスは、出力部が内部乱数列内の次の数へのアクセスを許容されるか否かを決定するために、内部乱数列内の次の数に対して検定関数を適用するよう構成され、検定関数がアクセスが許容されると決定する場合、出力部は、内部数列内の生成された次の数から乱数列内の次の数を生成し、そうでない場合、関数評価デバイスは、出力部が内部数列内の次の数へのアクセスを許容されると検定関数が決定するまで、内部数列内の次の数を生成する。
例えば、検定関数は、生成された数が閾値(例えば、出力関数によって「b」ビットが出力される場合、2^b)より小さい、閾値(例えば、モジュロリダクションも使用される場合、N−2^bより大きい)より大きい、又は両方の場合にアクセスを禁じ得る。
本発明の他の側面は、ストリーム暗号によりデータシーケンスを暗号化するための電子ストリーム暗号デバイス、及び、ストリーム暗号によりデータシーケンスを解読するための電子ストリーム暗号デバイスに関する。電子ストリーム暗号デバイスは、乱数列を生成するための電子乱数生成デバイス、パラメータ生成デバイス、及び結合デバイスを含む。パラメータ生成デバイスは、暗号鍵を取得、例えば鍵を受け取り又は生成等するよう構成され、また、暗号鍵に基づいて乱数列を生成するための電子乱数生成デバイスの電子パラメータストレージを構成するよう構成される。結合デバイスは、構成された電子パラメータストレージに基づき、乱数列を生成するための電子デバイスによって生成された乱数列をデータシーケンスと結合して、暗号化又は解読されたデータシーケンスを取得するよう構成される。例えば、パラメータ生成デバイスは、鍵に鍵拡張関数を適用することにより、例えば多項式等の関数の係数、モジュラス、及び/又は内部数列の初期値を取得し得る。結合デバイスは、データシーケンスを乱数列とXORし得る。
例えば、一実施形態では、パラメータ生成デバイスが、暗号鍵から決定された複数の関数により、乱数列を生成するための電子デバイスの電子パラメータストレージを構成するよう構成され、乱数列は、暗号鍵から決定された複数の関数を使用して生成される。
乱数列を生成するための及び暗号化又は解読のための電子デバイスは、例えば携帯電話等の電子モバイルデバイス、セットトップボックス、又はコンピュータ等であり得る。
本発明の一側面は、乱数列を生成するための方法であって、複数の関数と、複数の関数の関数毎に、全てが等しくはない関連付けられたモジュラスとを取得するステップと、内部乱数列を取得するステップであって、複数の関数の関数毎に、内部乱数列内の前に生成された値に関する当該関数モジュロ当該評価関数に関連付けられたモジュラスを評価して、複数の評価結果を取得し、複数の評価結果に結合関数を適用して内部数列内の次の数を取得することにより、内部乱数列内の次の数が生成される、ステップと、内部数列内の生成された次の数から乱数列内の次の数を生成するステップとを含む、乱数列を生成するための方法に関する。
本発明に係る方法は、コンピュータ実装方法としてコンピュータ上に、又は専用ハードウェア内に、又は両方の組み合わせに実装され得る。本発明に係る方法の実行可能コードは、コンピュータプログラム製品上に記憶され得る。コンピュータプログラム製品の例は、メモリデバイス、光学記憶デバイス、集積回路、サーバ、オンラインソフトウェア等を含む。好ましくは、コンピュータプログラム製品は、プログラム製品がコンピュータ上で実行されたとき、本発明に係る方法を実行するためのコンピュータ読み取り可能媒体上に記憶された非一時的プログラムコード手段を含む。
好適な一実施形態では、コンピュータプログラムは、コンピュータ上で実行されたとき、本発明に係る方法の全ステップを実行するよう適合されたコンピュータプログラムコード手段を含む。好ましくは、コンピュータプログラムはコンピュータ読み取り可能媒体上に組み込まれる。
本発明の上記及び他の側面は、以下で説明される実施形態を参照して説明され、明らかになるであろう。
図1は、乱数列を生成するための電子乱数生成デバイスの一実施形態を示す概略的なブロック図である。 図2は、ストリーム暗号によりデータシーケンスを暗号化又は解読するための電子ストリーム暗号デバイスの第1の実施形態を示す概略的なブロック図である。 図3は、乱数列を生成するための方法の一実施形態を示す概略的なフローチャートである。 図4は、ストリーム暗号によりデータシーケンスを暗号化又は解読するための電子ストリーム暗号デバイスの第2の実施形態を示す概略的なブロック図である。 図5は、照明システムの一実施形態を示す概略的なブロック図である。
異なる図面において同じ参照番号を有するアイテムは、同じ構造的特徴又は同じ機能を有し、又は同じ信号である。このようなアイテム機能及び/又は構造が説明されている場合、詳細な説明においてそれらを繰り返し説明する必要はない。
本発明は多様な形態で実施され得るが、1つ以上の特定の実施形態が詳細に図面に示され、本明細書に記載される。本開示は本発明の原理の例示として考えられ、本発明を図示及び記載される特定の実施形態に限定することは意図しないことを理解されたい。
本発明は様々なパラメータ及び関数等と共に使用され得る。以下、図1及び図3を参照して、一般的な実施形態である乱数列を生成するための電子デバイスを説明する。以下、使用可能な異なるパラメータ等の例を与える。
図1は、電子乱数生成デバイス100の概略的なブロック図を示す。
電子乱数生成デバイス100は、電子パラメータストレージ110、電子関数評価デバイス120、内部数列メモリ130、及び出力部140を含む。任意で、電子乱数生成デバイス100は検定関数デバイス150を更に含む。
電子乱数生成デバイス100は、内部数列(シーケンス)内の既に生成されている値に基づいて次の値を繰り返し生成して内部乱数列(略して内部数列)を生成することによって動作する。電子乱数生成デバイス100の外部で使用される乱数列(外部乱数列とも呼ばれる(略して外部数列))が、内部数列から得られる。
パラメータストレージ110は、複数の関数の表現を含む。例えば、パラメータストレージ110は、複数の多項式の表現を含み得る。関数の表現は、例えば何らかのテンプレートに従う係数のリストアップによってなされ得る。パラメータストレージ110が多項式を含む場合、これらは、係数をリストすることにより、例えば単項の次数を何らかの固定の順序で並べることによって表され得る。一変数多項式が使用される場合、係数は単純に次数の順序でリストされ得る。多変数多項式が使用される場合、例えば辞書式順序等の何らかの他の順序付けが次数に課され得る。
更に、パラメータストレージ110内に記憶される関数毎に、その関数と関連付けてモジュラスが記憶される。関数に関連付けられたモジュラスは、後にその関数を評価するときに使用され、出力において関数が容易に分離できないことを保証する。モジュラスは全て同じではなく、好ましくは全て異なる。
パラメータストレージ110は、例えばフラッシュメモリ又はハードディスクなどの磁気メモリ等の電子メモリとして実装され得る。パラメータストレージ110は、合わせてパラメータストレージ110を形成する複数の別々のメモリを含み得る。パラメータストレージ110は、例えばRAM等の一時メモリであってもよい。一時パラメータストレージ110の場合、パラメータストレージ110は、例えば乱数生成又は任意のネットワーク接続(図示無し)を介してそれらを取得することにより、使用前にパラメータを取得する何らかの手段を有する。
関数評価デバイス120は、関数評価デバイス120が複数の関数、例えば複数の多項式の表現をパラメータストレージ110から取得できるよう、パラメータストレージ110に接続される。関数評価デバイス120は、複数の関数を使用して内部乱数列の次の値を生成するよう構成され、後により詳細に説明される。
数列メモリ130は、生成される内部乱数列の全て又は一部を有する。乱数生成デバイス100は、まず、出力される外部乱数列がそれから導出される内部乱数列を生成するよう構成される。単純な実施形態では、内部数列と同じ外部数列が取られ得るが、乱数を出力する前に、内部数列に対して種々の処理を実行することがより安全なことが認められる。少なくとも数列メモリ130は、内部乱数列の前の値、典型的には直前に生成された値を収容するのに十分大きい。パラメータストレージ110内に記憶され、関数評価デバイス120によって使用される関数が多変数である場合、数列メモリ130は、対応する数の前の値を収容するのに十分大きい。数列メモリ130は、内部数列の次の値を生成するための関数評価デバイス120への入力、及び、次の外部値を生成するための出力部140への入力の両方として使用される。新しい値が生成されたとき、数列メモリ130は関数評価デバイス120によって更新される。数列メモリ130のサイズが限られる場合、例えば1つ又は少数の値に限られる場合、関数評価デバイス120は、最も多くの反復前に生成された値を上書きする。
関数評価デバイス120は前の値を取り扱うので、数列メモリ130は何らかの初期化を必要とする。数列メモリ130の開始値は様々な方法で生成することができる。例えば、数列がストリーム暗号等に使用される場合に望ましい、再現可能な乱数列を作成するために、数列メモリ130は固定値によって初期化され得る。例えば、固定値はパラメータストレージ110内に記憶されてもよい。例えば、オールゼロが適切な開始値であり得る。再現可能性が必要ない場合、数列メモリ130は真の又は他のノイジーな値、例えば現在時間によって初期化されてもよい。
出力部140は、内部数列から外部数列を決定する。出力部140は一切の処理を実行しなくてもよいが、内部数列をエクスポートしないことが好ましい。一実施形態では、出力部140は数「b」によって構成され、出力部140は、外部数列の次の値を生成するために、内部数列の生成された次の値のバイナリ表現からbビットを選択する。例えば、出力部140はb最下位ビット(LSB)を選択し得る。
図1に示される実施形態では、関数評価デバイス120は、関数評価器と評価結果コンバイナとを含む。関数評価器は、パラメータストレージ110内に示される複数の関数のうちの関数を評価し、モジュロ関連付けられたモジュラス(関連付けられたモジュラスを法とする計算)によりその結果をリダクションするよう構成される。評価は関数毎に繰り返され、これは戻り線124によって示されている。複数の関数の結果はその後、評価結果コンバイナ128によって結合される。関数評価デバイス120は、評価結果を一時的に記憶するための何らかのメモリへのアクセスを有し得る。結合関数が部分評価を許容する場合、このメモリは単一の値に制限され得るが、そうでなければ、このメモリは複数の評価結果の全てを一時的に記憶すべきである。一実施形態では、評価デバイス120は複数の関数評価器を含み、これは並列化に利益を与えるが、重要なことには、更に、関数が表現される態様、すなわち関数テンプレートの大きな拡張を要さず、異なる関数タイプの使用を可能にする。
評価結果コンバイナ128は整数加算であり、これは好ましい選択肢である。また、評価結果コンバイナ128は、関数評価のバイナリ表現のXORであってもよい。また、評価結果コンバイナ128は、典型的には最終ステップとして、結果をリダクションするためのリダクションステップを含んでもよい。例えば、乱数生成デバイス100が固定サイズ、例えば128ビットの内部ワードを取り扱う場合、評価結果コンバイナ128は、例えば最上位ビット(MSB)を除去することにより、単純に結果を固定サイズに切り捨ててもよい。しかし、モジュロリダクションを使用することにより、後により詳細に説明されるように、難問とのリンクが強化され得る。評価結果コンバイナ128のモジュロリダクションに使用されるモジュラスは、結合モジュラス(N)と呼ばれる。
検定関数デバイス150は、任意ではあるが有利な要素である。複数の関数のうちの1つの特定の関数に関する所与の情報が出力されることを防ぐために、検定関数デバイス150は、外部数列によって使用される内部数列の値が異常に小さいか又は大きいかを検定する。例えば、検定関数デバイス150は、数が閾値以下であるか否かを検定してもよい。例えば、検定関数デバイス150は、数が閾値以上であるか否かを検定してもよい。検定関数デバイス150は両方の検定を行ってもよい。閾値は、それらの対数が、値のサイズの2を底とする対数に比例するよう設定され得る。上限値は、複数のモジュラスのうちの最大のモジュラス、又は、使用される場合、結合モジュラスに関連し得る。
以下、乱数生成デバイス100(又は、後述されるような乱数列を生成するための方法300)において使用され得るパラメータの複数の例示的な選択肢を与える。
第1の例:外部乱数列は、
として示される、xの2つの有限体多項式(f及びg)の評価及び整数上の加算による結果の結合の評価から生成される内部数列の別の要素xのbビットに各要素yが対応するような、例えば
のような数列
として定められ得る。この表記において、
はリダクションモジュロqを示す。xは整数上の和として生成されるため、p又はqより大きくなり、モジュロ演算のため、値は後続のy値のために直接使用され得る。乱数生成器は、異なる数列を生成するための初期シードとして値x、例えば乱数を使用し得る。
他の実施形態は以下を含む。
1.数列xは、乱数x及びxを初期シードとして使用して、次のように構築されてもよい。



2.例えば乱数x及びxを初期シードとして使用して例えば二変数を取る、多変数単項式の使用。


3.既知の初期入力xを有するが、多項式の係数の生成に何らかのランダムなデータが使用される多項式の使用。

4.数列xは、入力として前の値xn−1の変換T():T(xn−1)を使用することによって構築されてもよい。例えば、T()は、xn−1のxビットシフトされたバージョン、又は、xn−1のithビットがT(xn−1)内のjthビットに移動されるようなマップであり得る。


更に、使用される変換は2つの関数で異なってもよい。

5.数列xは、次のように、関数B()に従って多項式の出力を結合することによって構築されてもよい。

上記実施形態において、B()は整数上の加算であるが、XOR等の他の関数も可能であることに留意されたい。
以下、特定の数学的難問に対応するため特に好適なパラメータの選択方法をもう1つ与える。
結合モジュラスのサイズ(N)、及び1つの反復で出力されるビット数(b)に関する選択がなされる。この例では、結合モジュラスは奇数でなければならない。結合モジュラスは例えばランダムに選択され得る。結合モジュラスの好ましくない因数分解を排除するために、Nのために素数を選択することが好ましい可能性がある。結合モジュラス及びbはセキュリティパラメータとして考えることができ、大きな結合モジュラスはより安全であり、出力される低いビット数はより安全である。また、多項式の数lに関して選択がなされ、同様に、多項式が多い程、安全である。可能な選択は、N=128、b=8、l=2である。次に、多項式のモジュラスが多項式毎に決定される。
数bはより大きく選択してもよく、例えば8、16、32でもよい。多項式はより多くてもよく、例えば3つでもよい。結合モジュラスのサイズは、例えば32、64、80ビット等、より小さくてもよく、又は例えば196若しくは256ビット等、より大きくてもよく、又はこれらの値の間であってもよい。
本実施形態では、全てのモジュラスが条件
を満たし、ここで、
であり、Nは結合モジュラスである。モジュラスは結合モジュラスより大きくても小さくてもよいことに留意されたい。中間値で最大値、すなわちNを有することが望ましい場合、cはすべて正に選択されてもよい。cは次のようにして選択され得る。
1.ランダムな小さい乱数
を選択する。
2.モジュラス
を設定。
3.mが互いに素であるかを検定し、そうでない場合、ステップ1に向かう。
を異なる素数として選択することにより、ステップ3が省かれてもよく、これは、素数を見つけるためにモジュラス毎により多くの候補c値を検定することを要し得るが、一方では、全てのmの集合が互いに素であることが保証される。また、これは関数が環ではなく体上で評価されることを保証する。
モジュラスが選択された後、係数モジュロ関連するモジュラスにより多項式が決定され、すなわち、多項式iはモジュロモジュラスmである。係数はランダムに選択され得る。一変数多項式を仮定するが、二変数多項式も可能である。多項式は等しい又は異なる次数を有し得る。好ましくは、多項式のうちの少なくとも1つは2以上の次数を有する。
結合関数として、整数加算が使用され、モジュロリダクションモジュロ結合モジュラスNが続く。このモジュラスは全ての他のモジュラスに非常に近いため、効果は特に強い。モジュロ演算の結果は、内部数列内の次の値である。出力関数として、モジュロ演算の結果のb最下位ビットが使用され得る。
NIST Special Publication 800-22 “A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications”に示されるランダム性のためのテストスイートを使用して、この及び他の実施形態が検定された。このようにして生成された乱数列のランダム特性は、暗号的使用のために良好に十分であることが認められた。
典型的には、電子乱数生成デバイス100は、電子乱数生成デバイス100に記憶される適切なソフトウェア、例えば、ダウンロードされ、対応する例えばRAM又はFlash(登録商標)(図示無し)等のメモリ内に記憶され得るソフトウェアを実行するマイクロプロセッサ(図示無し)を含む。
図3は、乱数列を生成するための方法300を概略的なフローチャートで示す。方法は電子乱数生成デバイス100と共に使用され得るが、これは必須ではない。とはいえ、方法300は電子デバイス上で、特にコンピュータ実装方法として最適に実行される。
ステップ310において、複数の関数と、複数の関数の関数毎に、全てが等しくはない関連付けられたモジュラスとが取得される。ステップ320において、内部乱数列の初期値が生成される。例えば、これらは何らかの他のソースから取得されるノイジーな値でもよい。この場合、初期数列が予測不能であった限り、生成される数列は予測不能になる。あるいは、これらは定められた値、例えば全て0でもよく、この場合、数列は再現可能になる。例えば攻撃者に対して秘密にされているために初期値を知らない攻撃者にとって、数列は真にランダムな数列と区別がつかない。少なくとも、如何なる識別性も、将来の数列の値を予測するのに十分ではない。ステップ330において、内部乱数列内の次の数が生成される。これは、ステップ332〜338において与えられる方法で行われる。ステップ332において、内部乱数列内の前に生成された数が取得される。数列がxと表示され、現在生成されている次の数がxの場合(より高いインデックスは、より最近に生成された値に対応する)、使用される数はxn−1でもよく、他の値でもよい。このフローチャートでは、全ての関数に関して同じ前の値が使用されることに留意されたい。関数間の従属性が保証されるため、これは好ましい状況である。ステップ334において、内部数列の前に取得された生成値(xn−1)に関して関数が評価され、モジュロ評価関数に関連付けられたモジュラスが行われる。関数が多項式、又は線形関数若しくは多項式が後続し得るSボックスの組み合わせの場合、かかる計算は低資源デバイス上で可能である。また、このような関数は自然な態様で、例えばメモリ110内に符号化されてもよい。ステップ336において、評価すべき関数が残っているか否かが決定され、残っている場合、フローはステップ334に戻り、複数の関数のうちの次の関数を評価する。ステップ338において、結合関数を適用することにより、複数の評価結果が結合される。多くの関数に関して、特に加算及びXOR等に関して、ステップ338はステップ336に統合され得る。ステップ340において、内部数列内の生成された次の数から、乱数列内の次の数が生成される。
当業者にとって明らかなように、方法を実行する多くの異なる方法が可能である。例えば、ステップの順番が変更されてもよく、又はいくつかのステップが並行して実行されてもよい。更に、ステップの間に他の方法ステップが挿入されてもよい。挿入されるステップは、本明細書に記載されるような方法の細分化を表してもよく、又は方法と無関係でもよい。例えば、ステップ310及び320又はステップ334が、少なくとも部分的に並行して実行され得る。更に、次のステップが開始される前に、所与のステップが完全に完了しなくてもよい。
本発明に係る方法は、方法300をプロセッサシステムに実行させるための命令を含むソフトウェアを使用して実行され得る。ソフトウェアは、システムの特定のサブエンティティが実行するステップのみを含んでもよい。ソフトウェアはハードディスク、フロッピー(登録商標)、メモリ等の適切な記憶媒体内に記憶され得る。ソフトウェアはワイヤー沿いに又は無線で、又はインターネット等のデータネットワークを使用して信号として送られてもよい。ソフトウェアはダウンロード可能且つ/又はサーバ上で遠隔使用可能であってもよい。
図2は、ストリーム暗号における乱数列の使用を示す。
図2は、パラメータ生成デバイス210を示す。パラメータ生成デバイス210は、入力として暗号鍵を取り、電子乱数生成デバイス100内で使用されるパラメータを生成するよう構成される。パラメータの一部が固定で、一部が生成されてもよいことに留意されたい。典型的には、多項式の数、出力ビット数、及び多項式の次数は、脅威モデルの評価に基づき事前に決定される。この実施形態では、パラメータ生成デバイス210は、複数のモジュラス又は複数の関数のうちの少なくとも1つを生成する。好ましくは、パラメータ生成デバイス210は、複数のモジュラス及び複数の関数の両方を生成する。パラメータ生成デバイス210は関数自体を生成してもよいし、生成しなくてもよい。パラメータ生成デバイス210が関数を生成することが好ましい。例えば、パラメータ生成デバイス210は、多項式係数として使用される係数のシーケンスを生成し得る。ストリーム暗号デバイス200は、乱数列を結合するための結合デバイス240を更に含む。更に、ストリーム暗号デバイス200は例えば入力から又はストレージ若しくは生成からデータストリームを取得するよう構成され、また、出力ストリームを更に処理するよう構成される。データストリームはプレーンデータストリームを表し、この場合、出力ストリームは対応する暗号化されたデータストリームである。また、データストリームは暗号化されたデータストリームを表してもよく、この場合、出力ストリームはプレーンデータストリームを表す。入力ストリームを、電子乱数生成デバイス100から取得された乱数列(ストリーム)と結合することにより、入力ストリームから出力ストリームが得られる。
動作時、パラメータ生成デバイス210は攻撃者に対して秘密な暗号鍵、例えば128ビット又は256ビット鍵を受け取る。パラメータ生成デバイス210は更にノンス又は他のデータも受け取ってもよい。受け取られたデータを使用し、パラメータ生成デバイス210は電子乱数生成デバイス100を構成し、すなわちパラメータストレージ110を構成する。この時点で、電子乱数生成デバイス100は乱数列を生成するよう構成される。ストリーム暗号デバイス200が入力ストリーム220を受け取り始めると、入力ストリームは乱数列と結合される。これは、例えばそれ自体はストリーム暗号の分野で知られている様々な方法で実行され得る。特に、結合デバイス240はXORデバイスであり得る。このようにして、出力ストリームが生成される。出力ストリームは保存され、又は更に処理若しくは伝送される等してもよい。
電子乱数生成デバイス100によって使用される数列の初期値は鍵から、又はカウンタから取得されてもよく、又は固定であってもよい。また、初期値は、例えばパラメータ生成デバイス210によってメモリ110に構成され、メモリ110から取得されてもよい。
ストリーム暗号デバイス200の一実施形態では、疑似乱数生成器内で使用される多項式の係数は、秘密鍵Kから生成される。この場合、疑似乱数生成器は、出力として乱数列を生成する多項式によって形成される。各乱数列はその後、平文に対してXORされ、暗号文が生成される。入力が暗号文メッセージで出力が平文メッセージである点を除き、解読プロセスは暗号化と同じである。
同じ鍵により異なるメッセージに対する異なる疑似乱数列を可能にするために、ノンスが使用され、暗号文と共に交換されてもよい。ノンスは数列メモリ130内の初期値と結合されてもよいし、又は、ノンスは多項式係数を生成するための入力として鍵と結合されてもよい。鍵と組み合わせることにより、異なる多項式を生成することができ、これは異なる疑似乱数列を生成する。ノンスを鍵又はカウンタ値と組み合わせる1つの方法は、それらをXOR又は連結することである。
図4は、固定の、場合によっては公開される多項式係数及びモジュラスを使用するが、疑似乱数生成器の初期化に秘密鍵を使用する異なる変形例を示す。
プロセスは、一例として、例えばそれぞれの次数が2である例えば2つの多項式を使用する(しかし、他の選択も可能である)電子乱数生成デバイス100の初期シードとして秘密鍵K(又はKから導出された数)を使用することを含む。
両多項式の評価結果は、例えば単純な加算によって結合され、Rが得られる。Rのnビットのうちbビットのみが疑似乱数列として露出される。次のb疑似ランダムビットを生成するために、前回の結果Rを使用して次の入力が更新される。
新しいメッセージが暗号化される場合、同じ鍵Kに対して得られる疑似乱数列が異なることを保証する追加要素「ノンス」がパラメータ生成デバイス210内で使用されてもよい。これを実行する方法は、鍵Kを取り、それをノンスとXORすることであろう。
複数のブロックが必要な場合、例えばカウンタと共に鍵をハッシュすることにより、鍵を拡張してもよい。Sha−1及びSha−256は適切な選択肢である。
ストリーム暗号は、特に資源制約デバイスで通信を保護することを要する製品及びサービスに適用可能である。このような資源制約システムの一例は照明制御である。このようなシステムは図5に示される。図5は、電気照明コントローラ510及び電子照明520を示す。照明コントローラ510は照明520を監視及び/又は制御し得る。照明520は例えばランプ/LEDドライバの組み合わせであり得る。照明コントローラ510及び照明520は、双方向通信用に構成される。しかし、監視のみ又は制御のみが必要な場合、一方向通信が使用されてもよい。照明コントローラ510及び照明520は共通の秘密鍵Kを共有する。照明コントローラ510及び照明520はいずれも、ストリーム暗号デバイス200又はストリーム暗号デバイス400等のデバイスを有する。先に(場合によっては平文で)交換された共有される秘密及び場合によってはノンスを使用して、照明コントローラ510及び照明520の両方が電子乱数生成デバイス100を構成する。照明コントローラ510が例えば制御のために照明520にメッセージを送る場合、メッセージはストリーム暗号として暗号化される。メッセージが照明520において受け取られると、メッセージは生成された同じ乱数列を使用して解読され得る。照明520から照明コントローラ510への通信は逆に動作する。
本発明は、本発明を実行するよう適合されたコンピュータプログラム、特にキャリア上の又はキャリア内のコンピュータプログラムまで及ぶ。プログラムは、ソースコード、オブジェクトコード、部分的にコンパイルされた形式等のソースコード及びオブジェクトコードの中間コードの形式、又は本発明に係る方法の実装形態に適した任意の他の形式を取り得る。コンピュータプログラム製品に関する一実施形態は、上記方法のうちの少なくとも1つの方法の処理ステップのそれぞれに対応するコンピュータ実行可能な命令を含む。これらの命令はサブルーチンに細分化されてもよいし、更に/又は静的に又は動的にリンクされ得る1つ以上のファイル内に保存されてもよい。コンピュータプログラム製品に関する他の実施形態は、上記システム及び/又は製品のうちの少なくとも1つの手段のそれぞれに対応するコンピュータ実行可能な命令を含む。
上記実施形態は本発明を限定ではなく説明するものであり、当業者は多数の他の実施形態を設計できることに留意されたい。
請求項において、括弧内の如何なる参照符号も請求項を限定すると解されるべきではない。動詞「備える(又は含む若しくは有する等)」及びその活用形は請求項内に記載されている以外の要素又はステップの存在を除外しない。要素は複数を除外しない。本発明は、複数の異なる要素を備えるハードウェアによって、及び、適切にプログラミングされたコンピュータによって実施され得る。複数の手段を列挙する装置クレームにおいて、手段のいくつかは同一のアイテム又はハードウェアによって具現化されてもよい。単にいくつかの手段が互いに異なる独立請求項に記載されているからといって、これらの手段の組み合わせを好適に使用することができないとは限らない。
100 乱数列を生成するための電子乱数生成デバイス
110 電子パラメータストレージ
120 電子関数評価デバイス
122 関数評価器
124 制御パス
128 評価結果コンバイナ
130 内部数列メモリ
140 出力部
150 検定関数デバイス
200 ストリーム暗号によりデータシーケンスを暗号化又は解読するための電子ストリーム暗号デバイス
210 パラメータ生成デバイス
220 データストリーム
230 出力ストリーム
240 結合デバイス
400 ストリーム暗号によりデータシーケンスを暗号化又は解読するための電子ストリーム暗号デバイス
500 電子照明制御システム
510 電気照明コントローラ
520 電子照明

Claims (14)

  1. 乱数列を生成するための電子乱数生成デバイスであって、
    複数の関数と、前記複数の関数の関数毎に、全てが等しくはない関連付けられたモジュラスとを記憶する電子パラメータストレージと、
    内部乱数列を生成する電子関数評価デバイスであって、
    前記複数の関数の各関数に対して該関数に関連付けられたモジュラスを法として、前記内部乱数列内の前に生成された値について該関数を評価することにより、複数の評価結果を取得し、
    前記複数の評価結果に結合関数を適用して、前記内部数列内の次の数を取得することにより、前記内部乱数列内の前記次の数を生成する、電子関数評価デバイスと、
    前記内部数列内の前記生成された次の数から、前記乱数列内の次の数を生成する出力部と
    を含む、乱数列を生成するための電子乱数生成デバイス。
  2. 前記複数の関数の関数は多項式である、請求項1に記載の乱数列を生成するための電子乱数生成デバイス。
  3. 前記複数の多項式のうちの少なくとも1つは2以上の次数を有する、請求項2に記載の乱数列を生成するための電子乱数生成デバイス。
  4. 前記複数の関数のうちの少なくとも1つは、ある数の変数を有する多変数関数であり、前記関数評価デバイスは、前記変数の数と同じ数の前記内部乱数列内の前に生成された数を取得し、少なくとも前記多変数関数を取得された前記ある数の前に生成された数に関して評価する、請求項1乃至3のいずれか一項に記載の乱数列を生成するための電子乱数生成デバイス。
  5. 前記結合関数は整数加算である、請求項1乃至4のいずれか一項に記載の乱数列を生成するための電子乱数生成デバイス。
  6. 前記出力部は、前記内部数列内の前記生成された次の数からある数のビットを選択することにより、前記乱数列内の前記次の数を生成する、請求項1乃至5のいずれか一項に記載の乱数列を生成するための電子乱数生成デバイス。
  7. 前記関数評価デバイスは、前記出力部が前記内部乱数列内の前記次の数へのアクセスを許容されるか否かを決定するために、前記内部乱数列内の前記次の数に対して検定関数を適用し、
    前記検定関数がアクセスが許容されると決定する場合、前記出力部は、前記内部数列内の前記生成された次の数から前記乱数列内の前記次の数を生成し、そうでない場合、前記関数評価デバイスは、前記出力部が前記内部数列内の前記次の数へのアクセスを許容されると前記検定関数が決定するまで、前記内部数列内の次の数を生成する、請求項1乃至6のいずれか一項に記載の乱数列を生成するための電子乱数生成デバイス。
  8. 前記結合関数は結合モジュラス上のモジュロ演算を含み、前記複数の関数に関連付けられた前記複数のモジュラスのうちの少なくとも1つは、前記結合モジュラス引く前記複数のモジュラスのうちの前記少なくとも1つが2のべき乗の倍数であるという特性を有する、請求項1乃至7のいずれか一項に記載の乱数列を生成するための電子乱数生成デバイス。
  9. 前記複数の関数に関連付けられた前記モジュラスは互いに素である、請求項1乃至8のいずれか一項に記載の乱数列を生成するための電子乱数生成デバイス。
  10. ストリーム暗号によりデータシーケンスを暗号化又は解読するための電子ストリーム暗号デバイスであって、
    請求項1乃至9のいずれか一項に記載の乱数列を生成するための電子乱数生成デバイスと、
    暗号鍵を取得し、前記暗号鍵に基づき、乱数列を生成するための前記電子デバイスの前記電子パラメータストレージを構成する、パラメータ生成デバイスと、
    前記構成された電子パラメータストレージに基づき、乱数列を生成するための前記電子デバイスによって生成された前記乱数列を、前記データシーケンスと結合して、暗号化又は解読されたデータシーケンスを取得するための結合デバイスと
    を含む、ストリーム暗号によりデータシーケンスを暗号化又は解読するための電子ストリーム暗号デバイス。
  11. それぞれが請求項10に記載の電子ストリーム暗号デバイスを含むコントローラと被制御デバイスとを含む、制御システム。
  12. 乱数列を生成するための方法であって、
    複数の関数と、前記複数の関数の関数毎に、全てが等しくはない関連付けられたモジュラスとを取得するステップと、
    内部乱数列を生成するステップであって、
    前記複数の関数の各関数に対して該関数に関連付けられたモジュラスを法として、前記内部乱数列内の前に生成された値について該関数を評価することにより、複数の評価結果を取得し、
    前記複数の評価結果に結合関数を適用して前記内部数列内の次の数を取得することにより、前記内部乱数列内の前記次の数が生成される、ステップと、
    前記内部数列内の前記生成された次の数から前記乱数列内の次の数を生成するステップと
    を含む、乱数列を生成するための方法。
  13. コンピュータ上で実行されるとき、請求項12の全ステップを実行するコンピュータプログラムコード手段を含む、コンピュータプログラム。
  14. 請求項13に記載のコンピュータプログラムが記憶されたコンピュータ読み取り可能媒体。

JP2015547089A 2013-02-28 2014-02-20 乱数生成器及びストリーム暗号 Active JP5911654B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP13157133.3 2013-02-28
EP13157133 2013-02-28
PCT/EP2014/053268 WO2014131677A1 (en) 2013-02-28 2014-02-20 Random number generator and stream cipher

Publications (2)

Publication Number Publication Date
JP2016505887A JP2016505887A (ja) 2016-02-25
JP5911654B2 true JP5911654B2 (ja) 2016-04-27

Family

ID=47832933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015547089A Active JP5911654B2 (ja) 2013-02-28 2014-02-20 乱数生成器及びストリーム暗号

Country Status (7)

Country Link
US (1) US10359996B2 (ja)
EP (1) EP2962185B1 (ja)
JP (1) JP5911654B2 (ja)
CN (1) CN104380245B (ja)
BR (1) BR112014027817A2 (ja)
RU (1) RU2661564C2 (ja)
WO (1) WO2014131677A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10454674B1 (en) * 2009-11-16 2019-10-22 Arm Limited System, method, and device of authenticated encryption of messages
US10686781B1 (en) 2013-12-24 2020-06-16 Affirm Inc. System and method for passwordless logins
US10685587B2 (en) 2015-04-30 2020-06-16 Koninklijke Philips N.V. Cryptographic device for calculating a block cipher
FR3049132B1 (fr) * 2016-03-18 2018-03-23 Continental Automotive France Procede pour limiter le bruit radio, notamment dans la bande fm, par interpolation polynomiale
CN109478999B (zh) * 2016-04-05 2021-12-03 罗之落有限责任公司 用于从在网络上传输并存储在数据存储设施中的数据中移除信息的反式加密方法和设备
US10064259B2 (en) * 2016-05-11 2018-08-28 Ford Global Technologies, Llc Illuminated vehicle badge
JP6859645B2 (ja) * 2016-09-29 2021-04-14 日本電気株式会社 乱数生成システム、乱数生成装置、乱数生成方法及びプログラム
US10608822B2 (en) * 2017-04-26 2020-03-31 Nxp B.V. Efficient calculation of message authentication codes for related data
EP3413500A1 (en) * 2017-06-09 2018-12-12 Koninklijke Philips N.V. Device and method to compute a block cipher
TWI760546B (zh) 2017-08-23 2022-04-11 安地卡及巴布達商區塊鏈控股有限公司 用於高安全性高速資料加密及傳輸的電腦實施系統與方法
GB201713499D0 (en) 2017-08-23 2017-10-04 Nchain Holdings Ltd Computer-implemented system and method
CN107622102B (zh) * 2017-09-11 2019-04-19 平安科技(深圳)有限公司 实体卡号生成方法及终端设备
EP3493460A1 (en) * 2017-12-01 2019-06-05 Gemalto Sa Cryptography device having secure provision of random number sequences
US11108552B1 (en) * 2018-05-02 2021-08-31 Amazon Technologies, Inc. Data encryption method and system
CN109039601B (zh) * 2018-07-18 2021-03-19 电子科技大学 一种基于后处理的混沌安全密钥分发方法及系统
CN109543421A (zh) * 2018-12-12 2019-03-29 四川大学华西医院 一种基于多项式数论加密算法的医疗信息保护系统及方法
CN109582830A (zh) * 2018-12-20 2019-04-05 郑州云海信息技术有限公司 一种端口列表的生成方法及装置
CN111371547B (zh) * 2020-03-03 2023-01-13 江苏芯盛智能科技有限公司 一种重叠子序列检测方法、系统、设备及计算机存储介质
JP7446923B2 (ja) 2020-06-02 2024-03-11 キオクシア株式会社 半導体装置及び半導体記憶装置
CN111669269B (zh) * 2020-06-08 2023-08-15 晋商博创(北京)科技有限公司 Blk数据加密方法、装置及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0681768B1 (en) * 1992-12-30 2001-03-28 Telstra Corporation Limited A method and apparatus for generating a cipher stream
RU2163027C2 (ru) 1999-04-13 2001-02-10 Военный университет связи Генератор псевдослучайной последовательности (варианты)
RU2246129C2 (ru) 2003-01-13 2005-02-10 Осмоловский Станислав Антонович Способ генерации случайных чисел
US20050044119A1 (en) * 2003-08-21 2005-02-24 Langin-Hooper Jerry Joe Pseudo-random number generator
US7263540B1 (en) 2004-03-03 2007-08-28 The United States Of America As Represented By The Director National Security Agency Method of generating multiple random numbers
US20080281892A1 (en) 2004-09-22 2008-11-13 Erwin Hemming Method and Apparatus for Generating Pseudo Random Numbers
US7860912B1 (en) * 2006-12-08 2010-12-28 Nvidia Corporation Random number generator with improved uniformity for networking
US8265272B2 (en) * 2007-08-29 2012-09-11 Red Hat, Inc. Method and an apparatus to generate pseudo random bits for a cryptographic key
CN101242265A (zh) * 2008-03-07 2008-08-13 四川虹微技术有限公司 安全系统中流密码、伪随机数产生方法
BRPI1006182B1 (pt) 2009-03-19 2021-02-17 Koninklijke Philips N.V. método para comunicações seguras entre um primeiro nó e um segundo nó em uma rede, dispositivo de gerenciamento provido de material de geração de chave raiz e rede
EP2647213B1 (en) * 2010-12-02 2017-07-26 Nagravision S.A. System and method to record encrypted content with access conditions
JP2015521003A (ja) * 2012-05-21 2015-07-23 コーニンクレッカ フィリップス エヌ ヴェ 暗号鍵の決定

Also Published As

Publication number Publication date
WO2014131677A1 (en) 2014-09-04
US20150358154A1 (en) 2015-12-10
EP2962185B1 (en) 2016-11-16
CN104380245B (zh) 2017-10-24
BR112014027817A2 (pt) 2017-06-27
EP2962185A1 (en) 2016-01-06
RU2014151365A (ru) 2016-07-10
CN104380245A (zh) 2015-02-25
US10359996B2 (en) 2019-07-23
RU2661564C2 (ru) 2018-07-19
JP2016505887A (ja) 2016-02-25

Similar Documents

Publication Publication Date Title
JP5911654B2 (ja) 乱数生成器及びストリーム暗号
JP5711681B2 (ja) 暗号処理装置
JP6517436B2 (ja) 暗号化デバイス及び符号化デバイス
JP2020510879A (ja) 楕円曲線点乗算デバイス及び方法
JP6884284B2 (ja) キー付きメッセージ認証コードのホワイトボックス計算
Aldaya et al. AES T-Box tampering attack
Reyad et al. Key-based enhancement of data encryption standard for text security
US9391770B2 (en) Method of cryption
JP6046870B1 (ja) テーブルネットワークの繰り返し適用のための計算装置
US10075290B2 (en) Operator lifting in cryptographic algorithm
JP5207153B2 (ja) 擬似乱数発生システム
JP7383985B2 (ja) 情報処理装置、情報処理方法及びプログラム
CN111602367B (zh) 用于保护在使白盒密码算法安全的对策中使用的熵源的方法
Janakiraman et al. Humming bird with coloured wings: A feedback security approach
JP2012049765A (ja) 秘匿性増強処理演算装置およびこれを備えた量子暗号通信端末
Abubaker et al. DAFA-A Lightweight DES Augmented Finite Automaton Cryptosystem
JP5268011B2 (ja) 暗号化システム及び復号化システム
Manish et al. Secure Image Encryption using AES Algorithm with Dynamic Key Generation
Shirazi et al. An innovative design of substitution-box using Trigonometric-Multiplicative Functions Using Square Root Arguments: A Data-driven study.
Huang et al. Random Cladding with Feedback Mechanism for encrypting mobile messages
Duta et al. Evaluation Framework for Security and Resource Consumption of Cryptographic Algorithms
JP5268010B2 (ja) 暗号化システム及び復号化システム
JP2021047371A (ja) 情報処理装置、情報処理方法及びプログラム
CN116961880A (zh) 一种基于香农展开的白盒加密方法及系统
Pazo-Robles et al. A cryptanalytic attack on a class of cryptographic sequence generators

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160127

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160329

R150 Certificate of patent or registration of utility model

Ref document number: 5911654

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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