(57)【要約】  暗号化を使用してデータセットを送信する方法であって、第1の暗号化技法を選択するステップであって、前記第1の暗号化技法が、平文データを暗号データに暗号化するための第1の暗号化アルゴリズムと、特定のキーを提供されることにより暗号データを復号して平文データを再現するための第1の復号アルゴリズムとを備えるステップと、前記第1の暗号化技法の第1の暗号化アルゴリズムを実装する第1の暗号化プログラムを使用して平文データを備える第1のデータパッケージを暗号化して、暗号データを備える第1の暗号化されたデータパッケージを作成するステップと、第1の復号プログラムを取得するステップと、前記第1の復号プログラムおよび前記第1の暗号化されたデータパッケージを受信者に送信するステップとを備え、第1の復号プログラムが、特定のキーおよび第1の暗号化されたデータパッケージを提供すると、第1の暗号化されたデータパッケージ内の暗号データを復号して、第1のデータパッケージの平文データを再現する方法が開示される。
2014531175.tif 000002
【特許請求の範囲】
【請求項１】
暗号化を使用してデータセットを送信する方法であって、前記データセットが第1のデータパッケージを備え、前記方法が、
・暗号化管理システムで複数の暗号化技法から第1の暗号化技法を自動的に選択するステップであって、前記第1の暗号化技法が、平文データを暗号データに暗号化するための第1の暗号化アルゴリズムと、特定のキーを提供されることにより暗号データを復号して平文データを再現するための第1の復号アルゴリズムとを備えるステップと、
・前記第1の暗号化技法の前記第1の暗号化アルゴリズムを実装する第1の暗号化プログラムを使用して平文データを備える前記第1のデータパッケージを暗号化して、暗号データを備える第1の暗号化されたデータパッケージを作成するステップと、
・前記第1の暗号化技法の前記第1の復号アルゴリズムを実装する第1の復号プログラムを取得するステップと、
・前記第1の復号プログラムおよび/または前記第1の暗号化されたデータパッケージを受信者に送信するステップとを備え、
前記第1の復号プログラムが、前記受信者において、前記特定のキーおよび前記第1の暗号化されたデータパッケージを提供すると、前記第1の復号プログラムが、前記第1の暗号化されたデータパッケージ内の前記暗号データを復号して、前記第1のデータパッケージの前記平文データを再現するように構成されている、方法。
【請求項２】
暗号化技法を選択する前記ステップが、ランダムイベントおよび/または疑似ランダムイベントによって、複数の暗号化技法から1つの暗号化技法を選択するステップを備える、請求項1に記載の方法。
【請求項３】
暗号化技法を選択する前記ステップが、設定されたロタに従って暗号化技法を選択するステップを備える、請求項1から2のいずれか一項に記載の方法。
【請求項４】
前記複数の暗号化技法が、少なくとも100の暗号化技法を備える、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記データセットが第2のデータパッケージをさらに備え、前記方法が、
・前記第1の暗号化プログラムを使用して平文データを備える前記第2のデータパッケージを暗号化して、暗号データを備える第2の暗号化されたデータパッケージを作成するステップと、
・前記第2の暗号化されたデータパッケージを受信者に送信するステップとをさらに備え、
前記第1の復号プログラムが、前記受信者において、前記特定のキーおよび前記第2の暗号化されたデータパッケージを提供すると、前記第1の復号プログラムが、前記第2の暗号化されたデータパッケージ内の前記暗号データを復号して前記第2のデータパッケージの前記平文データを再現するようにさらに構成されている、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記第1の復号プログラムが、送信される前に実行可能プログラムにコンパイルされる、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記第1の暗号化技法が、暗号化技法生成プログラムを使用して生成されたカスタム暗号化技法である、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記データセットが第3のデータパッケージをさらに備え、前記方法が、
・第2の暗号化技法を選択するステップであって、前記第2の暗号化技法が、平文データを暗号データに暗号化するための第2の暗号化アルゴリズムと、特定のキーを提供されることにより暗号データを復号して平文データを再現するための第2の復号アルゴリズムとを備えるステップと、
・前記第2の暗号化技法の前記第2の暗号化アルゴリズムを実装する第2の暗号化プログラムを使用して平文データを備える前記第3のデータパッケージを暗号化して、暗号データを備える第3の暗号化されたデータパッケージを作成するステップと、
・前記第2の暗号化技法の前記第2の復号アルゴリズムを実装する第2の復号プログラムを取得するステップと、
・前記第2の復号プログラム、および/または前記第3の暗号化されたデータパッケージを受信者に送信するステップとをさらに備え、
前記第2の復号プログラムが、前記受信者において、前記特定のキーおよび前記第3の暗号化されたデータパッケージを提供すると、前記第2の復号プログラムが前記第3の暗号化されたデータパッケージ内の前記暗号データを復号して、前記第3のデータパッケージの前記平文データを再現するように構成されている、請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記データセット全体が、単一のデータパッケージ内で連続して、または個々のデータパッケージ間にわずかな時間間隔をあけて送信される複数のデータパッケージ内で送信される、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記方法が、前記送信が終了したことを示す命令を前記受信者に送信するステップをさらに備え、前記命令が、前記受信者において前記第1の復号プログラムが削除されるように構成される、請求項1から9のいずれか一項に記載の方法。
【請求項１１】
暗号化を使用してデータを送受信するためのシステムであって、暗号化されたデータを受信するための受信装置、および暗号化されたデータを送信するための送信装置を備え、
・暗号化管理システムで複数の暗号化技法から第1の暗号化技法を自動的に選択するステップであって、前記第1の暗号化技法が、平文データを暗号データに暗号化するための第1の暗号化アルゴリズムと、特定のキーを提供されることにより暗号データを復号して平文データを再現するための第1の復号アルゴリズムとを備えるステップと、
・前記第1の暗号化技法の前記第1の復号アルゴリズムを実装する第1の復号プログラムを取得するステップと、
・前記第1の復号プログラムを前記受信装置に任意で送信するステップと、
・前記送信装置で、前記第1の暗号化技法の前記第1の暗号化アルゴリズムを実装する第1の暗号化プログラムを使用して平文データを備える第1のデータパッケージを暗号化して、暗号データを備える第1の暗号化されたデータパッケージを作成するステップと、
・前記送信装置から、前記第1の暗号化されたデータパッケージを前記受信装置に送信するステップと、
・前記受信装置で、前記第1の復号プログラムおよび前記特定のキーを使用して前記第1の暗号化されたデータパッケージを復号するステップであって、前記第1のデータパッケージの前記平文データが再現されて、前記受信装置にとって利用可能にされるステップとによって、暗号化を使用して前記第1のデータパッケージを備えるデータセットを送信するように構成される、システム。
【請求項１２】
前記受信装置が、前記データセットの前記送信が完了した後に、前記第1の復号プログラムを削除するようにさらに構成される、請求項11に記載のシステム。
【請求項１３】
前記データセットが第2のデータパッケージをさらに備え、前記システムが、
・前記第1の暗号化技法の第1の暗号化プログラムを使用して平文データを備える前記第2のデータパッケージを暗号化して、暗号データを備える第2の暗号化されたデータパッケージを作成して、
・前記第2の暗号化されたデータパッケージを受信者に送信するようにさらに構成され、
前記第1の復号プログラムが、前記受信者において、前記特定のキーおよび前記第2の暗号化されたデータパッケージを提供すると、前記復号プログラムが、前記第2の暗号化されたデータパッケージ内の前記暗号データを復号して、前記第2のデータパッケージの前記平文データを再現するように構成されている、請求項11から12のいずれか一項に記載のシステム。
【請求項１４】
前記データセットが第3のデータパッケージをさらに備え、前記システムが、
・第2の暗号化技法を選択して、前記第2の暗号化技法が、平文データを暗号データに暗号化するための第2の暗号化アルゴリズムと、特定のキーを提供されることにより暗号データを復号して平文データを再現するための第2の復号アルゴリズムとを備え、
・前記第2の暗号化技法の前記第2の復号アルゴリズムを実装する第2の復号プログラムを取得して、
・前記第2の復号プログラムを前記受信装置に任意で送信して、
・前記第2の暗号化技法の前記第2の暗号化アルゴリズムを実装する第2の暗号化プログラムを使用して前記送信装置で平文データを備える前記第3のデータパッケージを暗号化して、暗号データを備える第3の暗号化されたデータパッケージを作成して、
・前記送信装置から、前記第3の暗号化されたデータパッケージを前記受信装置に送信して、
・前記受信装置で、前記第2の復号プログラムおよび前記特定のキーを使用して前記第3の暗号化されたデータパッケージを復号するようにさらに構成され、前記第3のデータパッケージの前記平文データが再現されて、前記受信装置にとって利用可能にされる、請求項11から13のいずれか一項に記載のシステム。
【請求項１５】
第1の送信の終了と第2の送信の開始との間に大幅な時間間隔があり、前記第1の送信のために使用される前記選択された暗号化技法が前記第2の送信のために使用される前記選択された暗号化技法とは異なる、前記第2の送信を実行するようにさらに構成される、請求項11から14のいずれか一項に記載の暗号化を使用してデータを送受信するためのシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化方法に関する。本発明は特に、これに限定されないが、秘密キー暗号方式に関し、本発明の特徴は公開キー暗号方式にも適用され得る。
【背景技術】
【０００２】
秘密キー暗号方式の従来の欠点は、当事者間でキーを交換しなければならないことである。それに反して、RSAなどの公開キー暗号方式は公開キーおよび秘密キーに依存し、キーが盗まれたり開示されたりすることに脅えながら他者とキーを交換する必要がない。公開キーシステムの欠点は速度である。多くの公開キーシステムで使用されている暗号化アルゴリズムが複雑であるため、秘密キーシステムよりもはるかに遅い場合がある。秘密キー暗号化アルゴリズムは非常に速く、しかも同等の暗号強度を提供することができる。秘密キーを送信するために公開キー暗号化を使用して、その後、秘密キー暗号化を使用することが提案されている。
【０００３】
知られている暗号化方法は、広く公開されているアルゴリズムに依存する。RSAなどの人気のあるシステムは、Microsoft ExplorerまたはMozilla Firefoxなどのプログラムに組み込むことができる。任意の特定のデータを送信するために使用される暗号化方法が知られていない場合、セキュリティが強化されるが、従来のシステムでは、受信者が暗号文を平文に復号するアプリケーションを備えていなければならず、どのシステムが使用されているかを決定することは比較的容易である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Journal of Cryptology, Vol 14, No 1, pages 17-35,2001
【非特許文献２】www.ramkilde.com/serpent
【発明の概要】
【課題を解決するための手段】
【０００５】
第1の態様によれば、本発明は、暗号化を使用してデータセットを送信する方法であって、データセットが第1のデータパッケージを備え、本方法が、
・第1の暗号化技法を選択するステップであって、前記第1の暗号化技法が、平文データを暗号データに暗号化するための第1の暗号化アルゴリズムと、特定のキー、たとえば第1のキーを提供されることにより、暗号データを復号して平文データを再現するための第1の復号アルゴリズムとを備えるステップと、
・前記第1の暗号化技法の第1の暗号化アルゴリズムを実装する第1の暗号化プログラムを使用して平文データを備える第1のデータパッケージを暗号化して、暗号データを備える第1の暗号化されたデータパッケージを作成するステップと、
・前記第1の暗号化技法の第1の復号アルゴリズムを実装する第1の復号プログラムを取得するステップと、
・前記第1の復号プログラムおよび/または前記第1の暗号化されたデータパッケージを受信者に送信するステップとを備え、
第1の復号プログラムは、受信者において、特定のキーおよび第1の暗号化されたデータパッケージを提供されることにより、第1の復号プログラムが第1の暗号化されたデータパッケージ内の暗号データを復号して、第1のデータパッケージの平文データを再現するように構成されている方法に関する。
【０００６】
第1の暗号化技法を選択するステップは、暗号化管理システムで複数の暗号化技法から第1の暗号化技法を自動的に選択するステップを備え得る。
【０００７】
本発明のこの態様によれば、受信装置は、暗号化技法に合わせて適切な復号アプリケーションをプリインストールしておく必要がない。データの受信者は、どの暗号化技法が使用されているかを取り決める必要がなく、また送信者と受信者との間の通信は、使用される技法を識別する必要がない。データを復号するための要件は復号プログラム内で完全に自己完結しており、復号アプリケーション、または復号ルーチンを含むアプリケーションを受信装置に常設する必要がない。もちろん、復号ルーチンは、受信装置上で実行しているオペレーティングシステムの標準機能にアクセスする必要がある場合がある。最初のステップのうちの1つは、ターゲットの受信装置のオペレーティングシステムを指定することでよい。プログラムのプログラミング言語は、ターゲットのオペレーティングシステムと互換性があるように選択される。
【０００８】
第1の暗号化技法は、ユーザ選択なしに自動的に選択され得る。送信者は複数の暗号化技法にアクセスすることができ、これらのうちの1つが特定のメッセージのために選択される。これは、送信者による個人の選択の問題でもよく、設定されたロタ(set rota)に従ってもよく、または無作為でもよい。送信者が暗号化技法の選択を担当しない場合、代わりにそのタスクは暗号化管理システムとして機能するソフトウエアに委ねられ、その場合、構成は、任意の特定のメッセージにどの暗号化技法が使用されたか、送信者さえ知らない状態である場合がある。
【０００９】
攻撃者が本発明によって送信されたメッセージを傍受すると、攻撃者は復号ルーチンの識別しようとする必要があるため、さらなる秘密がある。それが行われるまで、攻撃者は暗号化技法の解読を試みることはできない。プログラムが実行可能コードの形式の場合、攻撃者にとってさらなる障害がある。復号ルーチンの識別を試みる前に、実行可能コードを理解できるより高い言語に逆コンパイルしなければならない。
【００１０】
プログラムが実行可能コードの形式ではない場合、実行する前に受信装置でコンパイルする必要がある。
【００１１】
第1の復号プログラムおよび暗号化されたデータパッケージは、結合されたデータパッケージ内で送信され得る。結合されたデータパッケージは、送信される前に実行可能コードにコンパイルされ得る。これによって、セキュリティをさらに強化することができる。特に、後述するようにマッピング機能が使用される場合は、第1の復号プログラムを送信するステップを省略することができる。
【００１２】
いくつかの実施形態では、第1の復号プログラムおよび暗号化されたデータパッケージは、2つの異なるデータパッケージ内で送信される。
【００１３】
復号プログラムは、受信者に送信される前に、たとえば標準的な暗号化技法を使用して暗号化され得る。
【００１４】
いくつかの実施形態では、暗号化技法を選択するステップは、複数の暗号化技法から1つの暗号化技法を選択するステップを備える。複数の暗号化技法は、少なくとも100の暗号化技法を備え得る。多数の暗号化技法間で選択することによって、暗号を解読するタスクは一層複雑になる。複数の暗号化技法は、少なくとも100万の暗号化技法などの、少なくとも1000の異なる暗号化技法を備え得る。
【００１５】
複数の暗号化技法は、様々な基本的な暗号化技法を含んでもよく、それで構成されてもよい。基本的な暗号化技法は、ブロック暗号でもよくストリーム暗号でもよい。カスタマイズされた様々なブロック暗号および/またはストリーム暗号を作成するために、キーホワイトニング(key whitening)が使用され得る。様々な暗号を作成するために、モジュール暗号化が使用され得る。
【００１６】
いくつかの実施形態では、暗号化技法は暗号化管理システムによって選択される。その結果、異なるハードウェア端末またはデバイスで、異なる符号化戦略を使用することが可能になる。これによって、本方法およびシステムを使用している盗難デバイスを所有している攻撃者または他の望まない人が、盗難デバイスから他のデバイスまたは端末によって使用される符号化戦略を導き出すことができなくなるので、セキュリティがさらに強化される。
【００１７】
暗号化管理システムは、複数の暗号化技法にアクセスできることが望ましい。暗号化技法のライブラリがあってよい。あるいは、またはさらに、たとえば暗号化技法生成プログラムによって、一連のカスタマイズされた異なる技法に修正され得る基本的な技法があってよい。
【００１８】
何人かの受信者は、他の当事者からのプログラムコードを受信または実行することに消極的である可能性がある。これは、いくつかの方法で処理することができる。たとえば、送信者はデータ完全性機構を使用して、他のデータとともにチェックコードを送信することができる。受信装置は、受信したコードを処理する前に、それが本物かどうかをチェックする。完全性チェックは、秘密キーの使用に依存することが望ましい。さらに、または代替で、悪意のあるコードのリスクを制限するために、コードはJava（登録商標）などの保護されたプログラミング環境で実行され得る。
【００１９】
プログラムコードは、実行する前に解凍を必要とする圧縮された形式で提供され得る。
【００２０】
キーは、ユーザが手動で入力するパスワードの形式でよく、それはたとえば、許可されたユーザがデータ処理装置にログオンすると自動的に利用可能になるように、任意でオペレーティングシステムのパスワードファイルに格納されてよい。あるいは、キーはユーザに見えず、安全で、プログラムがアクセスできる位置に格納されてもよい。
【００２１】
いくつかの実施形態では、暗号化技法を選択するステップは、ランダムおよび/または疑似ランダムイベントによって、複数の暗号化技法から1つの暗号化技法を選択するステップを備える。
【００２２】
ランダム/疑似ランダムイベントは、乱数発生器からの出力でよい。その結果として、攻撃者は選択された暗号化技法を予測することができなくなる。
【００２３】
乱数発生器は、内部クロック値などの、送信装置の内部状態によるシード値、および/または特定のサーバ上のトラフィックの量などの外部値を選択することができる。
【００２４】
いくつかの実施形態では、データセットは第2のデータパッケージをさらに備え、本方法は、
・第1の暗号化プログラムを使用して平文データを備える第2のデータパッケージを暗号化して、暗号データを備える第2の暗号化されたデータパッケージを作成するステップと、
・前記第2の暗号化されたデータパッケージを受信者に送信するステップとをさらに備え、
第1の復号プログラムは、受信者において、特定のキーおよび第2の暗号化されたデータパッケージを提供されることにより、第1の復号プログラムが第2の暗号化されたデータパッケージ内の暗号データを復号して、第2のデータパッケージの平文データを再現するようにさらに構成されている。
【００２５】
その結果として、選択された暗号化技法を使用して複数のデータパッケージを暗号化することによって、本システムは、データのストリーム、たとえば電話での会話、および/またはテレビ電話での会話を暗号化するために使用され得る。
【００２６】
いくつかの実施形態では、第1の復号プログラムが、送信される前に実行可能プログラムにコンパイルされる。その結果として、第1の復号プログラムが受信装置で直接実行され得る。
【００２７】
いくつかの実施形態では、第1の暗号化技法は、暗号化技法生成プログラムを使用して生成されたカスタム暗号化技法である。
【００２８】
いくつかの実施形態では、データセットは第3のデータパッケージをさらに備え、本方法は、
・第2の暗号化技法を選択するステップであって、前記第2の暗号化技法が、平文データを暗号データに暗号化するための第2の暗号化アルゴリズムと、特定のキー、たとえば第1のキー、または第1のキーとは異なる第2のキーを提供されることにより、暗号データを復号して平文データを再現するための第2の復号アルゴリズムとを備えるステップと、
・前記第2の暗号化技法の第2の暗号化アルゴリズムを実装する第2の暗号化プログラムを使用して平文データを備える第3のデータパッケージを暗号化して、暗号データを備える第3の暗号化されたデータパッケージを作成するステップと、
・前記第2の暗号化技法の第2の復号アルゴリズムを実装する第2の復号プログラムを取得するステップと、
・前記第2の復号プログラム、および前記第3の暗号化されたデータパッケージを受信者に送信するステップとをさらに備え、
第2の復号プログラムは、受信者において、特定のキーおよび第3の暗号化されたデータパッケージを提供されることにより、第2の復号プログラムが第3の暗号化されたデータパッケージ内の暗号データを復号して、第3のデータパッケージの平文データを再現するように構成されている。
【００２９】
特に、秘密キー暗号システムへの攻撃は、暗号化アルゴリズムからの大量の入力および出力をしばしば必要とする。多くの、および/または長い平文の暗号化がいくつかの安全な暗号化技法間で分割されると、いくつかの平文ブロックを暗号化するために任意の1つのシステムが使用され、暗号解読技法が成功する可能性が低下してしまう。
【００３０】
いくつかの実施形態では、本方法は、
・特定のデータパッケージを暗号化するために使用される暗号化技法を指定するマッピング機能を取得するステップをさらに備え、
特定のデータパッケージを暗号化するために使用される暗号化技法がマッピング機能によって決定され、マッピング機能は受信者にとって直接的または間接的に利用可能であり、それによって予測できない方法で異なるデータパッケージに異なる暗号化技法が使用され得る。本方法では、特定のマッピング機能を使用することによって復号プログラムを送信するステップを省略することができ、それによって帯域幅要件を低減する。
【００３１】
マッピング機能は、受信装置に格納されることによって、および/またはインターネットなどのネットワークを通じて受信者と通信しているサーバから直接的または間接的に利用可能であることによって、受信者にとって直接的または間接的に利用可能でよい。
【００３２】
マッピング機能がシード値から生成される場合、マッピング機能は受信者にとって間接的に利用可能でよく、シード値は受信者にとって利用可能である。
【００３３】
いくつかの実施形態では、本方法は、
・マッピング機能、あるいはマッピング機能に関連付けられる値またはパラメータを受信者に送信するステップをさらに備える。
【００３４】
その結果として、傍受者は、使用された暗号化技法、および同じ暗号化技法で暗号化されたのはどの暗号化されたデータパッケージかの両方が分からないので、暗号化のセキュリティが強化される。これにより、セキュリティを損なうことなしに、計算があまり複雑ではない暗号化技術が使用されることを可能にし、その結果、送受信装置の処理要件を減少させることができる。
【００３５】
マッピング機能、またはマッピング機能に関連付けられる値は、送信される前に暗号化され得る。マッピング機能は、第1のデータパッケージの一部でよい。マッピング機能は簡単なリストでもよく、および/またはアルゴリズムでもよい。マッピング機能はランダムに生成されてもよく、および/または疑似ランダムに生成されてもよい。送信の開始時に、異なる復号プログラムおよびマッピング機能が受信者に送信され得る。
【００３６】
マッピング機能に関連付けられる値またはパラメータは、単一の値でもよく、値のリストでもよい。これらは、暗号化の間に生成されてよく、少なくとも部分的に受信者に通信される。
【００３７】
いくつかの実施形態では、データセット全体が、単一のデータパッケージ内で連続して、または個々のデータパッケージ間にわずかな時間間隔をあけて送信される複数のデータパッケージ内で送信される。
【００３８】
わずかな時間間隔は、5秒未満、1秒未満、500ミリ秒未満、200ミリ秒未満、50ミリ秒未満、または20ミリ秒未満の時間間隔でよい。
【００３９】
いくつかの実施形態では、本方法は、送信が終了したことを示す命令を受信者に送信するステップをさらに備え、本命令は、受信者において、第1の復号プログラムが削除されるように構成される。これによって、本方法およびシステムを使用している盗難デバイスを所有している攻撃者、または他の望まない人が、盗難デバイスから他のデバイスまたは端末によって使用される符号化および/または復号戦略を導き出すことができなくなるので、セキュリティがさらに強化される。
【００４０】
その結果として、復号プログラムは必要に応じて受信者だけが利用可能である。これによって、本方法によって受信装置で使用されるストレージの量を減らすことができる。さらに、「古い」復号プログラムのライブラリが受信装置で構築されることが防止されるので、より安全なシステムが提供される。したがって、受信装置にアクセスする攻撃者が、以前使用された復号プログラム上のあらゆる情報を取得することが阻止される。
【００４１】
第2の態様によれば、本発明は、暗号化を使用して第1のデータセットを送信して、暗号化を使用して第2のデータセットを送信する方法であって、第1のデータセットの送信および第2のデータセットの送信が上記で指定された方法を使用して実行され、第1のデータセットの送信の終了と第2のデータセットの送信の開始との間に大幅な時間間隔があり、第1のデータセットの送信のために使用される選択された暗号化技法が、第2のデータセットの送信のために使用される選択された暗号化技法とは異なる方法に関する。
【００４２】
大幅な時間間隔は、20ミリ秒を上回る、50ミリ秒を上回る、200ミリ秒を上回る、500ミリ秒を上回る、1秒を上回る、または5秒を上回る時間間隔でよい。
【００４３】
第3の態様によれば、本発明は、暗号化を使用してデータを送受信するためのシステムであって、暗号化されたデータを受信するための受信装置、および暗号化されたデータを送信するための送信装置を備え、
・第1の暗号化技法を選択するステップであって、前記第1の暗号化技法が、平文データを暗号データに暗号化するための第1の暗号化アルゴリズムと、特定のキー、たとえば第1のキーを提供されることにより、暗号データを復号して平文データを再現するための第1の復号アルゴリズムとを備えるステップと、
・前記第1の暗号化技法の第1の復号アルゴリズムを実装する第1の復号プログラムを取得するステップと、
・前記第1の復号プログラムを前記受信装置に送信するステップと、
・送信装置で、前記第1の暗号化技法の第1の暗号化アルゴリズムを実装する第1の暗号化プログラムを使用して平文データを備える第1のデータパッケージを暗号化して、暗号データを備える第1の暗号化されたデータパッケージを作成するステップと、
・送信装置から、第1の暗号化されたデータパッケージを受信装置に送信するステップと、
・受信装置で、第1の復号プログラムおよび特定のキーを使用して第1の暗号化されたデータパッケージを復号するステップであって、第1のデータパッケージの平文データが再現されて、受信装置にとって利用可能にされるステップとによって、暗号化を使用して第1のデータパッケージを備えるデータセットを送信するように構成されたシステムに関する。
【００４４】
本システムにおいて、第1の暗号化技法、および/または第2の暗号化技法などの暗号化技法を選択するステップは、暗号化管理システムで複数の暗号化技法から1つの暗号化技法を自動的に選択するステップを備え得る。受信装置および/または送信装置は、処理装置を備え得る。受信装置および/または送信装置は、パーソナルコンピュータでもよく、スマートフォンなどのモバイル端末でもよい。単一の装置は、受信装置と送信装置の両方として機能し得る。したがって、2つのモバイル端末またはデバイス間の電話での会話を暗号化するためにシステムおよび/または装置が使用される場合、各モバイル端末は、送信装置と受信装置の両方として機能し得る。
【００４５】
第1の暗号化技法を選択するステップと、前記第1の暗号化技法の第1の復号アルゴリズムを実装する第1の復号プログラムを取得するステップと、前記第1の復号プログラムを前記受信装置に送信するステップとのうちの1つまたは複数のステップは、送信装置によって実行され得る。あるいは/さらに、ステップのうちの1つまたは複数は、暗号化管理装置によって実行されてよく、たとえば、暗号化管理装置は第1の暗号化技法を選択して、続いて第1の復号プログラムを受信装置に送信してよい。暗号化管理システムはさらに、たとえば選択された第1の暗号化技法を示す情報を送信すること、および/または第1の暗号化プログラムを送信装置に送信することによって、送信装置が選択された第1の暗号化技法を知ることを可能にすることができる。暗号化管理システムは、たとえばインターネットに接続されたサーバなどの、ネットワークに接続されたサーバでもよい。
【００４６】
いくつかの実施形態では、本受信装置は、データセットの送信が完了した後に、第1の復号プログラムを削除するようにさらに構成される。
【００４７】
いくつかの実施形態では、本システムは、データセット全体を単一のデータパッケージ内で連続して、または個々のデータパッケージ間にわずかな時間間隔をあけて送信される複数のデータパッケージ内で送信するように構成される。
【００４８】
いくつかの実施形態では、第1の暗号化技法は複数の暗号化技法から選択される。
【００４９】
いくつかの実施形態では、第1の暗号化技法は暗号化管理システムによって選択される。
【００５０】
いくつかの実施形態では、暗号化技法を選択するステップは、ランダムおよび/または疑似ランダムイベントによって、複数の暗号化技法から1つの暗号化技法を選択するステップを備える。
【００５１】
いくつかの実施形態では、データセットは、第2のデータパッケージをさらに備え、本システムは、
・前記第1の暗号化技法の第1の暗号化プログラムを使用して平文データを備える第2のデータパッケージを暗号化して、暗号データを備える第2の暗号化されたデータパッケージを作成して、
・前記第2の暗号化されたデータパッケージを受信者に送信するようにさらに構成され、
第1の復号プログラムは、受信者において、特定のキーおよび第2の暗号化されたデータパッケージを提供されることにより、復号プログラムが第2の暗号化されたデータパッケージ内の暗号データを復号して、第2のデータパッケージの平文データを再現するように構成されている。
【００５２】
いくつかの実施形態では、第1の復号プログラムが、送信される前に実行可能プログラムにコンパイルされる。
【００５３】
いくつかの実施形態では、第1の暗号化技法は、暗号化技法生成プログラムを使用して生成されたカスタム暗号化技法である。
【００５４】
いくつかの実施形態では、データセットは第3のデータパッケージをさらに備え、本システムは、
・第2の暗号化技法を選択して、前記第2の暗号化技法が、平文データを暗号データに暗号化するための第2の暗号化アルゴリズムと、特定のキー、たとえば第1のキー、または第1のキーとは異なる第2のキーを提供されることにより、暗号データを復号して平文データを再現するための第2の復号アルゴリズムとを備え、
・前記第2の暗号化技法の第2の復号アルゴリズムを実装する第2の復号プログラムを取得して、
・前記第2の復号プログラムを前記受信装置に送信して、
・前記第2の暗号化技法の第2の暗号化アルゴリズムを実装する第2の暗号化プログラムを使用して送信装置で平文データを備える第3のデータパッケージを暗号化して、暗号データを備える第3の暗号化されたデータパッケージを作成して、
・送信装置から、第3の暗号化されたデータパッケージを受信装置に送信して、
・受信装置で、第2の復号プログラムおよび特定のキーを使用して第3の暗号化されたデータパッケージを復号するようにさらに構成され、第3のデータパッケージの平文データが再現されて、受信装置にとって利用可能にされる。
【００５５】
第2の暗号化技法を選択するステップは、たとえば、暗号化管理システムで複数の暗号化技法から第2の暗号化技法を自動的に選択するステップを備え得る。
【００５６】
いくつかの実施形態では、本システムは、第1の送信の終了と第2の送信の開始との間に時間間隔があり、第1の送信のために使用される選択された暗号化技法が第2の送信のために使用される選択された暗号化技法とは異なる、第2の送信を実行するようにさらに構成される。
【００５７】
いくつかの実施形態では、本システムは、
・特定のデータパッケージを暗号化するために使用される暗号化技法を指定するマッピング機能を取得して、
・マッピング機能を受信装置にとって利用可能にするようにさらに構成され、
送信装置で、特定のデータパッケージを暗号化するために使用される暗号化技法がマッピング機能によって決定され、受信装置で、特定の暗号化されたデータパッケージを復号するために使用される特定の復号プログラムが、マッピング機能からの情報を使用することによって複数の復号プログラムから選択される。
【００５８】
いくつかの実施形態では、マッピング機能を受信装置にとって利用可能にするステップは、マッピング機能、またはマッピング機能に関連付けられる値を受信装置に送信するステップを備える。
【００５９】
第4の態様によれば、本発明は、暗号化されたデータセットを受信して復号する方法であって、暗号化されたデータセットが第1の暗号化されたデータパッケージを備え、
・第1の復号プログラムおよび第1の暗号化されたデータパッケージを受信するステップであって、第1の暗号化されたデータパッケージが暗号データを備えるステップと、
・第1の暗号化されたデータパッケージおよび特定のキーを第1の復号プログラムに提供することによって、第1の暗号化されたデータパッケージを復号して、平文を備える第1のデータパッケージを作成するステップとを備える方法に関する。
【００６０】
いくつかの実施形態では、暗号化されたデータセットは第2の暗号化されたデータパッケージをさらに備え、本方法は、
・第2の暗号化されたデータパッケージを受信するステップであって、第2の暗号化されたデータパッケージが暗号データを備えるステップと、
・第2の暗号化されたデータパッケージおよび特定のキーを第1の復号プログラムに提供することによって第2の暗号化されたデータパッケージを復号して、平文を備える第2のデータパッケージを作成するステップとをさらに備える。
【００６１】
いくつかの実施形態では、第1の復号プログラムはコンパイルされた実行可能コードを備える。
【００６２】
いくつかの実施形態では、暗号化されたデータセットは第3の暗号化されたデータパッケージをさらに備え、本方法は、
・第2の復号プログラム、および前記第3の暗号化されたデータパッケージを受信するステップと、
・第3の暗号化されたデータパッケージおよび特定のキーを第2の復号プログラムに提供することによって、第3の暗号化されたデータパッケージを復号して、平文を備える第3のデータパッケージを作成するステップとをさらに備える。
【００６３】
いくつかの実施形態では、本方法は、
・特定のデータパッケージを暗号化するために使用される暗号化技法を指定するマッピング機能を取得するステップをさらに備え、
特定のデータパッケージを復号するために使用される特定の復号プログラムが、マッピング機能からの情報を使用することによって複数の復号プログラムから選択される。
【００６４】
いくつかの実施形態では、特定のデータパッケージを暗号化するために使用される暗号化技法を指定するマッピング機能を取得するステップは、特定のデータパッケージを暗号化するために使用される暗号化技法を指定するマッピング機能を受信するステップを備える。
【００６５】
いくつかの実施形態では、データセット全体が、単一のデータパッケージ内で連続して、または、個々のデータパッケージ間に大幅な時間間隔なしに受信された複数のデータパッケージ内で受信される。
【００６６】
いくつかの実施形態では、本方法は、データセットの送信が終了したことを示す命令を受信して、受信した命令に応答して第1の復号プログラムを削除するステップをさらに備える。
【００６７】
第5の態様によれば、本発明は、上記で指定された方法を使用してデータセットを暗号化して送信するように構成された送信装置に関する。
【００６８】
第6の態様によれば、本発明は、上記で指定された方法を使用して、暗号化されたデータセットを受信して復号するように構成された受信装置に関する。
【００６９】
本方法は、通話を暗号化するために使用され得る。たとえば、第1の暗号化技法は、第1の通話の間に使用されてよく、第2の暗号化技法は第2の通話の間に使用されてよい。第1の暗号化技法および第2の暗号化技法は、通話の間の双方向通信のために使用され得る。たとえば、人Aと人Bとの間の通話中、第1のデバイス(人A)が第1の暗号化技法を選択して、第1の暗号化技法によってデータパッケージを第2のデバイス(人B)に送信し、任意で第2のデバイス(人B)が第2の暗号化技法を選択して、第2の暗号化技法によってデータパッケージを第1のデバイス(人A)に送信する。
【００７０】
暗号化を使用してデータセットを送信する方法であって、データセットが第1のデータパッケージを備え、本方法が、暗号化管理システムで複数の暗号化技法から第1の暗号化技法を自動的に選択するステップであって、前記第1の暗号化技法が、平文データを暗号データに暗号化するための第1の暗号化アルゴリズムと、特定のキーを提供されることにより暗号データを復号して平文データを再現するための第1の復号アルゴリズムとを備えるステップと、前記第1の暗号化技法の第1の暗号化アルゴリズムを実装する第1の暗号化プログラムを使用して平文データを備える第1のデータパッケージを暗号化して、暗号データを備える第1の暗号化されたデータパッケージを作成するステップと、前記第1の暗号化技法の第1の復号アルゴリズムを実装する第1の復号プログラムを表す情報を送信するステップと、前記第1の暗号化されたデータパッケージを受信者に送信するステップとを備え、第1の復号プログラムは、受信者において、特定のキーおよび第1の暗号化されたデータパッケージを提供されることにより、第1の復号プログラムが第1の暗号化されたデータパッケージ内の暗号データを復号して、第1のデータパッケージの平文データを再現するように構成されている方法が開示される。本方法は、たとえば第1の復号プログラムを表す情報に基づいて、前記第1の暗号化技法の第1の復号アルゴリズムを実装する第1の復号プログラムを取得するステップを備え得る。前記第1の暗号化技法の第1の復号アルゴリズムを実装する第1の復号プログラムを表す情報を送信するステップは、前記第1の復号プログラム、および/あるいはマッピング機能またはマッピング機能パラメータを受信者に送信するステップで構成されてもよく、それを備えてもよい。
【００７１】
本発明の異なる態様は、暗号化を使用してデータセットを送信するための方法、暗号化されたデータセットを受信して復号する方法、暗号化を使用してデータを送受信するシステム、それぞれが上記で説明した態様のうちの少なくとも1つに関連して説明した利益および利点のうちの1つまたは複数をもたらし、それぞれが上記で説明した、および/または添付の特許請求の範囲において開示される態様のうちの少なくとも1つに関連して説明した好ましい実施形態に対応する1つまたは複数の好ましい実施形態を有する、送信装置および受信装置を含む、異なる方法で実装され得る。
【００７２】
さらに、本明細書で説明した態様のうちの1つに関連して説明した実施形態は、他の態様に同様に適用され得ることが理解されよう。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施形態による、暗号化を使用して第1のデータパッケージを備えるデータセットを送信する方法の流れ図である。
【図２】本発明の実施形態による、暗号化されたデータセットを受信して復号する方法の流れ図である。
【図３】本発明の実施形態による、電話での会話を暗号化する方法の流れ図である。
【発明を実施するための形態】
【００７４】
次に、カスタマイズされた暗号化技法を作成するステップをより詳細に扱う。以下の考察は、既存の暗号化技法のプライベートバージョンを構築する方法に関する。いわゆるブロック暗号に焦点を当てる。ブロック暗号は、所与のnビットの平文についてnビットの暗号文を計算するためにκビットを有するキーを、所与のnビットの暗号文に対応するnビットの平文を計算するための復号アルゴリズムとともに使用して、nビットのブロックをnビットのブロックに暗号化する。
【００７５】
多くのブロック暗号は、いわゆる反復暗号であり、固定キー依存ラウンド関数を反復方式でr回入力に適用することによって出力が計算される。このような暗号は、rラウンド反復(ブロック)暗号と呼ばれる。キースケジュールアルゴリズムは、ユーザが選択したκビットのキーの入力にサブキーk1.....krのセットを生成する。
【００７６】
ラウンド関数と呼ばれる関数gは、2つの引数のうちの最初の引数が固定されている場合は可逆である。関数gは以下のように定義される:
Zi=g(ki,zi-1)
上式で、z0は平文であり、kiはi番目のサブキーであり、zrは暗号文である。
【００７７】
以下では、暗号化(.,.)は暗号化ルーチンを示し、復号(.,.)は対応する復号ルーチンを示し、たとえば暗号化(m,k)はキーkを使用して暗号化されたmの値であり、復号(c,k)はキーkを使用して復号されたcの値であり、したがって暗号化(m,k)=cの場合、復号(c,k)=mである。ここでは、mおよびcはそれぞれnビットで構成され、kはκビットで構成されている。
【００７８】
ブロック暗号における実効キーサイズを増加させる1つの方法は、キーホワイトニングによるものである。ある手法は以下の通りである。nビットのメッセージxを暗号化するために、y=encrypt(x+k1,k)+k2を行う。上式で、kはκビットのキーであり、k1およびk2はnビットのキーである。あるいはk1=k2が使用され得る。これは、「Journal of Cryptology, Vol 14, No 1, pages 17-35,2001」に示されており、内部構造を悪用しない攻撃に対しては、実効キーサイズはκ+n-log2 mビットであり、mは攻撃者が取得することができる平文/暗号文ペアの最大数である。すなわち、実効キーサイズは少なくとも元のシステムのサイズであり、κ+n-log2 m≧κである。カスタマイズされた様々なブロック暗号を作成するために、キーホワイトニングも使用され得る。
【００７９】
いくつかの暗号化技法は、たとえば大きな基本のセットから設計におけるコンポーネントのうちのいくつかを選択することによって、カスタマイズすることができるように設計されている。一例として、AESの設計の背後にあるワイドトレイル戦略(wide-trail strategy)がある。ほとんどのブロック暗号に関して、AESは、いくつかの線形マッピングといくつかの非線形のマッピングで分割され得る。ワイドトレイル戦略では、これらの2つのマッピングのセットが、いくつかのあらかじめ定義された制約のセットによって別々に構築される。これらの制約を満たすあらゆるコンポーネントにとって、結果は安全な暗号化技術であり、本明細書では「安全な」はあらかじめ定義された制約に関連する。
【００８０】
反復ブロック暗号の推定されるセキュリティレベルは、各反復において使用されるサブキーが別々であると仮定することによってしばしば見出される。しかしながら、サブキーは、いわゆるキースケジュール内のより短いユーザが選択したキーKからしばしば計算される。システムのさらなるカスタマイズは、キースケジュールを修正することによって取得され得る。
【００８１】
「モジュール暗号化」を使用することも可能である。ブロック暗号内のラウンドの一般的な数は16か32であり、1ラウンドの計算の複雑さに依存する。モジュール暗号化では、いくつかの反復暗号、たとえばsが構築されており、それぞれが少数のラウンドを有する。秘密キーKから、小さい暗号において使用されるべきいくつかのサブキーが生成されている。それぞれが異なるサブキーに依存する、このような小さい暗号のtの連結は、すべての知られている攻撃に対して抵抗力のある、強い暗号を生成すると仮定され得る。このように、stの様々な暗号を選択することが可能である。
【００８２】
図面をより詳細に参照すると、図1は、本発明の実施形態による、暗号化を使用して第1のデータパッケージを備えるデータセットを送信する方法の流れ図を示している。
【００８３】
ステップ101で、第1の暗号化技法であって、平文データを暗号データに暗号化するための第1の暗号化アルゴリズムと、特定のキーを提供されることにより暗号データを復号して平文データを再現するための第1の復号アルゴリズムとを備える第1の暗号化技法が選択される。次に、ステップ102で、暗号データを備える第1の暗号化されたデータパッケージを作成する平文データを備える第1のデータパッケージを暗号化するために、前記第1の暗号化技法の第1の暗号化アルゴリズムを実装する第1の暗号化プログラムが使用される。ステップ103で、前記第1の暗号化技法の第1の復号アルゴリズムを実装する第1の復号プログラムが作成される。最後に、ステップ104で、第1の復号プログラムおよび第1の暗号化されたデータパッケージが受信者に送信される。第1の復号プログラムは、受信者において、特定のキーおよび第1の暗号化されたデータパッケージを提供されることにより、第1の復号プログラムが第1の暗号化されたデータパッケージ内の暗号データを復号して、第1のデータパッケージの平文データを再現するように構成されている。ステップのうちのいくつかまたは全ては、別の連続的順序で実行されてもよく、および/または並行して実行されてもよいことを理解されたい。第1の暗号化されたデータパッケージおよび第1の復号プログラムは、結合されたデータパッケージに結合されて、同時に受信者に送信されてよい。これは、暗号化処理、たとえばファイル、文書、および/または電子メールの暗号化の開始時に暗号化プログラムにとってすべてのデータが利用可能な暗号化タスクにとって有益である。あるいは/さらに、第1の暗号化されたデータパッケージおよび/または後続の暗号化されたデータパッケージは、第1の復号プログラムはが送信された後に送信され得る。これは、たとえばデータストリームの暗号化、たとえば電話またはテレビ電話での会話の暗号化などの、データが経時的に暗号化プログラムにとって利用可能になる暗号化タスクにとって有益である。
【００８４】
図2は、本発明の実施形態による、暗号化されたデータセットを受信して復号する方法であって、暗号化されたデータセットが第1の暗号化されたデータパッケージを備える方法の流れ図を示している。ステップ201で、第1の復号プログラムおよび第1の暗号化されたデータパッケージが受信されて、第1の暗号化されたデータパッケージは暗号データを備える。次に、ステップ202で、第1の暗号化されたデータパッケージが、第1の暗号化されたデータパッケージおよび特定のキーを第1の復号プログラムに提供することによって復号される。これは、平文を備える第1のデータパッケージをもたらす。任意で、データセット全体が受信されたことを示す命令の受信に応答して、ステップ203で、受信された復号プログラムが削除される。
【００８５】
図3は、本発明の実施形態による、電話での会話を暗号化する方法の流れ図を示している。ステップ301で、通話の受信者を示す情報、たとえば電話番号またはユーザ名が入力される。次に、ステップ302で、第1の暗号化技法であって、平文データを暗号データに暗号化するための第1の暗号化アルゴリズムと、特定のキーを提供されることにより暗号データを復号して平文データを再現するための第1の復号アルゴリズムとを備える第1の暗号化技法が選択される。次いで、ステップ303で、復号アルゴリズムを実装する復号プログラムが取得される。ステップ304で、復号プログラムが受信者に送信される。ステップ305で、実際の電話での会話が開始される。これは、第1の(短い)サウンド信号、たとえば、5ミリ秒、10ミリ秒、20ミリ秒、または50ミリ秒を録音して、録音された第1のサウンド信号を第1のデータパッケージに格納することによって行われ、第1のサウンド信号は平文データとして格納される。次いで、第1のデータパッケージが、第1の暗号化アルゴリズムを実装する第1の暗号化プログラムを使用して暗号化されて、ステップ306で、暗号データを備える第1の暗号化されたデータパッケージを作成する。ステップ307で、第1の暗号化されたデータパッケージが受信者に送信される。受信者において、第1の暗号化されたデータパッケージおよび特定のキーが受信された復号プログラムに提供され、それによって、復号プログラムが、第1の暗号化されたデータパッケージ内の暗号データを復号して、第1のデータパッケージの平文データを再現する。次いで、受信者において、平文データとして格納された第1のサウンド信号が再生され得る。310で、電話での会話が終了するまでステップ305から307が繰り返される。したがって、第2/第3/第4..のサウンド信号が録音されて、第2/第3/第4..のデータパッケージに格納され、暗号化されて、受信者に送信される。任意で、311で、単一の電話での会話内でステップ302から304も繰り返され、それによって、平文データを暗号データに暗号化するための第2の暗号化アルゴリズムと、特定のキーを提供されることにより暗号データを復号して平文データを再現するための第2の復号アルゴリズムとを備える第2の暗号化技法が選択される。次いで、第2の復号プログラムが取得されて受信者に送信され、次いで、ステップ306で、後続のデータパッケージを暗号化するために第2の暗号化アルゴリズムを実装する第2の暗号化プログラムが使用される。あるいは/さらに、実際の電話での会話が開始される前に、ステップ302から304が繰り返されてよく、それによって、実際の電話での会話が開始される前に、複数の暗号化技法が選択されて、複数の復号プログラムが取得されて、受信者に送信される。さらに、マッピング機能が取得されて受信者に送信されてよく、マッピング機能は、特定のデータパッケージを暗号化するために使用される暗号化技法を指定する。傍受者は、使用された暗号化技法、および同じ暗号化技法で暗号化されたのはどの暗号化されたデータパッケージかの両方が分からない可能性があるので、これによって使用された暗号化のセキュリティが強化される。電話での会話が終了した後、309で命令が受信者に送信されてよく、命令は、受信者において1つまたは複数の受信された復号プログラムが��除されるように構成されている。
【００８６】
また、302から309は、双方向の暗号化された電話での会話を可能にする受信者の音声/スピーチを暗号化するために受信者において実行されてよいことを理解されたい。本方法のステップのうちのいくつかは、異なる連続的順序で、および/または並行して実行されてよく、たとえばステップ305は他のステップのうちの1つまたは複数と並行して実行されてよいことをさらに理解されたい。
【００８７】
受信装置で実行する、復号のためのコードの一例は、以下の通りである
【００８８】
【数１】
2014531175.tif 000003
【００８９】
技法のライブラリから選択されている単一の暗号化技法の代わりに、代替の実施形態では、平文がいくつかのブロックに分割されて、異なるルーチンを使用してブロックが暗号化される。これらのルーチンは、基本ルーチンの変形であってよい。
【００９０】
以下は、本発明の実施形態によるキーホワイトニングの例である。AとBは秘密キーkを交換しており、彼らは秘密裏に通信したいものと仮定する。
【００９１】
nビットのメッセージmを暗号化するために、Aは以下のことを行う:
1. それぞれがnビットである2つの乱数r1およびr2を選択する。
2. c:=encrypt(m  r1,k)  r2を計算する。
3. w1:=encrypt(r1,k)、w2:=encrypt(r2,k)、
4. Aが、c、w1、およびw2を組み込んだプログラムを書く。プログラムは以下のことを行う。
・秘密キーkを入力として受け取る、
・r1=decrypt(w1,k), r2=decrypt(w2,k)を計算する
・ホワイトニングキーr2を減算する、ctemp:=ciphertext-r2、
・ctempを復号する、ptemp:=decrypt(ctemp,k)、および
・平文を取り出して、m:=ptemp-r1、それをプリントする
5.Aがプログラムをコンパイルして、実行可能コードをBに送信する。
【００９２】
上記の方法では、1つのnビットのブロックの暗号化だけが指定されている。しかしながら、平文の多くのブロックを暗号化するためにk、r1、およびr2の値が使用され得る。あるいは、送信者は、kの同じ値を使用して、平文のsの連続するnビットのブロックごとに、r1およびr2の異なる値を選択することができる。しかしながら、sの値を減少させるため、暗号化速度が低下する。
【００９３】
プログラムの一例を以下に示す:
【００９４】
【数２】
2014531175.tif 000004
【００９５】
次に、別の例を説明する。ブロック暗号Serpent(www.ramkilde.com/serpentを参照)は、32ラウンドの反復ブロック暗号である。Serpentは、128、192、または256ビットのいずれかの様々な大きさのキーを使用して、128ビットの平文ブロックを128ビットの暗号文ブロックに暗号化する。各ラウンドは128ビットのラウンドキーを取り、1つのSボックスを使用する。S0、S1、....、S7と番号付けされた8つの異なるSボックスがあり、以下のように使用される。no.iのラウンドにおいてSボックスはS(i-1)mod8である。例を挙げると、S0は1、9、17、および25と番号付けされたラウンドにおいて使用され、S1は、2、10、18、および26と番号付けされたラウンドにおいて使用される。すべてのSボックスは、同じ基準によって設計されており、SボックスがSerpentで使用される方法の順序は任意である。8つのSボックスを順序付けるために合計で40,320の異なる方法があり、カスタマイズされたシステムを作成するために使用され得る。Serpentについて、暗号化は以下のように行われ、状態は平文で初期化される:
for i:=1 to 32 do
state:=round-function(S(i-1)mod8,state)
状態の最後の値が暗号文である。
【００９６】
カスタマイズされたシステムでは、perm(  )、およびperm2(  )によって指定された番号{0,1,2,3,4,5,6,7}の順列を選択することができ、次いで、暗号化は以下のように行われる:
for i:=1 to 32 do
state:=round-function(Sperm((i-1)mod8),state)
【００９７】
perm={3, 5, 2, 6, 4, 1, 7, 0}の場合、1、9、17、および25と番号付けされたラウンドにおいてS3が使用され、2、10、18、および26と番号付けされたラウンドにおいてS5が使用される。
【００９８】
さらにより多くのSerpentの変形を作成するために、perm(.)およびperm2(.0)によって指定された数(0, 1, 2, 3, 4, 5, 6, 7)の2つの異なる順列が選択され得る。次いで、暗号化は以下のように行われる:
for i:=1 to 8 do
state:=round-function(Sperm((i-1)mod8),state)
for i:=9 to 16 do
state:=round-function(Sperm2((i-1)mod8),state)
for i:=17 to 24 do
state:=round-function(Sperm((i-1)mod8),state)
for i:=25 to 32 do
state:=round-function(Sperm2((i-1)mod8),state)
permとperm2の両方を指定する可能な方法が40,320あるので、合計で1,625,702,400の異なるSerpentの変形があることになる。
【００９９】
さらなる例は、高度暗号化標準(AES)に関する。これは、128、192、または256ビットのいずれかのキーを使用して128ビットのブロックを暗号化する反復ブロック暗号である。AES内の唯一の非線形コンポーネントおよびコアは、いわゆるSボックスであり、1バイトのすべての256の値の順列で構成される表である。従来、このSボックスは1つの特殊な形式を有している。結果として得られる暗号化システムが最も一般的な攻撃に対して同等のセキュリティを有するように、多くの異なるSボックスを生成することが可能である(上記で説明したワイドトレイル戦略を参照のこと)。AESで使用されるべき順列を選択する方法は256!≒10507ある。しかしながら、強力な暗号化アルゴリズムにつながるものを見つけることは容易ではない。ブロック暗号の設計と暗号解析の専門家は、Sボックスの大規模なセット、たとえば10,000ボックスを生成することができる。暗号化のシナリオでは、送信者はこれらのボックスのうちの1つをランダムに選択して、それを暗号化および復号の操作に組み込むことができる。送信者は、彼のメッセージを暗号化して、暗号文を復号プログラムに組み込んで、プログラムをコンパイルして実行可能コードを受信者に送信する。
【０１００】
AESのキースケジュールは、ユーザが選択したκビットのキーを取って、それぞれが128ビットであるラウンドキーのセットを生成する。キースケジュールアルゴリズム内の唯一の非線形コンポーネントは、上述の暗号化ルーチンからのSボックスである。したがって、さらなるカスタマイズは、キースケジュールにおいて使用されるSボックスを上記で生成された10,000ボックスの集まりから選択することによって取得され得る。これによって、合計で100,000,000のAESの異なる変形がもたらされる。
【０１０１】
これまで、基本的な暗号化技法から異なる暗号化ルーチンが生成され得る方法を示してきた。これらは、平文の異なる部分に適用され得る。
【０１０２】
一般的に、使用される暗号化技法は意図されるデータの受信者には知られていないことが理解されよう。同様に、使用される復号ルーチンは、意図されるデータの受信者には知られておらず、一般的に復号ルーチンは、キーが提供された後にプログラムが実行される場合のみ受信装置にとって利用可能である。それらは受信装置にプリインストールされていない。
【０１０３】
以下の項目のうちのいずれかによる方法およびシステムが開示される。
【０１０４】
項目1。暗号化を使用してデータセットを送信する方法であって、データセットが第1のデータパッケージを備え、本方法が、
・第1の暗号化技法を選択するステップであって、前記第1の暗号化技法が、平文データを暗号データに暗号化するための第1の暗号化アルゴリズムと、特定のキーを提供されることにより暗号データを復号して平文データを再現するための第1の復号アルゴリズムとを備えるステップと、
・前記第1の暗号化技法の第1の暗号化アルゴリズムを実装する第1の暗号化プログラムを使用して平文データを備える第1のデータパッケージを暗号化して、暗号データを備える第1の暗号化されたデータパッケージを作成するステップと、
・前記第1の暗号化技法の第1の復号アルゴリズムを実装する第1の復号プログラムを取得するステップと、
・前記第1の復号プログラムおよび/または前記第1の暗号化されたデータパッケージを受信者に送信するステップとを備え、
第1の復号プログラムは、受信者において、特定のキーおよび第1の暗号化されたデータパッケージを提供されることにより、第1の復号プログラムが第1の暗号化されたデータパッケージ内の暗号データを復号して、第1のデータパッケージの平文データを再現するように構成されている、方法。
【０１０５】
項目2。暗号化技法を選択するステップが、複数の暗号化技法から1つの暗号化技法を選択するステップを備える、項目1に記載の方法。
【０１０６】
項目3。暗号化技法が暗号化管理システムによって選択される、項目1または2のいずれか一項に記載の方法。
【０１０７】
項目4。暗号化技法を選択するステップが、ランダムおよび/または疑似ランダムイベントによって、複数の暗号化技法から1つの暗号化技法を選択するステップを備える、項目1から3のいずれか一項に記載の方法。
【０１０８】
項目5。前記データセットが第2のデータパッケージをさらに備え、前記方法が、
・第1の暗号化プログラムを使用して平文データを備える第2のデータパッケージを暗号化して、暗号データを備える第2の暗号化されたデータパッケージを作成するステップと、
・前記第2の暗号化されたデータパッケージを受信者に送信するステップとをさらに備え、
第1の復号プログラムは、受信者において、特定のキーおよび第2の暗号化されたデータパッケージを提供されることにより、第1の復号プログラムが第2の暗号化されたデータパッケージ内の暗号データを復号して、第2のデータパッケージの平文データを再現するようにさらに構成されている、項目1から4のいずれか一項に記載の方法。
【０１０９】
項目6。第1の復号プログラムが、送信される前に実行可能プログラムにコンパイルされる、項目1から5のいずれか一項に記載の方法。
【０１１０】
項目7。第1の暗号化技法が、暗号化技法生成プログラムを使用して生成されたカスタム暗号化技法である、項目1から6のいずれか一項に記載の方法。
【０１１１】
項目8。データセットが第3のデータパッケージをさらに備え、本方法が、
・第2の暗号化技法を選択するステップであって、前記第2の暗号化技法が、平文データを暗号データに暗号化するための第2の暗号化アルゴリズムと、特定のキーを提供されることにより暗号データを復号して平文データを再現するための第2の復号アルゴリズムとを備えるステップと、
・前記第2の暗号化技法の第2の暗号化アルゴリズムを実装する第2の暗号化プログラムを使用して平文データを備える第3のデータパッケージを暗号化して、暗号データを備える第3の暗号化されたデータパッケージを作成するステップと、
・前記第2の暗号化技法の第2の復号アルゴリズムを実装する第2の復号プログラムを取得するステップと、
・前記第2の復号プログラム、および/または前記第3の暗号化されたデータパッケージを受信者に送信するステップとをさらに備え、
第2の復号プログラムが、受信者において、特定のキーおよび第3の暗号化されたデータパッケージを提供されることにより、第2の復号プログラムが第3の暗号化されたデータパッケージ内の暗号データを復号して、第3のデータパッケージの平文データを再現するように構成されている、項目1から7のいずれか一項に記載の方法。
【０１１２】
項目9。データセット全体が、単一のデータパッケージ内で連続して、または個々のデータパッケージ間にわずかな時間間隔をあけて送信される複数のデータパッケージ内で送信される、項目1から8のいずれか一項に記載の方法。
【０１１３】
項目10。送信が終了したことを示す命令を受信者に送信するステップをさらに備え、本命令が、受信者において第1の復号プログラムが削除されるように構成される、項目1から9のいずれか一項に記載の方法。
【０１１４】
項目11。暗号化を使用してデータを送受信するためのシステムであって、暗号化されたデータを受信するための受信装置、および暗号化されたデータを送信するための送信装置を備え、
・第1の暗号化技法を選択するステップであって、前記第1の暗号化技法が、平文データを暗号データに暗号化するための第1の暗号化アルゴリズムと、特定のキーを提供されることにより暗号データを復号して平文データを再現するための第1の復号アルゴリズムとを備えるステップと、
・前記第1の暗号化技法の第1の復号アルゴリズムを実装する第1の復号プログラムを取得するステップと、
・前記第1の復号プログラムを前記受信装置に任意で送信するステップと、
・送信装置で、前記第1の暗号化技法の第1の暗号化アルゴリズムを実装する第1の暗号化プログラムを使用して平文データを備える第1のデータパッケージを暗号化して、暗号データを備える第1の暗号化されたデータパッケージを作成するステップと、
・送信装置から、第1の暗号化されたデータパッケージを受信装置に送信するステップと、
・受信装置で、第1の復号プログラムおよび特定のキーを使用して第1の暗号化されたデータパッケージを復号するステップであって、第1のデータパッケージの平文データが再現されて、受信装置にとって利用可能にされるステップとによって、暗号化を使用して第1のデータパッケージを備えるデータセットを送信するように構成される、システム。
【０１１５】
項目12。受信装置が、データセットの送信が完了した後に、第1の復号プログラムを削除するようにさらに構成される、項目11に記載のシステム。
【０１１６】
項目13。データセット全体を、単一のデータパッケージ内で連続して、または個々のデータパッケージ間に大幅な時間間隔なしに送信される複数のデータパッケージ内で送信するように構成される、項目11から12のいずれか一項に記載のシステム。
【０１１７】
項目14。第1の暗号化技法が複数の暗号化技法から選択される、項目11から13のいずれか一項に記載のシステム。
【０１１８】
項目15。第1の暗号化技法が暗号化管理システムによって選択される、項目11から14のいずれか一項に記載のシステム。
【０１１９】
項目16。暗号化技法を選択するステップが、ランダムおよび/または疑似ランダムイベントによって、複数の暗号化技法から1つの暗号化技法を選択するステップを備える、項目11から15のいずれか一項に記載のシステム。
【０１２０】
項目17。データセットが第2のデータパッケージをさらに備え、本システムが、
・前記第1の暗号化技法の第1の暗号化プログラムを使用して平文データを備える第2のデータパッケージを暗号化して、暗号データを備える第2の暗号化されたデータパッケージを作成して、
・前記第2の暗号化されたデータパッケージを受信者に送信するようにさらに構成され、
第1の復号プログラムが、受信者において、特定のキーおよび第2の暗号化されたデータパッケージを提供されることにより、復号プログラムが第2の暗号化されたデータパッケージ内の暗号データを復号して、第2のデータパッケージの平文データを再現するように構成されている、項目11から16のいずれか一項に記載のシステム。
【０１２１】
項目18。第1の復号プログラムが、送信される前に実行可能プログラムにコンパイルされる、項目11から17のいずれか一項に記載のシステム。
【０１２２】
項目19。第1の暗号化技法が、暗号化技法生成プログラムを使用して生成されたカスタム暗号化技法である、項目11から18のいずれか一項に記載のシステム。
【０１２３】
項目20。データセットが第3のデータパッケージをさらに備え、本システムが、
・第2の暗号化技法を選択して、前記第2の暗号化技法が、平文データを暗号データに暗号化するための第2の暗号化アルゴリズムと、特定のキーを提供されることにより暗号データを復号して平文データを再現するための第2の復号アルゴリズムとを備え、
・前記第2の暗号化技法の第2の復号アルゴリズムを実装する第2の復号プログラムを取得して、
・前記第2の復号プログラムを前記受信装置に任意で送信して、
・前記第2の暗号化技法の第2の暗号化アルゴリズムを実装する第2の暗号化プログラムを使用して送信装置で平文データを備える第3のデータパッケージを暗号化して、暗号データを備える第3の暗号化されたデータパッケージを作成して、
・送信装置から、第3の暗号化されたデータパッケージを受信装置に送信して、
・受信装置で、第2の復号プログラムおよび特定のキーを使用して第3の暗号化されたデータパッケージを復号するようにさらに構成され、第3のデータパッケージの平文データが再現されて、受信装置にとって利用可能にされる、項目11から19のいずれか一項に記載のシステム。
【０１２４】
項目21。第1の送信の終了と第2の送信の開始との間に大幅な時間間隔があり、第1の送信のために使用される選択された暗号化技法が第2の送信のために使用される選択された暗号化技法とは異なる、第2の送信を実行するようにさらに構成される、項目11から12のいずれか一項に記載の暗号化を使用してデータを送受信するためのシステム。
【０１２５】
項目22。暗号化されたデータセットを受信して復号する方法であって、暗号化されたデータセットが第1の暗号化されたデータパッケージを備え、本方法が、
・第1の復号プログラムおよび第1の暗号化されたデータパッケージを受信するステップであって、第1の暗号化されたデータパッケージが暗号データを備えるステップと、
・第1の暗号化されたデータパッケージおよび特定のキーを第1の復号プログラムに提供することによって、第1の暗号化されたデータパッケージを復号して、平文を備える第1のデータパッケージを作成するステップとを備える、方法。
【０１２６】
項目23。暗号化されたデータセットが第2の暗号化されたデータパッケージをさらに備え、
・第2の暗号化されたデータパッケージを受信するステップであって、第2の暗号化されたデータパッケージが暗号データを備えるステップと、
・第2の暗号化されたデータパッケージおよび特定のキーを第1の復号プログラムに提供することによって第2の暗号化されたデータパッケージを復号して、平文を備える第2のデータパッケージを作成するステップとをさらに備える、項目22に記載の方法。
【０１２７】
項目24。第1の復号プログラムがコンパイルされた実行可能コードを備える、項目22から23のいずれか一項に記載の方法。
【０１２８】
項目25。暗号化されたデータセットが第3の暗号化されたデータパッケージをさらに備え、
・第2の復号プログラム、および/または前記第3の暗号化されたデータパッケージを受信するステップと、
・第3の暗号化されたデータパッケージおよび特定のキーを第2の復号プログラムに提供することによって、第3の暗号化されたデータパッケージを復号して、平文を備える第3のデータパッケージを作成するステップとをさらに備える、項目22から24のいずれか一項に記載の方法。
【０１２９】
項目26。データセット全体が、単一のデータパッケージ内で連続して、または、個々のデータパッケージ間に大幅な時間間隔なしに受信された複数のデータパッケージ内で受信される、項目22から25のいずれか一項に記載の方法。
【０１３０】
項目27。データセットの送信が終了したことを示す命令を受信して、受信した命令に応答して第1の復号プログラムを削除するステップをさらに備える、項目22から26のいずれか一項に記載の方法。
【０１３１】
項目28。暗号化を使用して第1のデータセットを送信して、暗号化を使用して第2のデータセットを送信する方法であって、第1のデータセットの送信および第2のデータセットの送信が項目1から10のいずれか一項による方法を使用して実行され、第1のデータセットの送信の終了と第2のデータセットの送信の開始との間に時間間隔があり、第1のデータセットの送信のために使用される選択された暗号化技法が、第2のデータセットの送信のために使用される選択された暗号化技法とは異なる、方法。
【０１３２】
項目29。項目1から10のいずれか一項による方法を使用してデータセットを暗号化して送信するように構成された、送信装置。
【０１３３】
項目30。項目22から27のいずれか一項による方法を使用して暗号化されたデータセットを受信して復号するように構成された、受信装置。
【０１３４】
項目31。データ処理システム上で前記プログラムコード手段が実行されると、データ処理システムに、項目1から10または項目22から27のいずれか一項によって本方法のステップを実行させるように適合されたプログラムコード手段を格納した、データ処理システム。
【０１３５】
項目32。データ処理システム上で前記プログラムコード手段が実行されると、データ処理システムに、項目1から10または項目22から27のいずれか一項によって本方法のステップを実行させるように適合されたプログラムコード手段を備える、コンピュータプログラム製品。
【０１３６】
項目33。プログラムコード手段を格納したコンピュータ可読媒体を備える、項目32に記載のコンピュータプログラム製品。
【０１３７】
項目34。搬送波に組み入れられ、プロセッサによって実行されると、プロセッサに、項目1から10または項目22から27のいずれか一項によって本方法のステップを実行させる命令のシーケンスを表す、コンピュータデータ信号。
【図１】
2014531175.tif 000005
【図２】
2014531175.tif 000006
【図３】
2014531175.tif 000007
【国際調査報告】
2014531175.tif 000008
2014531175.tif 000009
2014531175.tif 000010