(57)【要約】  ワンタイムパスワード暗号化システムを強化するための装置、方法、及びコンピュータ読み取り可能媒体を提供する。【解決手段】  本発明の方法の実施例は、暗号文（３）を生成するために排他的論理和演算において平文（１）をワンタイムパスワードキー（２）で暗号化するステップ、及びオートキーによる暗号文（５）を生成するために排他的論理和演算においてオートキー（４）で暗号文（３）を難読化するステップを含み、該オートキー（４）は再使用可能キーである。【選択図】  図１
2008508806.tif 000002
【特許請求の範囲】
【請求項１】
ワンタイムパスワード暗号化システムを強化するためのコンピュータ実行方法であって、該方法は、
暗号文を生成するために排他的論理和演算においてワンタイムパスワードキーで平文を暗号化するステップと、
オートキーによる暗号文を生成するために排他的論理和演算において前記暗号文を難読化するステップとを含み、前記オートキーは再使用可能キーである、方法。
【請求項２】
前記オートキーは１セットのワンタイムパスワードキーに一意的に関連付けられる、請求項１に記載のコンピュータ実行方法。
【請求項３】
前記オートキーは再使用可能キーであるカーネルキーに一意的に関連付けられる、請求項１に記載のコンピュータ実行方法。
【請求項４】
前記平文は平文ヘッダ及び平文本体を含み、前記方法は、さらに、前記平文ヘッダを前記カーネルキーで難読化するステップを含む、請求項３に記載のコンピュータ実行方法。
【請求項５】
前記ワンタイムパスワード暗号化システムの副産物を前記カーネルキーで難読化するステップを含む、請求項３に記載のコンピュータ実行方法。
【請求項６】
前記副産物は、ユーザ選択を記憶するビンファイルと、前記ワンタイムパスワード暗号化の目的に関する情報を含むログファイルとからなる項目の群からの項目を含む、請求項５に記載のコンピュータ実行方法。
【請求項７】
ワンタイムパスワード暗号化システムを強化するためのコンピュータ実行方法であって、該方法は、
暗号文ヘッダを生成するために排他的論理和演算において平文ヘッダを再使用可能キーであるカーネルキーで難読化するステップを含み、
前記カーネルキーは再使用可能キーであり、前記平文ヘッダは関連平文本体を処理するのに有用な情報を含む、コンピュータ実行方法。
【請求項８】
前記情報は、前記平文本体の意図された受信の識別性、前記平文本体の長さ、及びワンタイムパスワードキーの識別性、及び前記平文本体を解読するのに使用する前記ワンタイムパスワードキーのキーオフセットからなる項目の群からの項目を含む、請求項７に記載のコンピュータ実行方法。
【請求項９】
さらに、キーオフセットを使用することなく、排他的論理和演算において前記暗号文ヘッダと前記カーネルキーとを組み合わせることによって前記暗号文ヘッダを非難読化するステップを含み、それによって、前記平文ヘッダを復元する、請求項７に記載のコンピュータ実行方法。
【請求項１０】
前記非難読化するステップは、
前記平文ヘッダ内の予め選択されたインデックス位置を選択すること、及び
前記カーネルキー内で前記インデックス位置を発見することを含むインデックス技法を使用して行われることを含む、請求項９に記載のコンピュータ実行方法。
【請求項１１】
連続ｎバイトが前記カーネルキー内で繰り返され、ｎは２に少なくとも等しい正の整数である、請求項７に記載のコンピュータ実行方法。
【請求項１２】
前記カーネルキーは、
ＧＵＩＤと、
オートキーの一部とを含み、前記オートキーは再使用可能キーである、請求項７に記載のコンピュータ実行方法。
【請求項１３】
前記オートキーは、前記ワンタイムパスワード暗号化システムによって生成される暗号文を難読化するために使用される、請求項１２に記載のコンピュータ実行方法。
【請求項１４】
ワンタイムパスワード暗号化システムにおいて使用する変数持続性ヘッダであって、
該ヘッダは前記暗号化システムを使用して暗号化されるメッセージを処理するのに有用な情報を含む複数のフィールドと、
該フィールドのいずれが前記メッセージの送信者から該メッセージの受信者へ対して持続されるかを示す１セットのフラグとを含む、変数持続性ヘッダ。
【請求項１５】
前記ヘッダは前記メッセージの意図された受信者の識別性、前記メッセージの長さ、ワンタイムパスワードキーの識別性、及び前記メッセージを解読するのに使用する前記ワンタイムパスワードキーのキーオフセットのうちの少なくとも１つを含む、請求項１４に記載のヘッダ。
【請求項１６】
前記ヘッダは、前記暗号化による副産物を難読化すること及び該メッセージを処理するのに有用なヘッダを難読化することの２つのタスクのうちの少なくとも１つを行うために使用されるカーネルキー内に含まれる、請求項１４に記載の方法。
【請求項１７】
前記フラッグと前記フィールドとの間には一対一マッピングがある、請求項１４に記載の方法。
【請求項１８】
前記フラグの少なくとも１つと前記フィールドとの間には一対多マッピングがある、請求項１４に記載の方法。
【請求項１９】
前記フラグの意味は、前記メッセージの送信者及び前記メッセージの受信者によって、前記送信者及び前記受信者から前記メッセージが送信される前に、同意される、請求項１４に記載のヘッダ。
【請求項２０】
前記フラグの意味は、前記メッセージが送信された後に、及び次のメッセージが送信される前に変更され得る、請求項１９に記載のヘッダ。
【請求項２１】
ワンタイムパスワード暗号化システムを強化するためのコンピュータプログラム指令を含む少なくとも１つのコンピュータ読み取り可能媒体であって、
前記コンピュータプログラム指令は、暗号文を生成するために排他的論理和演算においてワンタイムパスワードキーで平文を暗号化するステップと、
オートキーによる暗号文を生成するために排他的論理和演算において再使用可能キーであるオートキーで前記暗号文を難読化するステップとを実行する、少なくとも１つのコンピュータ読み取り可能媒体。
【請求項２２】
ワンタイムパスワード暗号化システムを強化するためのコンピュータプログラム指令を含む少なくとも１つのコンピュータ読み取り可能な媒体であって、
前記コンピュータプログラム指令は、暗号文ヘッダを生成するために排他的論理和演算において再使用可能キーであるカーネルキーで平文ヘッダを難読化するステップを実行し、前記カーネルキーは再使用可能キーであり、前記平文ヘッダは関連平文本体を処理するのに有用な情報を含む、少なくとも１つのコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
発明者：ゾルトアリ
関連出願：
この特許出願は、２００４年７月２９日に出願された、「暗号作成技術」という表題の米国仮特許出願６０／５９２，３１０号に関し、３５ U.S.Ｃ. §１１９(e)に基づいて、優先権の利益を主張し、その仮特許出願全体は参照により本特許出願に組み込まれる。
【０００２】
技術分野
本発明はワンタイムパスワード（ＯＴＰ）を使用する暗号化システムの分野に関する。
【背景技術】
【０００３】
２００４年１月２９日に公開された「キー畳み込みを使用する暗号作成キー配布」という表題の米国公開特許出願Ｎｏ．ＵＳ２００４／００１７９１７Ａ１及び２００４年７月１５日に公開された「キー展開を使用する暗号解読キー配布」という題号の米国公開特許出願Ｎｏ．ＵＳ２００４／０１３６５３７Ａ１はワンタイムパスワード暗号化システムにおいて使用されるキーの配布を改良することに関する。本発明は前記ワンタイムパスワード暗号化システムそれ自体を強化することに関する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ワンタイムパスワード暗号化システムを強化するための装置、方法、及びコンピュータ読み取り可能媒体。本発明の方法の実施例は、暗号文（３）を生成するために排他的論理和演算において平文（１）をＯＴＰキー（２）で暗号化するステップ、及びオートキーによる（Autokeyed）暗号文（５）を生成するために排他的論理和演算においてオートキー（ＡutoKey）（４）で暗号文（３）を難読化するステップを含み、オートキー（４）は再使用可能キーである。
【０００５】
本発明のこれら及び他の目的及び特徴は添付図面を参照して、以下の説明により十分に開示される。
【発明を実施するための最良の形態】
【０００６】
定義
次の用語は特許請求の範囲を含む本明細書の全体にわたって次の意味を持つ。
【０００７】
「ＡＫ(オートキー)」４は、ここで記載される態様で、ここに記載される目的に排他的論理和演算に使用される再使用可能キーを意味する。
【０００８】
「ＧＵＩＤ(グローバル一意識別子)」８は、項目、この場合はカーネルキー６を一意的に識別する一連のビットを意味する。
【０００９】
「キー識別子」は１セットのキー２からどのキー２がＯＴＰ暗号化システムにおいて解読のために使用されるべきかを識別する一連のビットを意味する。
【００１０】
「キーオフセット」は、キー２が暗号化又は解読手続において使用される場合、ＯＴＰ内の開始点を示す数値を意味する。
【００１１】
「ＫＫ（カーネルキー）」６はここに記載される方法で、ここに記載される目的のために排他的論理和演算において使用される再使用可能キーを意味する。
【００１２】
「難読化する」は排他的論理和演算において、再使用可能キー、例えばＡＫ ４又はＫＫ ６の使用を意味する。難読化することは、排他的論理和演算において使用されるキーが、再使用可能ではない本物のＯＴＰキー２とは対照的な再使用可能キーである点で暗号化と異なる。
【００１３】
「Ｎバイト条件」は、連続するｎバイトがＫＫ ６内で繰り返されないという要求を意味する（ｎは２に少なくとも等しい正の整数）。
【００１４】
「ＯＴＰ(ワンタイムパスワード)暗号化システム」は、暗号化及び解読化が排他的論理和演算よって行なわれ、暗号化／解読化キー（ＯＴＰキー２）がただ１度だけ使用され、次いで、廃棄される暗号化システムを意味する。
【００１５】
「ＯＴＰエンジン」１０はモジュールを意味し、ＯＴＰ暗号化システムの機能を果たすハードウェア、ソフトウェア、及び／又はファームウェアの任意の組み合わせにおいて実行され得る。ソフトウェアにおいて実行されると、モジュールは任意のコンピュータ読み取り可能な媒体、例えばコンピュータメモリ、ハードディスク、フレキシブルディスク、光ディスク等において具現化できる。「ＯＴＰキー(ワンタイムパスワードキー)」２はＯＴＰ暗号化システムにおいて暗号化及び解読に使用されるキーである。ＯＴＰキー２はまさに１回使用され、次いで廃棄される。
【００１６】
「再使用可能なキー」すなわち「循環キー」は、排他的論理和演算において使用されるキーであり、順番にキーの隣接した部分を使用することによって再使用でき、キーの端に遭遇するとき、キーの最初の部分で再び始まる。
【００１７】
「スライディングアルゴリズム」とは、検査される項目、例えばキーオフセットに対して一定数のバイトを連続して適用し、かつ固定長のウインドウの内容及び検査されている項目間で個々の連続ステップにおいて比較を行うアルゴリズムである。
【００１８】
「排他的論理和（排他的ＯＲ）」とはブール代数の演算子であり、０及び０の組み合わせは０を生成し、０及び１の組み合わせは１を生成し、１及び１の組み合わせは０を生成し、そして１及び０の組み合わせは１を生成する。
【００１９】
オートキー及びカーネルキー
ここに記載されるオートキー４及びカーネルキー６は任意のＯＴＰ暗号化システム、例えばワシントン州タコマのヴァディアムテクノロジー社によって製造されるアルファサイファ暗号化システムにおいて使用できる。
【００２０】
ＯＴＰ暗号化システムの基本操作は図３に示される。送信者５０によって制御されるＯＴＰエンジンは暗号文ヘッダ３７を生成するためにカーネルキー６を使用して、平文ヘッダ３１を難読化し、暗号文本体３８を生成するためにＯＴＰキー２を使用して、平文本体３２を暗号化する。その後、暗号文ヘッダ３７及び暗号文本体３８は受信者６０へ通信リンク４５を介して送信される。リンク４５は、いかなる通信リンク、例えばインターネット、変調無線信号、セマフォ等であり得る。そのとき受信者６０によって制御されるＯＴＰエンジン１０は平文ヘッダ３１を復元するためにカーネルキー６を使用して、暗号文ヘッダ３７を非難読化（de-obfuscate）し、平文本体３２を復元するためのＯＴＰキー２を使用して、暗号文本体３８を解読する。
【００２１】
オートキー４及びカーネルキー６の両方は、いずれかの全く任意のＯＴＰキー２に類似する、いずれかの全く任意のバイト列を含むが、それらが再使用可能なことにおいてＯＴＰキー２と異なる。オートキー４及びカーネルキー６の長さは任意のサイズになり得る。それらが長いほど、それらは安全になる。オートキー４もカーネルキー６も、ＯＴＰキー２によって行なわれるＯＴＰ暗号化の演算を損ねない。
【００２２】
オートキー４及びカーネルキー６は、キー列の端に到達するとき、列が始めから再び開始することを意味する循環キーである。送信者５０によって制御されるＯＴＰエンジン１０は、使用されたＡＫ ４及びＫＫ ６の部分、したがって、ＡＫ ４又はＫＫ ６によって行なわれた後の難読化において使用されるべき部分の経過を追う。
【００２３】
ＫＫ ６は、それが満たさなければならない特別の条件を持つが、ＫＫ ６の中のいずれかの連続するｎバイトも、ＫＫ ６のその実例に一度だけ現われねばならない（ｎは２に少なくとも等しい正の整数）。この条件は「ｎ-バイト条件」とここでは称される。好ましい実施例では、ｎ=４である。この条件は、ＫＫ ６の長さを制限する。ｎの値が大きいほど、長さ制限は厳しくない。このｎ-バイト条件をＫＫ ６に持たせる理由は、後述されるように、それにより、エンジン１０はＫＫ ６内に容易にかつ一意的にいずれかのｎバイト列でも見つけることができるからである。品質保証コンピュータプログラムは、それがＫＫ ６として使用され得る前にこの条件を満たすための任意の一連のバイトに予め資格を与えるように設計された。ちょうどｎバイトが繰り返す前に、この品質保証コンピュータプログラムはその一連のものを切り詰める。
【００２４】
図２において示されるように、ＫＫ ６は一意的な識別目的のための浮動ヘッダ７を含む。この浮動ヘッダ７は、ＫＫ ６として使用される任意の一連のバイト内に任意に配置される。ＫＫ ６がその意図した難読化目的のために使用される前に、浮動ヘッダ７はＯＴＰエンジン１０によって削除される。ＯＴＰエンジン１０は、浮動ヘッダ７がＫＫ ６内のどこに配置されるかを通知され、その情報を、ＫＫ ６から浮動ヘッダ７を抽出するために使用する。
【００２５】
浮動ヘッダ７がＧＵＩＤ８とＡＫ ４の最初のjバイトを含むセクション９とを含む（jが正の整数である）。好ましい実施例では、j=１６である。ＧＵＩＤ８は一意的にそのＫＫ ６を識別する。セクション９により、その顧客のためにＫＫ ６とＡＫ ４との間の一意的な連係が可能になる。ヘッダ７がＫＫ ６自体の一部であるようにみなされないので、ヘッダ７はｎ-バイト条件から免除される。
【００２６】
ＡＫ ４の第１の目的は、図１に示され、すなわち、暗号文３が、ＯＴＰキー２で平文１を排他的論理和演算することにより生成された後、オートキーによる暗号文５を生成するために暗号文３を難読化することである。図１では、オートキー ４内の水平バーが、オートキー ４が繰り返しキーであることを見る者に気付かせる。この難読化ステップが行なわれ、 生じるオートキーによる暗号文５の解読/非難読化が、ＯＴＰキー２及びオートキー ４の両方の所有を要求する。ＯＴＰキー２が盗まれる場合、泥棒は、平文１を検索するために依然としてオートキー ４を必要とする。オートキー４が繰り返しキーであるので、泥棒はオートキー ４を復元することができるが、それは極端な量の仕事を必要とする。
【００２７】
ＡＫ ４の第２の目的は、ＯＴＰキー２の一意的なセットにＯＴＰ暗号化システムの特別のインストールを結び付けることにある。この結び付けは、各ＯＴＰキー２がＫＫ ６によって難読化される浮動ヘッダを含むということで達成され、ＫＫ ６は上述されるように、ＡＫ ４にリンクされる。結び付けの効果は、同じＯＴＰ暗号化システムを使用している別の顧客によってある顧客のＯＴＰキー２が不正使用されるのを防ぐことである。
【００２８】
ＫＫ ６の用途は、ＡＫ ４のものよりもっと様々である。ＫＫ ６の第１の適用は図２において示される。浮動ヘッダ７がエンジン１０によってＫＫ ６から取り除かれた後、ＫＫ ６は、ビンファイル（bin file）１１、ログファイル（log file）１２及び他の副産物１３を含むが、それらに制限されず、ＯＴＰ暗号化による任意のかつ全ての副産物を難読化するために使用することができる。この難読化(それは上述のような排他的論理和処理手続きを使用して行なわれる)は、難読化されたビンファイル２１、難読化されたログファイル２２、及び難読化された他の副産物２３を各々、生成する。ビンファイル１１は、ワシントン州タコマのヴァデアムテクノロジー社によって製造されたアルファサイファ暗号化システムのようなあるＯＴＰ暗号化システムによって生成される２値ファイルであり、ユーザ選択を記憶するために使用される。ログファイル１２は、ワシントン州タコマのヴァデアムテクノロジー社によって製造されたアルファサイファ暗号化システムのようなあるＯＴＰ暗号化システムによって使用され、ＯＴＰ暗号化の目的に関する情報を含む。他の副産物１３は、任意のＯＴＰ暗号化システムによって生成されるＯＴＰ暗号化の他の副産物であり得る。ビンファイル１１、ログファイル１２、及び他の副産物１３を難読化することは、不正を行う者が暗号化された通信を盗み聞きすることを都合良くより困難にする。
【００２９】
ＡＫ ４及びＫＫ ６の両方は、組織、企業又は通信グループ内の定数として使用される。ＡＫ ４又はＫＫ ６のうちの１つ又は両方が失われるかもしれないし、盗まれるかもしれないし、悪くなるかもしれないという点で、この不変性に関する制約がある。この場合、ＡＫ ４及びＫＫ ６は交換されるか補充されねばならない。
【００３０】
通常は、１人の顧客当たりＯＴＰキー２、１つのＡＫ ４及び１つのＫＫ ６(集合して「グループ」)からなる１つのセットである。１人の顧客当たりいくつかのグループにすることが可能であるが、これはあるグループから別のグループへ通信を妨げる。また、１人の顧客当たり１つのＫＫ ６及びいくつかのＡＫ ４にすることも可能であるが、再び、個別のＡＫ ４を持っている顧客内のサブグループは互いに通信することができない。この後者の実施例では、ｍ個のＡＫ(ｍは２に少なくとも等しい正の整数である)があると仮定する。その場合、ｍ個の ＫＫがあり、異なるヘッダ７を除いてすべて同一である。各ヘッダ７は同じＧＵＩＤ ８を持つが異なるＡＫ部分９を持ち、その結果ｍ個のすべてのＡＫは、ｍ個の ＫＫのセットによって指示される。その場合、ヘッダ７がエンジン１０によってＫＫから剥がされた後、単に１つの一意的なＫＫ ６が残る。
【００３１】
ＫＫ ６の第２の使用は図３に示される。平文本体３２及び連結した平文ヘッダ３１からなることは、平文１用のＯＴＰ暗号化システムにおいて典型的である。本体３２は、暗号化されるべきメッセージ１の本質的な部分を含む。ヘッダ３１(それは典型的には平文１の初めに現われる)は、解読プロセスに役立つ情報を含む。そのような情報は、意図した受信者６０の同一性、平文本体３２の長さ、ＯＴＰキー２の同一性及び前記ＯＴＰキー２用のキーオフセットを含むことができる。本体３２は暗号文本体３８を生成するために排他的論理和処理手続きを使用してＯＴＰキー２によって暗号化される。平文ヘッダ３１は、暗号文ヘッダ３７を生成するために、カーネルキー ６(浮動ヘッダ７が送信者のエンジン１０によってＫＫ ６から取り除かれた後)によって難読化される。ヘッダ３１が難読化される理由は攻撃者が前記有用な情報にアクセスすることができないようにするためである。 
【００３２】
本発明では、暗号文ヘッダ３７は上記ＫＫ ６のｎ-バイト条件を利用する特別のインデックスシステムを使用して、キー識別子かキーオフセットを使用することなく非難読化される。このインデックスを付ける技術は以下のように作用する。平文ヘッダ３１は、ＫＫ ６から刻んで作られた一意的なｎ-バイトインデックス３３を含む。インデックス３３は、常に平文ヘッダ３１内の同じ位置にあり、したがって、各ＯＴＰエンジン１０はどこでインデックス３３を見つけるべきか知っている。インデックス３３は、０に最初に設定される(そのビットはすべては０である)。平文ヘッダ３１がＫＫ ６によって難読化されるとき、インデックス３３が排他的論理和演算のまさにその性質、すなわち所定のどのビットで排他的論理和演算された０はそのビットを生成するという性質により、暗号文ヘッダ３７内の対応する部分３９内へ繰り越されるので、ＫＫ ６内に存在するものはなんであろうとも同じ相対的な位置に存在する。後のステップで、難読化の中で使用され、そしてその結果非難読化の中で使用されねばならないＫＫ ６の部分４０の開始点を見つけるために、受信者６０のＯＴＰエンジン１０は、ＫＫ部分３９に行く。(いずれのＯＴＰプロセスでも、キーの同じ部分は、暗号化(又は難読化)のために使用されたように、解読(又は非難読化)のために使用されねばならない)）。ｎ-バイト条件なので、我々は、ＫＫ ６のこの部分４０が一意的なことを知っている。したがって、我々は、非難読化が正確に行なわれること知っている。この非難読化は、平文ヘッダ３１を復元するために暗号文ヘッダ３７で排他的論理和演算されるＫＫ ６の正確な部分４０からなる。
【００３３】
変数持続性ヘッダ
変数持続性ヘッダに関係するここの資料はＫＫヘッダ７及び平文ヘッダ３１に等しく適用するが、図示の容易さの目的のために、次の記載は平文ヘッダ３１に向けられる。ヘッダ３１がその様々な機能を行なうために、ヘッダ３１の少なくともいくらかは持続する必要がある(送信者５０から受信者６０へ繰り越される)。伝統的に、ヘッダ３１は、それが拡張され得る方法で記載されるが、それは、万一、その必要が追加のデータ、例えばＯＴＰキーセット２の所有者に関係するバイオメトリック情報を含めるために今後生ずればである。これは、ヘッダ３１の第１のデータメンバー(フィールド)として、ヘッダ３１の長さを示すサイズカウンター、wSizeを使用することにより伝統的に行われた。これは、必要に応じてヘッダ３１を含むデータ構造の端へより多くのデータメンバーを加える可能性と共に、既知のデータメンバーを備えたヘッダ３１の定義を考慮に入れた。この原理は次のＣ言語の例において示される。
【００３４】
ｓｔｒｕｃｔ
{
ＷＯＲＤ                       wSize; 
ＷＯＲＤ                       ｗＤaｙ;
ＷＯＲＤ                       ｗＭｏｎｔｈ;
ＷＯＲＤ                       ｗＹｅａｒ;
}ＤＡＴＥ＿ＳＴＲＵＣＴ
【００３５】
ＤＡＴＥ＿ＴＩＭＥ＿ＳＴＲＵＣＴはそれが受信者６０のコンピュータ読み取り可能媒体に持続されるように日付の記憶を定義する。wSizeメンバー変数はＤＡＴＥ＿ＳＴＲＵＣＴのサイズと等しくなるように予め設定される。もし今後、構造が、ＤＡＴＥ＿ＳＴＲＵＣＴを過去支援しつつ、拡張される必要があれば、以下に示されるように、ＤＡＴＥ＿ＳＴＲＵＣＴと同一の最初のわずかのデータメンバーを持った新しい構造が作られなければならない。
【００３６】
ｓｔｒｕｃｔ
{
ＷＯＲＤ                       wSize;
ＷＯＲＤ                       ｗＤaｙ;
ＷＯＲＤ                       ｗＭｏｎｔｈ;
ＷＯＲＤ                       ｗＹｅａｒ;
ＷＯＲＤ                       ｗHｏｕｒ;
ＷＯＲＤ                       ｗＭｉｎｕｔｅ;
ＷＯＲＤ                       ｗＳｅｃｏｎｄ;
}ＤＡＴＥ＿ＴＩＭＥ＿ＳＴＲＵＣＴ
【００３７】
この第２の例において、wSizeメンバー変数はＤＡＴＥ＿ＴＩＭＥ＿ＳＴＲＵＣＴのサイズと等しくなるように予め設定される。配置されるこれらの２つのデータ構造に関して、古いデータ構造は、wSizeメンバー変数の値を検査することによって、そのことが追加情報が存在したかどうかを示すので、新しいデータ構造から区別することができる。この方法は頻繁に使用されるが、それは欠点を持つ。もし後の日付に、データ構造が、例えば、本年の１月１日以来、日数の経過を追うために拡張される必要があると仮定する。この情報を加えるためのただ一つの場所はデータ構造の端にあり、第３のＤＡＴＥ＿ＴＩＭＥ＿ＳＴＲＵＣＴ定義が要求される。別の例として、その年の経過を追うことが、後の日付にもはや必要ではなかったと仮定する。しかし、別のデータ構造はデータメンバーｗＹｅａｒを除去するために必要とされる。これらのデータ構造は静的であり、いったんそれらが公に開放されると変更することはほとんど不可能である。これは日常業務の問題を作り出し、処理サイクルを浪費する。
【００３８】
セキュリティの見地から、先行技術の静的ヘッダには別の問題がある。６４ビットの数がＯＰＴキー２用にキーオフセットとして使用され、キーオフセットがヘッダ３１内に記憶されると仮定する。ＯＴＰキー２が初めて使用されるとき、キーオフセットは０である。任意の値で排他的論理和演算される０は排他的論理和演算された値を戻すので、スライディングアルゴリズムは、オフセットのまわりの情報の残りが暗号化されたＯＴＰキー２のセクションを確実に検知するために、攻撃者(それが通信リンク４５を横断するとき、ヘッダを遮るかもしれない)によって使用されることができ、それにより、セキュリティを弱める。
【００３９】
本発明は、第１のメンバーの変数(ｗＦｌａｇｓ)がヘッダ３１の残りの内容をそれが持続されるように決定する１セットのフラグからなるヘッダ３１を使用することにより、静止ヘッダによって引き起こされる問題を解決する。本発明を使用するＤＡＴＥ＿ＴＩＭＥ＿ＳＴＲＵＣＴＵＲＥの例は次のとおりである。
【００４０】
ｓｔｒｕｃｔ
{
ＷＯＲＤ                       ｗＦｌａｇｓ;
ＷＯＲＤ                       ｗＤaｙ;
ＷＯＲＤ                       ｗＭｏｎｔｈ;
ＷＯＲＤ                       ｗＹｅａｒ;
ＷＯＲＤ                       ｗHｏｕｒ;
ＷＯＲＤ                       ｗＭｉｎｕｔｅ;
ＷＯＲＤ                       ｗＳｅｃｏｎｄ;
}ＤＡＴＥ＿ＴＩＭＥ＿ＳＴＲＵＣＴ
【００４１】
上記ＤＡＴＥ＿ＴＩＭＥ＿ＳＴＲＵＣＴでは、ｗＦｌａｇｓは任意の数のビットの長さである。ｗＦｌａｇｓの各ビットはデータ構造の残りの中で異なるメンバー変数を表す。代替の実施例において、ｗＦｌａｇｓ内の所定のビットは、１を超えるデータメンバー、例えば「ｗＤaｙ ｗＭｏｎｔｈ ｗＹｅａｒ」を表す。ｗＦｌａｇｓ内のビットの意味は、１セットの規則(「取り決め」「あるいは持続コード」)に従って、送信者５０及び受信者６０によって、事前に同意がなされる。ｗＦｌａｇｓの初期値は送信者５０によって１１０１  １０として設定されると仮定する。その取り決めはｗＦｌａｇ内のこれらの６個のビットが各々、ｗＤaｙ, ｗＭｏｎｔｈ, ｗＹｅａｒ, ｗHｏｕｒ, ｗＭｉｎｕｔｅ,及びｗＳｅｃｏｎｄを示すことを規定すると仮定する。したがって、ｗＦｌａｇは６個の１ビットフラグを含む。フラグ１，２，４，５は「設定」され、フラグ３，６は「クリア」される（０の値を持つ）。このことは、送信者５０が持続するｗＤaｙ, ｗＭｏｎｔｈ, ｗHｏｕｒ及びｗＭｉｎｕｔｅの値及び持続しないｗＹｅａｒ及びｗＳｅｃｏｎｄの値を望むことを意味する。特定の変数のみを持続すること望み、他を望まない理由は処理時間及び空間を節約することにある。例えば、送信者５０は、通信のすべてが同年に起こる予定なのでｗＹｅａｒは重要ではなく、しかもメッセージ３８はそのレベルの特異性で追跡される必要がないので、ｗＳｅｃｏｎｄは重要ではないことを結論付けたかもしれない。復元された持続された平文ヘッダ３１はＯＴＰエンジン１０による処理のために受信者６０のコンピュータ読み取り媒体に読み込まれるとき、読み込まれる第１のフィールドは持続されるヘッダ３１の残りを読み込むのに使用することができるｗＦｌａｇｓである。データは１度に１ワード（すなわち、２バイト）、典型的に読み込まれる。各ワードの端の、ビットは、ｗＦｌａｇｓの追加部分が存在し、したがって、読み込まなければならないかどうかに関して受信者のエンジン１０に通知するために使用することができる。クリアされたフラグの場合には、エンジン１０がその特別のメンバー変数にデフォルト値を割り当てる。デフォルトは取り決めによれば異なるデータメンバーに対しては異なるようにすることができる。例えば、ｗＹｅａｒは本年にデフォルトすることができ、ｗＳｅｃｏｎｄは０にデフォルトすることができる。フラグが設定された場合、対応メンバー変数は、持続されたヘッダ３１内の値で初期化される。
【００４２】
上記方法では、メンバー変数の順序は予め選択された取り決めに依存する。例えば、ｗＤaｙ前にｗHｏｕｒを持続させることは可能である。メンバー変数を持続させないようにするために、そのフラグがクリアされる。また、新メンバー変数を加えるために、取り決めがカスタマイズ可能であるので、データ構造の端へそれを追加することは必要ではない。例えば、データメンバーにフラグビットのマッピングを変更するソフトウェアパッチを送信者５０及び受信者６０に送ることによって、ＯＴＰ暗号化システムが最初に配置された後、取り決めは変更することができる。
【００４３】
ＯＴＰ暗号化システムが最初に配置される場合、ＯＴＰキー２、ＯＴＰエンジン１０、及びｗＦｌａｇｓに関係する取り決めを含むモジュールは、予期される送信者５０及び受信者６０に配送される。これらのモジュールは、ハードウェア、ファームウェア及び／又はソフトウェアの任意の組み合わせにおいて実行することができる。ソフトウェア中で実行される時、モジュールは、コンピュータメモリ、ハードディスク、フレキシブルディスク、光ディスクなどのような、任意のコンピュータ読取り可能な媒体で具現化することができる。ｗＦｌａｇｓのための最初の取り決めは、ｗＦｌａｇｓ内のビットのある部分集合を将来の使用のために取っておくことを特定することができる。これらのビットのうちのいずれかにおいて１の値に遭遇する受信者のエンジン１０は、ビットを処理しようとするが、それは何もすることができないと結論付ける。その後、パッチがｗＦｌａｇｓ内のこのビットの重要性を定義する取り決めを修正する送信者５０及び受信者６０に発送された後、受信者のエンジン１０は前記ビットを処理することができる。 
【００４４】
ヘッダ３１の一部分は、通常、ＯＴＰキー２のためのキーオフセットに充てられる。キーオフセットが長さ６４ビットであると仮定する。ＯＴＰキー２の有効期間の初期段階中に、キーオフセットの開始部分は０である。攻撃者が、平文ヘッダ３１のキーオフセット部分の難読化においてＫＫ ６のどの部分が使用されたかに関する情報を望ましくないが得るためにキーオフセット部分に対してスライディングアルゴリズムを使用することができるので、通信リンク４５を介して、これらの最初の０を送信することは処理サイクルを浪費し、セキュリティリスクを提供する。この問題の解決策として、ｗＦｌａｇｓ内の１ビット以上は持続されるキーオフセットの一部分を示すことに充てることができる。例えば、ｗＦｌａｇｓ内のフラグは８ビット、１６ビット、３２ビット又は６４ビットのキーオフセットが持続させるかを示すために使用することができる。
【００４５】
要約すると、上述されるようなフラグの使用により、ヘッダ３１内に含まれる情報を持続する際の大きな柔軟性が許容される。持続される情報はｗＦｌａｇｓ内で決定され、情報が使用される順序は特定用途にはカスタマイズ可能であり、送信者５０及び受信者６０の両方は使用される取り決めが通知される限り、変更することができる。
【００４６】
上記記載は好ましい実施例の動作を示すために含まれ、発明の範囲を制限することを意味していない。発明の範囲は次の特許請求の範囲によってのみ制限されるべきである。上記記載から、本発明の精神及び範囲によって包含される多くの変形例が当業者には明白である。
【図面の簡単な説明】
【００４７】
【図１】オートキー４の第１の適用例の図である。
【図２】カーネルキー６の第１の適用例の図である。
【図３】カーネルキー６の第２の適用例の図及びワンタイムパスワード暗号化システムの一般的な図である。
【図１】
2008508806.tif 000003
【図２】
2008508806.tif 000004
【図３】
2008508806.tif 000005
【国際調査報告】
2008508806.tif 000006