(57)【要約】平文情報を安全に暗号化するためのシステム、装置および方法。本システムは、前記平文情報と第１の鍵とを用いて第１の暗号ストリームを生成および同期化し、第２の鍵と可変な平文ストリームをランダム化するランダム化関数とを用いて第２の暗号ストリームを生成および同期化してこれにより第２の同期化暗号ストリームを形成し、排他的選言演算器を用いて前記複数の第１および第２の暗号ストリームを処理して暗号文ストリームを得る送信側エージェントと、前記暗号文ストリームを復号化する受信側エージェントとを備える。
2008529044.tif 000002
【特許請求の範囲】
【請求項１】
平文情報を安全に暗号化するシステムであって、
前記平文情報と第１の鍵とを用いて第１の暗号ストリームを生成および同期化し、第２の鍵と可変な平文ストリームをランダム化するランダム化関数とを用いて第２の暗号ストリームを生成および同期化してこれにより第２の同期化暗号ストリームを形成し、排他的選言演算器を用いて前記複数の第１および第２の暗号ストリームを処理して暗号文ストリームを得る送信側エージェントと、
前記暗号文ストリームを復号化する受信側エージェントと、を備えるシステム。
【請求項２】
前記送信側エージェントは、前記平文情報を処理するように、また、必要に応じて受信した暗号文ストリームを復号化するように接続された、中央演算装置と、メモリと、送受信器とを備える、請求項１に記載のシステム。
【請求項３】
前記送受信器は、前記暗号文ストリームと前記可変な平文ストリームとを別々に前記受信側エージェントに送信する、請求項２に記載のシステム。
【請求項４】
前記システムは、ワイドエリアネットワーク／ローカルエリアネットワークまたはその組み合わせを介して接続されたデータ入力装置とデータベースサーバとを備える、請求項１に記載のシステム。
【請求項５】
平文情報を安全に暗号化する装置であって、
データ入力装置を備え、前記データ入力装置は、
前記平文情報と第１の鍵とを用いて第１の暗号ストリームを生成および同期化する第１の暗号ストリーム生成器と、
第２の鍵と可変な平文ストリームをランダム化および同期化するランダム化関数とを用いて第２の暗号ストリームを生成および同期化する第２の暗文号ストリーム生成器と、
前記第１および第２の同期化暗号ストリームを処理して暗号文ストリームを得る排他的選言演算器と、を備える装置。
【請求項６】
前記第１の暗号ストリーム生成器は、
前記平文情報と第１の鍵とが入力された時に前記第１の暗号ストリームを生成および同期化するように構成されたブロック暗号式暗号化ユニットを備え、前記ブロック暗号式暗号化ユニットは、
前記第１の暗号ストリームを生成するブロック暗号式暗号化装置および前記第１の暗号ストリームを同期化する第１の同期化ユニット、または、
前記第１の暗号ストリームを生成および同期化するブロック暗号式暗号化／同期化ユニットのいずれか一を備える、請求項５に記載の装置。
【請求項７】
前記第２の暗号ストリーム生成器は、
前記第２の鍵と前記可変な平文ストリームとが入力された時に前記可変な平文ストリームをランダム化してその後同期化し、これにより前記第２の暗号ストリームを出力するように構成された乱数関数生成器を備え、前記乱数関数生成器は、
前記可変な平文ストリームをランダム化する乱数関数生成装置および前記ランダム化された第２の暗号ストリームを同期化する第２の同期化ユニット、または、
前記第２の暗号ストリームをランダム化してその後同期化する乱数関数生成器／同期化ユニットのいずれかを備える、請求項５に記載の装置。
【請求項８】
前記排他的選言演算器は排他的論理和演算器である、請求項５に記載の装置。
【請求項９】
平文情報を安全に暗号化する方法であって、
前記平文情報と第１の鍵とを用いて第１の暗号ストリームを生成および同期化し、
第２の鍵と可変な平文ストリームをランダム化するランダム化関数とを用いて第２の暗号ストリームを形成して第２の暗号ストリームを生成して同期化し、
排他的選言演算器を用いて前記複数の同期化された第１および第２の暗号ストリームを処理して暗号文ストリームを得る方法。
【請求項１０】
平文情報を安全に暗号化する方法であって、
排他的選言演算器を用いて、
前記平文情報と第１の鍵とから生成および同期化された第１の暗号ストリームと、
第２の鍵を用いて可変な平文ストリームからランダム化されその後同期化された第２の暗号ストリームと、
から暗号文ストリームを生成する方法。
【請求項１１】
平文情報を安全に暗号化する方法であって、
複数の同期化暗号ストリームを生成し、その生成の際、少なくとも第１の暗号ストリームは第１のキーワードを用いて平文情報を暗号化することによって生成および同期化され、少なくとも第２の暗号ストリームは可変な平文および第２のキーワードに乱数関数を適用することによって生成および同期化され、
排他的選言演算器を用いて前記同期化された複数の暗号ストリームを処理することによって暗号文ストリームを得る方法。
【請求項１２】
平文情報を安全に暗号化するコンピュータ可読命令を記録したコンピュータ可読媒体であって、前記コンピュータ可読命令は、
前記平文情報と第１の鍵とを用いて第１の暗号ストリームを生成および同期化し、
第２の鍵およびランダム化関数を用いて可変な平文ストリームから形成された第２の暗号ストリームをランダム化してその後同期化し、
排他的選言演算器を用いて前記同期化された複数の第１および第２の暗号ストリームを処理して暗号文ストリームを得るコンピュータ可読媒体。
【請求項１３】
平文情報を安全に暗号化するコンピュータ可読命令を記録したコンピュータ可読媒体であって、前記コンピュータ可読命令は、
排他的選言演算器を用いて、
前記平文情報と第１の鍵とから生成および同期化された第１の暗号ストリームと、
第２の鍵とランダム化関数とを用いて可変な平文ストリームからランダム化されその後同期化された第２の暗号ストリームと、
から暗号文ストリームを生成するコンピュータ可読媒体。
【請求項１４】
平文情報を安全に暗号化するコンピュータ可読命令を記録したコンピュータ可読媒体であって、前記コンピュータ可読命令は、
同期化された複数の暗号ストリームを生成し、
その生成においては、少なくとも第１の同期化暗号ストリームは第１のキーワードを用いて平文情報を暗号化することによって生成され、少なくとも第２の同期化暗号ストリームは可変な平文および第２のキーワードに乱数関数を適用することによって生成され、
排他的選言演算器を使用して、前記同期化された複数の暗号ストリームを処理して暗号文ストリームを得るコンピュータ可読媒体。
【請求項１５】
クレジットカードにおいて平文情報を安全に暗号化する方法であって、
サーバ／データベースレコードによって、ユーザがアカウントを申請した際にユーザ情報に基づいて平文Ｐを選択し、
前記サーバ／データベースレコードによって、前記ユーザおよび／または前記クレジットカードを提供する会社の要求に応じて第１の鍵、第２の鍵および可変な平文ストリームを生成し、
前記サーバ／データベースレコードによって、前記平文、前記第１の鍵、前記第２の鍵および前記可変な平文ストリームを用いて暗号化を行って暗号文Ｃを生成し、
前記平文、前記第１の鍵、前記可変な平文ストリームおよび第１の暗号文ストリームの情報を前記クレジットカードに入れ、
前記平文、前記第２の鍵、前記可変な平文ストリームおよび第２の暗号文ストリームの情報をカード所有者データベースレコードに入れ、
前記第１の鍵、前記第２の鍵および前記可変な平文ストリームを用いて所定の方式で前記平文を暗号化して暗号文を得る備える方法。
【請求項１６】
前記平文、前記暗号文および前記可変な平文文字列の文字列の少なくとも1つが分割される、請求項１５に記載の方法。
【請求項１７】
平文情報を安全に暗号化する方法であって、
第１のキーワードＫ１、第２のキーワードＫ２、可変な平文ストリームＦおよびランダム化関数Ｒをユーザ入力に割り当て、
安全なモードでＫ１、Ｋ２、ＦおよびＲを受信側エージェントに送信し、
Ｋ１、Ｋ２、ＦおよびＲを用いて所定の方式で平文ストリームを暗号化して暗号文ストリームを形成し、前記暗号文ストリームを前記受信側エージェントに送信する方法。
【請求項１８】
Ｋ１、Ｋ２、ＦおよびＲを用いて所定の方式で平文ストリームを暗号化する際には、
ブロック暗号およびＫ１を用いて前記平文ストリームを第１の暗号ストリームに変換し、
Ｒを用いてＦをランダム化して第２の暗号ストリームを形成し、
前記第１の暗号ストリームおよび前記第２の暗号ストリームを同期化し、
排他的選言演算器を用いて前記同期化された第１および第２の暗号ストリームを処理して暗号文ストリームを得る請求項１７に記載の方法。
【請求項１９】
ベクトル関数を用いて、前記同期化された第１の暗号ストリームから得た前記暗号文ストリームにヘッダ情報を与える請求項１７に記載の方法。
【請求項２０】
ベクトル関数を用いて前記同期化された第２の暗号ストリームを処理して、前記暗号文ストリームにヘッダ情報を与える請求項１７に記載の方法。
【請求項２１】
請求項１７に従って暗号化された平文情報を復号化するする方法であって、
Ｋ１、Ｋ２、ＦおよびＲを用いて請求項１７の逆の処理を行って前記暗号文ストリームを復号化する方法。
【請求項２２】
前記方法は、クレジットカード処理、キャッシュマシン処理、インターネット上での課金処理、オンラインバンキング処理のうちの１つで実現される請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広義には、平文（可読メッセージ）情報を安全に暗号化するシステム、装置および方法に関し、より具体的には、内部同期メカニズムを用いて情報を暗号化し、暗号化された情報への不正アクセスが出来ないようにするシステム、装置および方法に関する。
【背景技術】
【０００２】
可読情報（平文Ｐ）を、パスワード（または鍵Ｋ）を用いて非可読形式に変換するする処理は暗号化とされ、復号化は暗号化の逆の処理である。暗号化および復号化の処理全体またはそのシステムはしばしば「暗号」とみなされる。図１の符号１００に示すように、１つの鍵を用いて暗号化および復号化の両方を行う場合、その暗号は共通鍵暗号（または方式）と呼ばれる。共通鍵暗号は、一般的に、ブロック暗号またはストリーム暗号のいずれかに分類される。
【０００３】
図２の符号２００に示すように、一般的なブロック暗号は、一度に１ブロック分の平文文字に対して行われ、各ブロックには同じ鍵が用いられる。今日用いられている暗号化方法のほとんどは、Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＤＥＳ）、Ｔｒｉｐｌｅ  Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（Ｔｒｉ−ＤＥＳ）、ＣＡＳＴ、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ａｌｇｏｒｉｔｈｍ（ＩＤＥＡ）、Ｂｌｏｗｆｉｓｈ／ＴｗｏＦｉｓｈ、および、Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＡＥＳ）等のブロック暗号である。共通鍵暗号（ブロックまたはストリーム）は、ブロックおよび鍵の長さで分類できる。例えば、Ｔｒｉ−ＤＥＳ暗号は、鍵長が１６８ビットの６４ビットブロック暗号であり、Ｔｒｉ−ＤＥＳ（６４：１６８）と表記することができる。同様に、他の暗号もＣＡＳＴ−１２８（６４：１２８）、ＲＣ４（１：可変）、Ｂｌｏｗｆｉｓｈ（６４：可変）およびＡＥＳ（可変：可変）のように表記することができる。各平文ブロックＰｉに対して同じ鍵を用いる場合、所謂「ブロック効果」が生じる。即ち、同じ平文ブロックは常に同じ暗号文ブロックＣｉを生じる。ブロック効果を排除または低減するために、複数の「動作モード」と呼ばれるフィードバックメカニズムが用いられ得る。
【０００４】
例えば、図３の符号３００に示す電子コードブック（ＥＣＢ）モードにおいては、各平文ブロックＰ１３０２、Ｐ２３０４およびＰ３３０６が暗号化されてそれぞれ暗号文ブロックＣ１、Ｃ２およびＣ３を形成する。図４の符号４００に示す暗号ブロック連鎖（ＣＢＣ）モードにおいては、平文ブロックＰ１４０２と暗号文ブロックＣ０４０８、同様に平文ブロックＰ２４０４と暗号文ブロックＣ１４１２との組み合わせ、および、別の平文ブロックＰ３４０６と暗号文ブロックＣ２４１４との組み合わせが排他的選言演算器ＸＯＲ４１８によって処理され、ブロックＥ４１０において暗号化され、それぞれ、暗号文ブロックＣ１４１４、Ｃ２４１４およびＣ３４１６を生成する。
【０００５】
図５の符号５００に示す暗号フィードバック（ＣＦＢ）モードにおいては、暗号文ブロックＣ０５１２がブロックＥ５０８において暗号化され、平文ブロックＰ１５０２と共に排他的選言演算器ＸＯＲ５１０によって処理されて暗号文ブロックＣ１５１４を生成する。同様に、暗号文ブロックＣ１５１４がブロックＥ５０８において暗号化され、平文ブロックＰ２５０４と共に排他的選言演算器ＸＯＲ５１０によって処理されて暗号文ブロックＣ２５１６を生成し、暗号文ブロックＣ２５１６はブロックＥ５０８において暗号化され、平文ブロックＰ３５０６と共に排他的選言演算器ＸＯＲ５１０によって処理されて暗号文ブロックＣ３５１８を生成する。
【０００６】
図６の符号６００に示す出力フィードバック（ＯＦＢ）モードにおいては、暗号文ブロックＣ０６１２がブロックＥ６１０において暗号化され、その出力は、（１）平文ブロックＰ１６０２と共に排他的選言演算器ＸＯＲ６０８によって処理されて暗号文ブロックＣ１６１４を生成すると共に、（２）次の暗号化ブロック６１０に入力されて次のブロックＥ６１０において暗号化され、その出力は、（３）平文ブロックＰ２６０４と共に次の排他的選言演算器ＸＯＲ６０８によって処理されて暗号文ブロックＣ２６１６を生成すると共に、（４）次の暗号化ブロック６１０に入力されて次のブロックＥ６１０において暗号化され、その出力は、（５）平文ブロックＰ３６０６と共に排他的選言演算器ＸＯＲ６０８によって処理されて暗号文ブロックＣ３６１８を生成する。以降、同様に処理が続く。
【０００７】
一般的に、ブロック暗号のブロック長を短くして１にすると、その暗号は、個々の文字のストリームを暗号化するのと同じであるので、ストリーム暗号と分類できる。ある平文ストリームがあったとして、ストリーム暗号を行うための典型的な暗号化処理は、「鍵ストリーム」と呼ばれる鍵Ｋから任意の長い文字列を生成する処理である。そして、この鍵ストリームを用いて、平文に対して、１文字ずつ、ビット単位の排他的論理和操作を行い、暗号文を生成する。
【０００８】
図７の符号７００に示すように、ストリーム暗号を用いた暗号化７０２の処理７１０は、「鍵ストリーム」７０６と呼ばれる暗号化用文字のストリームを用いて平文７０８に対して１文字ずつ行われ、これにより、暗号文７１２を形成する。暗号文７１２が受信されると、逆暗号化処理７１６に鍵ストリーム７１４を適用する復号化処理７０４が暗号文７１２に対して行われ、これにより、平文７１８を提供する。鍵ストリームを作成する際には、鍵が常に変化し続けるようにフィードバックメカニズムを用いる。現在利用されているストリーム暗号を以下に挙げる：ＲＣ４（ＲＳＡ  Ｄａｔａ  Ｓｅｃｕｒｉｔｙ（現在のＲＳＡ  Ｓｅｃｕｒｉｔｙ）のためにＲｉｖｅｓｔが設計したストリーム暗号）は、ランダム置換を利用したバイト指向の操作を伴う可変鍵サイズストリーム暗号である；ＩＳＡＡＣ（Ｉｎｔｅｒｎｅｔ  Ｓｅｃｕｒｉｔｙ，Ａｐｐｌｉｃａｔｉｏｎｓ，Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ａｎｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ）は、ストリーム暗号として、シミュレーション用に、また、汎用疑似乱数生成器として有用である；ＳＥＡＬ（Ｓｏｆｔｗａｒｅ−ｏｐｔｉｍｉｚｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ａｌｇｏｒｉｔｈｍ）は、ＲｏｇａｗａｙおよびＣｏｐｐｅｒｓｍｉｔｈによって設計された３２ビットマシン用の高速ストリーム暗号である。
【０００９】
ストリーム暗号は、通常、「同期型」および「自己同期型」と呼ばれる２種類に分類できる。あるストリーム暗号について、生成された鍵ストリームが平文および暗号文から独立している場合、そのストリーム暗号は「同期型」ストリーム暗号と呼ばれる。同期化ストリーム暗号の鍵ストリームは、概ね鍵のみに依存する。これらの暗号の特徴の１つは、送信側および受信側の両方で同期を取らなければならないことである。換言すると、同じ鍵および同じ鍵ストリーム位置を使う限りにおいて、その復号化は整合的であり、そのように処理が進む。特に、鍵ストリームおよび平文にバイナリレベルで（またはビット単位で）排他的論理和操作を行ってバイナリ暗号文を生成した場合、その同期化ストリーム暗号はバイナリアディティブストリーム暗号と呼ばれる。バイナリアディティブストリーム暗号は業界で普及している。この暗号の構造は複雑ではない。例えば、入力鍵に任意の適当な疑似乱数生成器を用いてランダムビット列を生成することができる。実用的なストリーム暗号および商用のストリーム暗号のほとんどはバイナリアディティブストリーム暗号である。
【００１０】
生成される鍵ストリームが、その鍵と前の暗号文の一部との関数である場合、そのストリーム暗号は「自己同期型」と呼ばれる。暗号文データの一部を暗号化に用いることにより、ブロック暗号におけるブロック効果が排除される。このため、暗号において暗号化だけを行って同じ鍵ストリームを生成することにより、暗号フィードバックモード（ＣＦＢ）を改変してストリーム暗号として動作させることは容易に可能である。暗号フィードバックモード（ＣＦＢ）を改変して、ストリーム暗号として暗号化および復号化を行う方法を図８および９に示す。
【００１１】
同じ鍵ストリームを生成するためにブロック暗号が用いられる。ＣＦＢモードで暗号化を行う場合、図８の符号８００に示すように、ブロックｂｉ８０６をブロック暗号Ｅ８０２に送って暗号ブロックｅｉ８０４を生成する。その後、ｅｉ８０４は分割されて、鍵ストリーム｛ｋｏ…ｋｎ｝８０８と表される。平文ストリーム｛ｐｏ…ｐｎ｝８１０の一部分と共に、排他的論理和操作８１２を行って、暗号文ストリーム｛ｃｏ…ｃｎ｝８０４の一部分を生成する。この部分８１４をブロックにグループ化して、次の暗号化を実行するために、ブロック暗号ｂｉ８０６にフィードバックする。
【００１２】
ＣＦＢモードで復号化を行う場合、図９の符号９００に示すように、暗号文ストリーム９１２の一部分をブロック暗号式暗号化用のブロックに変換する。同じブロック９０６がブロック暗号Ｅ９０２に入力されるので、同じ出力ｅｉ９０４が得られる。その後は、ｅｉ９０４は、鍵ストリーム｛ｋｏ…ｋｎ｝９０８の一部分として表される。この鍵ストリーム９０８は暗号文ストリーム｛ｃｏ…ｃｎ｝９１２と共に排他的論理和操作が行われて、平文ブロック９１０を生成する。やはり、同じ鍵ストリームが用いられるので同じ平文部分｛ｐｏ…ｐｎ｝９１０が得られる。
【００１３】
ブロック暗号の「出力フィードバックモード（ＯＦＢ）」は、暗号文または平文とは独立しており、これを用いて同期化ストリーム暗号を実現することができる。図１０の符号１０００に示すように、ＯＦＢモード暗号化において、ユーザ鍵をブロックｂｉ１００８とし、ユーザ鍵はブロック暗号Ｅ１００６に入力することができる。その結果、ブロックｅｉ１０１２が得られる。ブロックｅｉ１０１２を鍵ストリーム｛ｋｏ…ｋｎ｝１００２に変換し、鍵ストリーム｛ｋｏ…ｋｎ｝１００２は平文ストリーム｛ｐｏ…ｐｎ｝１００４と共に排他的論理和操作１０１４を行って、これにより、暗号文ストリーム｛ｃｏ…ｃｎ｝１０１０を生成する。鍵ストリームの次の部分を得るために、ブロックｅｉ１０１２を再びブロック暗号Ｅ１００６にフィードバックする。
【００１４】
図１１の符号１１００に示すように、復号化処理の際には、同じブロックｂｉ１１０８（例えば、ユーザ鍵）をブロック暗号Ｅ１１０６に入力してｅｉ１１０４を生成する。同じ鍵ストリーム｛ｋｏ…ｋｎ｝１１０２が生成される。鍵ストリーム｛ｋｏ…ｋｎ｝１１０２および暗号文ストリーム｛ｃｏ…ｃｎ｝に対して排他的論理和操作１１１２を行い、同じ平文ストリーム｛ｐｏ…ｐｎ｝１１１０を得る。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかし、従来のブロック暗号およびストリーム暗号では、いずれの暗号でも安全な暗号化方式が得られない。
【課題を解決するための手段】
【００１６】
本発明のある側面によれば、システムは、平文情報を安全に暗号化し、このシステムは、前記平文情報と第１の鍵とを用いて第１の暗号ストリームを生成および同期化し、第２の鍵と可変な平文ストリームをランダム化するランダム化関数とを用いて第２の暗号ストリームを生成および同期化してこれにより第２の同期化暗号ストリームを形成し、排他的選言演算器を用いて前記複数の第１および第２の暗号ストリームを処理して暗号文ストリームを得る送信側エージェントと、前記暗号文ストリームを復号化する受信側エージェントとを備える。
【００１７】
前記送信側エージェントは、前記平文情報を処理するように、また、必要に応じて受信した暗号文ストリームを復号化するように接続された、中央演算装置と、メモリと、送受信器とを備えていてもよい。
【００１８】
本発明のある側面によれば、前記送受信器は、前記暗号文ストリームと前記可変な平文ストリームとを別々に前記受信側エージェントに送信する。
【００１９】
前記システムは、ワイドエリアネットワーク／ローカルエリアネットワークまたはその組み合わせを介してリンクされたデータ入力装置およびデータベースサーバを備えていてもよい。
【００２０】
本発明のある側面によれば、装置は、平文情報を安全に暗号化し、この装置は、データ入力装置を備える。前記データ入力装置は、前記平文情報と第１の鍵とを用いて第１の暗号ストリームを生成および同期化する第１の暗号ストリーム生成器と、第２の鍵と可変な平文ストリームをランダム化および同期化するランダム化関数とを用いて第２の暗号ストリームを生成および同期化する第２の暗号ストリーム生成器と、前記第１および第２の同期化暗号ストリームを処理して暗号文ストリームを得る排他的選言演算器とを備えていてもよい。
【００２１】
前記第１の暗号ストリーム生成器は、前記平文情報と第１の鍵とが入力された時に前記第１の暗号ストリームを生成および同期化するように構成されたブロック暗号式暗号化ユニットを備え、前記ブロック暗号式暗号化ユニットは、前記第１の暗号ストリームを生成するブロック暗号式暗号化装置および前記第１の暗号ストリームを同期化する第１の同期化ユニット、または、前記第１の暗号ストリームを生成および同期化するブロック暗号式暗号化／同期化ユニットのいずれかを備えていてもよい。
【００２２】
前記第２の暗号ストリーム生成器は、前記第２の鍵と前記可変な平文ストリームとが入力された時に可変な平文ストリームをランダム化してその後同期化し、これにより前記第２の暗号ストリームを出力するように構成された乱数関数生成器を備え、前記乱数関数生成器は、前記可変な平文ストリームをランダム化する乱数関数生成装置および前記ランダム化された第２の暗号ストリームを同期化する第２の同期化ユニット、または、前記第２の暗号ストリームをランダム化してその後同期化する乱数関数生成器／同期化ユニットのいずれかを備えていてもよい。
【００２３】
前記排他的選言演算器は排他的論理和演算器であってもよい。
【００２４】
本発明のある側面の方法によれば、平文情報と第１の鍵とを用いて第１の暗号ストリームを生成および同期化し、第２の鍵と可変な平文ストリームをランダム化するランダム化関数とを用いて第２の暗号ストリームを生成および同期化してこれにより第２の暗号ストリームを生成し、排他的選言演算器を用いて前記複数の同期化された第１および第２の暗号ストリームを処理して暗号文ストリームを得て、前記平文情報を安全に暗号化する。
【００２５】
本発明のある側面の方法によれば、排他的選言演算器を用いて、平文情報および第１の鍵を元に生成および同期化された第１の暗号ストリームと、第２の鍵を用いて可変な平文ストリームを元にランダム化されその後同期化された第２の暗号ストリームと、から暗号文ストリームを生成し、前記平文情報を安全に暗号化する。
【００２６】
本発明のある側面の方法によれば、複数の同期化暗号ストリームを生成し、少なくとも第１の暗号ストリームは第１のキーワードを用いて平文情報を暗号化することによって生成および同期化され、少なくとも第２の暗号ストリームは可変な平文および第２のキーワードに乱数関数を適用して生成および同期化され、排他的選言演算器を用いて前記同期化された複数の暗号ストリームを処理することによって暗号文ストリームを得て、平文情報を安全に暗号化する。
【００２７】
本発明のある側面によれば、コンピュータ可読媒体には平文情報を安全に暗号化するコンピュータ可読命令が記録され、前記コンピュータ可読命令は、前記平文情報と第１の鍵とを用いて第１の暗号ストリームを生成および同期化し、第２の鍵とランダム化関数とを用いて可変な平文ストリームから形成された第２の暗号ストリームをランダム化してその後同期化し、排他的選言演算器を用いて前記同期化された複数の第１および第２の暗号ストリームを処理して暗号文ストリームを得る。
【００２８】
本発明のある側面によれば、コンピュータ可読媒体には平文情報を安全に暗号化するコンピュータ可読命令が記録され、前記コンピュータ可読命令は、排他的選言演算器を用いて、前記平文情報と第１の鍵とを元に生成および同期化された第１の暗号ストリームと、第２の鍵とランダム化関数とを用いて可変な平文ストリームを元にランダム化されその後同期化された第２の暗号ストリームと、から暗号文ストリームを生成する。
【００２９】
本発明のある側面によれば、コンピュータ可読媒体には平文情報を安全に暗号化するコンピュータ可読命令が記録され、前記コンピュータ可読命令は、複数の暗号ストリームを生成および同期化し、少なくとも第１の同期化暗号ストリームは第１のキーワードを用いて平文情報を暗号化することによって生成され、少なくとも第２の同期化暗号ストリームは可変な平文と第２のキーワードとに乱数関数を適用することによって生成され、排他的選言演算器を用いて前記同期化された複数の暗号ストリームを処理して暗号文ストリームを得る。
【００３０】
本発明のある側面によれば、クレジットカードにおいて平文情報を安全に暗号化する方法は、サーバ／データベースレコードによって、ユーザがアカウントを申請した際にユーザ情報に基づいて平文Ｐを選択し、前記サーバ／データベースレコードによって、前記ユーザおよび／または前記クレジットカードを提供する会社の要件に応じて第１の鍵、第２の鍵および可変な平文ストリームを生成し、前記サーバ／データベースレコードによって、前記平文、前記第１の鍵、前記第２の鍵および前記可変な平文ストリームを用いて暗号化を行って暗号文Ｃを生成し、前記平文、前記第１の鍵、前記可変な平文ストリームおよび第１の暗号文ストリームの情報を前記クレジットカードに入れ、前記平文、前記第２の鍵、前記可変な平文ストリームおよび第２の暗号文ストリームの情報をカード所有者データベースレコードに入れ、前記第１の鍵、前記第２の鍵および前記可変な平文ストリームを用いて所定の方式で前記平文を暗号化して暗号文を得る。
【００３１】
前記平文、前記暗号文および前記可変な平文文字列の文字列の少なくとも1つが分割されてもよい。
【００３２】
本発明のある側面によれば、平文情報を安全に暗号化する方法は、第１のキーワードＫ１、第２のキーワードＫ２、可変な平文ストリームＦおよびランダム化関数Ｒをユーザ入力に割り当て、安全なモードでＫ１、Ｋ２、ＦおよびＲを受信側エージェントに送信し、Ｋ１、Ｋ２、ＦおよびＲを用いて所定の方式で平文ストリームを暗号化して暗号文ストリームを形成し、前記暗号文ストリームを前記受信側エージェントに送信する。
【００３３】
Ｋ１、Ｋ２、ＦおよびＲを用いて所定の方式で平文ストリームを暗号化するには、ブロック暗号およびＫ１を用いて前記平文ストリームを第１の暗号ストリームに変換し、Ｒを用いてＦをランダム化して第２の暗号ストリームを形成し、前記第１の暗号ストリームおよび前記第２の暗号ストリームを同期化し、排他的選言演算器を用いて前記同期化された第１および第２の暗号ストリームを処理して暗号文ストリームを得てもよい。
【００３４】
本発明のある側面によれば、ベクトル関数を用いて、前記同期化された第１の暗号ストリームから得た前記暗号文ストリームにヘッダ情報を提供してもよい。
【００３５】
本発明のある側面によれば、ベクトル関数を用いて前記同期化された第２の暗号ストリームを処理して、前記暗号文ストリームにヘッダ情報を提供してもよい。
【００３６】
本発明のある側面によれば、上記のように暗号化された平文情報を復号化する方法は、Ｋ１、Ｋ２、ＦおよびＲを用いて逆の処理を行って前記暗号文ストリームを復号化してもよい。
【００３７】
前記方法は、クレジットカード処理、キャッシュマシン処理、インターネット上での課金処理、オンラインバンキング処理のうちの１つで実現されてもよい。
【００３８】
本発明のさらなる側面および／または利点は、一部は以下の説明中に記載され、一部はその記載から自明であり、また、本発明を実施することによって分かるものもあり得る。
【００３９】
添付の図面を参照しながら以下の実施形態の説明を読むことによって、本発明の上記および／またはその他の側面および利点がより明白となり、また、より容易に理解されるであろう。
【発明を実施するための最良の形態】
【００４０】
以下、本発明の実施形態を詳細に説明する。
【００４１】
本発明の好適な実施形態によれば、図１２Ａの符号１２００に示すように、平文情報を安全に暗号化するシステムは、送信側エージェント１２０２および受信側エージェント１２０４を備え、これらは、ブロードキャストチャネル１２０６および／または通信チャネル１２０８を用いて通信する。即ち、通信は、無線で行われても、有線で行われてもよい。送信側エージェント１２０２は、平文情報と第１の鍵とを用いて第１の暗号ストリームを生成および同期化し、第２の鍵と可変な平文ストリームをランダム化するためのランダム化関数とを用いて第２の暗号ストリームを生成および同期化してこれにより第２の同期化暗号ストリームを形成し、そして、排他的選言演算器を用いて複数の第１および第２の暗号ストリームを処理して暗号文ストリームを得る。受信側エージェント１２０４は、逆の方法で、暗号文ストリームを復号化する。
【００４２】
本発明の一実施形態において、図１２Ｂの符号１２５０に示すように、送信側エージェント１２０２は、平文情報を処理するように、また、必要に応じて受信した暗号文ストリームを復号化するように接続された、第１の中央演算装置ＣＰＵ１２１０と、第１のメモリ１２１２と、第１の送受信器１２１４とを備える。さらに、第１の送受信器１２１４は、暗号文ストリームを受信側エージェント１２０４に送信する。受信側エージェント１２０４は、概ね、第２の送受信器１２１６、第２の中央演算装置ＣＰＵ１２１８および第２のメモリ１２２０を備え、これらは、受信した暗号文ストリームを処理するように、また、平文情報を処理して処理した平文情報の暗号文ストリームを送信側エージェント１２０２に送信するように接続されている。一般的に、第１の送受信器１２１４は、暗号文ストリームと可変な平文ストリームとを別々に受信側エージェントに送信する。
【００４３】
図１３の符号１３００に示すように、本発明の一実施形態において、このシステムは、ワイドエリアネットワーク／ローカルエリアネットワークまたはその組み合わせを介して接続されたデータ入力装置１３０４およびデータベースサーバ１３０８を備える。例えば、ユーザがデータ入力装置１３０４にクレジットカード１３０２を挿入すると、以下に詳述するように所定のデータが提供されるようにしてもよい。
【００４４】
図１４の符号１４００に示すように、装置／データ入力装置１４００は、平文情報１４１６および第１の鍵１４１８を用いて第１の暗号ストリームを生成および同期化する第１の暗号ストリーム生成器１４０３と、第２の鍵１４０６と可変な平文ストリーム１４０２をランダム化してその後同期化するランダム化関数１４０４とを用いて第２の暗号ストリームを生成および同期化する第２の暗号ストリーム生成器１４０１と、第１および第２の同期化暗号ストリームを処理して暗号文ストリーム１４１０を得る排他的選言演算器１４２０とを備え得る。
【００４５】
一実施形態において、第１の暗号ストリーム生成器１４０３は、平文情報１４１６と第１の鍵Ｋ１  １４１８とが入力された時に第１の同期化暗号ストリームを生成および同期化するように構成されたブロック暗号式暗号化ユニットＥ１  １４１４を備え、ブロック暗号式暗号化ユニットは、第１の暗号ストリームを生成するブロック暗号式暗号化装置Ｅ１  １４１４および第１の暗号ストリームを同期化する第１の同期化ユニットＳ１  １４１２、または、第１の同期化暗号ストリームを生成および同期化するブロック暗号式暗号化／同期化ユニット１４１４、１４１２のいずれかを備える。
【００４６】
一実施形態において、第２の暗号ストリーム生成器は、第２の鍵Ｋ２  １４０６および可変な平文ストリーム１４０２が入力された時に可変な平文ストリーム１４０２をランダム化してその後同期化し、これにより第２の同期化暗号ストリームを出力するように構成されたランダム関数生成器を備え、ランダム関数生成器は、可変な平文ストリームをランダム化する乱数関数生成装置Ｒ１  １４０４およびランダム化された第２の暗号ストリームを同期化する第２の同期化ユニットＳ２  １４０８、または、第２の暗号ストリームをランダム化してその後同期化する乱数関数生成器／同期化ユニットＲ１  １４０４、１４０８のいずれかを備える。排他的選言演算器は、一般的に、排他的論理和演算器である。
【００４７】
図３４の符号３４００に示すように、本発明の一実施形態において、平文情報を安全に暗号化する方法／コンピュータが実行可能な命令が入ったコンピュータ可読媒体３４００は、平文情報と第１の鍵３４０２とを用いて第１の暗号ストリームを生成および同期化し、第２の鍵と可変な平文ストリームをランダム化するランダム化関数とを用いて第２の暗号ストリームを生成および同期化してこれにより第２の暗号ストリーム３４０４を生成し、排他的選言演算器を用いて複数の同期化された第１および第２の暗号ストリームを処理して暗号文ストリーム３４０６を得る。
【００４８】
図３５の符号３５００に示すように、本発明の一実施形態において、平文情報を安全に暗号化する方法／コンピュータが実行可能な命令が入ったコンピュータ可読媒体３５００は、排他的選言演算器３５０２を用いて、平文情報と第１の鍵とから生成および同期化された第１の暗号ストリームと、第２の鍵を用いて可変な平文ストリームからランダム化されてその後同期化された第２の暗号ストリームとから暗号文ストリームを生成する。
【００４９】
図３６の符号３６００に示すように、本発明の一実施形態において、平文情報を安全に暗号化する方法／コンピュータが実行可能な命令が入ったコンピュータ可読媒体３６００は、複数の同期化暗号ストリームを生成し、少なくとも第１の暗号ストリームは第１のキーワードを用いて平文情報を暗号化することによって生成および同期化され、少なくとも第２の暗号ストリームは可変な平文と第２のキーワード３６０２とに乱数関数を用いることによって生成および同期化され、排他的選言演算器を用いて同期化された複数の暗号ストリームを処理することによって暗号文ストリーム３６０４を得る。
【００５０】
上記のように、本発明はコンピュータ可読記録媒体上のコンピュータ可読コードとして実施することも可能である。コンピュータ可読記録媒体は、任意のデータ格納装置であればよく、後でコンピュータシステムによって読み取り可能なようにデータを格納できればよい。このコンピュータ可読記録媒体の例としては、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＣＤ−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光学データ格納装置、および搬送波（インターネットを通じたデータ送信など）が上げられる。コンピュータ可読記録媒体を、ネットワーク接続された複数のコンピュータシステムに分散して、コンピュータ可読コードを分散方式で格納および実行するようにしてもよい。
【００５１】
図１４の符号１４００に示すように、従来のストリーム暗号のように鍵Ｋから鍵ストリームを生成するのではなく、本発明は、２つの暗号ストリームＣ１およびＣ２を生成する。最終的な暗号文ストリーム１４１０は、この２つの暗号ストリームＣ１およびＣ２に対してビット単位の排他的論理和操作を行った出力である。一実施形態において、第１の暗号ストリームＣ１は、元の平文Ｐ  １４１６および第１の鍵Ｋ１  １４１８を用いてブロック暗号Ｅ１  １４１４によって生成され、同期化ユニットＳ１  １４１２を用いて同期化される。あるいは、ブロック暗号Ｅ１  １４１４と同期化ユニットＳ１  １４１２を組み合わせて１つのユニットとしてもよい。一実施形態において、第２の暗号ストリームＣ２は、乱数関数Ｒ１  １４０４および第２の鍵Ｋ２  １４０６を用いて可変な平文ストリームＦ１４０２によって生成され、同期化ユニットＳ２  １４０８を用いて同期化される。あるいは、乱数関数Ｒ１  １４０４と同期化ユニットＳ２  １４０８を組み合わせて１つのユニットとしてもよい。Ｃ１およびＣ２に対するビット単位の（または文字単位の）排他的論理和操作によって最終的な暗号文Ｃ  １４１０が得られる。
【００５２】
図１５の符号１５００に示す復号化処理の動作は、暗号化とは若干異なる。まず、第２の暗号ストリームＣ２１５０８を生成しなければならず、Ｃ２は図１４の第２の暗号ストリームＣ２に一致する。このため、可変な平文Ｆ  １４０２に一致する可変な平文Ｆ  １５０２、ランダム関数Ｒ１  １４０４に一致するランダム関数Ｒ１  １５０４、および第２の鍵Ｋ２  １４０６に一致する第２の鍵Ｋ２  １５０６を用いなければならない。このストリームが利用可能になると、可変な平文Ｆ  １４０２およびランダム関数Ｒ１  １４０４は送信側エージェントから受信側エージェントへと典型的には別々に送信され（第２の鍵Ｋ２  １４０６は、一般的には、受信側エージェントにとって既知であるか、または、所望の方法で受信するように事前準備されている）、行うべき次の動作は、Ｃ２および暗号文Ｃに１文字ずつビット単位の排他的論理和操作を行うことである。出力される平文ストリーム１５１２は第１の暗号ストリームＣ１と同じである。この結果は、以下のビット単位の排他的論理和操作によって保証される：
Ｃｉ＝Ｃ１ｉ  ＸＯＲ  Ｃ２ｉ  ＝＞  Ｃｉ  ＸＯＲ  Ｃ２ｉ＝Ｃ１ｉ
第１の暗号ストリームＣ１が生成された後、元の平文Ｐ  １４１６が、元々選択されていたＥ１  １４１４および鍵Ｋ１  １４１８に関連付けられた復号化処理Ｄ１によって得られる。
【００５３】
第１の暗号ストリームＣ１の構成は、Ｐ  １４１６、暗号化装置Ｅ１  １４１４、および同期化（必要に応じて、別の同期化装置Ｓ１によって行うことができる）の選択に依存する。
【００５４】
第１の暗号ストリームＣ１は、元の平文Ｐ  １４１６および第１の鍵Ｋ１  １４１８を用いてブロック暗号Ｅ１  １４１４によって生成される。例えば、ＤＥＳ、Ｔｒｉ−ＤＥＳおよびＡＥＳのようなブロック暗号がＥ１  １４１４として利用可能である。実際には、Ｅ１  １４１４としては、ブロック暗号だけでなく、鍵を用いたストリーム暗号や、さらにはアイデンティティ暗号（ストレートスルー暗号、即ち、暗号化を全く行わないこと）を用いることも可能である。暗号文Ｃ  １５１０の安全性は、Ｅ１  １４１４の選択には依存しない。可変な平文Ｆ１４０２を適切に選択することによって、Ｃ  １５１０の安全性が確立される。Ｅ１  １４１４の選択に関する唯一の要件は、暗号化が可逆であることである。換言すると、同じ鍵または異なる鍵を用いる、あるいは、鍵を全く用いない対応復号化装置（または処理）Ｄ１が存在することである。
【００５５】
ブロック暗号は効果的な暗号化を提供するので、ブロック暗号を用いれば、第１の暗号ストリームＣ１が効果的であることが保証される。非常に効果的に暗号化された第１の暗号ストリームとして、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）のようなブロック暗号を用いることが可能である。速度が重視される用途においては、例えば、ＲＣ４のようなストリーム暗号をＥ１として用いればよい。
【００５６】
ブロック長（またはサイズ）や暗号化鍵長などの、選択されたブロック暗号Ｅ１  １４１４の特性は、暗号化処理に直接的な影響を与える。Ｓ１における同期化処理の設計は、Ｅ１  １４１４、Ｓ２  １４０５、および暗号文Ｃのヘッダ情報Ｈの選択に依存する。Ｓ１  １４０５の機能は、復号化処理全体が効率的に保たれるように（具体的には、ブロック暗号を用いる場合、結果がブロック単位で出力されるように）、暗号ストリームＣ１がＣ２と適合していることを確実にすることである。この場合、Ｓ１  １４０５の最も基本的な機能は、ブロックデータを（文字単位の）ストリームに変換することである。一実施形態において、ストリーム情報と共にＣ１（および／またはＰ  １４１６）の長さも「初期ベクトル（ＩＶ）」と呼ばれるパラメータに格納される。このＩＶを用いて、Ｃの安全性が保たれるようにＳ２  １５０８の更新情報を提供する。
【００５７】
暗号化は、通常、メッセージをビットレベルにまで処理を含む。コンピュータはデータをバイナリ（複数の０と１からなるビット列）で格納する。コンピュータは、８個のビットをバイトと呼ばれる構造に格納する。ビッグエンディアンシステムでは、上位の値ほど、小さい数字のバイトアドレスに格納し、リトルエンディアンシステムでは、逆に、小さいアドレスに下位アドレスを格納する。Ｗｉｎｄｏｗｓ(登録商標)ＮＴのようなオペレーティングシステムはリトルエンディアンであり、ＨＰ−ＵＸのような他のＯＳはビッグエンディアンである。Ｊａｖａ（登録商標）で書かれていないプログラムの一部は、リトルエンディアンオーダーを用いることができる（例えば、Ｃプログラム）。一部のプラットフォームは内部的にビッグエンディアンオーダーを用いており（Ｍａｃ、ＩＢＭ３９０）、他のプラットフォームはリトルエンディアンオーダーを用いている（Ｉｎｔｅｌ）。Ｊａｖａ（登録商標）は、この内部的エンディアンネスを隠している。Ｊａｖａ（登録商標）では、バイナリデータが最上位バイトから先に格納されると想定される。たとえ内部的にはそうなっていない場合でも、Ｊａｖａ（登録商標）はその事実を完全に隠す。生成されるファイルは全てネットワークオーダーであるビッグエンディアンとなる。
【００５８】
これら２つのエンディアンシステム間のデータ変換は、ＮＵＸＩ問題と呼ばれることがある。ＵＮＩＸ（登録商標）という単語を２つの２バイトワードに格納する場合を考える。ビッグエンディアンシステムでは、これはＵＮＩＸ（登録商標）と格納される。リトルエンディアンシステムでは、これはＮＵＸＩと格納される。ただし、この例は、ビッグエンディアンおよびリトルエンディアンのバイトオーダーしか示していない。各バイト内でのビットオーダーにもまた、ビッグエンディアンとリトルエンディアンがあり、実際にビットにはビッグエンディアンオーダー、バイトにはリトルエンディアンオーダー（あるいはその逆）を用いるアーキテクチャもある。
【００５９】
内部的なコンピュータアーキテクチャまたはシステムを扱う場合、「ビッグエンディアン」および「リトルエンディアン」問題、ビッグエンディアンおよびリトルエンディアン問題を解決しなければならない場合がある。例えば、ビッグエンディアン構造を用いるブロック暗号が選択され、ランダム装置Ｒ１  １４０４がリトルエンディアン構造として選択される場合がある。この場合、Ｓ１  １４１２およびＳ２  １４０８の装置を用いてこの互換性問題に対処する。また、Ｐ  １４０２の前にＥ１  １４１４にノイズが導入される場合、このノイズデータはＣ１の先頭に来る。この場合、ＩＶユニット（図１６参照）に記録されている計数値または文字列を出力する必要があるかもしれない。
【００６０】
図１６の符号１６００に示すように、ＩＶユニット１６０８の情報は、暗号文Ｃストリーム１６０６に格納ヘッダ情報として出力される。図１７の符号１７００に示すように、復号化処理中、ヘッダ情報Ｈは、同期化処理が適切に行われるように、Ｓ１  １４１０に入力される。
【００６１】
図１８の符号１８００に示すように、第２の暗号ストリームＣ２の生成は、可変な平文Ｆ１８０２、ランダム装置Ｒ１  １８０６（および鍵Ｋ２  １８０４）、第２の同期装置Ｓ２  １８０８、および内部ベクトルＩＶユニット１８０７に依存する。これらの装置の主な目的は、Ｆ１８０２の暗号イメージとしてのＣ２がランダム且つ予測不可能であることを確実にすることである。Ｃ２の文字セットは、完全なビット組を網羅している。また、Ｃ２の長さは、ストリームＣ１全体にビット単位の排他的論理和操作を行うのに十分長くなければならない。
【００６２】
図１８の符号１８００に例示する実施形態において、ランダム且つ予測不可能な暗号ストリームＣ２を生成するために、可変な平文Ｆ  １８０２が用いられる。Ｆ  １８０２の主要な選択条件の１つは、Ｆ  １８０２自身が１組の乱数（または疑似乱数）であることである。例えば、Ｆ  １８０２は、乱数生成器（ＲＮＧ）または疑似乱数生成器（ＰＲＮＧ）によって生成される１組のランダムな文字であり得る。実用的な目的のためには、Ｆ  １８０２が、手動で、または、例えばノートパッドのようなエディタによって編集および変更できるように、（ａ−ｚ）（Ａ−Ｚ）（０−９）などの印刷可能な文字セットが推奨される。Ｆ  １８０２の予測不可能性を高めるためには、Ｆは頻繁に変更するべきである。用途に応じて、Ｆ  １８０２は、複数回の暗号化を行うのに十分な長さであり、且つ、暗号化の効率および性能を維持するのに十分な短さであるべきである。例えば、短いメッセージ（６００文字未満）に用いられる暗号化では、Ｆ  １８０２のサイズは２０００−６０００文字であってよい。
【００６３】
ランダム化装置Ｒ１  １８０６の主な目的は、Ｆ  １８０２を可変な平文として用いて、さらにランダム化されたストリームを生成することである。また、ストリームの文字セットは、マシンおよび動作プラットフォームによってはフルビットであるべきである。例えば、ｎビットのプラットフォームの場合、ランダム化装置Ｒ１  １８０６によって生成されるストリームの各文字は、ｎビットの等確率（またはほぼ等確率）な組み合わせであるべきである。
【００６４】
例えば、適切なランダム化装置Ｒ１  １８０６は、対応する平文に対する効率的なランダマイザおよびビット拡張方法であるＤＥＳ、Ｔｒｉ−ＤＥＳ、ＣＡＳＴ、ＩＤＥＡ、Ｂｌｏｗｆｉｓｈ／ＴｗｏＦｉｓｈ、ＡＥＳ、ＲＣ４、ＩＳＡＡＣまたはＳＥＡＬのようなブロックまたはストリーム暗号を用いてもよい。Ｒ１  １８０６に暗号を用いる場合、鍵Ｋ２  １８０４は自動的に用いられ、時には示されないこともある。Ｒ１  １８０６に復号化機能が存在することは重要ではない。また、Ｒ１  １８０６に用いられる暗号化は、Ｅ１と同じであってもよいし、異なっていてもよい。例えば、Ｅ１にＡＥＳが選択された場合、Ｒ１には、ＡＥＳ、ＲＣ４または別の暗号が選択され得る。多くの場合、標準的な暗号化を、復号化有りまたは復号化無しで改変して、それをＲ１に用いることが可能である。
【００６５】
Ｒ１  １８０６に暗号を用いる場合、出力形式は、選択された暗号によって決まる。例えば、Ｒ１  １８０６にストリーム暗号が選択された場合、出力は文字ストリームとなる。ブロック暗号を用いた場合、出力はブロック形式のパケットとなる。いずれの場合も、出力ストリームを同期装置Ｓ２  １８０８に入力して暗号ストリームＣ２を形成する。Ｃ２をＣ１と共に処理することによって、最終的な暗号文Ｃ１８１０が生成される。従って、Ｓ２  １８０８の機能は、ビット単位の排他的論理和操作を行う前の時点においてＣ２がＣ１と適合していることを確実にすることである。
【００６６】
暗号化の安全性を維持するためには、暗号化を利用する度にＣ２を異ならせる。これを行う方法は複数あるが、以下ではそのうちの２つを説明する。毎回異なるＣ２を生成するための方法の１つは、Ｆ１８０２の開始インデックスを変えることである。例えば、初期ベクトルＩＶユニット１８０７に、これまでの暗号化においてＦ１８０２中のいくつの文字が使われたのかを示す数字ｋを格納してもよい。新たな暗号化が要求された時、Ｆ  １８０２に格納されている（ｋ＋１）文字を乱数（または暗号）装置Ｒ１  １８０６に入力する。その暗号化の後、ＩＶユニット１８０７を更新して、次の開始インデックスを格納する。可変な平文Ｆ  １８０２全部が使われた時に、Ｆ  １８０２全体を新しい可変な平文に置き換えればよい。
【００６７】
毎回異なるＣ２を生成する別の方法の１つは、Ｃ２の開始インデックスを変えることである。例えば、ＩＶユニット１８０７に、これまでの暗号化においてＣ２中のいくつの文字が使われたのかを示す開始インデックスｋを格納してもよい。新たな暗号化が要求された時、Ｆ１８０２全体をＲ１  １８０６に入力する。同期装置Ｓ２  １８０８を用いて出力をカウントして、最初のｋ文字を破棄する。（ｋ＋１）文字からストリームＣ２を形成する。この処理は、小さなメッセージＰおよびＦに特に適している。
【００６８】
暗号化のための最終的な処理は、ストリームＣ１およびＣ２にビット単位の排他的論理和操作を行うことである。この処理のために使用可能な動作モードは３種類あり、全ストリームモード、文字単位モードおよびブロック単位モードである。図１９の符号１９００に示すような、全ストリームモードを用いて暗号化する処理は、以下のように説明できる。第１のストリーム暗号Ｃ１が生成されると、Ｃ１の長さが装置ＩＶユニット１９１２に渡される。この長さに基づいて、同期化ユニットＳ２  １９０２が同じサイズのＣ２を生成する。最終的な排他的論理和操作１９０６は、ストリームＣ１およびＣ２全体について行われる。この処理は、短いメッセージを暗号化するのに特に適している。全ストリームモードの利点の１つは、同期フィードバックが全く必要でないことである。平文Ｐ全体が分かっている場合、Ｃ１のサイズは固定であり、Ｃ２もそうである。よって、ストリームＣ１およびＣ２をリアルタイムでモニタリングする必要が全くない。一方、全ストリームモードは、Ｃ１全体が生成されてから開始され得るので、警察や軍隊の無線、放送および送信のような、リアルタイムで音声および映像を暗号化するリアルタイム用途の一部には不向きである。動作の観点から言えば、全ストリームモードは静的な動作である。
【００６９】
静的な用途だけでなく、リアルタイム用途も含めるためには、図２０の符号２０００に示すようなブロック単位モードを用いればよい。ブロック単位モードにおける最初の処理は、ブロックサイズを設定し、そして、ストリームＣ１およびＣ２に対してブロック単位で排他的論理和操作を行うことである。ただし、ブロック単位モードにおけるブロックサイズは、暗号化設計内で用いられているブロック暗号とは直接関係はなく、装置およびオペレーティングシステムに依存する。例えば、３２／６４ビットのオペレーティングシステムまたはチップの場合、ブロック長として３２／６４ビットを用いる方がより効率的である場合が多い。ブロック単位モードを用いる場合、同期装置Ｓ１およびＳ２  ２００２の主な機能は、排他的論理和操作を行う前の時点において、ストリームＣ１およびＣ２が適切なサイズにグループ化されていることを確実にすることである。この計数処理に加えて、Ｓ２装置２００２の機能には、暗号化が終了するまで処理が継続するようにＩＶ装置ユニット２０１２にリアルタイムでフィードバックすることも含まれる。例えば、Ｃ１の新しいブロックが生成された時、その信号はＩＶ装置ユニット２０１２に送信される。このとき、ＩＶ装置ユニット２０１２の計数機能は更新され、Ｃ２から新しいブロックが要求される。この新たに生成された２つのブロックは互いに排他的論理和操作がされ、これにより、暗号文Ｃ２０１０の新しいブロックを形成する。
【００７０】
一部の用途および小型デバイスの場合、全ストリームおよび／またはブロック単位モードは、暗号化を実現するのに最適または実行可能な方法ではないかもしれない。その場合、文字単位モードを用いればよい。実は、文字単位モードは、ブロックサイズを１にした、ブロック単位モードの特殊ケースと考えることができる。文字単位モードを用いる場合、暗号ストリームＣ１およびＣ２は文字ベースである。この場合、同期装置Ｓ１およびＳ２の主な機能は、単に、暗号ストリーム一度に１文字ずつ放出することである。図２１の符号２１００に示すように、Ｃ１およびＣ２のそれぞれから文字が生成される度に、それらの文字に互いに排他的論理和操作を行い、これにより、暗号文Ｃの１文字を形成する。装置ＩＶ２１１２の機能は、Ｃ１の最後までカウンタをインクリメントすることである。暗号化後、Ｃ１全体の長さをＩＶ装置ユニット２１１２に格納し、これにより、この長さを次回の暗号化に用いて暗号ストリームＣ１または可変な平文Ｆをオフセットできるようにする。文字単位モードは、特に、計算パワーおよび／またはメモリが限られた小型デバイスを用いたリアルタイムのセキュリティ用途に適している。
【００７１】
図２２の符号２２００に示すように、安全な暗号化／復号化の動作は、次の５つの入力／出力に依存し、すなわち、平文（Ｐ）２２０４、暗号文（Ｃ２２１２および２２１４）、第１のパスワード（Ｋ１）２２０６、２２２０、第２のパスワード（Ｋ２）２２０８、２２２２、および、独立したパスワードファイル（可変な平文ストリームＦ  ２２１０、２２２４）。一般的に、Ｋ１２２０４、２２２０およびＫ２２２０８、２２２２は覚えやすいパスワードであってよい。パスワードファイルＦは、印刷可能文字および／または印刷不可能文字の全てを含むランダムに生成されたファイルであってよい。上記５つの入力／出力を組み合わせれば、多くのセキュリティ用途を網羅する幅広い機能性が得られる。或る用途／実施形態を以下に挙げる。暗号化の最も基本的な用途の１つは、安全なメッセージをある場所から別の場所へと送ることである。
【００７２】
図２３の符号２３００に示すように、安全なメッセージを送る処理は、パラメータＫ１、Ｋ２およびＦをユーザ入力に割り当て、Ｋ１、Ｋ２およびＦのユーザ入力処理を暗号化ユニットＥ  ２３０４および復号化ユニットＤ  ２３１４の中に含めて、ユーザによって入力されたＫ１、Ｋ２およびＦが暗号化処理とは別に受信側エージェント２３１０に送信される。この送信は、例えば、Ｅメール送信、Ｅメールへの添付、インターネットダウンロード、ファイル転送（ＦＴＰ）、手渡し（宅配便）、郵便、電話、無線、または電報など、一つの場所から別の場所へ暗号文を送る適切な方法であればいかなるものであってよい。
【００７３】
平文Ｐが下記のいずれかである場合、本発明の実施形態に従って、安全な送信が行われる：Ｅメールメッセージ、テキストメッセージ、絵、図、写真（衛星からのを含む）、楽曲（保護されたＣＤまたはＤＶＤのを含む）、動画、および、様々な種類のコンピュータファイルおよび文書。上記のうち最後の４つの項目については、送信側エージェントへの入力を、ＵＵ−エンコードまたはｙＥｎｃなどの印刷可能な形式またはテキスト形式に先ず変更してから受信側エージェントに送信してもよい。実際には、本発明の様々な実施形態によって、どんな種類の平文形式でも扱うことができる。インターフェイスまたは（時には）送信側エージェントが、特定の入力形式を扱えない場合はある。
【００７４】
本発明をその実施形態に従って利用するためには、一般的に、受信者のＥメールアドレスなどの受信側エージェントが必要である。しかし、図２４の符号２４００に示すように、受信先が具体的に指定されていない場合、安全なメッセージを、公開または秘密のメッセージボード２４０８上にブロードキャストすることによって送ることができる。安全なメッセージをブロードキャストするためには、インターネット２４０８上の対応する公開および／または秘密のメッセージボードに暗号文Ｃをペーストすればよい。例えば、安全なメッセージを、公開サイトまたは私企業のサイトの所謂ゲストブックに残すことができる。公開されたメッセージは誰にでも見られる状態になり得るが、そのメッセージの内容は暗号化によって保護される。暗号の観点から言えば、暗号文を公開しても、その安全なメッセージを権限の無い人々に暴露したことにはならない。適切なパスワードと復号化とを備えた所定の人物だけが、その平文を得ることができる。
【００７５】
ブロードキャスト法の利点の１つは、特定のパーティーや宛先への送信が無く、時間遅延が無いことである。目的とされる受信者は、どこからでも（メッセージが送られたサイトに適切に接続可能な場所であれば）また事実上いつでも、このメッセージにアクセスすることができる。本発明のブロードキャスト実施形態は、短いメッセージに対して最も有用であり、インスタントまたはリアルタイムディスカッションには不便かもしれない。
【００７６】
リアルタイムの安全なディスカッションまたはチャットに関して、図２５の符号２５００に示すように、チャットルーム環境と共に、双方向構成（暗号化＆復号化）を用いた本発明の別の実施形態が実施可能である。チャットルームを開いた後、相手に対してチャットルームウィンドウ上に暗号文をコピーアンドペーストすることができる。
【００７７】
本発明のこの実施形態は、プライベートネットワーク、ローカルエリアネットワーク（ＬＡＮ）およびインターネットを含むあらゆるネットワーク環境上において、リアルタイムの安全なメッセージの交換を可能にする。全ての通信記録は、同時に自動的に保存される。このリアルタイムの安全なディスカッションまたはチャットによって、オークション、入札、売買価格、コストなど、複数のパーティーまたはクライアント間で安全な通信を行うこと、銀行員と安全なディスカッションを行って全ての記録を残すこと、爆弾の信管を抜くなどのリアルタイムの対話的に行われる軍事の指令、コンピュータを購入する際などの様々なオンラインコンサルタント業、オンラインショッピングに関するリアルタイムコンサルタント業、法律に関するアドバイス（受付エリアは公開チャットルームであり、そこに出入りする顧客を全て観察することができ、相談役はインスタントメッセージをＥメールで送り、一度、顧客に送られたＫ１、Ｋ２およびＦを使用して、秘密のチャットルームを開いて相談を開始することができる）、インスタントで安全且つオープンなオンラインバンキング（銀行が公開チャットルームにおいて多数の顧客にサービスを提供すると共に、各顧客が秘密のチャットルームにおいて担当銀行員と通信できる）、および、対話的な発注、購入および支払いなどのインスタントで安全且つオープンなオンラインビジネス、が可能になる。交換されるインスタントメッセージは、概してサイズが小さい。
【００７８】
図２６の符号２６００に示すように、ＨＴＭＬおよびスクリプトによって書かれたウェブページを、一般的なテキストの暗号化と同様に暗号化することが可能である。この場合、暗号化されたウェブページは、特別に設計された復号化ページによってデータとしてとして読むことができる。パラメータＫ１、Ｋ２およびＦを復号化ページＤ  ２６０８に入力すると、元のウェブページを入手して、直ぐに画面に表示することが可能である。本発明の安全な暗号化によれば、（データとしての）暗号化されたウェブページのセキュリティが確保される。Ｋ１、Ｋ２およびＦを復号化ページＤ  ２６０８に入力すると、元のウェブページが画面上に表示される。別のウェブページに変えるには、Ｋ１、Ｋ２およびＦの別の１組を入力すればよく、ウェブページは再び暗号化される。この実施形態は、例えば、「株式と投資」、「競馬予想」、「特選求人情報」および「ダウンロード可能な歌」などの用途に利用可能である。ウェブページを直接暗号化に入力することによって、暗号文データＣを容易に生成できる。一実施形態においては、復号化処理全体を自動的に手配できるように、パラメータＫ１、Ｋ２およびＦを選択してユーザに定期的にファイルとしてＥメールするようにしてもよい。
【００７９】
図２７の符号２７００に示すように、一実施形態において、本発明を用いて、一般的なソフトウェアおよびインストールを保護することができる。特別に設計された復号化Ｄソフトウェア２７０８を用いて、暗号文データＣ２７０６を読み、その後、所望のソフトウェア２７１０をインストールすることができる。しかし、このような実施形態では、そのソフトウェアに誰がアクセスしているのかが特定されず、そのソフトウェアの利用時間に関する情報も格納されないので、ソフトウェア情報の利用に対して課金することが困難である。
【００８０】
入力パラメータＰ、Ｋ１、Ｋ２、ＦおよびＣを再編成することによって、安全な課金設備を作成することができる。様々な実施形態により、クレジットカードセキュリティ、キャッシュマシン、カードセキュリティ、アクセスコントロール、オンラインバンキング、オンラインショッピング、およびオンラインエンターテイメントサービスプロバイダのような課金設備に本発明を利用することができる。
【００８１】
クレジットカードの実装においては、予め取り決められたクレジット限度額でサービス提供者（通常は銀行）が許可を出すと、クレジットカードがクレジットカードユーザに発行される。購入の際、クレジットカードユーザは、通常、カードの詳細と支払い金額が記載されたレシートにサインすることによって、支払いに同意する。多くの場合、電子照合システムが用いられ、これにより、商店主は、（磁気テープＴまたはフロッピー（登録商標）ディスクと同様に情報を保持しているカード上にある帯状の磁性体を用いて）そのカードが有効なものであること、および、そのクレジットカード客が、購入の時点において、その購入または処理を完了するのに十分な残高を有していることを確認することができる。
【００８２】
しかし、クレジットカードには、ほとんど、あるいは全く、セキュリティがない。例えば、カードの有効性チェックは、基本的には、有効期限のチェックである。クレジットカードマシンがリクエストを出せば、さらなる確認を行うことなくカード所有者の情報および残高が送信され、具体的なクレジットカードの番号の付け方や規則は知られており、また、クレジットカード情報はクレジットカード所有者の同意無しに容易にコピー、盗難、複製される。ハッカーまたは内部関係者がデータベースに不正アクセスすれば、全てのカード所有者の情報および記録が危険に曝される。カードに関する不正および犯罪は、容易に大規模に行われ得る。組織犯罪により複製クレジットカードが売られているという証拠がある。
【００８３】
クレジットカードのセキュリティ問題を解決するために、本発明の実施形態による安全な暗号化を用いれば、カードの有効性を確認する強力な照合方法、カード情報のための安全な暗号化、クレジットカードデータベースサーバのための安全な暗号化を提供できると共に、カード情報が犯罪者の商店主によって取得および／または複製された場合、または、送信中に不正にアクセスされた場合の金銭的損失を少なくすることができる。ユーザがアカウントを申請すると、サーバはユーザ情報に基づいて以下の処理を行う：平文Ｐを選択する。このＰは、例えば、カード所有者名、開始及び終了日、クレジットカード番号および他の所望の情報を含み得、ユーザおよび／または会社の要件に従って残りのパラメータＫ１、Ｋ２およびＦを生成し、全パラメータＰ、Ｋ１、Ｋ２およびＦを用いて暗号化を行って暗号文Ｃを生成し、文字列Ｐ、ＣおよびＦをＰ＝Ｐ１＋Ｐ２、Ｃ＝Ｃ１＋Ｃ２およびＦ＝Ｆ１＋Ｆ２のように２分割し（分割に関する特別な要件はない）、Ｐ１、Ｋ１、Ｆ１およびＣ１の情報をクレジットカードに入れ、そして、情報Ｐ２、Ｋ２、Ｆ２およびＣ２をカード所有者データベースレコードに入れる。さらなるセキュリティのために、カード所有者、クレジット上限および残高に関するあらゆる他の情報を暗号化してカード所有者データベースレコードに格納してもよい。
【００８４】
図２９の符号２９００に示すように、クレジットカード照合機２９０４は、本発明を利用して、その実施形態に従って、クレジットカード処理を安全なものにすることができる。クレジットカードをクレジットカード照合機に挿入すると、クレジットカード照合機はクレジットカード２９０２からＰ１、Ｋ１およびＦ１を取り出し、データベースレコード２９０６からＰ２、Ｋ１、Ｋ２、Ｆ２の値を取り出して、暗号化を行う。この暗号化の結果は暗号文Ｃである。新たに作成された暗号文Ｃを用いて、（クレジットカード２９０２の）暗号文Ｃ１と（データベースレコード２９０６の）Ｃ２を照合する。この２つの暗号文が一致した場合、クレジットカードの有効性の確認は成功とみなされる。照合が成功した後、処理を完了するために、暗号化されたクレジット情報が送信される。一度来訪する毎に（または、処理が成功した場合には確実に）、新しいＦの組をランダムに生成して、暗号化によって新しい暗号文Ｃを得る。このＦおよびＣの情報をＦ１、Ｃ１、Ｆ２およびＣ２に分割し、それぞれ、ユーザのクレジットカード２９０２およびデータベースレコード２９０６に格納し直して更新を行う。また、新しい暗号化されたクレジットの上限額の情報の組を更新する。全ての必要な過去の記録および関連処理のログを記録して、クレジットカードユーザのアカウントの履歴を構築してもよい。従って、サーバ情報からカードを複製することは不可能である。カードのチェックと照合は全てカードマシンにおいて行われる。インターネットまたはネットワーク経由の情報送信は全て暗号化されており、これにより、「スパイウェア」、「トロイの木馬」または「インサイダー」などのネットワークスパイ攻撃を排除している。情報Ｃ１、Ｃ２、Ｆ１およびＦ２は使用される度に変更されるので、ユーザカードから複製されたカードは無価値である。上記同様の理由から、複製カードが使用されると元のカードが無効になるので、これにより、複製カードを使用するという不法行為を、より容易に監視および発見することができる。一般的に、クレジットカード処理にはユーザの介入がないので、クレジットカード処理は「非対話的処理」と呼ぶことができる。
【００８５】
図３０の符号３０００に示すように、本発明の実施形態に従って、本発明をドアのロックおよび特定の場所へのアクセスをコントロールするために利用することができる。一般的に、カードキーは、人がドアを開けることを可能にするものである。従来のアクセスコントロール方法（暗号化および照合）にはクレジットカードと同様の問題がある：即ち、カードキーは盗難および複製され易いためにカードキーの有効性を確かめる強力な照合方法が無く、また、カードキーサーバをハッキングから守る強力な方法もない（例えば、侵入者がカードキーサーバのデータベースに不正に侵入して全てのキー記録を盗み、盗まれたキー／盗まれたキーカード情報を用いて全ての部屋へのアクセスを得ることができる、ということはよく知られている）。本発明の安全な暗号化を用いることによって、上記の問題を防ぐことができる。図３０に示すように、キーカード情報はＰ１、Ｋ１、Ｃ１およびＦ１３００２を含み、錠前ユニット３００４を用いて暗号化が行われ、データベースレコードはＰ２、Ｋ２、Ｆ２およびＣ２３００６を含む。錠前にキーカードを挿入すると、上記のクレジットカード処理の照合と同様に照合処理が行われる。基本的には、暗号化によって同じ暗号文が生成されれば、そのカードキーは有効であるとみなされてドアが開く。情報Ｃ１、Ｃ２、Ｆ１およびＦ２は、アクセスの度に変更され更新される。全ての必要な過去の記録および処理のログを記録して、アカウントの履歴を構築してもよい。組織犯罪または内部関係者によってサーバがハッキングされても、サーバ記録からのキーの複製は防止され、ＣおよびＦがアクセスの度に変化するので紛失キーおよび複製キーは無価値である。紛失キーおよび盗難キーは簡単に交換することができる。
【００８６】
図３１の符号３１００に示すように、キャッシュマシン処理もまた、本発明の実施形態による安全な暗号化を利用することができる。一般的には、パスワード（典型的には覚えやすいパスワード）３１０６を入力してキャッシュマシン３１０４処理を開始する。キャッシュマシンセキュリティには、クレジットカード用途と同様の問題がある。クレジットカードの場合と同様に、平文Ｐの一部を覚えやすいパスワードとして抽出する。すなわちＰ＝Ｐ１＋Ｐ２＋Ｐ３。一般的に、パラメータＰ３は、比較的覚えやすい番号または文字列であるべきであり、促された時にこれを暗号化へ入力するのに用いられる。パラメータＰ１、Ｋ１、Ｆ１およびＣ１はキャッシュマシンカード３１０２に入れる。パラメータＰ２、Ｋ２、Ｆ２およびＣ２は銀行のデータベースレコード３１０８に入れる。さらにセキュリティを高めるためには、上記と同じ安全な暗号化または他の選択された方法によってアカウントおよび関連情報を暗号化すればよい。一度来訪する毎に、または、処理が成功した場合に確実に、カードおよびデータベースにおいて、パラメータＦ１、Ｆ２、Ｃ１およびＣ２を再生成し更新する。新しいアカウントの残高および他の関連情報は、この情報が保護されるように、暗号化して更新してもよい。全ての必要な過去の記録および処理のログを記録して、アカウントの履歴を構築してもよい。クレジットカードの場合と同様に、キャッシュマシンカードおよびデータベースレコードは安全な暗号化によって保護される。組織犯罪または内部関係者がサーバに不正アクセスしても、データベースレコードからキャッシュマシンカードを複製することは不可能である。ＣおよびＦがアクセスの度に変化するので複製カードは無価値である。同様の理由から、複製カードが使用されると元のカードが無効になるので、これにより、複製カードを使用するという不法行為を、より容易に監視および発見することができ、紛失キーおよび盗難キーは、Ｆ１、Ｆ２、Ｃ１およびＣ２を変更することによって簡単に交換することができる。この用途は、上記覚えやすいパスワードによってさらに保護される。
【００８７】
図３２の符号３２００に示すように、本発明の実施形態によれば、インターネットからダウンロードできるソフトウェアを安全な暗号化によって保護することができる。固定されたＥ、Ｋ２、Ｐ２、Ｆ２を、データベースレコード３２１０中のソフトウェアの中に入れ、これをソフトウェアの実行可能なコードによって保護する。暗号化を伴う照合処理を、ソフトウェアのインストールに含める。そして、ソフトウェアをインターネット３２０６上においてダウンロードできるようにする。ユーザが、オーソライズされたサイトにおいてそのソフトウェアを登録すると、ソフトウェア３２０２内の暗号化パラメータに基づいてパラメータＰ１、Ｋ１、Ｆ１およびＣ１（「アクティベーションファイル」３２０４と呼ぶ）が生成される。その後、オーソライズされたソフトウェアインストレーションに関するＥメールとして、アクティベーションファイル３２０４が登録ユーザに送られる。ソフトウェアのインストールの際には、アクティベーションファイル３２０４が要求され、そして、安全な暗号化が行われる。パラメータＰ１、Ｐ２、Ｋ１、Ｋ２、Ｆ１、Ｆ２および暗号化Ｅによって、アクティベーションファイル３２０４と同じ暗号文Ｃが生成されると、ソフトウェアのインストールが継続され、インストールが成功したとみなされる。登録ユーザ毎にＰ１、Ｋ１、Ｆ１およびＣが異なるようにすれば、各ユーザがそのソフトウェアの正規の登録済みバージョンを有することになる。ソフトウェアをさらに保護するために、時々、ソフトウェアアクティベーションコードとしてＰ１からユーザパスワードＰ３を抽出して、これをサービスウェブページ３２０６に渡して、ソフトウェアのインストールに対話的パラメータも必要になるようにしてもよい。全ての必要な過去の記録および処理のログを記録して、アカウントの履歴を構築してもよい。
【００８８】
本発明の実施形態による安全な暗号化をインターネット上での課金処理に用いてもよい。例えば、ユーザが申込書に必要事項を記入してアカウントを申請する際に安全な暗号化を用いてもよく、その場合、サービスプロバイダは、データベース中にユーザアカウントを設定し、同時に、登録ユーザへのＥメールとして、通常の「ユーザ名」および「パスワード」を送るのではなく、アクティベーションファイルを送る。ユーザ名、パスワードおよびアクティベーションファイルに基づいて、ユーザは、上記のような暗号化処理を経てサービスサイトにログオンすることができる。ユーザは、ローカルマシン３２０２上にサービスページをダウンロードして実行する。サービスページ３２０６により自動的にアクティベーションファイル３２０２が情報を読まれる。ユーザは、安全な暗号化が行えるように、サービスページ３２０６にユーザ名およびパスワードＰ３  ３２０８を入力する。ユーザ認証の後、暗号化されたサービスデータおよび／またはウェブページがデータベースレコード３２１０によってローカルマシン３２０２に送られて復号化がされ、そして、顧客にサービスが提供される。
【００８９】
さらなる保護のために、Ｐ３に指紋またはその他の生体認証情報を含めるようにしてもよい。持ち運びできる用途とするために、アクティベーションファイルをメモリスティックに格納してもよい。用途としては、アメリカンオンライン（ＡＯＬ）、就職情報、デート斡旋業者、インターネットＴＶおよびブロードバンド電話などのインターネットサービスプロバイダ（ＩＳＰ）による利用がある。
【００９０】
図３３の符号３３００に示すように、本発明の実施形態による安全な暗号化はオンラインバンキングに利用してもよい。オンラインバンキングシステムのほとんどはバンキング操作およびデータベースサーバを有しているので、安全な暗号化を既存の保護プログラムに追加して、これにより、データベースサーバ中に暗号化レイヤを形成することができる。バンキング操作およびデータベースサーバはオーソライズされないアクセスから物理的に保護されるべきであり、インターネットに直接接続されるべきではない。銀行口座および関連情報は、インターネットまたはネットワーク環境を介してバンキングページに送信される前に、この暗号化レイヤによって暗号化するべきである。ユーザは、オンラインバンキングページ３３０６をローカルマシン上にダウンロードして実行する３３０２。バンキングページ３３０６は自動的にアクティベーションファイル３３０８の情報を読む。ユーザ名およびパスワードＰ３  ３３０４がバンキングページに渡されると、安全な暗号化を行ってユーザ認証を行う。ユーザ認証の後、暗号化されたバンキング操作３３１２を暗号化レイヤ３３１０に送って復号化する。その後、復号化されたバンキング情報をバンキング操作およびデータベースサーバ３３１２に送って、実際のバンキング処理が行われる。オンラインバンキングの持ち運び性を高めるために、アクティベーションファイルを、ローカルマシン、メモリスティックおよび／またはハードディスクまたはＣＤなどのあらゆる持ち運び可能な格納装置に格納してもよい。セキュリティを高めるために、Ｐ３またはアクティベーションファイルは、指紋などの生体認証情報を含んでいてもよい。暗号化レイヤを追加しても、既存の全てのオンラインバンキング操作は変わらないので、変更が最小限に抑えられる。
【００９１】
本発明のいくつかの実施形態を図示および説明したが、当業者であれば、本発明の原理および要旨から逸脱することなく上記実施形態に変更を加えることが可能であることが理解できるであろうし、本発明の範囲は、請求項およびその均等物によって規定される。
【図面の簡単な説明】
【００９２】
【図１】従来の共通鍵暗号を示すブロック図である。
【図２】従来のブロック暗号を示すブロック図である。
【図３】従来の電子コードブック（ＥＣＢ）モードを示すブロック図である。
【図４】従来の暗号ブロック連鎖（ＣＢＣ）モードを示すブロック図である。
【図５】従来の暗号フィードバック（ＣＦＢ）モードを示すブロック図である。
【図６】従来の出力フィードバック（ＯＦＢ）モードを示すブロック図である。
【図７】従来の出力フィードバック（ＯＦＢ）モードを示すブロック図である。
【図８】従来のＣＦＢモードにおける暗号化を示すブロック図である。
【図９】従来のＣＦＢモードにおける復号化を示すブロック図である。
【図１０】従来のブロック暗号の出力フィードバックモードを用いて、暗号化において同期化ストリーム暗号を実現する場合のブロック図である。
【図１１】従来のブロック暗号の出力フィードバックモードを用いて、復号化において同期化ストリーム暗号を実現する場合のブロック図である。
【図１２Ａ】本発明の二つの実施形態における、平文情報を安全に暗号化するシステムを示すブロック図である。
【図１２Ｂ】本発明の二つの実施形態における、平文情報を安全に暗号化するシステムを示すブロック図である。
【図１３】本発明の別の一実施形態における、平文情報を安全に暗号化するシステムを示す模式図である。
【図１４】本発明の一実施形態における、平文情報を安全に暗号化する装置／データ入力装置を示すブロック図である。
【図１５】本発明の一実施形態における、平文情報を安全に復号化する装置／データ入力装置を示すブロック図である。
【図１６】本発明の一実施形態における、暗号文Ｃストリームに格納されるヘッダ情報としてＩＶユニットの情報を暗号化および出力する場合のブロック図である。
【図１７】本発明の一実施形態における、暗号文Ｃストリームに格納されるヘッダ情報としてＩＶユニットの情報を復号化および出力する場合のブロック図である。
【図１８】本発明の一実施形態における、第２の暗号ストリームＣ２を生成する場合のブロック図である。
【図１９】本発明の一実施形態における、全ストリームモードを用いてストリームＣ１およびＣ２にビット単位の排他的論理和操作を行う場合のブロック図である。
【図２０】本発明の一実施形態における、ブロック単位モードを用いてストリームＣ１およびＣ２にビット単位の排他的論理和操作を行う場合のブロック図である。
【図２１】本発明の一実施形態における、文字単位モードを用いてストリームＣ１およびＣ２にビット単位の排他的論理和操作を行う場合のブロック図である。
【図２２】本発明の一実施形態における、安全な暗号化／復号化の入力／出力を示すブロック図である。
【図２３】本発明の一実施形態における、安全なメッセージの送達を示すブロック図である。
【図２４】本発明の一実施形態における、公開または秘密のメッセージボード上にメッセージをブロードキャストする場合のブロック図である。
【図２５】本発明の一実施形態における、リアルタイム用途のチャットルームまたはインスタントメッセージを示すブロック図である。
【図２６】本発明の一実施形態における、ウェブページのコンテンツを保護する場合のブロック図である。
【図２７】本発明の一実施形態における、ソフトウェアのインストールを保護する場合のブロック図である。
【図２８】本発明の一実施形態における、クレジットカードのバリデーションを示すブロック図である。
【図２９】本発明の一実施形態における、クレジットカード照合機を使用する場合のブロック図である。
【図３０】本発明の一実施形態における、ドアのロックおよび特定の場所へのアクセスを制御する場合のブロック図である。
【図３１】本発明の一実施形態における、キャッシュマシンを使用する場合のブロック図である。
【図３２】インターネット上での課金処理において本発明の一実施形態を利用する場合のブロック図である。
【図３３】オンラインバンキングにおいて本発明の一実施形態を利用する場合のブロック図である。
【図３４】本発明の方法／コンピュータが実行可能な命令が入ったコンピュータ可読媒体による処理を示すフローチャートである。
【図３５】本発明の別の方法／コンピュータが実行可能な命令が入ったコンピュータ可読媒体による処理を示すフローチャートである。
【図３６】本発明の実施形態による別の方法／コンピュータが実行可能な命令が入ったコンピュータ可読媒体による処理を示すフローチャートである。
【図１】
2008529044.tif 000003
【図２】
2008529044.tif 000004
【図３】
2008529044.tif 000005
【図４】
2008529044.tif 000006
【図５】
2008529044.tif 000007
【図６】
2008529044.tif 000008
【図７】
2008529044.tif 000009
【図８】
2008529044.tif 000010
【図９】
2008529044.tif 000011
【図１０】
2008529044.tif 000012
【図１１】
2008529044.tif 000013
【図１２Ａ】
2008529044.tif 000014
【図１２Ｂ】
2008529044.tif 000015
【図１３】
2008529044.tif 000016
【図１４】
2008529044.tif 000017
【図１５】
2008529044.tif 000018
【図１６】
2008529044.tif 000019
【図１７】
2008529044.tif 000020
【図１８】
2008529044.tif 000021
【図１９】
2008529044.tif 000022
【図２０】
2008529044.tif 000023
【図２１】
2008529044.tif 000024
【図２２】
2008529044.tif 000025
【図２３】
2008529044.tif 000026
【図２４】
2008529044.tif 000027
【図２５】
2008529044.tif 000028
【図２６】
2008529044.tif 000029
【図２７】
2008529044.tif 000030
【図２８】
2008529044.tif 000031
【図２９】
2008529044.tif 000032
【図３０】
2008529044.tif 000033
【図３１】
2008529044.tif 000034
【図３２】
2008529044.tif 000035
【図３３】
2008529044.tif 000036
【図３４】
2008529044.tif 000037
【図３５】
2008529044.tif 000038
【図３６】
2008529044.tif 000039
【国際調査報告】
2008529044.tif 000040
2008529044.tif 000041
2008529044.tif 000042