JP6501873B2 - 暗号システムの再現可能なランダムシーケンス - Google Patents

暗号システムの再現可能なランダムシーケンス Download PDF

Info

Publication number
JP6501873B2
JP6501873B2 JP2017513389A JP2017513389A JP6501873B2 JP 6501873 B2 JP6501873 B2 JP 6501873B2 JP 2017513389 A JP2017513389 A JP 2017513389A JP 2017513389 A JP2017513389 A JP 2017513389A JP 6501873 B2 JP6501873 B2 JP 6501873B2
Authority
JP
Japan
Prior art keywords
random
sequence
several
mapping
transfer map
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
JP2017513389A
Other languages
English (en)
Other versions
JP2017527225A (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of JP2017527225A publication Critical patent/JP2017527225A/ja
Application granted granted Critical
Publication of JP6501873B2 publication Critical patent/JP6501873B2/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
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、暗号プロセス及び暗号装置の分野に属する。暗号化は、データを暗号化(別名、符号化)、又は暗号化されたデータの暗号を復号(別名、復元)する技術である。当該技術は長く軍事及び外交によって使用されてきたが、昨今その使用は、世間一般及び実業界にまで拡大してきている。商用データ及び銀行の通信を保護するために強力かつ安全な暗号システムを有することは、今日、経済的に極めて重要なことである。
(定義)
従来技術を紹介する前に、本明細書において使用することとなるいくつかの専門用語の定義を付与することとする。これらの定義は、本明細書全体(明細書、請求の範囲、要約書)において適用するものとする。
単語「データ」は、全ての種類の情報、知識、テキスト、メッセージ、ドキュメント、図面、数値結果、画像、イメージ、これらの一部若しくは全ての組み合わせ、又は文字列により表現、転写若しくはモデル化可能な任意のものを意味する。
「文字列」とは、全ての種類のスペース、グリフ、表意文字、数字、(モールス信号、テレタイプコード、電子装置におけるデジタル2進コード等のような)いくつかの状態に準拠したコード、場合により(ASCII、ANSI、Unicode、Baudot、又はその他のもの等の)コード体系に従う数字コード(2進法、10進法、16進法又は任意の基数におけるもの)、任意の同等のもの、又は、これらの一部若しくは全ての組み合わせからなる、記号(文字、数字、句読記号等)の列を意味する。したがって、「文字」は、文字列を形成する要素として定義される。
「ランダムシーケンス」とは、どの文字が文字列内の前の文字(及び/又は次の文字)であり、文字列内の場所毎にこれをたとえ分かっていたとしても、どの文字が文字列内の特定の場所に存在するかを予測することが不可能な文字列のことを意味する。
(従来の技術)
何世紀もの間、Vigenere暗号が最も安全な暗号システムの1つであるとして考えられてきた。Vigenere暗号は、メッセージの文字毎に異なるシフトで、それぞれの文字をアルファベット順にシフトしたその他の文字で置換することに基づいていた。異なるシフトのシーケンスを記憶するために、「鍵(key)」のシステムが作成された。鍵は、それぞれの文字が、「A」には「0」、「B」には「1」、「C」には「2」、以下、「Z」には「25」とみなして適用するシフトを付与する単語又は文である。鍵は、暗号化するテキストの終わりまでループする。
この手法は、第1次世界大戦中にGilbert S.Vernamによる「印刷電信機」(テレタイプライタ)(米国特許第1,310,719号)に採用された。このシステムにおいて、文字はBaudotコードを用いて2進法でコード化されている。これは、2つの記号及び実行可能な2つのシフト、つまり、何もないか、又は「その他の記号へのシフト」のみが存在していることを意味している。また、鍵をテープに付与すると、もはや鍵を記憶する必要がなくなったため、ランダムシーケンスが使用され始めた。
最初に成功したVigenere暗号に対する攻撃は、Friedrich Kasiskiにより実行され、また、より効果的な攻撃は、William Friedmanによって考案された。双方の手法とも、鍵が繰り返し何度も使用されるという事実に付け込んだものであった。
これらの手法に対抗するために、少なくとも暗号化するテキストと同じの長さの鍵を使用することが考案された。このような鍵を見出すための最良の方法は、(当然、敵には知られていない)ブックを使用することであった。しかしながら、この種の暗号は、鍵が意味を有していたため依然として解読可能であった。
この問題に対する解決策は、米国陸軍少佐のJoseph O.Mauborgneにより見出された。彼は、Vernamのシステム及びそのランダム鍵に関する情報を得ると、暗号化するテキストと同じ長さのランダム鍵をセットすることにより、かつ、それぞれのランダム鍵を一度だけ使用すべきであると定めることにより、上記解決策を完成させた。
このようなシステムは、ワンタイムパッドとして知られており、かかる暗号システムを完全に破ることは不可能であることが正式に証明されている。しかしながら、鍵を一度だけ使用するという条件を課すことは、実際、かかる完全証明された暗号システムが滅多に使用されない理由であり、膨大な数のランダム鍵を生成しなければならないという事実の他、安全なチャネルを介して受信者に鍵を送信することが大きな問題である。このことは、「鍵配送問題(key distribution problem)」と称されている。かかる安全なチャネルが存在すると考えられる場合、先ずランダム鍵を送信し、それから暗号化メッセージを送信するのではなく、明らかに、当該チャネルを使用して、当該チャネルを介して直接メッセージを送信するであろうと思われる。
この問題を解決するための1つの試みとしては、非常に短いランダム鍵を使用し、当該ランダム鍵をループする代わりに当該ランダム鍵から擬似ランダムシーケンス(全ての要素が、計算の(複数の)先行要素及び/又は(複数の)先行状態から計算されるシーケンス)を計算することである。通常、公開鍵暗号法(以下を参照のこと)を使用して、この短いランダム鍵を受信者に送信し、当該ランダム鍵から生成した擬似ランダムシーケンスを、暗号鍵として使用する。この種の暗号システムは、「ストリーム暗号」と称される。
ストリーム暗号は、まるでワンタイムパッドのように、テキストと同じ長さの、意味を有さない鍵を提供する。しかしながら、ワンタイムパッドとは対照的に、鍵の要素が互いに関連し合っているという事実がシステムを劇的に弱め、結果的に暗号解読者が暗号を破ることを可能とする。つまり、(可能性のある全ての鍵を順次試す)ブルートフォース攻撃の場合には、試される鍵はより少なくなり(通常の長さの鍵ではなく短い全ランダム鍵のみ)、計算された鍵の文字間の相関により、(もしあるとすれば)さほど多くの偽鍵が可能とはならない。
また、「短い」ランダム鍵を使用する暗号システムの別の群としては、「ブロック暗号」の群が挙げられる。ここでは、データを、固定長のブロックへと切り捨て、数回暗号化する。毎回(それを「ターン」と呼ぶ)、ターン毎に異なる鍵を用い、いくつかの手法(転置及び換字)を使用してブロックを暗号化し、規定のアルゴリズムを使用しこれら全ての鍵を短いランダム鍵から計算する。ターンの回数により、従来の手法を使用した暗号解読を防止するようになっている。しかしながら、ワンタイムパッドと比較した場合、ブルートフォース攻撃に対するストリーム暗号と同一の問題を有している。
公開鍵暗号法では、データを符号化するために、秘密鍵の代わりに、(例えば、膨大な数字の因数分解のような)今も解かれていないある数理問題を使用している。公開鍵を用いるこの暗号システム群の基本原理は、暗号鍵と復号鍵とを分けることであり、(メッセージの復号には使用不可能であるため)暗号鍵を公開し、潜在的な送信者へと付与し、復号鍵を秘密とし受信者側で保持することにより、一方向性の通信チャネルを構築する(したがって、2人の個人間に双方向性のチャネルを有するためには、一方が2つの一方向性チャネルを生成する必要があり、2つの公開鍵及び2つの秘密鍵を作成することとなる)。
このように、テキストと同じ長さの秘密鍵を送受信するための安全なチャネルをもはや必要としないため、このスキームにより、「鍵配送問題」を解決することができる。しかしながら、これらの暗号システムは、通常、時間がかかるものであることから、実際には、(短い真ランダム鍵のような)非常に短いデータを符号化するためにのみ使用され、長いデータに対しては、(送信した短いランダム鍵を使用する)前述の暗号システムを使用して符号化する。
しかしながら、ワンタイムパッドとは対照的に、暗号システムのベースとなる数理問題を誰も(秘密裏に)解き明かしていないということを証明することは不可能であるため、公開鍵暗号法は無条件に安全というわけではないことを理解すべきである。
したがって、技術及び暗号解読手法の進化に対抗できる完璧に安全な暗号システムを有するために、ワンタイムパッドよりも無条件に安全で、かつ「鍵配送問題」を生じない、暗号システムが依然として求められている。
鍵として1つ又はいくつかのランダムシーケンス、例えば、処理するデータと少なくとも同じ長さの鍵を使用して、データを暗号化(別名、符号化)、又は暗号化データを復号(別名、復元)するための、新規の暗号スキームを(その実装及び実施形態の一部と共に)ここに開示する。本開示の暗号プロセスは、1つ又はいくつかのランダムシーケンス生成プロセスを含み、そのうち1つは暗号化プロセスであり、1つは復号化プロセスである。暗号化プロセスと復号化プロセスの双方は、ランダムシーケンス生成プロセス由来の(複数の)ランダムシーケンスを使用して、データを(それぞれ)暗号化及び復号する。
基本的な方法において、1つのランダムシーケンス生成プロセスは、少なくとも1つの擬似ランダム生成プロセス及び1つのランダムマッピングプロセスを含む。擬似ランダム生成プロセスは、ランダムマッピングプロセスへ擬似ランダムシーケンスを送信する。ランダムマッピングプロセスは、擬似ランダムシーケンスを使用して、ランダムシーケンスを生成し、ランダム転送マップを使用して、擬似ランダムシーケンスの要素をランダムシーケンスのランダム要素へと変換する。実際には、このランダム転送マップは、データを暗号化及び復号することを許可された人々にのみ提供される。
より複雑な方法において、1つのランダムシーケンス生成プロセスは、1つ又はいくつかの擬似ランダム生成プロセス、及びいくつかのランダムマッピングプロセスを含んでいてもよい。1つの擬似ランダム生成プロセスは、その出力を1つ又はいくつかのランダムマッピングプロセスへ送信することができる。1つのランダムマッピングプロセスはまた、1つ又はいくつかの他のランダムマッピングプロセスからの出力を入力として受信することも可能であり、更にプロセス自体の出力のフィードバックを受信することも可能である。同様に、ランダム転送マップは場合により、暗号化セッション毎に変換されてもよい。
本開示の暗号プロセスは、いわゆる「暗号化構造(cryptostructure)」上にいくつかの方法で具体化可能であるが、当該暗号化構造は、適切なソフトウェアを備えたコンピュータ(デスクトップ、ラップトップ、ワークステーション、又はタブレットコンピュータ及び携帯電話を含む任意のもの)のみならず、現存している若しくは今後開発されるマイクロコントローラ、埋め込み式電子装置、専用電子回路、スマートカード、又はこれらの同等物のうち任意のものもまた含む(この「暗号化構造」の定義は、請求の範囲を含む本明細書全体において適用するものとする)。
(優位性)
本開示の暗号プロセスは、1つ又はいくつかのランダムシーケンスを鍵として使用する。現在に至るまで、このようなランダムシーケンスは再現不可能なように生成されていたため、ワンタイムパッドシステムが直面する鍵配送問題の要因となっていた。これはランダム性に関する誤解によるものであり、人々はこの誤解により、ランダムシーケンス生成器を用いて同一の(真)ランダムシーケンスを数回再現させることができなくなっている。再現可能なかかる生成器を本明細書において開示する。
多くの人々にとって、ランダム性とは、あらゆる規則から完全に免れるカオス現象から生じるもので、完全に予測不可能な結果をもたらすものである。実際に、カオス現象があらゆる規則に従わないとする場合、カオス系への同期は不可能となり、実験では全く正反対の結果を示すこととなる。
更に、サイコロを振る場合或いは不透明なバッグからカラーボールを引く場合、その結果はランダムであるとみなされる。しかし、バッグが不透明ではないとしたら、或いは、サイコロを全く同一の方法つまり同一の力かつ同一のエネルギー量を用いて振るとしたら、プロセスの完全な制御が存在し、望み得る結果がもたらされるため、その結果は、もはやランダムであるとはみなされないだろう。
したがって、ランダム性を結果の予測不可能性として定義することができ、これは、実際には、暗号化に使用されるランダム性の特性そのものである。この不確実性を得るためには、この結果は、完全な制御を有しないプロセスから生じなければならない。結果として、シーケンスが生じる生成プロセスにおいて幾分の制御も欠く限りは、あらゆるシーケンスがランダムであると演繹することができる。
したがって、制御されたプロセスと制御されていないプロセスとの混合からランダムシーケンスを得ることが可能であり、制御されていないプロセスは、シーケンスのランダム性を保証することが可能である。本明細書において開示する暗号プロセスでは、制御されていないプロセス由来の結果として生じるデータを有する者(及び有する者のみ)が再現可能な特徴を提示するランダムシーケンスを生成するために、いくつかの制御されたプロセスと制御されていないプロセスとの組み合わせを使用する。したがって、このようなランダムシーケンスを、ワンタイムパッドと同じ強度を有する暗号システムを生成するために使用することができ、これらの「一度だけの鍵」が実際には(本明細書において、メッセージングシステムの場合に例示として使用する)通信チャネルの両側で生成されるため、膨大な量の鍵を配送する必要性はない。
ここでは、制御されていないプロセス由来の結果として生じるデータのみが配送される必要がある。実際のところ、この暗号プロセスを使用することにより、無条件に安全な通信チャネルを実装可能であることが、本明細書の記載により理解されるだろう。このように、これらの鍵を(一旦確立されると)このチャネルを介して送信することが可能であるため、「鍵配送問題」は解決される。したがって、我々は、(「鍵配送問題」がなくなるわけではないが、)鍵配送問題が極めて些細であり、無条件に安全であり、利用可能な最も有用な暗号システムの1つを付与する、最も強力な暗号システムの1つを有することとなる。
本開示における暗号プロセスの基本的なオペレーションを示すフローチャートである。 任意選択的な機構を有するランダムシーケンス生成プロセスの内部オペレーションを示すフローチャートである。任意選択的なフローを破線で表す。
詳しい説明をより容易に理解するために、いくつかの図面を本明細書と共に提供する。しかしながら、全てのケースを1つの図面に統合することは不可能であった。それゆえ、発明を実施するための形態は、図面に明確に記載しない変形例を提示するものとする。実際、図面は、基本原理を視覚化するための一助となる。
ここで、様々な実施形態を説明する。本開示の暗号プロセス及びその実施形態の特徴に傾注することとする。したがって、当業者にとって既知である、暗号プロセスの強度を向上させるための全ての手法(冗長性を最小限に抑えるためのデータ圧縮、シーケンスのランダム性を増大させるための、連続的に入力し擬似乱数的に選択するバッファテーブルの使用等)については言及せずに、本開示の暗号プロセス及びその実施形態に対する有効性について示唆する。
(暗号プロセス)
装置の実施形態は、(通常)データの暗号化又は暗号化データの復号を行うために、暗号システムを実装し、本明細書で開示する新規の暗号プロセスを以下で説明する。本発明の暗号プロセスは、1つ又はいくつかのランダムシーケンス生成プロセス1(図1を参照のこと)、暗号化プロセス2、及び復号化プロセス3を使用する。ランダムシーケンス生成プロセス1は、1つ又はいくつかの擬似ランダムシーケンス生成プロセス6(図2を参照のこと)、及び1つ又はいくつかのランダムマッピングプロセス7に基づいている。
擬似ランダムシーケンス生成プロセスは、線形合同法(Linear Congruential Generator)アルゴリズム(又は、その群の一部)、逆数合同法(Inversive Congruential Generator)アルゴリズム(又は、その群の一部)、線形帰還シフトレジスタ(又は、一般化帰還シフトレジスタ)アルゴリズム、Blum Blum Shub擬似ランダム生成器アルゴリズム、(例えば、米国特許第5,048,086号を参照されるロジスティック差分方程式のような)1つ又はいくつかのカオス方程式に基づいたアルゴリズム、(例えば、米国特許第6,078,665号を参照されるLorentz系のような)1つ又はいくつかのカオス方程式系に基づいたアルゴリズム、(例えば、ジュリア集合又はマンデルブロー集合のような)フラクタル方程式に基づいたアルゴリズム、若しくは、これらのうちのいずれか、ハッシュ関数を用いて出力をハッシュするその他の擬似ランダム生成アルゴリズム、開発者により所望された任意の擬似ランダム生成アルゴリズム(後ほど説明する混合演算、又は、いくつかの出力に由来する文字に対する任意の演算等を使用する)、又は、これらのうちのいくつかの任意の組み合わせを使用することができる。
「ランダムマッピングプロセス」とは、マップ選択プロトコルを使用して、受信シーケンス由来のそれぞれの文字を発信シーケンスのランダム文字へとマッピングするために、「ランダム転送マップ」4と称するランダムな文字列を使用するプロセスである。「マップ選択プロトコル」とは、入力データ由来のシーケンス中の要素を選択する方法であり、その方法は、例えば、モジュロインデックス化、正規化インデックス化、n次元テーブルインデックス化、微調整したn次元テーブルインデックス化又はシーケンス(ここでは、ランダム転送マップ)からどの文字を選択するかを決定するために、1つ又はいくつかの文字を入力として使用する任意のアルゴリズムである。
モジュロインデックス化プロトコルは、入力文字を数字として使用することにあり、この数字は、出力文字を選択するシーケンス中のランクを示すこととなる。入力文字が数字でない場合、(ASCII、ANSI又はUnicodeのような)いくつかのコード体系内におけるコーディング数字を入力数字としてみなすことができる。入力数字が(シーケンスの要素数である)シーケンスのサイズよりも大きい場合、シーケンスのサイズによるランク数字のユークリッド除法の剰余を使用する(故にモジュラ算術演算であるため、「モジュロ」)。
正規化インデックス化プロトコルは、モジュロ演算の代わりにランクがシーケンスのサイズに正規化されることを除いて、モジュロインデックス化プロトコルと類似している。これは、ランクを出来る限り最上位ランクで除してから、その計算結果にシーケンスのサイズを乗じることを意味する。ランク番号が1から始まる場合、その計算結果を切り上げ、又は、ランク番号が0から始まる場合、その計算結果を切り下げる。
n次元テーブルインデックス化プロトコルでは、シーケンスは、n次元を有するテーブルからの一連の線分としてみなされる。これは、シーケンスのサイズが、それぞれの次元において、テーブルのサイズの積でなければならないことを意味する。このプロトコルは、テーブル内で文字座標を選択する際、数字とみなされるn個の受信文字を使用する。
微調整したn次元テーブルインデックス化プロトコルは、選択する文字座標の計算方法以外は、n次元テーブルインデックス化プロトコルと類似している。ここでは、演算がテーブルの次元内に座標を与える限り、入力文字に対して行われる任意の演算が適合することとなる。例えば、モジュラ算術、「排他的論理和」のような論理演算、又は(DESのSボックスのような)数字を形成するための選択ビットの選択を挙げることができる。
本実施形態は、通常、いくつかのマップ選択プロトコルを提供し、使用するプロトコルをユーザに選択させる。しかしながら、マップ選択プロトコルによって文字を選択するために使用する文字インデックス法は、ランダム転送マップの生成中に使用する方法とは異なる場合があるということに留意すべきである。例えば、ANSIのランダムな文字列を生成し、その後、マップ選択プロトコルにおいて当該ランダムシーケンスをビットのシーケンスとみなすことが可能であり、逆の場合もまた同様である。実際、これにより、ランダムマップ作成プロセスを、出力ランダムシーケンスに必要な文字型から完全に分離することが可能となる。
ランダムマッピングプロセス7の受信シーケンスは、擬似ランダム生成プロセス6から得られる擬似ランダムシーケンス(プロセスの出力の(以下で定義する)「混合演算」を出力として使用した、いくつかの擬似ランダムシーケンス生成プロセスの組み合わせは、実際、1つの擬似ランダムシーケンス生成プロセスとみなされることに留意すべきである)、前のランダムマッピングプロセス8から得られるランダムシーケンス、いくつかの前のランダムマッピングプロセス8から得られるいくつかのランダムシーケンスの(プロセス文字の「混合演算」を使用する)組み合わせ、又は、これらの可能性のうちの(プロセス文字の「混合演算」を使用する)いくつかの組み合わせであり得る。
「混合演算」とは、開発者が望む入力文字に対する「排他的論理和」、モジュラ加算、モジュラ減算、連結、Vigenere暗号化、Beaufort暗号化、換字式暗号法、モジュラ線形結合法、任意の演算又は演算シーケンスのことを意味し、この計算により、結果として1つの文字又はいくつかの文字のシーケンスが与えられる。この定義は、本明細書全体(明細書、請求の範囲、要約書)に対して適用するものとする。
いくつかの代替的な実装において、受信シーケンスは、上記で説明した受信シーケンス及び真性ランダム(very random)マッピングプロセス7の発信シーケンスの両方から、フィードバックとして得られる。これらの代替的な実装のうちのいくつかにおいて、その他の受信シーケンスの次の文字が処理される前に、フィードバックは、所定の回数、(ランダムマッピングプロセス中に)ループで処理される。これらの代替的な実装のうち他の実装では、フィードバックの文字は、「混合演算」を使用して、(複数の)その他の受信シーケンスの文字と組み合わされる。これらの他の代替的な実装のうちのいくつかにおいて、フィードバックは、所定の文字数だけ遅延する。いくつかのその他の実装において、前述し提供した構成のいくつか又は全ては、どの構成を使用するかをユーザに選択させるいくつかの実行可能な「回路」を含む。また、いくつかの実装においては、ユーザはこの回路を設計することさえできる。
「回路」とは、ランダムシーケンス生成プロセスの内部プロセス(擬似ランダムシーケンス生成プロセス及びランダムマッピングプロセス)の出力及び入力が、互いに接続している方法を意味する。回路はまた、どのランダムマッピングプロセスの出力をランダムシーケンス生成プロセスの出力として使用するかを特定する。
ランダム転送マップ4とは、「ランダム性生成」9により生成されたランダムな文字列のことであり、当該マップは、本実施形態のランダムマッピングプロセス7へと提供される。このランダム転送マップは、本発明のランダムシーケンス生成器の(当業者には「エントロピー」としても知られている)ランダム性の源である。発明者は、ランダム性が2つの事柄、つまり、予測不可能性及び制御の欠如を示唆することを理解した。予測不可能性とは、ランダム転送マップを秘密に保持し、かつ、「敵」にアクセス不能な状態にする必要があることを示唆する(また、ユーザにもアクセス不能な状態にすることが推奨される)。制御の欠如は、ランダム性生成を定義可能な条件を示唆する。
「ランダム性生成」とは、文字を生成するために、数学又は計算を使用せずに(又は全面的には使用せずに)、1つ又はいくつかの制御されていない現象を使用する生成のプロセスである。このプロセスの最も明白な実施形態のうちのいくつかは、ハードウェアによる「真」ランダム生成器である。このようなハードウェアは例えば、(「ランダム性抽出」として知られている)アルゴリズムによって後処理されるランダム値の源として、電子ノイズを使用する。別の例としては、放射性物質の各分解の間の時間を測定するという、より稀なハードウェアが挙げられる。
実施形態の別の群は、一切合理的選択をすることなく選択されるテキスト10(又は、コンパイルされたプログラムバイナリ若しくはファイル)を、ランダム性の源として使用する。実際のところ、秘匿されたテキストにおいて、どの文字が決定された場所に存在するのかを知ることは誰にもできない。しかし、通常、テキストは、「換字演算」を用いて1回又は数回、後処理される。本実施形態は後処理するべきであるため、後処理は通常、再現可能でなければならない。たとえ換字演算ではないにしても、極めて周知の後処理は、データを複数のビットブロックに分け、それからこれらのブロックをハッシュ関数(いわゆる「一方向性関数」であり、関数を用いて特定サイズのビットの結果を容易に計算することができるが、妥当な時間内にその計算結果から関数の入力を特定することはできない)を用いて処理することである。
換字演算とは、特定されたプロトコル及び、通常は外部データを使用して、1つの文字を別の文字へと置換するプロセスである。外部データとしては、別のテキスト由来の文字、無作為にタイプされループで使用される文字又は任意の他のデータ源であってもよい。特定されたプロトコルは、テキストの文字と外部データとの間の1つ又はいくつかの(上で定義したような)「混合演算」、外部データを(複数の)鍵として使用した(ブロック暗号、ストリーム暗号又は任意のものによる)テキストの暗号化、若しくは、更により複雑なプロトコルであってもよく、又はこれらのうちのいくつかの組み合わせであってもよい。特定されたプロトコルが、上記に記載した再現性の条件に従っていることに留意されたい。
いくつかの実施形態では、ランダムシーケンス生成プロセス1は、また、ランダム転送マップ変換プロセス11を含む。このプロセスは、提供されたパラメータ(無作為にタイプされた文字、無作為に生成した文字又は任意のデータ)及び1つ又はいくつかの混合演算を使用して、提供された(「一次ランダム転送マップ」と称することとなる)ランダム転送マップを、(「二次ランダム転送マップ」と称することとなる)別のマップへと変換する。二次ランダム転送マップが、(それぞれのパラメータの文字を有する一次ランダム転送マップのそれぞれの文字に対して、(複数の)混合演算を適用し、全ての一次ランダム転送マップが処理されるまでパラメータをループすることにより)生成され、一次ランダム転送マップの代わりにランダムマッピングプロセスにより使用されることとなる。このような機構は、通常、暗号化セッション毎に提供された異なるパラメータで使用され、通常1つのセッションのランダム転送マップ変換毎に異なるパラメータで使用される。
いくつかの代替の実施形態では、(ちょうど本明細書で開示するプロセス1のような)ランダムシーケンス生成プロセスは、一次ランダム転送マップを二次ランダム転送マップへ変換するために使用されるが、当該プロセスは、専用の別個のプロセスであってもよく、或いは、暗号化プロセス及び/又は復号化プロセスにより使用されるプロセスの一部(又は、全体)であってもよい。この構成では、提供されたパラメータを使用して、ランダムシーケンス生成プロセスを開始し、生成したランダムシーケンスを使用して、混合演算を使用して一次ランダム転送マップを変換する。いくつかの代替の実施形態では、一次ランダム転送マップを変換する代わりに、生成したランダム出力を直接二次ランダム転送マップとして使用する。
いくつかの実施形態では、ランダムシーケンス生成プロセス1は、また、擬似ランダム生成プロセス6のために、(シーケンスの計算を開始するために擬似ランダムシーケンス生成器が必要とする開始データであり、これらのデータの値は、シーケンスの文字に影響を及ぼす)シード5を計算する、シード生成プロセス12を含む。シード生成プロセス12は、提供又は選択された文字に対して「シード計算アルゴリズム」を使用するが、かかる選択された文字は、場合により、コンピュータメモリ又は1つ若しくはいくつかのランダム転送マップ4の一部から得られる。「シード計算アルゴリズム」とは、(複数の)シードとして使用する(複数の)ある値を出力するために、入力文字に対して、算術演算、混合演算、若しくは任意の演算等、又は、これらのうちのいくつか(又は全て)の組み合わせを使用するアルゴリズムである。
少なくとも暗号化プロセス2及び復号化プロセス3の両方を、同一の暗号装置或いは別々の暗号装置で実施することができる。シード計算アルゴリズムは、あらゆる暗号スキーム、つまり、Vigenere暗号、Beaufort暗号、ブロック暗号、ストリーム暗号又は開発者が望む任意の暗号スキームを使用することができる。シード計算アルゴリズムは、また、ランダムシーケンス生成プロセスが必要とする任意の数の鍵を使用することができる。実際のところ、暗号化プロセス及び復号化プロセスの両方は、いくつかの鍵(通常は別々の鍵)を使用し、数回データを処理することができる。
(暗号装置)
実施形態の1つの群では、独立型若しくはネットワーク接続型の1つ若しくはいくつかのコンピュータ、タブレットコンピュータ又は携帯電話は、データを暗号化又は暗号化データを復号するために、ソフトウェアを使用し、上で開示した暗号プロセスの後に、暗号化プロセス2及び復号化プロセス3は、両方とも同一のコンピュータ上(以下において、単語「コンピュータ」は、また、タブレット及び携帯電話を含むこととなる)に存在するか、又は、(両方のコンピュータはランダムシーケンス生成プロセスを有する)別々のコンピュータ上に存在する。ソフトウェア内の暗号プロセスの実装は、明白である。
装置の実施形態の第2の群では、専用電子回路は、上で開示された暗号プロセスを実装する。このような回路は、いくつかの部分からなり、それぞれの部分は、上記の暗号プロセスの工程のうちの1つを実装する(ランダムシーケンス生成プロセス1を実装するためのランダムシーケンス生成器、データ暗号化プロセス2を実装するための暗号化部(cipherer)、暗号化データの復号化プロセス3を実装するための復号部(decipherer)、擬似ランダムシーケンス生成プロセス6を実装する1つ又はいくつかの擬似ランダム生成器からなるそれぞれのランダムシーケンス生成器及びランダムマッピングプロセス7を実装する1つ又はいくつかのランダムマッパユニット(mapper unit))。
本開示の暗号プロセスの後、擬似ランダム生成器及びランダムマッパユニットは、回路内において共に接続される。この回路は、通常、ハードウェアであるが、論理的に又はソフトウェアで切り換える回路のいくつかの実施形態を後に参照することとする。ハードウェアのケースでは、1つ又はいくつかの回路が提案可能である。これらの回路は、切り換え可能であるか又は並行して動作可能である。
それぞれのランダムマッパユニットは、ランダムマッパユニット内部の(例えば、メモリ又はフラッシュカードのような)記憶ユニット内に記憶されている、(前に定義されたような)提供されたランダム転送マップ4を使用するが、このランダム転送マップは、(前に定義及び前述したような)ランダム性生成9により生成される。
ある代替の実施形態では、ランダムシーケンス生成器のそれぞれは、また、ランダム転送マップ変換プロセス11を実装するランダム転送マップ変換器を備える。
いくつかの実施形態では、いくつかのマイクロコントローラも組み込んだ電子回路は、(他の物との間に)いくつかのプログラマブルマルチプレクサを実装可能であるが、以下のことを可能とする。それぞれのランダムシーケンス生成器1内部の回路をプログラムすること、暗号スキームを選択するために、暗号化回路を選択すること(又はその回路の計算アルゴリズムを実装すること)、復号に関する同一のこと、生成アルゴリズムを選択するために擬似ランダム生成器を選択すること(又はその生成器の計算アルゴリズムを実装すること)等。
いくつかの実施形態では、シード生成プロセス12が、シード生成器により実装されている。通常はハードウェアに実装されるが、マイクロコントローラで実行させるために、ソフトウェアに(部分的又は全面的に)実装することも可能である。同様に、いくつかの実施形態では、ハードウェア内部の場合もあるが、通常、マイクロコントローラを備えたソフトウェア内部において、ランダム性生成9が実装される。
本明細書に記載する暗号プロセスを実装するいくつかの他の種類の装置の実施形態もまた存在する。実装する機構の量は、実施形態で使用する構造の容量及び計算能力によって決まる。
1つの種類の実施形態は、暗号システムがマイクロコントローラ上に実装されるものである。それは、第1の群の実施形態のある種のポケットの実装(pocket implementation)である。暗号プロセスは、通常、マイクロコントローラ上のソフトウェア内に実装されるが、当該マイクロコントローラは多少の電子回路と接続し、データ入力用のボタン、ジョグホイール及びその他のデバイス並びにUSBデータストレージ又はインターネットアクセス用のいくつかのプラグを備える(が、Wi−Fiも搭載可能である)。操作に関し、ユーザは、マイクロコントローラ上のソフトウェアと対話するためのデータ入力に、デバイスを使用する。
別の種類の実施形態は、スマートカードに関するものである。暗号プロセスは、(限られた容量及び計算能力を有する)チップに搭載されたソフトウェア内に実装される。開発者は、(スコープステートメントにより求められるものに応じて)どの機構をチップ上に実装するかを注意深く選択するべきである。このような実施形態は、例えば、本人確認又は銀行の取引若しくは引き出しに使用することができる。これらの実施形態は、スマートカードを使用するかのように実行される。
前述した種類の実施形態の両者の組み合わせは、ある種のUSBキーに関するものであり、USBキーは、フラッシュメモリの代わりに、通常、スマートカード等の小さなチップが一緒に組み込まれた一部の電子部品である。それは、実際には、暗号化用途に使用するコンピュータ用のUSBプラグ及び再生デバイスである。それらの動作は、明白である。
特殊な種類の実施形態は、暗号システム生成器(cryptosystem maker)であるが、当該生成器は、コンピュータメモリ内に搭載すると、コンピュータに本開示の暗号プロセスを実行させるように構成されたコンピュータプログラムコードを格納するストレージユニットである。このようなストレージユニットは、「記憶媒体」と称されるものを使用して製造される。「記憶媒体」は、ハードドライブ、USBキー、CD-ROM、DVD−ROM、フラッシュカード又はコンピュータプログラムコードを記憶可能な任意のもの及びコンピュータシステムがこのプログラムコードをメモリへロードするためにアクセス可能な任意のものである(この「記憶媒体」の定義は、請求の範囲を含む本明細書全体において適用するものとする)。
(実施形態のオペレーション)
装置の実施形態の第1の群のオペレーションに関して言えば、(タブレット及び携帯電話を含む)コンピュータの設定は、当業者にとって明白であり、それは、つまり、適切なソフトウェアをコンピュータへ提供し、コンピュータは、コンピュータのメモリへソフトウェアをロードすることである。それから、このプログラムにより、本開示の暗号プロセスをコンピュータに実行させるように構成することとなる。
コンピュータの設定後、ランダム転送マップをランダムシーケンス生成プロセスへと提供する。これらのランダム転送マップは、データへのアクセスを許可されたユーザのコンピュータにのみ提供されるべきである。実施形態がランダム転送マップ生成プロセスを実装する場合、処理セッションのパラメータが生成プロセスへと提供され、ランダム転送マップから二次ランダム転送マップが生成され、その後、ランダムシーケンス生成プロセスにおいて、ランダム転送マップがその対応する二次ランダム転送マップと置き換わる。(他の新規セッション中、他のセッションパラメータからの)他の二次ランダム転送マップを生成するために使用可能とするために、一次ランダム転送マップは、どこに格納されていてもよい。
動作させたいデータをコンピュータへ提供する。データは、既にハードドライブ上(又は任意の他のドライブ上)にあってもよく、或いは、ネットワークから受信してもよいが、データは、コンピュータのメモリ内へとロードされる。(実装に応じて)1つ又はいくつかのランダムシーケンス生成プロセスは、(暗号化/復号化プロセスに必要な鍵の数に応じて)処理するデータと同一の長さの1つ又はいくつかのランダムな文字列を生成する。
このタスクに関して、(必要なシードの数に応じて)1つ又はいくつかのシードが擬似ランダムシーケンス生成プロセスへ提供され、それから発信擬似ランダムシーケンスが(複数の)ランダムマッピングプロセスへと送信されるが、ランダムシーケンス生成プロセスにより最後の発信ランダムシーケンスが暗号化プロセス(又はタスクにより復号化プロセス)へと送信されるまで、(複数の)発信ランダムシーケンスは実装した「回路」に従う。
このプロセスでは、データをメモリから取り出し、実装したアルゴリズムを使用してデータを暗号化(それぞれ復号化)し、メモリへとデータを返送する。次に続くのは、データに対して何をしたいかによる(ハードドライブ上に若しくは任意の他のドライブ上にデータを記憶するか又はネットワークを介し離れた受信者へとデータを送信するか等)。
ランダム転送マップをランダムシーケンス生成器へ提供するいくつかの方法がある。すなわち、(例えば、信頼できる人物が送達又は配送する)USBキー又はシリアルナンバーが付いたCD-ROMを使用して、ランダム転送マップを暗号装置(コンピュータ等)へと物理的に転送してもよく、本開示の暗号プロセスを使用して符号化した安全なチャネルを使用して、(例えば、ネットワークを介して)データを送信してもよく、暗号装置上でデータを生成してもよい。物理的に転送したマップの場合、ランダム転送マップは、(例えば、ハードウェア上の「真」のランダム生成器を使用して)どこかに生成され、それから「権限のある」ユーザの暗号装置(例えば、ドライブ上、CD-ROM上又はUSBキー上)へと転送され、最終的に装置内へ適切な場所へ転送される。重要な用途においては、この場所を、認可管理者以外のユーザには、アクセス不能な状態にしておく方がよい。
このような方法及び後ほど参照するその他の設定を用いれば、符号化されたチャネルを(例えば、ネットワークを介して又はあらゆる通信手段を介して)実装することが可能となり、このことは、データが符号化された双方向性通信を意味する(用語「安全なチャネル」もまた当業者は使用する)。このようなチャネルは、(暗号文単独攻撃に対して)無条件に安全であるため、それ故に、物理的な転送の代わりに当該チャネルを使用して、必要に応じて新規のランダム転送マップを転送することが可能となる。
ランダム転送マップがコンピュータへ転送されない場合、ファイルを選択し、通常は搭載された換字演算を使用してファイルを変換する。データのうちのいくつかを符号化したい単一ユーザにとって、ファイルは、自身のドライブ上又はインターネット上のあらゆるファイルであってもよく、それはつまり、データの復元を可能にするために、使用したファイル及び外部データがどれであるかを記憶しておけばよいだけである。共通データを使用及び送受信する数人のユーザがいるネットワークでは、同一のランダム転送マップを生成可能とするためには、全員が同一のデータを有していなければならない。これは通常、選択する(複数の)ファイルの(複数の)アドレス(インターネットのURL又はファイルシステムパス)を他のユーザのうちの1人又は全員に送信することで行われ、また場合により、例えば、公開鍵暗号法又は後ほど説明する無条件に安全なチャネルを使用して、外部データを残すことにより行われる。したがって、受信者のそれぞれは、自身のコンピュータに自身の適切なランダム転送マップを計算させる。
本実施形態において機構を実装する場合、コンピュータに搭載したランダム転送マップの生成に使用する同一の手順は、二次ランダム転送マップの生成に必要なパラメータに対して使用される。この場合、回路、ファイル又は外部データ(無作為にタイプされた文字、無作為に生成した文字、又は任意のデータ)は、(上記で参照した方法を用いて)ランダム転送マップの全てを送信する必要なしに、それぞれの暗号化セッションにおいて新規のランダム転送マップ(二次ランダム転送マップ)を生成するために、ランダム転送マップ変換プロセスにより使用される。
この機構の利点は、ファイル又は外部データが通常、ランダム転送マップのサイズよりもかなり小さいサイズを有しているという点であり、また1つの外部データ群を全てのランダム転送マップの変換に使用してもよく、それによりランダム転送マップの変更のための通信がより短くなる。実際のところ、既に出力したシーケンスを生成することを防止するために、擬似ランダムシーケンス生成プロセスがループバックする前に、ランダム転送マップは通常、変更される。したがって、データ処理に必要な長さが、擬似ランダムシーケンスの最大長(ランダムマッピングのフィードバックを使用する場合、実際にはランダムシーケンスの最大長)を超過していないことを確認する必要があるので、それぞれの暗号化セッションの前にランダム転送マップを変更することにより、擬似ランダムシーケンス生成の管理を簡略化することが可能となる。
擬似ランダムシーケンス生成プロセスに必要なシードを提供するために、いくつかの方法が可能である。例えば、データの符号化を望む単一ユーザに関して、ソフトウェアが、(ユーザは正確に記憶する必要がある)ユーザが使用したいシードの入力をユーザに求める場合もあり、或いは、最初の文字、最後の文字、又は(開発者により)事前に定義された文字がシードとして使用されるファイル(圧縮されている若しくは圧縮されていない、テキストファイル又はバイナリファイル)をユーザに要求する場合もある。しかし、別の方法としては、1つ又はいくつかのランダム転送マップの少しの部分(通常マップの終端)、つまり、ランダムマッピングプロセスによっては使用されずにシードとして使用されるデータを保存することであり、或いは、(シードの値と共にシード生成プロセスを使用して)シードを計算することである。この最後の方法の利点は、ユーザがシードについて注意を払う必要がないということである。ランダム転送マップ変換プロセスを実装した場合、ランダム転送マップの保存部分もまた換字演算により変換されるため、セッション毎にシードが変更されるということもまた理解できる。
複数ユーザの構成においては、上記で説明したシード生成のための、(複数の)ランダム転送マップにおける保存された部分の方法もまた実装可能である。実際のところ、ランダム転送マップ変換プロセスの実装とランダム転送マップの物理的転送とを組み合わせて、(擬似ランダムシーケンス生成プロセスへとシードを提供するための)この方法を使用することにより、(前述した通り)ネットワークに亘って無条件に安全な通信チャネルを構築することが可能となる。ランダム転送マップが無作為に生成され(故に、文字のあらゆる可能な組み合わせのうち任意であり得る)、かつ任意のサイズであってもよいので、擬似ランダムシーケンス生成アルゴリズムが多くのアルゴリズムのうちの1つであり、かつシードが未知であり得るため、或いは、ランダムシーケンス生成プロセスにより内部で使用される「回路」がかなり多くの回路のうちの1つであるため、「敵」は暗号プロセス内部で何が起こっているのかを知る手がかりを持たず、またワンタイムパッド同様、敵にとって、任意の文字の組み合わせが暗号鍵となり得る同一の確率を有する。
ランダム転送マップ変換プロセスのパラメータを見ることは、ランダム転送マップがランダムでありかつそのサイズが未知であるため、擬似ランダムシーケンス生成アルゴリズムが未知であるため、シードの変換が未知であるため、選択されたランダムシーケンス生成プロセスの内部回路が未知であるため、ランダム転送マップ変換プロセスが使用する(複数の)混合演算が未知であるため、使用する暗号化プロトコルが未知であるため、及びその他のいくつかのパラメータが未知であるため、敵にとっては何の助けにもならない。したがって、本発明の特定のケースでは、ランダム転送マップ変換プロセスのためのこれらのパラメータを、暗号化する必要なしにその他のユーザへ送信することが可能となる。
また、本発明の特定のケースでは、依然として、これらのパラメータが通信セッションの開始に必要なデータにすぎないため、システムは無条件に安全であり、例えば、新規のランダム転送マップのようなあらゆるその他の必要なデータは、安全なチャネルを介して送信可能である。したがって、システムの設定には物理的な転送のみが必要である。例えば、ランダム転送マップ(場合によりシード)を含むシリアルナンバー付きCD−ROMを使用することにより、この転送が実行可能となるため、ユーザは、符号化されたチャネルを構築するためにパラメータとしてのシリアルナンバーを送信しさえすればよい。
無条件に安全な通信チャネルに関するこのケース以外で、擬似ランダムシーケンス生成プロセスに必要なシードを提供するためのその他の方法は、公開鍵暗号法又は開発者が望む任意の方法であってもよい。
単一ユーザの構成と複数ユーザの構成の両方に対して、ランダム転送マップ変換プロセスを利用できない場合、ランダム転送マップ毎に一度だけシードが必要であること、また次回シードとして使用するために、擬似ランダムシーケンスが最大長に達するまで最後の値がレジスタ内に保存されること、に留意されたい。その後、最大長に達する前にランダムシーケンスを繰り返さないために、ランダム転送マップを変更することに留意されたい。
重要な用途に関して、ある興味深い構成が存在する。それはつまり、暗号装置が、中央でネットワークサーバと、(少なくとも)ネットワークサーバにのみ接続するその他のデバイスと、「スター型ネットワーク」で(場合により無線で)接続する構成である。それぞれのデバイスがサーバと通信する(ランダム転送マップ等の)データのみを有する一方で、サーバは、全てのデバイスと通信するデータを有する。1つのデバイスをその他のデバイスと安全なチャネル上で通信させたい場合は、先ずデバイスにおいてメッセージを暗号化し、その暗号化メッセージをサーバへと送信し、それからサーバにおいてそのメッセージを復号し、その復号メッセージをその他のデバイスのデータを用いて再暗号化し、その再暗号化メッセージをその他のデバイスへと送信し、最後にその再暗号化メッセージを復号してもよい。このような構成の利点としては次のことが挙げられる。(サーバを除く)デバイスが敵によって捕捉された場合であっても、敵は、捕捉したデバイスのデータを用いてその他の通信を復号することはできない。
装置の実施形態の第2の群のオペレーションに関して言えば、実施形態の第1の群の場合と同様に、オペレーションは正確に動作する。一般的に、専用電子回路とは、より大きな電子機械の一部にすぎない。時に専用電子回路は、CPUの代わりに専用の計算を実行するために、コンピュータに接続する電子部品である。そのため、実施形態のこの群は通常、「マスター」回路により制御される「スレーブ」回路を含む。
(ベストモードの問題)
本開示の暗号プロセスがいくつかの方法で実装可能であることを考慮し、異なる用途には異なるニーズが求められることを考慮すると、反対のニーズは反対の基準をもたらすことになるため、ベストモードを推定することは困難である。

Claims (8)

  1. 1つ又はいくつかのプロセッサにより実施される暗号オペレーションでの使用のためのランダムな文字列を生成するためのコンピュータに実装された方法であって、
    ランダム性生成により、1つ又はいくつかのランダム転送マップを生成する工程(a)であって、前記ランダム性生成は、擬似ランダム生成器によって作成されない工程(a)と、
    ランダムシーケンスを生成することとなる前記コンピュータに対して、生成された前記ランダム転送マップを提供する工程(b)と、
    前記コンピュータに対して、擬似ランダムシーケンス生成器のシードを提供する工程(c)と、
    生成されるランダムシーケンス毎に1つのランダムマッピングオペレーションを使用して、いくつかの入力に対して、1つ又はいくつかのプロセッサを動作させることにより、ランダムな文字列を生成する工程(d)であって、前記入力が、
    i.前記挙げられたランダム転送マップ提供工程中に提供されるランダム転送マップ、及び、
    ii.前記挙げられた擬似ランダムシーケンス生成器の出力であり、
    前記ランダムマッピングオペレーションのそれぞれが、
    シードを用いて擬似ランダムシーケンス生成器を初期化する工程(i)であって、前記シードが、
    A.前記コンピュータへ提供され、
    B.又は前記コンピュータへ提供される1つ又はいくつかのランダム転送マップの一部において選択される工程(i)と、
    混合演算を使用して、前記ランダムマッピングオペレーションの入力を混合する工程(ii)であって、前記ランダムマッピングオペレーションの入力が、
    A.別のランダムマッピングオペレーション由来の出力、
    B.又はいくつかのその他のランダムマッピングオペレーションの出力の混合演算による組み合わせ、
    C.又は前記ランダムマッピングオペレーションにより使用される、擬似ランダムシーケンス生成器由来の出力、
    D.又は前記ランダムマッピングオペレーションにより使用される擬似ランダムシーケンス生成器由来の出力と、1つ又はいくつかのその他のランダムマッピングオペレーションの出力との混合演算による組み合わせ、
    E.又は前記ランダムマッピングオペレーションにより使用される擬似ランダムシーケンス生成器由来の出力と、フィードバックとして使用される、前記ランダムマッピングオペレーションにより先に生成された出力との混合演算による組み合わせ、
    F.又はフィードバックとして使用される、前記ランダムマッピングオペレーションにより先に生成された出力と交互に行われる、前記ランダムマッピングオペレーションにより使用される、擬似ランダムシーケンス生成器由来の出力、
    G.又は前記ランダムマッピングオペレーションにより使用される擬似ランダムシーケンス生成器由来の出力と、1つ又はいくつかのその他のランダムマッピングオペレーションの出力と、フィードバックとして使用される、前記ランダムマッピングオペレーションにより先に生成された出力との混合演算による組み合わせ、
    H.又は前記ランダムマッピングオペレーションにより使用される擬似ランダム生成器由来の出力と、1つ又はいくつかのその他のランダムマッピングオペレーションの出力との混合演算による組み合わせであって、この組み合わせは、フィードバックとして使用される、前記ランダムマッピングオペレーションにより先に生成された出力と交互に行われる、組み合わせである工程(ii)と、
    前記工程(ii)からの結果を使用して、マップ選択プロトコルの使用により、前記ランダムマッピングオペレーションに起因する前記ランダム転送マップ由来の文字を選択する工程(iii)と、
    前記工程(iii)において選択された前記文字を出力する工程(iv)と、
    全てのランダムな文字列が生成されるまで、次の出力文字を生成するために、前記工程(ii)に立ち戻る工程(v)とを含み、
    前記ランダムマッピングオペレーションの出力を、他のランダムマッピングオペレーションの入力へ送り出し、及び、結果として前記ランダムマッピングオペレーションの出力が、前記方法を適用する前に規定されている工程(d)と、
    前記結果として前記生成されたランダムな文字列を出力する工程(e)とを含むことを特徴とする方法。
  2. 平文文字列を暗号文文字列へ変換及び逆の変換を行うための符号及び復元の対称鍵による暗号装置システムであって、
    (a)文字列を暗号化するための手段と、
    (b)復号スキームが暗号スキームとは異なる場合、暗号化された文字列を復号するための手段と、
    (c)1つ又はいくつかのランダムシーケンスを生成するための手段とを含み、
    全ての前記手段が各々暗号化構造によって構成されているか、或いは、全ての前記手段を含めて1個の暗号化構造となっており、
    ランダムシーケンス生成器のそれぞれは、1つ又はいくつかのランダムシーケンスを生成するための前記手段において実装され、
    前記ランダムシーケンス生成器は、前記文字列の暗号化又は復号を行う前記手段のための秘密鍵を生成し、
    前記生成器は、
    (a)1つ又はいくつかの擬似ランダムシーケンス生成モジュールと、
    (b)1つ又はいくつかのランダムマッピングモジュールとを備え、
    前記ランダムマッピングモジュールのそれぞれは、受信シーケンス由来の文字を発信シーケンス用のランダム文字へとマッピングし、
    前記受信シーケンスは、
    (a)別のランダムマッピングモジュールの発信シーケンス、
    (b)いくつかのその他のランダムマッピングモジュールの発信シーケンスの混合演算による組み合わせ、
    (c)1つの擬似ランダムシーケンス生成モジュールの発信シーケンス、
    (d)1つの擬似ランダムシーケンス生成モジュールの発信シーケンスと、1つ又はいくつかのその他のランダムマッピングモジュールの発信シーケンスとの混合演算による組み合わせ、
    (e)1つの擬似ランダムシーケンス生成モジュールの発信シーケンスと、フィードバックランダムシーケンスとの混合演算による組み合わせであって、このフィードバックランダムシーケンスが、前記ランダムマッピングモジュールの発信シーケンスである組み合わせ、
    (f)前記フィードバックランダムシーケンスと交互に行われる1つの擬似ランダムシーケンス生成モジュールの発信シーケンスであって、前記フィードバックランダムシーケンスが、前記ランダムマッピングモジュールの発信シーケンスである発信シーケンス、
    (g)1つの擬似ランダムシーケンス生成モジュールの発信シーケンスと、1つ又はいくつかのその他のランダムマッピングモジュールの発信シーケンスと、前記フィードバックランダムシーケンスとの混合演算による組み合わせであって、前記フィードバックランダムシーケンスが、前記ランダムマッピングモジュールの発信シーケンスである発信シーケンス、又は、
    (h)1つの擬似ランダムシーケンス生成モジュールの発信シーケンスと、1つ又はいくつかのその他のランダムマッピングモジュールの発信シーケンスとの混合演算による組み合わせであって、前記組み合わせが、前記フィードバックランダムシーケンスと交互に行われ、前記フィードバックランダムシーケンスが、前記ランダムマッピングモジュールの発信シーケンスである組み合わせであり、
    前記挙げられたランダムマッピングモジュールのそれぞれは、これらの受信シーケンスのそれぞれの文字をランダム文字へとマップして、1つの発信ランダムシーケンスを作成するために、マップ選択プロトコルにより、ランダム転送マップを使用し、
    前記ランダム転送マップは、ランダム性生成により生成され、
    前記ランダム性生成は、擬似ランダム生成器によっては作成されず、前記ランダムマッピングモジュールへ提供され、前記ランダムマッピングモジュール毎に1つのランダム転送マップであることを特徴とする暗号装置システム。
  3. 前記ランダム転送マップを変換するための手段を更に備え、
    前記ランダム転送マップを変換するための手段は、暗号化構造であり、
    前記ランダム転送マップを変換するための手段からの前記ランダム転送マップ変換モジュールは、
    (a)前記ランダム転送マップを変更すべき挙げられたランダムマッピングモジュール由来のランダム転送マップと、
    (b)変換ランダム文字とを入力し、
    前記変換ランダム文字は、
    (a)入力される前記ランダム転送マップの長さに到達するまで次々と繰り返されるランダム文字である、提供されるパラメータ、又は、
    (b)別のランダムシーケンス生成モジュールの出力であり、
    前記挙げられたランダム転送マップ変換モジュールは、前記挙げられたランダム転送マップ変換モジュールへ入力された前記ランダム転送マップの代わりに、送り返す二次ランダム転送マップを生成するために、前記ランダム転送マップを変更すべき前記ランダムマッピングモジュールへの入力間の混合演算を行うことを特徴とする請求項2に記載の暗号装置システム。
  4. 擬似ランダムシーケンス生成器のシードを生成するための手段を更に含み、
    前記擬似ランダムシーケンス生成器のシードを生成するための手段は、暗号化構造であり、
    前記シードを生成するための手段からのシード生成モジュールは、1つ又はいくつかのランダムシーケンスを生成するための前記手段の前記擬似ランダムシーケンス生成モジュールのために、シード計算アルゴリズムを使用して、提供又は選択された文字由来のシードを計算することを特徴とする請求項3に記載の暗号装置システム。
  5. 前記挙げられたシード生成モジュールへ提供された前記選択した文字は、前記1つ又はいくつかのランダムシーケンスを生成するための手段により格納された1つ又はいくつかのランダム転送マップの一部において選択されることを特徴とする請求項4に記載の暗号装置システム。
  6. 前記生成されたランダム転送マップを提供する工程は、暗号的に安全な通信チャネルを生成するために、暗号化スキーム及び復号スキームでの結果としてみなされた前記出力が生成したランダムな文字列使用して、
    (a)最初は、非一時的コンピュータ可読媒体を使用して、ランダムな文字列を生成することとなる前記挙げられたコンピュータへ前記ランダム転送マップを転送する工程と、
    (b)以降は、前記暗号的に安全な通信チャネル生成工程により生成された暗号的に安全な通信チャネルを介して、ランダムな文字列を生成することとなる前記コンピュータへ新規のランダム転送マップを転送する工程とを使用して実施されることを特徴とする請求項1に記載の方法。
  7. 非一時的コンピュータで可読な記憶媒体であって、
    1つ又はいくつかのコンピュータに請求項2に記載の暗号装置システムとして機能させるためのプログラムを前記記憶媒体上に格納し、前記暗号装置システムとして機能する前記コンピュータは両方共、前記1つ又はいくつかのランダムシーケンスを生成するための手段において実装された1つ又はいくつかの挙げられたランダムシーケンス生成器の機能性を備えることを特徴とする記憶媒体。
  8. 請求項2〜6のいずれか一項に記載された暗号装置システムを使用する方法であって、
    (a)最初は、非一時的コンピュータ可読媒体を使用して、前記1つ又はいくつかのランダムシーケンスを生成するための手段へ、前記暗号装置システムに必要な前記ランダム転送マップを転送する工程と、
    (b)以降は、前記暗号装置システムを使用して生成された暗号的に安全なチャネルを介して、前記1つ又はいくつかのランダムシーケンスを生成するための手段へ、新規のランダム転送マップを転送する工程とを含むことを特徴とする方法。
JP2017513389A 2014-09-14 2014-09-14 暗号システムの再現可能なランダムシーケンス Active JP6501873B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2014/064502 WO2016038428A1 (en) 2014-09-14 2014-09-14 Cryptographic system based on reproducible random sequences

Publications (2)

Publication Number Publication Date
JP2017527225A JP2017527225A (ja) 2017-09-14
JP6501873B2 true JP6501873B2 (ja) 2019-04-17

Family

ID=51862482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017513389A Active JP6501873B2 (ja) 2014-09-14 2014-09-14 暗号システムの再現可能なランダムシーケンス

Country Status (5)

Country Link
US (1) US20170295012A1 (ja)
EP (1) EP3195518A1 (ja)
JP (1) JP6501873B2 (ja)
CN (1) CN107078900B (ja)
WO (1) WO2016038428A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019143528A1 (en) * 2018-01-16 2019-07-25 7Tunnels, Inc. Cryptographic systems and methods for modification of pools of truly random numbers
CN109167662A (zh) * 2018-09-04 2019-01-08 上海易酷信息技术服务有限公司 一种种子生成方法及其设备
CN111353166B (zh) * 2020-02-25 2021-10-26 南通大学 一种图片转汉字的加密方法
CN113472514B (zh) * 2020-06-29 2025-06-20 徐智能 复重构密钥的序列加密方法
US12137164B1 (en) * 2023-06-27 2024-11-05 SanDisk Technologies, Inc. Storage-free message authenticators for error-correcting-codes

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1310719A (en) 1919-07-22 Secret signaling system
US5048086A (en) 1990-07-16 1991-09-10 Hughes Aircraft Company Encryption system based on chaos theory
US5857025A (en) 1996-09-09 1999-01-05 Intelligent Security Systems, Inc. Electronic encryption device and method
KR20060014356A (ko) * 2002-07-27 2006-02-15 엑스트림 시큐리티 솔루션즈 엘티디., 엘엘씨 암호화 및 복호화를 위한 장치 및 방법
US7097107B1 (en) * 2003-04-09 2006-08-29 Mobile-Mind, Inc. Pseudo-random number sequence file for an integrated circuit card
JP2006215824A (ja) * 2005-02-03 2006-08-17 Sanyo Electric Co Ltd 乱数生成回路
JP4471901B2 (ja) * 2005-07-28 2010-06-02 株式会社ルネサステクノロジ 乱数発生装置
US8019802B2 (en) * 2005-08-24 2011-09-13 Qualcomm Incorporated Cryptographically secure pseudo-random number generator
US8290162B2 (en) * 2006-12-15 2012-10-16 Qualcomm Incorporated Combinational combiner cryptographic method and apparatus
US8194858B2 (en) * 2009-02-19 2012-06-05 Physical Optics Corporation Chaotic cipher system and method for secure communication
CN102404767B (zh) * 2011-11-17 2014-04-02 西安电子科技大学 基于随机性测试的无线传感器网络协议安全测试体系结构
CN103369580B (zh) * 2012-03-31 2016-03-02 展讯通信(上海)有限公司 在终端侧对无线信道传输进行系统级仿真的方法和装置
US20140270165A1 (en) * 2013-03-15 2014-09-18 Alexandre Andre DURAND Cryptographic system based on reproducible random sequences

Also Published As

Publication number Publication date
US20170295012A1 (en) 2017-10-12
EP3195518A1 (en) 2017-07-26
JP2017527225A (ja) 2017-09-14
CN107078900A (zh) 2017-08-18
WO2016038428A1 (en) 2016-03-17
CN107078900B (zh) 2021-10-15

Similar Documents

Publication Publication Date Title
Almaiah et al. A new hybrid text encryption approach over mobile ad hoc network
Kumar et al. Development of modified AES algorithm for data security
Paar et al. Understanding cryptography
JP3782351B2 (ja) 可変長鍵暗号システム
US20140270165A1 (en) Cryptographic system based on reproducible random sequences
JP4828068B2 (ja) コンピュータで効率的な線形フィードバック・シフト・レジスタ
KR20110004474A (ko) 갈루아 폐체 암호 시스템
JPWO2009020060A1 (ja) 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム
US20020159588A1 (en) Cryptography with unconditional security for the internet, commercial intranets, and data storage
JP6501873B2 (ja) 暗号システムの再現可能なランダムシーケンス
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
EP1790115A1 (en) A method and system for computational transformation
Kumar et al. A cryptographic model based on logistic map and a 3-D matrix
Joshy et al. Text to image encryption technique using RGB substitution and AES
CN109639423B (zh) 一种解密算法的构成装置
Rastogi et al. Linear algorithm for imbricate cryptography using pseudo random number generator
US11038668B2 (en) Transposition encryption alphabet method (TEAM)
Hamsanandhini et al. Securing Data in the Image Using SHA & ECC
Khalid et al. Encrypting data using the features of memetic algorithm and cryptography
Kumar et al. A comparative analysis of encryption algorithms for better utilization
Suresh et al. VLSI implementation of text to image encryption algorithm based on private key encryption
KR101583285B1 (ko) 확장 키를 이용한 블록 암호화 방법 및 그 방법에 따른 장치
Mandal et al. An adaptive neural network guided secret key based encryption through recursive positional modulo-2 substitution for online wireless communication (ANNRPMS)
Charru et al. Improved Cryptography Algorithm to Enhanced Data Security
JP5293612B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法およびプログラム

Legal Events

Date Code Title Description
A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A525

Effective date: 20170428

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180918

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20181217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190218

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190319

R150 Certificate of patent or registration of utility model

Ref document number: 6501873

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