(57)【要約】      （修正有）【課題】インターネット等で一般的に用いられる認証にも、申請者が認証者に対して秘密を保証できるような申請者の独立性を実現する。【解決手段】二つの値を複数回、ＸＯＲ演算と比較演算で並べ替えたブロック暗号は循環する。しかし、その中間出力の値を選択してＸＯＲ演算と並べ替えを再び行うことで擬似乱数の特性を持つ値を見つけることが出来る。それらのうち偏向性があり、二重の検証で初期値と一対一対応する二つの出力は二つの値の唯一性を立証する。資格認証の要件が申請者のパスワードと認証者の保管する検証情報との一致ではなく両者が保管する検証情報との一対一対応性であれば、申請者が認証者に対して秘密を保持できる。【選択図】なし【特許請求の範囲】
【請求項１】
申請者の送信するパスワードなど重要情報が認証者の保管する申請者の重要情報と一致することで申請者の個人的同定をする認証技術に対し：
Ｐｅｒｍｕｔａｔｉｏｎａｌｌｙ  Ｉｒｒｅｖｅｒｓｉｂｌｅ  Ｓｅｃｕｒｅｄ  Ｃｏｎｆｉｄｅｎｔｉａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ａｕｔｈｅｎｔｉｆｉｃａｔｉｏｎ  では  特徴づけられることとして
パスワードなどの重要情報をブロック暗号で変換した二つの検証情報は申請者と認証者で別々に保管されること、
申請者のパスワードなど重要情報は二重に検証されて認証者が検証情報との一対一対応性を認め個人的同定をすること、
暗号攻撃者は申請者が保管する検証情報を得て解読のために全鍵検索をしてもパスワードなど重要情報の値を決定できないこと、
２ビットを最小単位としたブロック暗号を結合することで検証情報はそのビット長を大きくすることが出来ること、
がある。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開かれたディジタル通信ネットワークで、例えばインターネットのソーシャルネットワークの認証で用いる会員の個人的同定可能な重要情報を二つの検証情報に変換して秘匿するものである。
【背景技術】
【０００２】
【特許文献１】国際出願番号  ＰＣＴ／ＪＰ２００５／００８６４６には会員のパスワードをネットワーク運営者に対して秘密にしたまま会員本人と認証申請者の個人的同定できることが示されている。本発明は認証時に用いるパスワードをブロック暗号で疑似乱数化したものを検証情報とすることで特許文献１と異なる。以下の説明でネットワークとネットワーク運営者のことをネットワーク側サーバーも含めて認証者といい、ネットワーク会員のことを申請者ということにする。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
乱数とのＸＯＲ演算を用いた暗号化法は一時鍵とも使い捨て鍵とも呼ばれるように暗号化鍵の保存に適さない。
可逆性のため暗号化文と元の平文があれば解読されるからである。
それでも、特許文献１には認証の証拠として申請者のパスワードと新しい乱数をＸＯＲ演算と並べ替えによって暗号化した文字列を、認可されたアプリケーションの結果に書き加えることを明記している。
使用ごとに新しい乱数による暗号化鍵を用いることにより、申請者を認証すると同時にそのアプリケーション使用そのものの唯一性を認証できるということも述べている。
たとえばメッセージ認証の場合アプリケーション使用の唯一性とはメッセージそのものであり認証の証拠としての暗号化された文字列とはそのメッセージを暗号化したものに他ならない。
その両方が公開されるのであれば暗号化された文字列が解読されないこと即ち不可逆性は厳密なものでなくてはならない。
現在、このような不可逆性は暗号解読の解析計算時間量によって保証されるものである。暗号化のアルゴリズム公開とともに鍵の解析に全鍵検索が必要であることが必須であり小さな瑕疵がセキュリティホールとなることから暗号構造の完全さが重要である。
【０００４】
通常の公開鍵による資格認証は申請者のＩＤと認証者すなわち公開鍵主体の持つ会員リストとの一致を云うのみでディジタル署名のような厳密性はなく申請者の唯一性を証明するものではない。
公開鍵方式で唯一性を証明するものは公開鍵とそれに対応する秘密鍵の対だけである。
秘密鍵の配布は初回だけ認証局と公開鍵主体の間で慎重に行われ秘密鍵の秘匿は公開鍵主体の義務とされているので個人的同定可能な情報として用いられることはない。
たとえ申請者のなりすましができなくても公開鍵主体が申請者の個人情報と引き換えに認証者のコンピュータの制限的な使用権限とＩＤを与えるものは認可というべきである。
そのような資格認証で構成されるネットワークでは会員の個人情報は全て認証者に委託され、証拠とされる時刻印などの通信記録も認証者側サーバーに保存されていて申請者が認証者に対して完全に依存していると言える。
インターネットで一般的に用いられる認証にも申請者が認証者に対して秘密を保持できるような申請者の独立性を保証するものが望ましい。
【課題を解決するための手段】
【０００５】
本発明は、パスワードなどの重要情報をＸＯＲ演算と並べ替えによって疑似乱数化するものである。
まず２ビットのブロック暗号機で疑似乱数化を説明する。
任意の２ビット情報を持つ情報ＡＢと情報ＣＤを疑似乱数化する場合の手順について表を用いて説明することにする。
各２ビットのレジスタ１とレジスタ２、そして作業レジスタを用意する。
その変換規則は
レジスタ１とレジスタ２の値をＸＯＲ演算してその値を作業レジスタにストアする。
もしレジスタ２の各ビットの値が等しければ作業レジスタの値をそのまま、もしそうでなければ作業レジスタの値を上下入れ替える。
レジスタ２の値をレジスタ１に移動し、作業レジスタの値をレジスタ２に移動する。
作業レジスタの値を出力するか、又は繰り返し実行する。
というものである
以下、レジスタ１の値をレジスタ２でＸＯＲ演算しレジスタ２の各ビットの比較演算値で並べ替えを選択するという一連の操作をＸＯＲ−Ｐ（ｐｅｒｍｕｔａｔｉｏｎ）演算と言い、情報ＡＢの値をレジスタ１にストアし、情報ＣＤの値をレジスタ２にストアしてＸＯＲ−Ｐ演算することを、レジスタ１情報ＡＢをレジスタ２情報ＣＤでＸＯＲ−Ｐ演算すると言うことにする。
【０００６】
表１は００から１１までの２ビット情報を持つレジスタ１情報ＡＢを同じく００から１１までの２ビット情報を持つレジスタ２情報ＣＤでＸＯＲ−Ｐ演算を繰り返した途中経過を遷移表で表したものである。
【表１】
2011109599.tif 000002
表１の１列目はレジスタ１の初期状態ＡＢの値であり、２列目はレジスタ２の情報ＣＤである。
以下で説明する遷移表についても１列目はレジスタ１の初期状態のビット値であり、２列目はレジスタ２のビット値である。
表１の３列目はＥＦと名付けられていて、レジスタ１情報ＡＢをレジスタ２情報ＣＤでＸＯＲ−Ｐ演算した作業レジスタの値の状態である。
それ以降はレジスタ１とレジスタ２の情報を入れ替えてＸＯＲ−Ｐ演算を実行する度の、作業レジスタの値の状態ごとにＧＨ、ＩＪ、ＫＬと名前を付けた。
ＧＨ、ＩＪなどは状態の名前であるとともにアルファベットの１文字がそれぞれ０か１の状態を持ち２進数の値を表すものとする。
最大でも６回で循環するため７列目は省略する。
ＸＯＲ−Ｐ演算の順序を違えてレジスタを入れ替えてからＸＯＲ演算した場合、３列目と６列目の値の状態が交換されるだけであって大きな差異はない。
そこで、このＰ−ＸＯＲ演算ともいうべき方法についてこれ以降言及することはしない。
【０００７】
表２は表１で３列目のＥＦがＡＢとＣＤに対応する様子と６列目のＫＬがＡＢとＣＤに対応する様子を示したものである。
表２で左端の行見出しの２進数はＡＢの値であり最上段の列見出しの２進数はＣＤの値である。
１０進数で表されるものはＥＦとＫＬの値である。
【表２】
2011109599.tif 000003
表２でＥＦとＫＬの値は共にＡＢとＣＤに１対１対応している。
このことから表１のＥＦとＫＬをＡＢでＣＤに、またＣＤでＡＢに復元できることがわかる。
表１のＥＦとＫＬの各々をレジスタ１とし、ＡＢをレジスタ２としてＸＯＲ−Ｐ演算を繰り返した遷移表が表３と表４である。
【表３】
2011109599.tif 000004
【表４】
2011109599.tif 000005
表３と表４のどちらも３列目にＣＤを出力する。
表４を見れば表１で前述した６回で循環するということが容易に解る。
表１のＥＦとＫＬの各々をレジスタ１とし、ＣＤをレジスタ２としてＸＯＲ−Ｐ演算を繰
り返した遷移表が表５と表６である。
【表５】
2011109599.tif 000006
【表６】
2011109599.tif 000007
ＥＦをレジスタ１とし、ＣＤをレジスタ２とした表５では６列目にＡＢを出力する。
ＫＬをレジスタ１とし、ＣＤをレジスタ２とした表６で３列目にＡＢを出力することがわかる。
【０００８】
表７は表１で４列目のＧＨの値がＡＢとＣＤに対応する様子を示したものである。
【表７】
2011109599.tif 000008
表７で行見出しの２進数はＡＢの値であり列見出しの２進数はＣＤの値である。
１０進数で表されるものはＡＢとＣＤの各値についてのＧＨの値である。
ＣＤの各値においてＡＢとＧＨは１対１対応している。
しかし、ＡＢの各値においてＣＤとＧＨは２対１対応している。
たとえばＡＢが００のときＧＨの値は０か３であって、ＡＢが００でＧＨが０のときＣＤは００か１１のどちらかである。
他方、ＡＢが００でＧＨが３のときＣＤは０１か１０のどちらかである。
ＸＯＲ−Ｐ演算は一方向的であることからこの対応性はＸＯＲ−Ｐ演算が暗号化に利用できることを示している。
平文をＡＢ、暗号化鍵をＣＤとして暗号化文ＧＨを作れば、暗号化文ＧＨを暗号化鍵ＣＤで平文ＡＢに復号できることは下の表８を見れば解る。
表１の４列目のＧＨをレジスタ１とし、ＣＤをレジスタ２として各々ＸＯＲ−Ｐ演算を繰り返した遷移表が表８である。
【表８】
2011109599.tif 000009
表８の４列目のＡＢは暗号化文ＧＨをＣＤで復号したものといえる。
【０００９】
表９は表１で４列目のＧの値とＨの値がＡＢとＣＤに対応する様子を示したものである。
【表９】
2011109599.tif 000010
表９でＧの値はＡＢの各ビットの値と１対１対応しない。
しかしＣＤの値が００のときとＣＤの値が１１のとき、Ｇの値はＢの値と一致する。
Ｇの値がＢの値に対応する様子はＣＤの値と密接に関係している。
表９でＨの値はＡＢの各ビットの値と１対１対応しない。
しかしＣＤの値が００のときとＣＤの値が１１のとき、Ｈの値はＡの値と一致する。
Ｈの値がＡの値に対応する様子はＣＤと密接に関係している。
有害な暗号攻撃者がいて、もしＣＤの値が既知であれば、表７の説明で前述したようにＧＨをレジスタ１とし、ＣＤをレジスタ２としてＸＯＲ−Ｐ演算を２度繰り返してＡＢの値を決定することができる。
しかしそうでなければ暗号攻撃者は表９を用いてもＧとＨの値からＡＢの値を決定することは出来ない。
【００１０】
表１０は表１で５列目のＩの値とＪの値がＡＢとＣＤに対応する様子を示したものである。
【表１０】
2011109599.tif 000011
表１０でＩの値はＣＤの各ビットの値と１対１対応しない。
しかしＡＢの値が００のときと１１のとき、Ｉの値はＣの値と一致する。
Ｉの値がＣの値に対応する様子はＡＢの値と密接に関係している。
表１０でＪの値はＣＤの各ビットの値と１対１対応しない。
しかしＡＢの値が００のときと１１のとき、Ｊの値はＤの値と一致する。
Ｊの値がＤの値に対応する様子はＡＢの値と密接に関係している。
有害な暗号攻撃者がいて、もしＡＢの値が既知であれば、表１１の説明で前述したようにＩＪをレジスタ１とし、ＡＢをレジスタ２としてＸＯＲ−Ｐ演算を２度繰り返してＣＤの値を決定することができる。
しかしそうでなければ暗号攻撃者は表１０を用いてもＩとＪの値からＣＤの値を決定することは出来ない。
【００１１】
表１１は表１で５列目のＩＪの値が１列目のＡＢと２列目のＣＤに対応する様子を示したものである。
【表１１】
2011109599.tif 000012
表１１で行見出しの２進数はＡＢの値であり列見出しの２進数はＣＤの値である。
１０進数で表されるものはＡＢとＣＤの各値についてのＩＪの値である。
ＡＢの各値においてＣＤとＩＪは１対１対応している。
しかし、ＣＤの各値においてＡＢとＩＪは２対１対応している。
たとえばＣＤが００のときＩＪの値は０か３であって、ＣＤが００でＩＪが０のときＡＢは００か１１のどちらかである。
他方、ＣＤが００でＩＪが３のときＡＢは０１か１０のどちらかである。
ＸＯＲ−Ｐ演算は一方向的であることからこの対応性はＸＯＲ−Ｐ演算が暗号化に利用できることを示している。
平文をＣＤ、暗号化鍵をＡＢとして暗号化文ＩＪを作れば、暗号攻撃者はＣＤとＩＪの値からＡＢを決定できない。
暗号化文ＩＪをＡＢで平文ＣＤを復号できることは下の表１２を見れば解る。
表１の５列目のＩＪをレジスタ１とし、ＡＢをレジスタ２としてＸＯＲ−Ｐ演算を繰り返した遷移表が表１２である。
【表１２】
2011109599.tif 000013
表１２の４列目のＤＣはＣＤのビット順を入れ替えたものに他ならない。
ＡＢとＩＪとの対応性とＣＤとＧＨとの対応性は全く異なっていて複数回のＸＯＲ−Ｐ演算には方向性があり、しかも偏っていることがわかる。
【００１２】
表７と表１１の説明でＧＨにおいて暗号攻撃者はＡＢの値からＣＤを決定できないこと、そしてＩＪにおいて暗号攻撃者はＣＤの値からＡＢを決定できないことを前述した。
下の表１３は表１の４列目のＧＨの値をレジスタ１とし、ＡＢをレジスタ２としてＸＯＲ−Ｐ演算を繰り返した遷移表である。
【表１３】
2011109599.tif 000014
ＣＤをレジスタ２とした表８ではＡＢを出力するのに対し、ＡＢをレジスタ２とした表１３ではＣＤを出力しない。
表１３で３列目のＭの値はＧとＡをＸＯＲ演算した値と同じであり、６列目のＮの値はＩとＪをＸＯＲ演算した値と同じである。
表１４は表１の５列目のＩＪの値をレジスタ１とし、ＣＤをレジスタ２としてＸＯＲ−Ｐ演算を繰り返した遷移表である。
【表１４】
2011109599.tif 000015
ＡＢをレジスタ２とした表１２ではＣＤを出力するのに対し、ＣＤをレジスタ２とした表１４ではＡＢを出力しない。
表１４で３列目のＱの値はＪとＤをＸＯＲ演算した値と同じであり、６列目のＭの値は表１３で３列目のＭの値と同じである。
【００１３】
表１５は表１０のＩとＪの値、表９のＧの値とＨの値を順に並べてＡＢとＣＤに対応する様子を示したものである。
それらは１０進数であれば、Ｉ×８＋Ｊ×４＋Ｇ×２＋Ｈに等しい。
【表１５】
2011109599.tif 000016
表１５で１６種類のすべての出力はＡＢとＣＤと１対１対応している。
上記の２ビットのブロック暗号機で、秘密であるべきＡＢとＣＤを初期状態とし表１５のＩＪＧＨを出力するものは疑似乱数発生器である。
最初の出力は０が８通り、１が８通りである。
或る０の出力のあとは０または１の２通りが出現し、そして或る１の出力のあとは同じく０または１の２通りが出現する。
また最初の出力は勿論、４ビット目まで次の出力を偶然以上の確率で的中することが出来ないことは表１５を見ればわかる。
秘密であったＡＢとＣＤの値がＩＪＧＨの４ビットで暴露されることを以下のように説明する。
ＸＯＲ−Ｐ演算が循環することは表１の説明で前述していて表４を見れば解る。
ＧＨの値をレジスタ１とし、ＩＪをレジスタ２としてＸＯＲ−Ｐ演算を繰り返すとき、その遷移表は表１の４列目から６列目と１列目から３列目を連結したものである。
それが表１６の遷移表であり４列目にＡＢが、そして５列目にＣＤが出現する。
【表１６】
2011109599.tif 000017
【００１４】
次に４ビットのブロック暗号による疑似乱数化を説明する。
それは上記の疑似乱数発生器を単に並列しただけなので２ビットのＸＯＲ−Ｐ演算の出力を再びＸＯＲ−Ｐ演算することについて説明する。
表１７は表１で３列目のＥの値とＦの値がＡＢとＣＤに対応する様子を示したものである。
【表１７】
2011109599.tif 000018
表１７でＥの値はＡＢとＣＤの各ビットの値と１対１対応しない。
しかしＡＢの値が０１のとき、Ｅの値はＣの値と一致して、ＡＢの値が００のとき、Ｅの値はＤの値と一致する。
また、ＣＤの値が００のとき、Ｅの値はＡの値と一致して、ＣＤの値が１０のとき、Ｅの値はＢの値と一致する。
表１７でＦの値はＡＢとＣＤの各ビットの値と１対１対応しない。
しかしＡＢの値が００のとき、Ｆの値はＣの値と一致して、ＡＢの値が１０のとき、Ｆの値はＤの値と一致する。
また、ＣＤの値が００のとき、Ｆの値はＢの値と一致して、ＣＤの値が０１のとき、Ｆの値はＢの値と一致する。
ＡＢか又はＣＤの値が分かればそれぞれに対応するＣＤとＡＢが算出できることは表３と表５の説明で前述した。
【００１５】
表１８は表１で６列目のＫの値とＬの値がＡＢとＣＤに対応する様子を示したものである。
【表１８】
2011109599.tif 000019
表１８でＫの値はＡＢとＣＤの各ビットの値と１対１対応しない。
しかしＡＢの値が００のとき、Ｋの値はＣの値と一致して、ＡＢの値が０１のとき、Ｋの値はＤの値と一致する。
また、ＣＤの値が００のとき、Ｋの値はＡの値と一致して、ＣＤの値が０１のとき、Ｋの値はＢの値と一致する。
表１８でＬの値はＡＢとＣＤの各ビットの値と１対１対応しない。
しかしＡＢの値が００のとき、Ｌの値はＤの値と一致して、ＡＢの値が１０のとき、Ｆの値はＣの値と一致する。
また、ＣＤの値が００のとき、Ｌの値はＢの値と一致して、ＣＤの値が１０のとき、Ｌの値はＡの値と一致する。
ＡＢか又はＣＤの値が分かればそれぞれに対応するＣＤとＡＢが算出できることは表４と表６の説明で前述した。
表１９は表１の３列目のＥＦをレジスタ１とし、６列目のＫＬをレジスタ２としてＸＯＲ−Ｐ演算を繰り返した遷移表である。
【表１９】
2011109599.tif 000020
【００１６】
表２０は表１９で３列目のＮの値と６列目のＱの値がそれぞれＡＢとＣＤに対応する様子を示したものである。
【表２０】
2011109599.tif 000021
表１３で６列目のＮの値はＣＤの各ビットの値と１対１対応しない。
たとえばＡＢの値が００のとき、Ｎの値がＣのビット値と一致するのはＣＤの値が００の
ときとＣＤの値が１０のときだけである。
すなわち、Ｄの値が１のとき、その対応は失われる。
またＡＢの値が００のとき、Ｎの値がＤのビット値と一致するのはＣＤの値が００のときとＣＤの値が０１のときだけである。
すなわち、Ｃの値が１のとき、その対応は失われる。
このことはＡＢの値の全てにおいて同じである。
そしてＣＤの値の全てにおいてＮの値は一定でＡＢの各ビットの値と１対１対応しない。次に、表１３で６列目のＱの値はＡＢの各ビットの値と１対１対応しない。
たとえばＣＤの値が００のとき、Ｑの値がＡのビット値と一致するのはＡＢの値が００のときとＡＢの値が１０のときだけである。
すなわち、Ｂの値が１のとき、その対応は失われる。
またＣＤの値が００のとき、Ｑの値がＢのビット値と一致するのはＡＢの値が００のときとＡＢの値が０１のときだけである。
すなわち、Ａの値が１のとき、その対応は失われる。
このことはＣＤの値の全てにおいて同じである。
そしてＡＢの値の全てにおいてＱの値は一定でＣＤの各ビットの値と１対１対応しない。以上のことからＮの値とＱの値からＡＢとＣＤの値を決定することができないことが言える。
【００１７】
下の表２１は表１の１列目のＢと４列目のＧの値の組み合わせをレジスタ１とし、表１の２列目のＣＤをレジスタ２としてＸＯＲ−Ｐ演算を繰り返した遷移表である。
【表２１】
2011109599.tif 000022
表２１で３列目のＯの値はＧとＣをＸＯＲ演算した値と同じであり、６列目のＰの値はＧとＤをＸＯＲ演算した値と同じである。
【００１８】
表２２は表２１で３列目のＯの値と６列目のＰの値がＡＢとＣＤに対応する様子を示したものである。
【表２２】
2011109599.tif 000023
表２１で３列目のＯの値はＡＢとＣＤの各ビットの値と１対１対応しない。
しかし、ＡＢが００か又は１０のときＯの値はＣと一致する。
またＣＤが００か又は０１のときＯの値はＢと一致する。
表２１で６列目のＰの値はＡＢとＣＤの各ビットの値と１対１対応しない。
しかし、ＡＢが００か又は１０のときＰの値はＤと一致する。
またＣＤが００か又は１０のときＰの値はＢと一致する。
以上のことからＡＢの値が既知であればＯの値からＣの値を決定することができること、またＣＤの値が既知であればＯの値からＢの値を決定できることが言える。
そしてＡＢの値が既知であればＰの値からＤの値を決定することができること、またＣＤの値が既知であればＰの値からＢの値を決定できることが言える。
しかしそうでなければ、ＯとＰの値からＡＢまたはＣＤの値を決定することは出来ない。
【００１９】
下の表２３は表１の１列目のＡと４列目のＨの値の組み合わせをレジスタ１とし、表１の２列目のＣＤをレジスタ２としてＸＯＲ−Ｐ演算を繰り返した遷移表である。
【表２３】
2011109599.tif 000024
表２４は表２３で３列目のＲの値と６列目のＳの値がＡＢとＣＤに対応する様子を示したものである。
【表２４】
2011109599.tif 000025
表２３で３列目のＲの値はＡＢとＣＤの各ビットの値と１対１対応しない。
しかし、ＡＢが００か又は０１のときＲの値はＣと一致する。
またＣＤが００か又は０１のときＯの値はＡと一致する。
表２３で６列目のＳの値はＡＢとＣＤの各ビットの値と１対１対応しない。
しかし、ＡＢが００か又は０１のときＳの値はＤと一致する。
またＣＤが００か又は１０のときＳの値はＡと一致する。
以上のことからＡＢの値が既知であればＲの値からＣの値を決定することができること、またＣＤの値が既知であればＲの値からＡの値を決定できることが言える。
そしてＡＢの値が既知であればＳの値からＤの値を決定することができること、またＣＤの値が既知であればＳの値からＡの値を決定できることが言える。
しかしそうでなければ、ＲとＳの値からＡＢまたはＣＤの値を決定することは出来ない。
【００２０】
表２５は表１３で３列目と表１４で６列目に示されるＭの値が各々ＡＢとＣＤに対応する様子を示したものである。
【表２５】
2011109599.tif 000026
Ｍの値は全てのＡＢにおいてＣＤの各ビットの値と１対１対応しない。
Ｍの値は全てのＣＤにおいてＡＢの各ビットの値と１対１対応しない。
そこでＭの値からＡＢとＣＤの値を決定することができないことが言える。
これまで２ビットのブロック暗号機のＸＯＲ−Ｐ演算による出力のうち１５をＥ、ＦからＲ、Ｓまで名前を付けた。
２ビットのブロック暗号機による疑似乱数化は表１５のＩＪＧＨだけでなく、これら１５の値を組み合わせたものを出力することができる。
それらの出力がＡＢとＣＤに対応する様子には表１５の一対一対応性とは異なるものがある。
【００２１】
表２６は表２０のＱの値とＮの値、表２２のＯとＰの値とを順に並べてＡＢとＣＤに対応する様子を示したものである。
それらは１０進数であれば、Ｑ×８＋Ｎ×４＋Ｏ×２＋Ｐに等しい。
【表２６】
2011109599.tif 000027
表２６でＱＮＯＰの値は８種類でＡＢとＣＤに一対一対応しない。
表１５の出力と異なりＱＮＯＰの値からＡＢまたはＣＤの値を決定することは出来ないことは表２０と表２２の説明で前述した。
【００２２】
表２７は表２６のＱＮの値をレジスタ１とし、ＯＰの値をレジスタ２として上記のＸＯＲ−Ｐ演算を繰り返した結果、表２０のＱとＮ、表２２のＯとＰに相当する値を順に並べてＡＢとＣＤに対応する様子を示したものである。
表２０のＱであるべき出力の状態は表２５のＭに変化した。
表２０のＮであるべき出力の状態は変化しなかった。
表２２のＯであるべき出力の状態はＰに、表２２のＰであるべき出力の状態はＯに変化した。
それらは１０進数であれば、Ｍ×８＋Ｎ×４＋Ｐ×２＋Ｏに等しい。
【表２７】
2011109599.tif 000028
表２７でＭＮＰＯの値は８種類でＡＢとＣＤに一対一対応しない。
表２０でのＱＮと表２２でのＯＰと同じくＭの値からＡＢまたはＣＤの値を決定できないことは表２５の説明で前述した。
表２７のＭＮの値をレジスタ１とし、ＰＯの値をレジスタ２として上記のＸＯＲ−Ｐ演算を繰り返した結果、表２０のＱとＮ、表２２のＯとＰに相当する値を順に並べたものは表２６に等しく、これらの操作結果が２回で循環することが分かる。
しかし表１５とは異なりＡＢとＣＤの値を出力することはない。
【００２３】
４ビットの擬似乱数化手続きは表２６と表１５の出力を使用する。
並列しているもう片方の２ビットの擬似乱数発生器について秘密であるべきａｂとｃｄを初期状態とし上記と同じ疑似乱数化手続きをするものとし、途中経過また出力の状態を表すときｅｆ、ｇｈのようにアルファベット小文字で表すことにする。
それらは状態の名前であるとともにアルファベットの１文字がそれぞれ０か１の状態を持ち２進数の値を表すことは２ビットのブロック暗号機についてと同じである。
ＡＢａｂとＣＤｃｄは並列した２つの２ビットの擬似乱数発生器の初期状態であってそれぞれ０から１６の値を持つ。
【００２４】
ＡＢａｂとＣＤｃｄのように４ビットの疑似乱数化手続きでＸＯＲ−Ｐ演算
の対象になるものをオペランド１あるいはオペランド２と言うことにする。
表２８はＡＢａｂとＣＤｃｄを上記の通り変換したＱ、Ｎ、Ｏ、Ｐの値を順に並べたものがＡＢａｂとＣＤｃｄに対応する様子を１６進数で示したものである。
それらは１０進数であれば、Ｑ×８＋Ｎ×４＋Ｏ×２＋Ｐに等しい。
表２８で行見出しの２進数はＡＢａｂの値であり列見出しの１０進数はＣＤｃｄの値である。
１６進数で表されるものはＡＢａｂとＣＤｃｄの各値についてのＱＮＯＰの値である。
【表２８】
2011109599.tif 000029
【００２５】
表２９はＡＢとＣＤを上記の通り変換したＧ、Ｈ、Ｉ、Ｊの値を順に並べたものがＡＢａｂとＣＤｃｄに対応する様子を１６進数で示したものである。
それらは１０進数であれば、Ｇ×８＋Ｈ×４＋Ｉ×２＋Ｊに等しい。
【表２９】
2011109599.tif 000030
【００２６】
表３０はａｂとｃｄを上記の通り変換したｑ、ｎ、ｏ、ｐの値を順に並べたものがＡＢａｂとＣＤｃｄに対応する様子を１６進数で示したものである。
それらは１０進数であれば、ｑ×８＋ｎ×４＋ｏ×２＋ｐに等しい。
【表３０】
2011109599.tif 000031
【００２７】
表３１はａｂとｃｄを上記の通り変換したｇ、ｈ、ｉ、ｊの値を順に並べたものがＡＢａｂとＣＤｃｄに対応する様子を１６進数で示したものである。
それらは１０進数であれば、ｇ×８＋ｈ×４＋ｉ×２＋ｊに等しい。
【表３１】
2011109599.tif 000032
【００２８】
表３２は表２８のＱＮＯＰの値と表２９のＧＨＩＪの値と表３０のｑｎｏｐの値と表３１のｇｈｉｊの値とを順に並べてＡＢａｂとＣＤｃｄに対応する様子を１６進数で示したものである。
それらは１０進数であれば、ＱＮＯＰ×４０９６＋ＧＨＩＪ×２５６＋ｑｎｏｐ×１６＋ｇｈｉｊに等しい。
表３２で行見出しの１０進数はＡＢａｂの値であり列見出しの１０進数はＣＤｃｄの値である。
１６進数で表されるものはＡＢａｂとＣＤｃｄの各値についてのＱＮＯＰ、ＧＨＩＪ、ｑｎｏｐ、ｇｈｉｊの値である。
【表３２】
2011109599.tif 000033
表３２で２５６種類のすべての出力はＡＢａｂとＣＤｃｄに１対１対応している。
最初の値はＱＮＯＰであり、表２８からも分かるように０、３、５、６、８、ｂ、ｄ、ｅの８種類である。
２番目の値はＧＨＩＪであり、表２９からも分かるように１６種類である。
３番目の値はｑｎｏｐであり、表３０からも分かるように０、３、５、６、８、ｂ、ｄ、ｅの８種類である。
４番目の値はｇｈｉｊであり、表３１からも分かるように１６種類である。
【００２９】
表３３は表３２の中で最初の値が０から始まるものを抜き出したものである。
【表３３】
2011109599.tif 000034
表３３で、０の出力のあとは０またはＦの２通りが出現し、次の出力ＧＨＩＪが８よりも小さいか又は８以上の値かさえ誰にも予測出来ない。
表２６と表１５を見れば分かるようにＱＮＯＰに対応する２つのＧＨＩＪの各ビットの値は互いを否定した値に等しい。
【００３０】
ＣＤの値がＱＮとＩＪの４ビット値で暴露されることを以下のように説明する。
ＱＮの値をレジスタ１とし、ＩＪをレジスタ２としてＸＯＲ−Ｐ演算を繰り返した遷移表が表３４である。
【表３４】
2011109599.tif 000035
表３４では、５列目にＤとＣの値が出現する。
【００３１】
ＡＢの値がＯＰとＧＨの４ビット値で暴露されることを以下のように説明する。
ＯＰの値をレジスタ１とし、ＧＨをレジスタ２としてＸＯＲ−Ｐ演算を繰り返した遷移表が表３５である。
【表３５】
2011109599.tif 000036
表３５では、５列目にＢとＡの値が出現する。
【００３２】
３番目のｑｎｏｐの値と最後のｇｈｉｊの値についても同じことが言える。以上のことから次のことが言える。
このブロック暗号機が４ビット目を出力するまでに暗号攻撃者はＣＤを決定することができない。
このブロック暗号機が８ビット目を出力するまでに暗号攻撃者はＡＢを決定することができない。
このブロック暗号機が１２ビット目を出力するまでに暗号攻撃者はｃｄを決定することができない。
このブロック暗号機が１６ビット目を出力するまでに暗号攻撃者はａｂを決定することができない。
暗号攻撃者は１６ビット目まで次のビット値を偶然以上の確率で的中することが出来ない。
上記の４ビットのブロック暗号機で、秘密であるべきＡＢａｂをオペランド１とし、ＣＤｃｄをオペランド２として表３２の１６ビットを出力するものは疑似乱数発生器である。
【００３３】
次に８ビットのブロック暗号機による疑似乱数化を説明する。
そこで、疑似乱数化の出力を再び疑似乱数化することとその出力の性質について述べる。上記の説明でも分かるように４ビットの擬似乱数発生器は２ビットの擬似乱数発生器を単に並列しただけであって、その出力についてもＡＢとＣＤで作り出されたＱＮＯＰ、ＧＨＩＪと、ａｂとｃｄで作り出されたｑｎｏｐ、ｇｈｉｊを並べただけである。
８ビットの擬似乱数発生器についても２ビットの擬似乱数発生器の出力で説明する。
【００３４】
表３６は表２２のＰと表２０のＮ、表２２のＯと表２４のＳを順に並べてＡＢとＣＤに対応する様子を示したものである。
【表３６】
2011109599.tif 000037
表２６のＱＮＯＰと同じくＰＮＯＳの値は８種類でＡＢとＣＤに一対一対応しない。
８ビットの疑似乱数化手続きは表３６のＰＮをオペランド１とし、ＯＳをオペランド２としてＸＯＲ−Ｐ演算による疑似乱数化を実行し再び表２２のＰと表２０のＮ、表２２のＯと表２４のＳに相当する値を生成する。
この再疑似乱数化を繰り返して実行するとその出力は７回で循環する。
表３７はそれら出力の値が元のＡＢａｂとＣＤｃｄに対応する様子を示したものである。
【表３７】
2011109599.tif 000038
表３７の値は全て８種類でＡＢとＣＤに一対一対応しない。
表３７で最後の表は表３６と同じものである。
【００３５】
表３８は表２０のＱとＮ、表２４のＲと表２５のＭを順に並べてＡＢとＣＤに対応する様子を示したものである。
【表３８】
2011109599.tif 000039
表２６のＱＮＯＰや表２７のＭＮＰＯと同じくＱＮＲＭの値は８種類でＡＢとＣＤに一対一対応しない。
８ビットの疑似乱数化手続きは表３８のＱＮをオペランド１とし、ＲＭをオペランド２としてＸＯＲ−Ｐ演算による疑似乱数化を実行し再び表２０のＱとＮ、表２４のＲと表２５のＭに相当する値を生成する。
この再疑似乱数化を繰り返して実行するとその出力は７回で循環する。
表３９はそれらの値が元のＡＢａｂとＣＤｃｄに対応する様子を示したものである。
【表３９】
2011109599.tif 000040
表３９の出力は全て８種類でＡＢとＣＤに一対一対応しない。
表３９で最後の表は表３８と同じものである。
【００３６】
４ビットの疑似乱数化では表２６のＱＮＯＰと表１５のＩＪＧＨを用いた。８ビットの疑似乱数化手続きでは表３７の出力と表３９の出力、そして表２６のＱＮＯＰと表１５のＩＪＧＨを結合したものを用いる。
表３７と表３９を表のリストとして疑似乱数化手続きは０から６の添え字を指定する。
添え字の値には例えば並列している隣の２ビットの擬似乱数発生器の初期値、ａｂとｃｄを足し合わせた０から６の数を用いる。
指定された表３７と表３９の昇順または降順に従って出力を４ビットずつ連結したあと表２６と表１５の出力を結合する。
８ビットの疑似乱数化手続きは各２ビットの擬似乱数発生器で６４ビットを出力し、各々から１ビットずつ合計６４×４のビット情報を出力する。
上記の８ビットのブロック暗号機は秘密であるべき１６ビット情報から２５６ビットの予測不可能な情報を出力する疑似乱数発生器である。
この簡単なブロック暗号機がＸＯＲ−Ｐ演算を用いて疑似乱数を生成することについて、これ以上の説明はしない。
【００３７】
ＸＯＲ−Ｐ演算による疑似乱数化が暗号化に利用できるのは当然である。
表１５で１６種類のすべての出力はＡＢとＣＤに一対一対応している。
表３２で２５６種類のすべての出力はＡＢとＣＤに一対一対応している。
しかし表１５の出力ＩＪＧＨでＡＢとＣＤが算出されることは表１６で、そして表３２の出力ＱＮＯＰＩＪＧＨでＡＢとＣＤが算出されることは表３４と表３５の説明でやはり前述した。
本発明では、表１５の出力ＩＪＧＨのようにＡＢとＣＤに一対一対応するものを、暗号化ではなくブロック暗号機による単純な疑似乱数化ということにする。
単純なというのは、出力の値からＡＢとＣＤを算出するために全鍵検索する必要がない、という意味である。
一方、表２６のＱＮＯＰのようにＡＢとＣＤに一対一対応しないものを複雑な疑似乱数化ということにする。
【００３８】
単純な疑似乱数化の例は次のようなものである。
表４０は表１４で３列目のＱの値、表１３で３列目のＭの値、表２１で６列目のＰの値、そして表１で４列目のＨの値を順に並べて結合した値がＡＢとＣＤに対応する様子を示したものである。
それらは１０進数であれば、Ｑ×８＋Ｍ×４＋Ｐ×２＋Ｈに等しい。
【表４０】
2011109599.tif 000041
表４０で１６種類の出力はＡＢとＣＤに１対１対応している。
Ｍの値が全てのＣＤにおいてＡＢの各ビットの値と１対１対応しないことは表２５の説明で前述した。
Ｍの値は全てのＡＢにおいてＣＤの各ビットの値と１対１対応しないことは表２５の説明で前述した。
Ｑの値が全てのＣＤにおいてＡＢの各ビットの値と１対１対応しないことは表２０の説明で前述した。
Ｑの値が全てのＡＢにおいてＣＤの各ビットの値と１対１対応しないことは表２０の説明で前述した。
Ｐの値がＣの値に対応する様子はＡＢの値と密接に関係していること、Ｂの値に対応する様子はＣＤの値と密接に関係していることは表２１の説明で前述した。
Ｈの値がＡの値に対応する様子はＣＤと密接に関係していることは表９の説明で前述した。
【００３９】
表４０のＱＭの値を暗号化文とし、ＰＨの値を復号鍵とする単純な疑似乱数化の例を示す。
表４１はＱＭの値とＰＨの値が各々ＡＢとＣＤに対応する様子を示したものである。
【表４１】
2011109599.tif 000042
暗号化文ＱＭの値と平文ＡＢＣＤの値は１対１対応しないだけでなく暗号攻撃者はＡＢかＣＤのどちらか片方の値が分かったとしても、もう片方の値を決定することは出来ない。全てのＣＤにおいて１つのＱＭの値は２つのＡＢの値と対応する。
全てのＡＢにおいて１つのＱＭの値は２つのＣＤの値と対応する。
【００４０】
ＡＢとＣＤの値がＱＭＰＨの値で暴露されることを以下のように説明する。ＱＭの値をレジスタ１とし、ＰＨをレジスタ２としてＸＯＲ−Ｐ演算を繰り返した遷移表が表４２である。
【表４２】
2011109599.tif 000043
表４２では、４列目にＤとＣの値が、５列目にＡの値が出現する。
【００４１】
ＤＭの値をレジスタ１とし、ＨＰをレジスタ２としてＸＯＲ−Ｐ演算を繰り返した遷移表が表４３である。
【表４３】
2011109599.tif 000044
表４３では、３列目にＢの値が出現する
２ビットのブロック暗号機は表４１のＱＭの値をレジスタ１とし、ＰＨの値をレジスタ２として再び上記の疑似乱数化を実行して表２０のＱ、表２５のＭ、表２２のＰと表９のＨに相当する値を生成する。
この再疑似乱数化を繰り返して実行すると、それは１５回で循環する。
【００４２】
表４４はその１５回の出力の値がＡＢとＣＤに対応する様子を示したものであって表４４で最初の表は表４０である。
出力対照表の見出しで左上の１０進数はその回数であり添え字となるべきものである。
【表４４】
2011109599.tif 000045
表４４で１５ある出力対照表のＱＭＰＨは１６種類でＡＢとＣＤに一対一対応している。表４４で最後の表はＡＢとＣＤの値そのものである。
【００４３】
表４４を表のリストとして１から１５の添え字を指定することで２ビットのブロック暗号機による疑似乱数化は単純な疑似乱数化に一方向性を加えることが出来る。ＡＢとＣＤが共に００のときＱＭＰＨが必ず０となる欠点を直すためともう一つ０の添え字を増やすため例えば次のようにする。
添え字の値が偶数のとき、２ビットのブロック暗号機はＡＢの値をレジスタ１としたあと４を法としてＣＤを１だけ増分したｃｄをレジスタ２として上記のＸＯＲ−Ｐ演算による疑似乱数化をする。
添え字の値が８から１５のとき４を法としてＡＢを１だけ増分したａｂの値をレジスタ１とし、ＣＤをレジスタ２として上記のＸＯＲ−Ｐ演算による疑似乱数化をする。
添え字の値が０のときは表４０のＱＭＰＨの値を用いることにして新しい規則を適用すると表４５のようになる。
【表４５】
2011109599.tif 000046
表４５でＡＢとＣＤが共に００のとき、その出力は表４０の１列だけ右の７となる。
【００４４】
以下添え字の値が増すごとに表４４の出力対照表の順に追加された規則どおり疑似乱数化をする。
表４６は添え字の値に従ってＡＢＣＤを疑似乱数化した出力について疑似乱数化操作を繰り返したＱＭＰＨの値がＡＢとＣＤに対応する様子を示したものである。
【表４６】
2011109599.tif 000047
【００４５】
０から１５の添え字を復号鍵とする２ビットのブロック暗号機による疑似乱数化は表４６のＱＭＰＨの値を暗号化文とする。
復号化法は次の通りである。
表４０の出力が１５回で循環することは前述した。
例えば添え字が０か又は１のとき、出力のＱＭをレジスタ１とし、ＨＰをレジスタ２として上記の疑似乱数化操作を１４回繰り返せばａｂｃｄと元のＡＢＣＤに還る。
その後、添え字が０のときだけ増分したａｂとｃｄを減じて元のＡＢＣＤに戻せばよい。添え字が２から１５のときは、１３回から０回まで疑似乱数化操作を繰り返し、添え字ごとに同じ復元処理をしてＡＢＣＤに戻す。
以上の２ビットのブロック暗号機による疑似乱数化で復号鍵であるところの添え字が秘密である限り平文を解読されることはない。
【００４６】
このブロック暗号は暗号化と復号化が対称的でない、一方向性の暗号化法である。
一方向性とは暗号化文と平文の両方が与えられたとしても暗号解読者は全鍵検索をしなければならないからである。
単純な疑似乱数化で添え字を用いるものを以下の説明で一方向性の暗号化ということにする。
ブロック暗号による一方向性の暗号化は４ビットの擬似乱数発生器による疑似乱数化についての説明でも分かるようにそのブロック長を大きくすることが出来る。
【００４７】
本発明の認証手続きを説明するに当たって、複雑な疑似乱数化の出力を入れ替えて再び疑似乱数化することとその出力の性質について述べる。
表４７は表２６のＱＮＯＰがＡＢとＣＤに対応する様子を１６進数で示したものである。
【表４７】
2011109599.tif 000048
その出力がＡＢとＣＤに一対一対応しないこと、暗号攻撃者がＱＮＯＰの値からＡＢまたはＣＤの値を決定できないことは表２６の説明で前述した。
【００４８】
表４８は表２０のＮとＱ、表２５のＭと表９のＨを順に並べてＡＢとＣＤに対応する様子を示したものである。
【表４８】
2011109599.tif 000049
表４８の８種類の出力はＡＢとＣＤに一対一対応しない。
表４９は表４８のＮＱの値をレジスタ１とし、ＭＨの値をレジスタ２として再び上記の疑似乱数化を実行したときの遷移表である。
【表４９】
2011109599.tif 000050
表４９の４列目にＡの値、５列目にＢの値が現れる。
表２０のＮとＱ、表２５のＭと表９のＨに相当する値を生成して再びＮＱの値をレジスタ１とし、ＭＨの値をレジスタ２として上記の再疑似乱数化を繰り返して実行すると７回で表４８に戻りそれが循環することがわかる。
再疑似乱数化過程においてＸＯＲ−Ｐ演算によるＥ、ＦからＲ、Ｓまでの出力にＣとＤの値が現れることはない。
【００４９】
表５０は表２０のＮと表１０のＪ、表２５のＭと表２０のＱを順に並べてＡＢとＣＤに対応する様子を示したものである。
【表５０】
2011109599.tif 000051
表５０の８種類の出力はＡＢとＣＤに一対一対応しない。
表５１は表５０のＮＪの値をレジスタ１とし、ＭＱの値をレジスタ２として再び上記の疑似乱数化を実行したときの遷移表である。
【表５１】
2011109599.tif 000052
表５１の５列目にＣＤの値が現れる。
表２０のＮと表１０のＪ、表２５のＭと表２０のＱに相当する値を生成して再びＮＱの値をレジスタ１とし、ＭＨの値をレジスタ２として上記の再疑似乱数化を繰り返して実行すると３回で表５０に戻りそれが循環することがわかる。
再疑似乱数化過程においてＸＯＲ−Ｐ演算によるＥ、ＦからＲ、Ｓまでの出力にＡとＢの値が現れることはない。
【００５０】
表７のＧＨと表１１のＩＪの説明でＸＯＲ−Ｐ演算には方向性があり、しかも偏っていると述べており、ＧＨとＣＤでＡＢを復元すること、ＩＪとＡＢでＣＤを復元することは出来てもその逆はできない。
それと同じく表４９のＮＱとＭＨでＡＢを復元することができるけれどもＣＤを復元することはできない。
表５１のＮＪとＭＱでＣＤを復元することができるけれどもＡＢを復元することはできない。
これを以下の説明で偏向性の疑似乱数化ということにする。
本発明で申請者がネットワークの入会登録をするとき、たとえば住民コードや指紋識別情報など変更できない情報を暴露して自らの個人的同一性を証明する。
変更できない情報をＡＢ、可変のパスワードをＣＤとして偏向性の擬似乱数化をしたあと認証者に表４７のＱＮＯＰを送信し、表４８のＭＨを自らのコンピュータに保存するものとする。
表４８の再疑似乱数化が７回で循環することから、一方向性の暗号化と同じく添え字を用いて一方向性にすることができる。
入会後、下記の認証を経て申請者と認証者に情報を共有できれば両者が添え字を用いるとしても煩雑さを避けるため以下の説明では省略する。
【００５１】
本発明の認証手続きの説明を簡略にするため、以下に重要情報の大きさを矮小化して述べるが実用に際してはそれをより大きなものとするのは当然のこととする。
もし重要情報がＡＢａｂとＣＤｃｄで表される８ビットの長さであればＡＢａｂは申請者の個人情報、たとえば住民コードや指紋識別情報である。
ＣＤｃｄはパスワード又は暗証番号として申請者の記憶の中にあることとする。
本発明が使用する二つの検証情報の一つは表３２のＱＮＯＰとｑｎｏｐである。
これらの値は認証者に委託され、認証者が保存すべきものである。
ＱＮＯＰとｑｎｏｐの値が認証者に委託されても認証者が重要情報ＡＢａｂＣＤｃｄの値を算出できないことは表２６と表２７の説明で前述した。
【００５２】
もう一つの検証情報ＭＨｍｈはネットワーク会員が自ら保存すべきものである。
個人認証に用いられる場合、この値は申請者のコンピュータやメモリーカードに保存される。
また或いはメッセージ認証の場合、表５２の値はメッセージの唯一性を証明する情報の片方であり情報ＡＢａｂは認証者が与える登録番号であってどちらもメッセージに付加し公開される。
表５２はＭＨｍｈを順に並べてＡＢａｂとＣＤｃｄに対応する様子を示したものであってそれらは１０進数であれば、Ｍ×８＋Ｈ×４＋ｍ×２＋ｈに等しい。
【表５２】
2011109599.tif 000053
表５２で１６種類の出力はＡＢａｂとＣＤｃｄに１対１対応しない。
情報ＱＮｑｎとＭＨｍｈの値が暗号攻撃者に盗まれても情報ＣＤｃｄの値は暗号攻撃者によって確定されないことは表５２でわかる。
暗号攻撃者がＡＢａｂの値を得たあとＣＤｃｄについて全鍵検索を試そうとしても、ひとつのＭＨｍｈの値に対してＣＤｃｄの値は４通りあってどれなのかを決定することができない。
この不可逆性は暗号鍵の解析計算時間量によるものではない。
もし上記の方法を拡大して重要情報を６４ビットとしてパスワードが３２ビットである場合、暗号攻撃者は全鍵検索をしても６５５３６通りのうちから１つの正答を選ばなくてはならない。
そしてそれらのうちのどれが正答かを決定するのは認証者に委託されたＱＮＯＰｑｎｏｐの値だけであって認証者ですらその正答を知ることがない。
【００５３】
認証手続きは認証者が送信する情報ＮＱｎｑをオペランド１とし、申請者のコンピュータに保存された検証情報ＭＨｍｈをオペランド２として表４９のＸＯＲ−Ｐ演算をしてＡＢａｂを再現する。
申請者がＡＢａｂを直接入力するか、またはＡＢａｂが申請者のコンピュータに保存されていれば認証者は情報ＮＱｎｑを送信する必要がない。
次に、認証手続きは再現されたＡＢａｂと申請者が入力するパスワードＣＤｃｄを偏向性の疑似乱数化して表５２の４ビットを出力しコンピュータに保存された検証情報ＭＨｍｈとの照合をする。
それが一致すれば重要情報の半分が正しいものとして認証手続きは認証者のＱＮＯＰｑｎｏｐの値との照合を求めるために以下のようにする。
【００５４】
認証手続きは申請者に与えられた仮ＩＤ番号など認証者との共有情報と、認証手続きが生成したＱＮＯＰｑｎｏｐの値とで一方向性の暗号化を行う。
たとえば認証者との共有情報がＷＸＹＺｗｘｙｚだとして、それを２分割してＷＸＹＺの一方向性の暗号化をし、ＱＮＯＰを添え字として表４６の４ビット情報を出力する。
ｗｘｙｚとｑｎｏｐについても同様にして合計８ビットを認証者に送信する。
認証者は認証者が保管するＱＮＯＰｑｎｏｐの値を添え字として申請者との共有情報を一方向性の暗号化を行い送信された情報との照合を行って申請者とネットワーク会員との個人的同定をする。
表５３はＯＰｏｐとＭＨｍｈを結合した値がＡＢａｂとＣＤｃｄに対応する様子を１６進数で示したものである。
【表５３】
2011109599.tif 000054
表５３で２５６種類のすべての出力はＡＢａｂとＣＤｃｄに１対１対応している。
ＯＰｏｐとＭＨｍｈの値を両方とも正しく出力するＡＢａｂとＣＤｃｄは表５３の値とも一対一対応する。
【発明を実施するための最良の形態】
【００５５】
ネットワークでの通信記録の保全がされていること。
会員の独立性から申請者の自己責任が明確なこと。
個人的重要情報の安全に対する認証者の誠実さが認証者の利益となること。
この３つを満たすネットワークであればよい。
【産業上の利用可能性】
【００５６】
本発明による認証の特色は検証情報の二分化と二度の検証である。
また、認証者と申請者はいわゆる共通鍵を用いた暗号化と復号という操作をしない。
双方の疑似乱数化出力の一致を確認し、一対一対応性があるとして個人的同定をする。
重要情報のうちの一部を公開していても、そして認証者に重要情報のうちの一部を委託したとしても暗号攻撃者から秘密を守ることが出来ることである。
その結果、申請者が認証者に対して秘密を保持できることの利点を述べる。。
・  申請者が他の会員と秘密通信をするとき、認証者に復号鍵の内容を秘密にしたままその鍵を伝達することが出来る。
・  公正性の確保に疑似乱数化は有効であるから申請者のメッセージの認証をすることが出来る。
・  選挙委員が発行する投票用紙をメッセージ認証することで無記名投票をすることができる。
【００５７】
申請者が他の会員に復号鍵を伝達することについて述べる。
ネットワークの会員Ｔは会員Ｕに秘密文Ｖを一方向性の暗号化をしたコードＷを電子メールで送り、復号鍵Ａを認証者に委託するものとする。
表４６の説明で述べたＱＯＮＪがコードＷにあたり、添え字が復号鍵Ａにあたる。
すでに会員資格認証が済み、認証者と会員Ｔは仮ＩＤなどの情報Ｂを共有している。
ＸＯＲ演算と並べ替えによる変換の理解を容易にするため２ビットのブロック暗号機での入力と出力の状態を表にしたものを使って説明する。
ブロック暗号機のレジスタ１に復号鍵Ａと情報Ｂの各１ビットを順序に従って格納する。レジスタ２に入力するのは復号鍵Ａと或る情報Ｄの各１ビットで、情報Ｄは宛て先会員ＵがコードＷを復号する際に使用するものでそれを認証者に送付しないものならば、たとえ公開されていても良い。
たとえば、会員Ｔは情報ＤをコードＷのハッシュ関数値の第１ビットとする。
ブロック暗号機の変換規則は表１と同じである。
【表５４】
2011109599.tif 000055
表５４の１列目はレジスタ１の初期状態ＡＢの値の組み合わせの状態であり、２列目はレジスタ２の情報ＡＤの値の状態である。
【００５８】
会員Ｔは表５４の４列目の上位情報Ｇを会員Ｕに送る電子メールに追記する。
会員Ｔが認証者に委託する情報も表５４の４列目の上位情報Ｇである。
情報Ｇの値が０のとき復号鍵Ａの値は０か１のどちらかであり、情報Ｇの値が１のときＡの値は０か１のどちらかである。
したがって暗号攻撃者がいたとしても攻撃者は情報Ｇから復号鍵Ａを決定できない。
表５５は表５４の４列目の上位情報ＧとＧをレジスタ１とし、表５４の２列目の下位情報ＤとＤをレジスタ２としてＸＯＲ−Ｐ演算を実行した時のレジスタの値の状態である。
【表５５】
2011109599.tif 000056
表５５の３列目の情報Ｙは情報Ｇと情報ＤをＸＯＲ演算したものに等しい。
もし暗号攻撃者が会員Ｕの電子メールを盗聴したとして、彼は情報Ｙを得ることが出来る。
【表５６】
2011109599.tif 000057
表５６は表５５の３列目の情報ＹＹをレジスタ１とし、共有情報ＢとＢをレジスタ２としてＸＯＲ−Ｐ演算を実行した時のレジスタの値の状態である。
情報Ｙと情報ＢをＸＯＲ演算したものはＡに等しい。
暗号攻撃者は共有情報Ｂを知ることなしに、復号鍵Ａを決定することが出来ない。
【表５７】
2011109599.tif 000058
表５７は表５４の５列目の上位情報ＢとＢをレジスタ１とし、５列目の下位情報ＧとＧをレジスタ２としてＸＯＲ−Ｐ演算を実行した時のレジスタの値の状態である。
表５７の３列目の情報Ｚは共有情報Ｂと情報ＧをＸＯＲ演算したものに等しい。
会員Ｔが認証者に情報Ｇを委託したとき認証者は共有情報ＢでＧをＸＯＲ演算し情報Ｚを得て情報Ｇは廃棄され情報Ｚは復号のため認証者によって保存される。
認証者は情報Ｄを得ることがないので復号鍵Ａを決定することが出来ない。
【００５９】
会員Ｕがネットワークの個人的同定可能な資格認証を受けた後、復号のための情報の送信を要求したとき認証者が返信するのは表５７の情報Ｚである。
コードＷから導き出されるハッシュ関数値など会員Ｕが容易に知り得る情報Ｄと電子メールに追記された情報Ｇ、そして認証者から返信された情報Ｚから復号鍵Ａが求められることは表５８を見れば解る。
【表５８】
2011109599.tif 000059
表５８は情報Ｇと情報Ｄをレジスタ１とし、表５７の３列目の情報ＺとＺをレジスタ２としてＸＯＲ−Ｐ演算をしたもので、３列目の値はＡＢに等しい。
情報ＤＧと情報ＺＺをＸＯＲ演算したものは復号鍵Ａと共有情報Ｂに等しい。
これ以降、情報Ｇと情報Ｚを配信情報Ｇと返信情報Ｚと云うことにする。
【００６０】
暗号攻撃者が認証者から送信された返信情報Ｚを盗聴しようとする場合に対処するために次のようにすればいい。
ネットワークの会員Ｔは宛て先会員Ｕと秘密情報Ｘを共有しているものとする。
会員Ｔは、共有情報Ｘのビット表現が０か１に従って前述の情報Ｇを認証者に委託することか又はその情報の否定である¬Ｇを認証者に委託することのどちらかを選択する。
会員Ｔが情報Ｍの否定¬Ｇを電子メールに追記しかつ情報¬Ｇを認証者に委託した場合、もし暗号攻撃者が会員Ｕの電子メールと認証者からの返信情報の両方を盗聴して、表５９の情報を得たとしても復号鍵Ａの否定¬Ａを手に入れることになる。
【表５９】
2011109599.tif 000060
宛て先会員Ｕは会員Ｔとの共有情報Ｘに従って復号した復号鍵Ａをそのまま肯定するか否定するかを選択するけれど、暗号攻撃者は会員Ｔと会員Ｕの共有情報Ｘを知ることなしには復号鍵Ａを決定できない。
【００６１】
このようにして、ＸＯＲ演算と並べ替えによって復号鍵Ａについて共有情報なしでは決定できない情報１ビットを電子メールに書き加えることと１ビットを認証者へ配信することで１ビットの復号鍵Ａを伝達することが出来る。
ネットワークの会員ＴはコードＷの情報量と同じだけかまたはコードＷをハッシュ関数化した情報Ｄに相当する大きさの共有情報と復号鍵Ａを用意して同様のルーチンを繰り返す。
上記の配信情報Ｇと返信情報Ｚのように復号鍵Ａを復元する情報の組み合わせは幾つもあり、説明の容易さから情報Ｇと情報Ｚを選択したものである。
【００６２】
表６０は表１でＡとＣの値が等しい行を抜き出したもので表５４と同等である。
【表６０】
2011109599.tif 000061
【表６１】
2011109599.tif 000062
表６１は表1の４列目の情報Ｇと1列目の情報Ｂをレジスタ１とし、ＢとＧをレジスタ２としてＸＯＲ−Ｐ演算を実行したものである。
表６１の３列目の内で表６０のようにＡとＣの値が等しい行は表５７の３列目のＺＺに等しい。
【表６２】
2011109599.tif 000063
表６２は表１の２列目の情報Ｄと４列目の情報Ｇをレジスタ１とし、表６１のＺＺをレジスタ２としてＸＯＲ−Ｐ演算を実行したものである。
表６２の３列目の内でＣとＡの値が等しい行は表５８の３列目のＡＢに等しい。
これは表５４から表５９の説明でＡとＣが等しいことを条件とする理由である。
表５８の３列目のＡＢは表１でのＣＢに相当する。
【００６３】
公正性の確保に疑似乱数化は有効であることについて述べる。
疑似乱数化がハッシュ関数化に利用できるのは当然である。
表４０の説明で単純な疑似乱数化について１対１対応性と一方向性の暗号化法を前述した。
単純なというのはＡＢとＣＤを算出するために全鍵検索する必要がない、という意味である。
一方向性の暗号化では暗号攻撃者がＡＢとＣＤを算出するためには全鍵検索が必要である。
実は４ビットのブロック暗号機による疑似乱数化手続きはＡＢＣＤの疑似乱数化出力とａｂｃｄの疑似乱数化出力の一部を交換したものをオペランドとして再度、疑似乱数化の操作をすることで一方向性化することが出来る。
ＡＢａｂとＣＤｃｄをＸＯＲ−Ｐ演算による疑似乱数化したときの表３２の出力であるＱ、Ｇ、ＩとＯをオペランド１とし、そしてｑ、ｇ、ｉとｏをオペランド２として再疑似乱数化する。
表６３は再疑似乱数化した時の表３２の出力ＱＧＩＯｑｇｉｏを順に並べたものがＡＢａｂとＣＤｃｄに対応する様子を１６進数で示したものである。
【表６３】
2011109599.tif 000064
表６３で２５６種類のすべての出力はＡＢａｂとＣＤｃｄと１対１対応している。
【００６４】
表４４の説明で一方向性の暗号化の出力ＱＭＰＨが１５回で循環することは前述した。
表６３の出力を再びオペランド１とオペランド２としてＸＯＲ−Ｐ演算による疑似乱数化することを繰り返すとこれらの出力は５６回で循環する。
これら５６の変換を０から５５までの添え字付きの表の配列とすれば、添え字を秘密にすることでＸＯＲ−Ｐ演算による疑似乱数化手続きは一方向性と一対一対応性を保証される。
暗号攻撃者がＡＢａｂとＣＤｃｄを全て決定するためにはこれらの表を作ること即ち全鍵検索が必要である。
以下の説明で平文またはその一部のビット値だけで疑似乱数化を行って表６３の値を出力するものを単純なハッシュ関数化ということにする。
また平文またはその一部のビット値で疑似乱数化を行い表６３で述べた連続の疑似乱数化出力の１つを選択してその添え字を隠すものを一方向性のハッシュ関数化ということにする。
【００６５】
復号鍵の伝達で前述したコードＷの替わりに平文を用いることで申請者のメッセージの認証をすることについて述べる。
本発明で個人的同定可能な認証のあと、メッセージ認証申請者は自らの個人情報と認証者から与えられたメッセージ認証用ＩＤで二つの検証用情報を作る。
個人情報はたとえば会員番号である。
そして、一つの検証用情報を認証者に送付し一つはメッセージに追記してそれを含んだメッセージの公正性を確保する。
以下に重要情報の大きさを矮小化して述べるが実用に際してはそれをより大きなものとするのは当然のことである。
すでに申請者の資格認証が済み、認証者は申請者にメッセージ認証用ＩＤを送付していることとする。
【００６６】
メッセージ認証用ＩＤがＣＤｃｄであり申請者の個人情報がＡＢａｂであるとすれば、二つの検証用情報は表５２の説明で前述の再疑似乱数化をしたＱＮＯＰｑｎｏｐとＭＨｍｈであり、ＱＮＯＰｑｎｏｐが認証者に送付される。
メッセージ認証手続きは申請者のメッセージを表６３の説明で前述の単純なハッシュ関数化し、その情報をＴＵＶＷｔｕｖｗとする。
検証用情報ＱＮＯＰｑｎｏｐとハッシュ化情報ＴＵＶＷｔｕｖｗを各々２ビットに分割しＱＮをレジスタ１とし、情報ＴＵをレジスタ２として表１の５列目の状態まで繰り返しＸＯＲ−Ｐ演算した情報ＩＪがメッセージに追記される。
以下同様にしてメッセージに追記される情報を以下の説明でＩＪ８とする。
暗号攻撃者が情報ＴＵＶＷｔｕｖｗと情報ＩＪ８から認証者の検証用情報ＱＮＯＰｑｎｏｐを知ることができないことは表１１の説明で述べた。
【００６７】
そのときのＸＯＲ−Ｐ演算の表１の４列目の情報ＧＨを全て表５４から表５８の説明で前述の方法で認証者に送付する。
それを以下の説明でＧＨ８とする。
会員が宛て先会員に復号鍵配布を行う時と同様に変換することについて表１と表５４では示される名前が異なるものの敢えて次のように説明する。
ＧＨ８を表５４の復号鍵Ａとし認証用ＩＤのＣＤｃｄを表５４の共有情報Ｂとする。
ＩＪ８が追記されたメッセージをハッシュ関数化した情報をＷＸＹＺｗｘｙｚとする。
ＧＨ８とＣＤｃｄＣＤｃｄとＷＸＹＺｗｘｙｚを各々１ビットに分割しＧとＢをレジスタ１とし、ＧとＷをレジスタ２としてＸＯＲ−Ｐ演算し、レジスタの情報を入れ替えてＸＯＲ−Ｐ演算を実行して表５４の４列目の上位情報Ｇをメッセージに追記する。
以下同様にメッセージに追記して認証者に送付する。
それを以下の説明で配信情報ＧＧ８とする。
認証者は認証用ＩＤのＣＤｃｄで情報ＧＧ８をＸＯＲ演算した返信情報ＺＺ８を復号のため保存する。
【００６８】
申請者のアプリケーションの結果に追記される検証用情報は偏向性の疑似乱数化をした情報ＭＨｍｈである。
ＩＪ８と配信情報ＧＧ８が追記された申請者のメッセージを単純なハッシュ関数化してその情報をＹＺＷＸとする。
検証用情報ＭＨｍｈとハッシュ化情報ＹＺＷＸを各々２ビットに分割しＭＨをレジスタ１とし、情報ＹＺをレジスタ２として表１の５列目の状態まで繰り返しＸＯＲ−Ｐ演算した情報ＩＪがまた再びメッセージに追記される。
以下同様にしてメッセージに追記される情報を以下の説明でＩＪ４とする。
そのときのＸＯＲ−Ｐ演算の表１の４列目の情報ＧＨを全て表５４から表５８の説明で前述の方法で認証者に送付する。
それを以下の説明でＧＨ４とする。
ＧＨ４を表５４の復号鍵Ａとし認証用ＩＤのＣＤｃｄを表５４の共有情報Ｂとする。
ＩＪ４が追記されたメッセージを単純なハッシュ関数化した情報をＺＷＸＹとする。
ＧＨ４とＣＤｃｄとＺＷＸＹを各々１ビットに分割しＧとＢをレジスタ１とし、ＧとＺをレジスタ２としてＸＯＲ−Ｐ演算し、レジスタの情報を入れ替えてＸＯＲ−Ｐ演算を実行して表５４の４列目の上位情報Ｇをメッセージに追記する。
以下同様にメッセージに追記して認証者に送付する。
それを以下の説明で配信情報ＧＧ４とする。
認証者は共有情報ＣＤｃｄで情報ＧＧ４をＸＯＲ演算した返信情報ＺＺ４を復号のため保存する。
時刻印などのタグを送信することで申請者のメッセージは認証者によって登録される。
【００６９】
こうすることでタグと検証情報の付いたメッセージのコピーを持つ誰もが認証者に対しその作成者の確認を求めることが出来る。
確認要求者のメッセージのコピーに書かれたタグ情報と引き換えに認証者は検証用情報ＭＨｍｈについての返信情報ＺＺ４と検証用情報ＱＮＯＰｑｎｏｐについての返信情報ＺＺ８を送信する。
確認要求者は認証者から送信された検証用情報ＭＨｍｈについての返信情報ＺＺ４から、次のようにして復号鍵情報ＧＨ４を生成する。
確認要求者は検証情報の付いたメッセージから追記された配信情報ＧＧ４を取り除いてハッシュ関数化しＺＷＸＹであるべきはずのハッシュ化情報を再現する。
配信情報ＧＧ４と情報ＺＷＸＹと返信情報ＺＺ４を各々１ビットに分割しＦと返信情報の第１ビットＹをＸＯＲ演算したものが復号鍵ＨでありＺと返信情報の第１ビットＹをＸＯＲ演算したものが共有情報Ｂであることは表５８の説明で前述した。
以下同様に復号鍵情報ＧＨ４と共有情報ＣＤｃｄを生成する。
次に情報ＧＨ４とメッセージに追記された情報ＩＪ４を各々２ビットに分割しＧＨをレジスタ１とし、情報ＩＪをレジスタ２としてＸＯＲ−Ｐ演算し表１６の４列目の状態までＸＯＲ−Ｐ演算を繰り返した情報をＡＢ、そして５列目の状態までＸＯＲ−Ｐ演算を繰り返した情報をＣＤとする。
以下同様にして生成した情報を結合して情報ＡＢＡＢと情報ＣＤＣＤとする。
【００７０】
確認要求者は更にＩＪ４を取り除いたメッセージをハッシュ関数化しＹＺＷＸであるべきはずのハッシュ化情報を再現する。
それを情報ＣＤＣＤと比較して、もし等しければ情報ＡＢＡＢが検証用情報ＭＨｍｈであることと、メッセージのコピーについて公正性が半分だけ証明される。
さらに確認要求者はメッセージから追記された配信情報ＧＧ８を取り除いてハッシュ関数化しＷＸＹＺｗｘｙｚであるべきはずのハッシュ化情報を再現する。
配信情報ＧＧ８と情報ＷＸＹＺｗｘｙｚと返信情報ＺＺ８を各々１ビットに分割し配信情報の第１ビットＧと返信情報の第１ビットＺをＸＯＲ演算したものが復号鍵ＧでありＷとＺをＸＯＲ演算したものが共有情報Ｂであることは表５８の説明で前述した。
以下同様に復号鍵情報ＧＨ８と共有情報ＣＤｃｄＣＤｃｄを生成する。
次に情報ＧＨ８とメッセージに追記された情報ＩＪ８を各々２ビットに分割しＧＨをレジスタ１とし、情報ＩＪをレジスタ２としてＸＯＲ−Ｐ演算し表１６の４列目の状態までＸＯＲ−Ｐ演算を繰り返した情報をＡＢとする。
以下同様にして生成した情報を結合してＡＢＡＢＡＢＡＢとする。
【００７１】
確認要求者は認証者に検証用情報ＱＮＯＰｑｎｏｐであるはずの情報ＡＢＡＢＡＢＡＢの検証を求める。
ＡＢＡＢＡＢＡＢを２分割してＡＡＡＡを添え字とし共有情報ＣＤｃｄで一方向性の暗号化をする。
同じくＢＢＢＢを添え字とし共有情報ＣＤｃｄで一方向性の暗号化をする。
その結果を結合した合計８ビットを認証者に送信する。
認証者は検証用情報ＱＮＯＰｑｎｏｐと同じく保存された共有情報ＣＤｃｄで確認要求者と同様にし、その結果が送信された情報に等しいことを確認する。
もし等しければ認証記録との同一性を認め、確認要求者に対してメッセージ認証申請者の会員番号とその時刻印を送信する。
認証者は申請者のメッセージをハッシュ関数化した情報ＴＵＶＷｔｕｖｗを送信されることはなく申請者のメッセージを知ることもできないのでそのメッセージの真偽について保証することはない。
たとえハッシュ関数化した情報ＴＵＶＷｔｕｖｗが申請者のメッセージから容易に算出されるとしても、暗号攻撃者は検証用情報ＱＮＯＰｑｎｏｐを知ることが出来ないので改竄などメッセージの公正さを損なうことはできない。
認証者さえメッセージやメッセージをハッシュ関数化した情報ＴＵＶＷｔｕｖｗ、そして検証用情報ＭＨｍｈを知ることがないので認証者が検証用情報を偽造することが出来ないのは明白である。
メッセージ認証申請者が認証後に自分のメッセージを否定できるのは自らのパスワードを暴露した上で個人的同定可能な認証のあと二つの検証用情報の間違いを証明できた時だけである。
【００７２】
本発明を用いてソーシャルネットワークの会員同士が認証者に対して秘密を保持できることにより無記名投票が次のようにして可能になる。
ある選挙が行われることになり選挙日程が決定し立候補者の受付も終わって選挙公報が配布されているものとする。
選挙管理委員長の会員Ｔは選挙人登録を会員に呼びかけるとともに、全会員中の有権者の名前にランダムな番号を振り当てて認証者にそのリストを渡し選挙人登録業務を委託する。
有権者の会員Ｕは選挙人登録して番号を割り当てられたことを選挙管理委員長Ｔに通知する際に次のようにする。
すでに会員資格認証が済み、認証者と会員Ｕは仮ＩＤ番号などの情報ＫＬｋｌを共有しているとする。
割り当て番号がＢＡｂａでありパスワードがＣＤｃｄであるとすれば、二つの検証用情報は表５２の説明で前述の再疑似乱数化をしたＱＮＯＰｑｎｏｐと偏向性の疑似乱数化をした情報ＭＨｍｈであり、ＱＮＯＰｑｎｏｐが認証者に送付される。
選挙人登録手続きはもう一つの検証用情報ＭＨｍｈを以下のように送付して会員Ｕが選挙人登録したことを選挙管理委員長Ｔに伝達する。
【００７３】
会員Ｕのコンピュータには検証情報と共に個人的同一性を証明するための最小限の個人情報が保存されている。
選挙人登録手続きは最小限の個人情報がＡＢａｂだとして情報ＫＬｋｌとＡＢａｂから成る送信文Ｗを作る。
ＫＬｋｌをオペランド１とし、ＡＢａｂをオペランド２として表１の４列目の状態まで繰り返しＸＯＲ−Ｐ演算した情報ＧＨｇｈが送信文に追記される。
以下同様にして選挙管理委員長Ｔに委託するためメッセージに追記される情報を以下の説明でＧＨ４とする。
同じように表１の５列目の情報ＩＪｉｊも生成され、それを以下の説明でＩＪ４とする。検証用情報ＱＮＯＰｑｎｏｐと送信文ＫＬｋｌＡＢａｂを分割しＱＮＯＰをオペランド１とし、ＫＬｋｌをオペランド２として表１の４列目の状態まで繰り返しＸＯＲ−Ｐ演算した情報ＧＨｇｈが送信文に追記される。
以下ｑｎｏｐとＡＢａｂも同様にしてメッセージに追記され、これらの情報を以下の説明でＧＨ８とする。
同じように表１の５列目の情報ＩＪｉｊも生成され、それを以下の説明でＩＪ８とする。パスワードＣＤｃｄと情報ＫＬｋｌを添え字としてＩＪ４とＩＪ８を一方向性のハッシュ関数化した情報をＱＧＩＯ１６とする。
同じように. 情報ＱＧＩＯ１６も又選挙管理委員長Ｔに委託するため別に送信文に追記される。
送信文から情報ＫＬｋｌを削除する。
送信文Ｗは個人情報ＡＢａｂとＧＨ４とＧＨ８とＱＧＩＯ１６である。
会員Ｕは、ＭＨｍｈを添え字として送信文Ｗを一方向性の暗号化する。
会員Ｕの割り当て番号を共有情報Ｂとして表５４から表５８の説明で前述の手順で復号化鍵ＭＨｍｈを認証者に委託して暗号化文を電子メールで選挙管理委員長Ｔに伝達する。
認証者は復号化鍵ＭＨｍｈを知ることが出来ない。
【００７４】
選挙管理委員長Ｔは定められた手順で電子メールを復号して会員Ｕの割り当て番号を確認し会員Ｕの検証用情報ＭＨｍｈを保存する。
そして情報ＭＨｍｈについての情報ＧＨ４と情報ＱＮＯＰｑｎｏｐについての情報ＧＨ８を認証者に送付するため保存しておく。
選挙管理委員長Ｔが知り得るのは会員Ｕの最小限の個人情報ＡＢａｂと割り当て番号ＢＡｂａである。
選挙管理委員長Ｔは添え字のパスワードＣＤｃｄと情報ＫＬｋｌを知ることなしではハッシュ関数化情報ＱＧＩＯ１６からＩＪ４とＩＪ８を再現できない。
選挙管理委員長Ｔは情報ＧＨ４とＧＨ８を知ることができても情報ＩＪ４とＩＪ８がないので検証用情報ＱＮＯＰｑｎｏｐを知ることが出来ない。
そして、選挙管理委員長ＴはＭＨｍｈを知っていても会員ＵのパスワードＣＤｃｄを知ることが出来ない。
【００７５】
選挙人登録が締め切られた後、選挙管理委員長Ｔは選挙人登録リストからランダムに選んだ順番で全選挙人の各投票券を作り各々メッセージ認証を受ける。
メッセージは情報ＫＬｋｌを知る各選挙人だけ選挙当日に一度のみ有効であることの言明と各選挙人の投票資格を検証するためのハッシュ関数化情報ＱＧＩＯ１６と当該会員Ｕの個人情報ＡＢａｂを内容とする。
通常のメッセージ認証と異なるのは選挙管理委員長Ｔのメッセージであることの検証だけでなく各選挙人の検証用情報ＭＨｍｈについての情報ＧＨ４と検証用情報ＱＮＯＰｑｎｏｐについての情報ＧＨ８を認証者に伝達し投票資格認証のための投票手続き業務を委託することである。
選挙管理委員長Ｔはメッセージ認証を受けた投票券を全選挙人に電子メールで送付する。
【００７６】
選挙当日に投票者が投票券のタグ情報を送信して選挙管理委員長Ｔが作成したものであることの確認をもとめる手順については通常のメッセージ認証の確認要求と同じで、投票者はメッセージ認証の確認要求者と同様、資格認証を受けることがない。
投票券のメッセージ認証の確認後、投票資格認証のために投票者は選挙人登録したときの情報ＫＬｋｌとパスワードＣＤｃｄを入力しなくてはならない。
投票手続きは投票券に書かれた会員Ｕの最小限の個人情報ＡＢａｂと情報ＫＬｋｌで選挙人登録したときの送信文Ｗを再現する。
投票手続きは情報ＫＬｋｌとパスワードＣＤｃｄで二つの検証用情報ＱＮＯＰｑｎｏｐとＭＨｍｈを再作成する。
そして投票手続きはＧＨ４とＩＪ４、ＧＨ８とＩＪ８を生成してハッシュ関数化情報ＱＧＩＯ１６を再現して投票券に書かれた情報と一致するかを確かめる。
どちらも正しいと確かめた後、投票手続きは投票者が会員Ｕであることを認証者に伝えるために次のようにする。
投票券のメッセージ認証はすでに済んでいるので、投票手続きは選挙管理委員長Ｔと認証者との共有情報を持っている。
ＭＨｍｈについての検証用情報ＧＨ４を添え字として共有情報を一方向性の暗号化して認証者に送信する。
そして、投票手続きは情報ＱＮＯＰｑｎｏｐについての情報ＧＨ８も同様に暗号化して認証者に送信する。
認証者は送信されたそれぞれの情報を復号してその結果がメッセージ認証時の選挙管理委員長Ｔとの共有情報に等しいことを確認する。
もし両方が正しければ認証者は検証後に送信される投票を受け入れ委託された投票手続き業務にしたがって準備された立候補者リストに一票を加える。
認証者は該当するログファイルに投票券が失効したことを記入して二重の投票を防止する。
【００７７】
認証者は、投票者の提出する投票券が選挙管理委員長Ｔによってメッセージ認証されたものかどうかを検証する。
投票手続きは投票者と会員Ｕとの個人的同定のための検証を投票券に記載されたことと投
票者の提出するＫＬｋｌとパスワードＣＤｃｄを用いて行う。
認証者はそれが正しいかどうかを検証できてもメッセージを送付されないので会員Ｕの割り当て番号を知ることができない。
【００７８】
無記名投票に使用した方法は一般的な会員のメッセージ認証に適用できる。ネットワークの会員Ｕはネットワークへの入会を希望していて未だ入会していない友人Ｖとの間に秘密情報Ｘを共有している場合、次のようにすることが出来る。
会員Ｕは秘密情報Ｘを含んだ文をハッシュ関数化して認証者からメッセージ認証を受けて友人Ｖの名前を送信し同時に期限つきで一度のみ有効な入会手続きを認証者に依頼する。会員Ｕは秘密情報Ｘを削除したメッセージを友人Ｖに電子メールで送付する。
友人Ｖは認証者にメッセージの確認を要求してタグ情報と名前を送信し、認証者は名前を確認して検証用情報についての中間情報とメッセージ認証時の会員Ｕとの共有情報Ｂを送信する。
友人Ｖは秘密情報Ｘを入力しなくてはならないけれども、手順通り認証者が会員Ｕの認証記録との同一性を認めたとき認証者と友人Ｖの間に共通知識が存在することになる。
それは会員Ｕがメッセージ認証に使用した検証用情報ＱＮＯＰｑｎｏｐについての表１の４列目の情報ＧＨ８と検証用情報ＭＨｍｈについての情報ＧＨ４であって、暗号攻撃者は通信を盗聴したとしても解読できない。
これらの情報が会員Ｕからの借りものだとしても、会員Ｕには知りえないものだから、事実上互いに相手を知らないもの同士が初めてのディジタル通信で秘密を共有できる。
このようにして行われる入会手続きは友人Ｖの個人的な重要情報を安全に認証者へ送る。
【実施例】
【００７９】
本発明はコンピュータの最も得意とする基本的な演算を用いて今まで知られなかった効果を実現するものである。
また認証のみを特許の請求項に書きながら、暗号化法やハッシュ関数化法などを含めないのは多くの人がこの技術が開発することを促したいからである。
したがって公開して周知をはかることが第一の急務である。
ところが特許の要件が新規性、有用性、独創性のほかに公知のものでないことが含まれる以上実施することは特許取得の妨げになるので実施例は無い。