(57)【要約】      （修正有）【課題】ブロック暗号化における新しい概念とアプローチの提供。【解決手段】ブロック暗号化とプライベートキーを使用して、バイナリコード化したデータを暗号化する方法であって、この方法は、ブロック毎に異なる暗号を該キーから生成することにより特徴付けられる。ハードウェア実現は、暗号生成段階（１２、１４、１６、１８、２０）と、暗号化適用段階（２４、２６、２８、３０）とを設けている。暗号化適用段階は、ＡＮＤ、ＸＯＲ、ＯＲの単純な切り替え動作のみによって暗号化を実行する論理回路を使用することで、非常に高速なパフォーマンスを可能にしている。【選択図】図１
2004157535.tif 000002
【特許請求の範囲】
【請求項１】
ブロック暗号とプライベートキーを使用してバイナリデータを暗号化する方法であって、前記方法が、
前記プライベートキーを使用して一連のコーディング変換を生成し、前記一連のコーディング変換が繰り返し可能な方法で生成され、
前記一連のコーディング変換の各々が、暗号化する前記バイナリデータブロック内の要素を変更するべく適応されており、
前記コーディング変換を選択的に適用することで、前記バイナリデータブロックを暗号化する、バイナリデータを暗号化する方法。
【請求項２】
前記一連の異なるコーディング変換を使用して前記ブロックの各々を暗号化する、請求項１に記載のバイナリデータを暗号化する方法。
【請求項３】
前記一連の連続的に生成したコーディング変換を使用して、前記バイナリデータを含む連続ブロックを暗号化する、請求項２に記載のバイナリデータを暗号化する方法。
【請求項４】
前記一連のコーディング変換の各々を適応させて、暗号化するバイナリデータブロック内の要素を転置する、請求項１〜３のいずれか１項に記載のバイナリデータを暗号化する方法。
【請求項５】
前記一連のコーディング変換の各々を適応させて、暗号化する前記バイナリデータブロック内の要素を選択的に反転させる、請求項１〜３のいずれか１項に記載のバイナリデータを暗号化する方法。
【請求項６】
前記一連のコーディング変換の各々を適応させて、暗号化するバイナリデータブロック内の要素を転置し、該要素のうち１つを選択的に反転させる、請求項１〜３のいずれか１項に記載のバイナリデータを暗号化する方法。
【請求項７】
前記一連のコーディング変換の各々が、転置機能を達成するための１つのサブ変換として、また、反転機能を達成するための別のサブ変換として生成され、
前記サブ変換が暗号化段階に任意の順序で適用される、請求項６に記載のバイナリデータを暗号化する方法。
【請求項８】
前記一連のコーディング変換が擬似ランダム方法で生成される、前出の請求項のうちいずれか１項に記載のバイナリデータを暗号化する方法。
【請求項９】
請求項１〜８のいずれか１項に記載の方法を実行するための暗号化装置であって、前記装置が、
暗号化するバイナリデータのプレーンブロックを受信するための入力バッファと、
前記プライベートキーを受信するための入力レジスタと、
前記一連のコーディング変換に関連し、前記プライベートキーを使用して、一連の制御出力を生成するための演算機構と、
前記一連のコーディング変換に従って、バイナリデータの入力プレーンブロックを暗号化したバイナリデータブロックに変換するための、前記一連の制御出力に応答する論理回路と、
前記暗号化したバイナリデータブロックを出力するための出力バッファとを備える暗号化装置。
【請求項１０】
ブロック暗号化とプライベートキーを使用して、バイナリデータを暗号化するためのコンピュータプログラム製品であって、前記製品が、前記製品内で具現化された前記プログラムを計算機能、コンピュータ、またはコンピュータネットワークを装備したプロセッサ上で実行した際に、請求項１〜８のいずれか１項に記載の方法を実行する１組の命令を構成するプログラムコードを有するコンピュータプログラム製品。
【請求項１１】
ブロック暗号化とプライベートキーを使用して、バイナリデータを暗号化するためのコンピュータプログラムであって、前記プログラムが、前記プログラムを計算機能、コンピュータ、またはコンピュータネットワークを装備したプロセッサ上で実行した際に、請求項１〜８のいずれか１項に記載の方法を実行する１組の命令を構成するプログラムコードを有するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ暗号化方法、および関連する復号化方法に関するものである。本発明はさらに、このような方法の実現に使用する、ソフトウェア形式、ハードウェア形式、またはこれらの組み合わせの形式における製品に関する。
【背景技術】
【０００２】
暗号化システムは、暗号キーと、非対称暗号化システムおよび対称暗号化システムとの特徴に基づき、技術上２つのタイプに分類されてきた。非対称暗号化システムは、デュアルキーシステムまたは公開キーシステムとも呼ばれる。公開キー暗号システムには、公開キーとプライベートキーが存在する。公開キーは公開されるが、プライベートキーは秘匿される。暗号化は公開キーを使用して実行される一方で、復号はプライベートキーを使用して実行される。公開キーとプライベートキーは全く異なるものであるため、相互を推測することで導出を行うことは困難である。そのため、暗号化機能を解読機能から分離することができる。
【０００３】
対称暗号化システムはシングルキーシステム、プライベートキーシステム、または旧式暗号化システムとも呼ばれる。プライベートキーシステムでは、暗号化および復号化は完全に同一に実施されるか、または相互を推測することで容易に導出できるようになっている。プライベートキーシステムは、ストリーム暗号化システムおよびブロック暗号化システムに分類できる。ストリーム暗号化システムでは、要素毎のベースで、プレーンデータが暗号化される。これに反してブロック暗号化システムでは、プレーンデータが複数の要素を含んだ各々のブロックに分割され、ブロック毎のベースで暗号化が実施される。
【０００４】
本発明は、全てのデジタルデータを表示できるバイナリコード情報（これ以降、単純に「バイナリデータ」と呼ぶ）のブロック上で動作する対称暗号化システムまたはプライベートキー暗号化システムである。現在のところ、ＤＥＳ（すなわち、データ暗号化標準規格）が最も数多く、幅広い範囲で利用されているブロック暗号化システムである。このシステムは、非機密情報を暗号化するために、１９７７年に米国で連邦政府基準として採用された。
【０００５】
ＤＥＳに基づいたブロック暗号化の基本概念は、暗号化が、プレーンデータ（技術上、「平文」とも呼ばれる）から暗号化したデータ（「暗号文」）への一対一マッピングで構成され、その一方で、復号においては、暗号化したデータからプレーンデータへの前述とは逆の一対一マッピングを使用するというものである。つまりこの概念は、あらゆる所与のプレーンデータについて、暗号化したデータのバージョンはたった一つしか存在しないことを意味する。同様に、あらゆる所与の暗号化したデータについて、復号したデータのバージョンはたった一つしか存在しない。換言すれば、暗号化および復号化の最中に適用されるアルゴリズムは各々固定のものであり、変化しない。
【０００６】
ＤＥＳは公開基準である。暗号化アルゴリズムと復号化アルゴリズムが公開され、その使用が推奨されている。その安全性は、単純に、使用可能なキーの数に基づく。ブロックサイズｎについてＤＥＳを用いた場合、最大数の一対一暗号化マッピング、または最大数の一対一逆解読マッピングは２”である。ＤＥＳ基準内のブロックサイズは６４ビット、キーは５６ビットであり、これに、エラー検出のみを目的として８ビットが追加される。そのため、キーの総数は約７．２×１０１６となる。
【０００７】
近年におけるコンピュータ技術、特に膨大な量のデータを高速処理する能力の急速な進歩は、ＤＥＳが計算力という点での暴力に耐えられなかったことを意味する。１９９０年代後半に、使用可能なキーの値を試すことにより数時間後にＤＥＳキーを復元できる、特殊な「ＤＥＳクラッカー」マシンが製造された。結果的に、ＤＥＳは米国において２１年間にわたって利用されたが、その後１９９８年に使用が中止された。
【０００８】
２００１年には、米国はＡＥＳ（すなわち、次世代暗号標準）という新しいデータ暗号化標準を発表し、これが２００２年５月２６日より公式に認可された。しかし、この新しい標準は、先駆者であるＤＥＳにかけて理論的または技術的新規性を有していない。基本概念はＤＥＳのものと何ら変わらず、変化した点といえば、本質的にブロックサイズｎが２倍になったことのみである。ＡＥＳ基準は、１２８ビットのブロックサイズと、１２８、１９２、２５６ビットのキーサイズを指定している。ＡＥＳでは１２８ビットのキー値の数はＤＥＳの５６ビットのキー値の数の約１０２１倍になったが、しかし、コンピュータ技術がさらに進歩する過程において、この新しい標準もやがては危機に晒されるであろうと予測される。これに加えて、ブロックサイズの増加は実現が面倒である。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
電子メール通信のためのインターネットや、無線通信のためのフリースペースといった公共の媒体を介して送信が行われている個人および商業上の機密データ量の増加はとどまるところを知らないため、ブロック暗号化における新しい概念およびアプローチが必要であることは明白である。新しい基準は、プライバシーの保護と、個人および商業上のデータの安全性を別にした上で、将来的に危機に晒されないという優れた展望を示唆する必要がある。本発明はこのような必要性を満たすものである。
【課題を解決するための手段】
【００１０】
本発明によれば、ブロック暗号とプライベートキーを使用してバイナリデータを暗号化する方法であって、プライベートキーを使用して第１の一連のコーディング変換を生成し、この一連のコーディング変換が繰り返し可能な方法で生成され、第１の一連のコーディング変換の各々が、暗号化するバイナリデータブロック内の要素を変更するべく適応されており、コーディング変換を選択的に適用することで、バイナリデータブロックを暗号化する。
【００１１】
本発明の重要な特徴は、データブロックに使用するコーディング変換が時間と共に変化する際に、従来のプレーンデータから暗号化したデータへの一対一マッピングが多対多マッピングに置き換えられる点である。換言すれば、任意の所与のプレーンデータには多数のバージョンの暗号化データが存在する。同様に、任意の所与の暗号化データは、オリジナルプレーンデータの多数の使用可能なバージョンに関連する。暗号文がムービングターゲットを表し、異なるデータブロックに異なるコーディング変換を適用しているため、この暗号の復号は途方もない作業となる。この一連のコーディング変換は擬似ランダム特性を有することが好ましい。
【００１２】
好ましい実施形態では、第１の一連の異なるコーディング変換を使用して、各プレーンデータのブロックの暗号化を行う。そのため、プレーンデータに適用されたコーディングはブロックベース毎に変化する。復号を実現するために、コーディング変換の生成は繰り返し可能でなければならない。しかし、この一連のコーディング変換は、これを分析することでの再生成が不可能である。暗号文生成工程はプライベートキーによって制御される。
【００１３】
好ましい実施形態では、これに続いて生成された、第１の一連のコーディング変換を使用して、バイナリデータを含んだ連続ブロックの暗号化を行う。これ以外の方法、つまり、多数の連続ブロックに同一の変換を適用する方法、また、選択した変換を適用し、それ以外を破棄することで、生成した変換の全てを使用しない方法も可能である。前者の方法は、コーディング変換を計算する値を、ブロックを暗号化する値未満にするという利点を有し、後者の方法は、暗号化に複雑性が追加されるという利点を有する。
【００１４】
好ましい実施形態では、暗号化するブロックバイナリデータ内で要素を転置し、さらに、これら要素の１つを選択的に反転させるために、第１の一連のコーディング変換の各々を採用している。このようなコーディング変換は、転置機能を実行するための第１サブ変換として、また、反転機能を実行するための別のサブ変換として生成される。暗号化段階においてサブ変換を任意の順位で適用することができ、また、夫々別個に生成、適用することができる。ブロック内の全ての要素を暗号ブロック内の新規の位置へ転置する必要はない。特定の要素を転置せずに選択的に維持することで、応用形の総数が増加する。
【００１５】
別の実施形態では、第１の一連のコーディング変換を適用して、暗号化するブロック内の要素を転置する動作と、これら要素の１つを選択的に反転させる動作とのうち１つのみを実行する。
【００１６】
本発明の別の形態によれば、上述の方法により生成した暗号化したバイナリデータブロックの復号は、同一のプライベートキーを使用して第２の一連のコーディング変換を生成し、第２の一連のコーディング変換の各々が、第１の一連のコーディング変換における同等物に関連した反転機能を有し、暗号化段階における第１の一連のコーディング変換の場合と同じ方法で、第２の一連のコーディング変換を選択的に適用することで、暗号化したバイナリデータブロックを復号し、これにより、オリジナルのバイナリデータブロックを復元する。
【００１７】
復号化方法は、暗号化方法の反転によって構成される。暗号化はブロック要素の変換および反転の動作で構成されているが、暗号化の最中にはこれらの動作が逆に実行される。
【００１８】
本発明による暗号化および復号化方法の顕著な利点は、これらの方法を、単純な論理切り替え動作を用いて実行できることである。この特徴により、これらの方法が高速動作に適応し易くなる。これは、本願明細書中で後述している本発明のハードウェア実施形態から明白になる。さらなる利点は、ＤＥＳとＡＥＳを比較した場合のブロックサイズの柔軟性である。
【００１９】
或るハードウェア実施形態では、本発明による暗号化方法を実行するための暗号化装置が、暗号化するバイナリデータのプレーンブロックを受信するための入力バッファと、プライベートキーを受信するための入力レジスタと、第１の一連のコーディング変換に関連し、プライベートキーを使用して、第１の一連の制御出力を生成するための演算機構と、第１の一連のコーディング変換に従って、バイナリデータの入力プレーンブロックを暗号化したバイナリデータブロックに変換するための、第１の一連の制御出力に応答する論理回路と、暗号化したバイナリデータブロックを出力するための出力バッファとを備えている。
【００２０】
別のハードウェア実施形態では、本発明の復号化方法を実行する復号装置が、暗号化したバイナリデータブロックを受信するための入力バッファと、プライベートキーを受信するための入力レジスタと、第２の一連のコーディング変換に関連し、プライベートキーを使用して、第２の一連の制御出力を生成するための演算機構と、第２の一連のコーディング変換に従って、暗号化したバイナリデータの入力ブロックをバイナリデータのプレーンブロックに変換するための、第２の一連の制御出力に応答する論理回路と、バイナリデータのプレーンブロックを出力するための出力バッファとを備えている。
【００２１】
本発明はさらに、ブロック暗号化とプライベートキーを使用して、バイナリデータを暗号化するためのコンピュータプログラム製品を提供するが、該製品は、製品内で具現化されたプログラムを計算機能、コンピュータ、またはコンピュータネットワークを装備したプロセッサ上で実行した際に、前述した暗号化方法を実行する１組の命令を構成するプログラムコードを備えている。
【００２２】
本発明はさらに、暗号化したバイナリデータのブロックを復号するためのコンピュータプログラム製品を提供するが、該製品は、製品内で具現化されたプログラムを、計算機能、コンピュータ、コンピュータネットワークを装備したプロセッサ上で実行した際に、前述した復号化方法を実行する１組の命令を構成するプログラムコードを備えている。
【００２３】
上述のコンピュータプログラム製品は、プログラムコード用の任意の適切な記憶媒体の形態、特に、電子メモリ、および磁気、磁気光学、光学メディアであってよい。本願明細書中で使用している「コンピュータプログラム製品」という用語は、ファームウェア、つまりコンピュータの読み出し専用メモリユニットに記憶された命令を包括することが理解されるだろう。
【００２４】
本発明はさらに、このような製品において具現化されるコンピュータプログラムにまで及ぶが、このようなプログラムは、プログラム実行時に、本願明細書中で開示した本発明の技術効果を達成するものを意味する。
次に、添付の図面と共に、以下の特定の好ましい実施形態の説明によって本発明を例証するが、本発明はこの例証に限定されるものではない。
【発明を実施するための最良の形態】
【００２５】
ここでは、本発明の原理およびその実現を最も容易に開示することができる本発明のハードウェア実施形態について説明する。このハードウェア実施形態の開示により、当業者は本発明を所有することになる。このような当業者は、技術上の通常の知識と技能のみを用い、また、過度の実験を行うことなく、あるいは任意の発明力を駆使する必要なく、該原理をソフトウェアの実現へと拡張することができるであろう。このハードウェア実施形態は、例証のみの方法により、配線論理、特定用途向けＩＣ（ＡＳＩＣ）、プログラマブルＩＣの形式で実現することができる。
【００２６】
ハードウェア実現とソフトウェア実現のどちらを選択するかは、特定の用途によって異なり、また、速度、コスト、スペースおよび電力消費のような通常の基準が適用される。さらに、本発明の範囲内の実施形態もハードウェアとソフトウェアの混合で構成されるが、このソフトウェアはコーディング変換を生成し、ハードウェアは変換をプレーンデータまたは暗号化したデータに適用するためのものである。電子ハードウェア実施形態を例証の方法で記述しているが、本発明は光学処理技術を用いて実現してもよい。
【００２７】
図１を参照すると、暗号化装置は、コード生成段階とコード適用段階の２つの段階で基本的に構成されている。コード生成段階は参照符号１２、１４、１６、１８、２０で示すコンポーネントを装備している。コード適用段階は、参照符号２２、２４、２６、２８、３０、３２で示すコンポーネントを装備している。プライベートキーをレジスタ１２内に入力し、記憶させる。プライベートキーは、キーパッドのような従来のインターフェースを介して入力されるＰＩＮ（個人識別番号）で構成されている。
【００２８】
ＰＩＮが、例えば十進数のような非バイナリである場合には、後の処理のためにバイナリ形式に変換される。あるいは、プライベートキーを、補助ソケット内に挿入されるメモリスティックまたはスマートカードのようなメモリ媒体上に記憶することもできる。ブロックの最小サイズは４ビットであり、また、ＤＥＳやＡＥＳとは異なり、キーサイズがブロックサイズに厳密に依存していないので有利である。
【００２９】
この実施形態では、生成されたコーディング変換が、入力プレーンデータブロックＸ内で要素を転置し、選択的に反転するべく機能する。これらの動作は個別に実行され、バイナリデータの入力ブロックに連続して適用される。この実施形態では、まず転置動作が行われ、続いて反転動作が行われる。
【００３０】
演算論理機構（ＡＬＵ）１６（計算ユニット）が、キーレジスタ１２の内容と、メモリ１４内に記憶された１つまたはそれ以上の定数とに基づいて計算を実施し、この結果を、転置動作を制御する１組のレジスタ１８と、反転動作を制御するレジスタ２０に対して出力する。このメモリ１４内に記憶された１つまたはそれ以上の定数は、任意のアプリケーションに固定するか、またはユーザが例えば同一の媒体にキーとして記憶する、あるいは該媒体と共に供給することで提供できる。
【００３１】
ＡＬＵ１６は連続した一連の出力をレジスタ１８、２０に対して生成する。この実施形態では、ＡＬＵ１６からの連続出力が入力プレーンデータブロックの配列に個別に適用されるため、各入力ブロック毎に異なった変換が実行される。またこの実施形態では、転置機能のための連続変換が先行の出力に基づいて生成され、ＡＬＵ１６からキーレジスタ１２へのフィードバックループが形成される。反転機能を実行するためのレジスタ２０への出力が、先行の転置機能結果に基づいて、転置出力とは別に、またはこれに類似して処理される。
【００３２】
入力プレーンデータブロックはｎ要素を有し、各要素はバイナリ値ゼロ（０）またはバイナリ値１（１）のいずれかを有するビットで構成されている。入力データブロックの第１、第２、．．．第ｎビットに夫々関連するｎレジスタ１８は合計で１８個となる。コード適用段階は、入力データブロックの第１、第２、．．．第ｎビットに関連した１組のｎデコーダ２４を含んでいる。各デコーダが対応するレジスタ１８より入力数を受信する。この数は、転置機能において入力データブロックの特定要素をマッピングする位置を決定する。各デコーダはｎ出力を有する。暗号化したブロック内にマッピングした位置に関連して選択した１つの出力はバイナリ値１を有し、一方、これ以外の選択されなかった出力の各々はバイナリ値０を有する。選択された出力はデコーダ２４の各々について固有であり、対応するレジスタ１８より受信した入力数によって決定される。
【００３３】
各デコーダ２４は、対応するｎ個のＡＮＤゲート２６の１組を有する。各ＡＮＤゲートは２つの入力を有し、この内１つは各出力をデコーダより受信し、これ以外の全ての入力は、入力バッファまたはレジスタ２２より入力データブロックのビットを受信する。ゲート２６の論理ＡＮＤ機能により、レジスタ２２からの入力データビットが、デコーダ２４より選択された出力を受信するＡＮＤゲートの出力へ送信される。こうすることで、入力データブロックの各ビットがｎ組の夫々のＡＮＤゲート、および、各組に選択した夫々のＡＮＤゲートに送信されることで、入力するデータビットのブロックの転置、またはシャッフリングが達成される。選択的な反転機能は、レジスタ２０より出力される（ｎｘｎ）ビット数を、ｎ組のｎ  ＥＸＣＬＵＳＩＶＥ−ＯＲ（ＸＯＲ）ゲート２８と共に用いて実現される。
【００３４】
ＸＯＲゲート２８の各々は、レジスタ２０より出力された数のｎｘｎビットの各々を受信する１つの入力を有する。ＸＯＲゲート２８の各組のこれ以外の入力は、夫々対応したＡＮＤゲート２６の出力を受信する。論理ＸＯＲ動作のために、レジスタ２０からの関連するビットが論理０である場合、ＡＮＤゲート２６からの出力がＸＯＲゲート２８によって不変のまま送られる。一方で、レジスタ２０の出力ビットが論理１である場合は、ゲート２８が関連するＡＮＤゲート２６からの出力を反転する。最後に、各組の第１ＸＯＲゲート２８からの出力がＯＲゲート３０において論理的に組み合わせられ、この出力が、暗号化したデータブロックの第１ビットとして出力バッファまたはレジスタ３２内に記憶される。同様に、各組の第２、．．．第ｎＸＯＲゲートからの出力が論理的に組み合わせられ、暗号化したデータブロックの第２、．．．、第ｎビットが出力バッファ３２に供給される。
【００３５】
図１には示していないが、全ての動作がシステムクロックによって制御され、これにより、レジスタ１８、２０からの連続的な出力フローが、レジスタ２２から、コンポーネント２４、２６、２８、３０の論理回路を介して出力バッファ３２へと流れるデータブロックのフローで調整される。
【００３６】
ｎのブロックサイズを用いた場合、上述の実施形態により、合計で（ｎ！）２×２ｎ×ｎの使用可能なコーディング変換が得られる。この値は、８または１６のような小さな値ｎの場合でも適用できる暗号化方法の能力を実証する。因数（ｎ！）２はレジスタ１８の出力に関連し、一方、因数２ｎ×ｎはレジスタ２０の出力に関連する。出力データブロックの第ｎビットをｎ！の異なるバリアント内に配列してもよい。これらのバリアントはｎ！の異なる方法で順序付けすることが可能であり、これにより、転置サブ変換を生成するために（ｎ！）２の使用可能な開始点が得られる。各開始点は異なるサブ変換シリーズを提供する。第２因数２ｎ×ｎは、レジスタ２０からの使用可能な出力の総数であり、十進法で表される。この値は０から（２ｎ×ｎ−１）の範囲である。
【００３７】
ＡＬＵ１６は、任意の従来または所望の方法で、レジスタ１８、２０に出力を生成するべく配置することができる。本発明の範囲はこれに関連して制限されるものではない。唯一の必要性は、暗号化したデータの復号に要する関連した変換を実現するために繰り返し計算を実行できるようにすることである。
【００３８】
図２は、図１の装置で暗号化したデータブロックの復号に使用できる復号化装置を示す。復号処理は、本質的に暗号処理を逆転させたものである。図２では、図１の装置と同一または類似の機能を有するコンポーネントには、同一の参照符号に１００を追加した符号を付している。レジスタ１１２内に最初に記憶した同一のプライベートキーに基づいて、ＡＬＵ１１６が、図１の暗号化装置が生成した第１の一連の出力を補助する第２の一連の出力を生成する。レジスタ１１８に記憶された出力は、暗号化したデータブロック内のビットをプレーンデータ内の元の位置にマッピングし直すべく機能する。レジスタ１２０からの（ｎ×ｎ）ビット数出力が、暗号化処理において反転された同一のビットに２回目の反転を実行するべく機能するが、これは、２回の連続反転動作によりオリジナルデータが復元されるためである。
【００３９】
図１の暗号装置の詳細な説明を考慮すれば、図２の回路要素は自明であるため、ここではその詳細な説明を省く。復号処理では、まず反転動作を逆行させ、次に転置動作を逆行させる。バッファまたはレジスタ１２２を用いて暗号化したデータブロックＹ’を入力し、処理後に、復号したデータブロックＸ’をバッファまたはレジスタ１３２から出力する。
【００４０】
図３、図４は、図１、図２の実施形態の変形に夫々関連する。これらの変形した実施形態では、選択的な反転機能を省略しているため、レジスタ２０、１２０、ＸＯＲゲート２８、１２８が必要である。これ以外のコンポーネントの動作は、図１、図２の場合と同一である。
【００４１】
図５、図６は、図１、図２の実施形態の別の変形に夫々関連する。これら別の変形実施形態では、転置機能を省略しているため、レジスタ１８、１１８は不要である。デコーダ２４、１２４は保持しているが、その出力は固定されているため、時間と共に変化することはない。これ以外のコンポーネントの動作は、図１、図２について説明した動作と同一である。
【００４２】
図３〜図６の実施形態ではｎの所与値のより少ない可能な変換回数が得られるが、これらの実施形態は、本発明の、時間と共に変化する暗号文と、本質的には暗号の復号を試みる任意の人物のムービングターゲットとを実現するという基本原理を包含している。
【００４３】
要するに、本発明は、既存の技術を用いて容易に実現可能な、非常に強力かつ高速で安全な暗号化システムを提供することである。本発明は非常に広範囲にわたって適用することができる。簡略的には、この技術を、バイナリコード形式で表された、暗号化が必要な任意のデータに適用することができる。多くのアプリケーションでは、傍受または盗難の危険に晒されたデータの送信または記憶を含んでいる。この非限定的な例として、データベースセキュリティ、インターネットセキュリティ、電子商取引セキュリティ、電子政府セキュリティ、固定回線の暗号化、コードレスおよびワイヤレス電話通信、速記術、知的財産保護（例えば、音楽および／またはビデオ形式の記憶あるいはダウンロード）、偽造防止技術、スマートカード、全ての文書、音楽、画像データの記憶および通信におけるアプリケーションが挙げられる。
【００４４】
例証のみの方法により、本発明を、インターネット（または他のネットワーク）アプリケーションにおいて、保護すべきデータを交換する端末上で実行されるプログラムの形で具現化することができる。無線電話（またはこれ以外の無線端末形式）の場合には、本発明をハンドセット（端末）のメインプロセッサ、あるいは専用チップの形で具現化することができる。ＳＩＭ（加入者識別モジュール）カード上に暗号化／復号化回路を提供する場合には、その使用を特定のネットワークおよび国に限定し、ネットワークオペレータがこれを有効／無効にすることが可能である。
【００４５】
本発明は、添付の特許請求の範囲で定義されている通りの本発明の範囲から逸脱しない限り、ここで詳細に説明した以外の様々な形態にて具現化することができる。
【図面の簡単な説明】
【００４６】
【図１】本発明によるブロック暗号化を実行する装置の第１ハードウェア実施形態を示す図である。
【図２】本発明に従って、図１の装置により暗号化したデータブロックの復号を実行する装置の第１ハードウェア実施形態を示す図である。
【図３】図１の装置の変形である、暗号化装置の第２ハードウェア実施形態を示す図である。
【図４】図２の装置の変形である、復号化装置の第２ハードウェア実施形態を示す図である。
【図５】図１の装置の別の変形である、暗号化装置の第３ハードウェア実施形態を示す図である。
【図６】図２の装置の別の変形である、復号化装置の第３ハードウェア実施形態を示す図である。
【図１】
2004157535.tif 000003
【図２】
2004157535.tif 000004
【図３】
2004157535.tif 000005
【図４】
2004157535.tif 000006
【図５】
2004157535.tif 000007
【図６】
2004157535.tif 000008
【外国語明細書】
2004157535.tif 000009
2004157535.tif 000010
2004157535.tif 000011
2004157535.tif 000012
2004157535.tif 000013
2004157535.tif 000014
2004157535.tif 000015
2004157535.tif 000016
2004157535.tif 000017
2004157535.tif 000018
2004157535.tif 000019
2004157535.tif 000020
2004157535.tif 000021
2004157535.tif 000022
2004157535.tif 000023
2004157535.tif 000024
2004157535.tif 000025
2004157535.tif 000026
2004157535.tif 000027
2004157535.tif 000028
2004157535.tif 000029
2004157535.tif 000030
2004157535.tif 000031
2004157535.tif 000032