(57)【要約】組紐の群を主体とする公開鍵での暗号通信方法。本発明によると、前記方法で活用されるのは、組紐群Ｇの中の所定の組紐Ｓの選ばれた表現記号ｓによって規定された秘密鍵と、とりわけ、演算子Ｔにより組紐Ｓから変換した組紐Ｔ（Ｓ）の表現記号ｖで規定された公開鍵と、二つの組紐が同等であること、つまり、そのような二つの組紐の表現記号の同値性を検証する少なくとも一回の演算である。実行速度の速い公開鍵での暗号通信方法に応用される。【特許請求の範囲】
【請求項１】
−組紐群Ｇの中の所定の組紐Ｓの表現記号ｓによって規定された秘密鍵と、
−とりわけ、演算子Ｔにより組紐Ｓから変換した組紐Ｔ（Ｓ）の表現記号ｖによって規定された公開鍵と、
−二つの組紐が同等であること、つまり、そのような二つの組紐の表現記号の同値性を検証する、少なくとも一回の演算とを、活用することを特徴とする、組紐群を主体とする公開鍵での暗号通信方法。
【請求項２】
表現記号ｖが、組紐Ｔ（Ｓ）の表現記号の被約形ＦＲであることを特徴とする、請求項１に記載の暗号通信方法。
【請求項３】
二つの組紐の表現記号が同値であることを検証する前記演算が、そのような二つの組紐の表現記号の被約形ＦＲ、あるいは前記組紐に基づいて計算された組紐の表現記号の被約形を用いて実現されることを特徴とする、請求項１または請求項２に記載の暗号通信方法。
【請求項４】
前記被約形ＦＲは、正規形ＦＮであることを特徴とする、請求項２または請求項３に記載の暗号通信方法。
【請求項５】
前記被約形ＦＲは、非正規の被約形であることを特徴とする、請求項２または請求項３に記載の暗号通信方法。
【請求項６】
演算子ＴがＴ（Ｓ）＝ＳＷＳ-1によって規定され、但しＷは群Ｇの組紐であり、その表現記号ｗが、組紐Ｖの表現記号ｖと共に、前記公開鍵を形成し、そしてＳ-1が、群Ｇの組紐Ｓを逆転した組紐であることを特徴とする、請求項１から請求項５のいずれか一つに記載の暗号通信方法。
【請求項７】
演算子Ｔが、２以上の正の整数ｐのデータによって、そしてＴ（Ｓ）＝Ｓp＝Ｓ．．．Ｓ、Ｓをｐ回かけた積によって規定されることを特徴とする、請求項１から請求項５のいずれか一つに記載の暗号通信方法。
【請求項８】
検証者Ｂによって証明者Ａの認証を行うにつき、
−ｎ＝ｐ＋ｑ本の糸の組紐群Ｇ１の中から選ばれた、左の糸がｐ本の組紐Ｓの表現記号ｓからなる秘密鍵を、証明者Ａに割り当て、
−群Ｇ１の中から選ばれた組紐Ｗの表現記号ｗと、組紐Ｖ＝Ｔ（Ｓ）＝ＳＷＳ-1の表現記号ｖとで構成され、検証者Ｂにより用いられる公開鍵を、証明者Ａに割り当て、
−検証者Ｂが、表現記号ｚを選ぶことで、群Ｇ１の中から右の糸がｑ本の組紐Ｚを選び、組紐Ｃ＝ＺＷＺ-1の表現記号ｃを計算し、そしてｃを証明者Ａに送り、
−証明者Ａが、組紐Ｙ＝ＳＣＳ-1の表現記号ｙを計算し、ｙを検証者Ｂに送り、
−検証者Ｂが、表現記号ｙとｚｖｚ-1との同値性を検証する
ことを特徴とする、請求項６に記載の暗号通信方法。
【請求項９】
検証者Ｂによって証明者Ａの認証を行うにつき、
−ｎ本の糸の組紐群Ｇ２の中から選ばれた組紐Ｓの表現記号ｓからなる秘密鍵を、証明者Ａに割り当て、
−群Ｇ２の中から選ばれた組紐Ｗの表現記号ｗと、組紐ＳＷＳ-1の表現記号ｖとで構成され、検証者Ｂにより用いられる公開鍵を、証明者Ａに割り当て、
−証明者Ａが、表現記号ｒを選ぶことで、群Ｇ２の中から組紐Ｒを選び、組紐Ｘ＝ＲＷＲ-1の表現記号ｘを計算し、ｘを検証者Ｂに送り、
−検証者Ｂが、一つのビットｃを選んで、ｃを証明者Ａに送り、
・ｃ＝０の場合には、証明者Ａがｙ＝ｒを設定し、ｙを検証者Ｂに送り、該検証者Ｂが表現記号ｘとｙｗｙ-1との同値性を検証し、
・ｃ＝１の場合には、証明者Ａが、組紐ＲＳ-1の表現記号ｙを計算し、ｙを検証者Ｂに送り、該検証者Ｂが表現記号ｘとｙｖｙ-1との同値性を検証し、
上記の三つのやりとりをk回繰り返すことを特徴とする、請求項６に記載の暗号通信方法。
【請求項１０】
検証者Ｂによって証明者Ａの認証を行うにつき、
−ｎ本の糸の組紐群Ｇ３の中から選ばれた組紐Ｓの表現記号ｓからなる秘密鍵を、証明者Ａに割り当て、
−群Ｇ３の中から選ばれた組紐Ｗの表現記号ｗと、組紐ＳＷＳ-1の表現記号ｖとで構成され、検証者Ｂにより用いられる公開鍵を、証明者Ａに割り当て、
−証明者Ａが、表現記号ｒを選ぶことで、群Ｇ３の中から組紐Ｒを選び、組紐Ｘ＝ＲＷＲ-1の表現記号ｘと、組紐Ｘ’＝ＲＶＲ-1の表現記号ｘ’とを計算し、ｘおよびｘ’を検証者Ｂに送り、
−検証者Ｂが、一つのビットｃを選んで、ｃを証明者Ａに送り、
・ｃ＝０の場合には、証明者Ａがｙ＝ｒを設定し、ｙを検証者Ｂに送り、該検証者Ｂが表現記号ｘとｙｗｙ-1、並びに表現記号ｘ’とｙｖｙ-1との同値性を検証し、
・ｃ＝１の場合には、証明者Ａが組紐ＲＳＲ-1の表現記号ｙを計算し、ｙを検証者Ｂに送り、該検証者Ｂが表現記号ｘ’とｙｘｙ-1との同値性を検証し、
上記の三つのやりとりをk回繰り返すことを特徴とする、請求項６に記載の暗号通信方法。
【請求項１１】
検証者Ｂによって証明者Ａの認証を行うにつき、
−ｎ本の糸の組紐群Ｇ４の中から選ばれた組紐Ｓの表現記号ｓからなる秘密鍵を、証明者Ａに割り当て、
−ｐは２以上の整数で、組紐Ｖ＝Ｓp＝Ｓ．．．Ｓ、Ｓをｐ回かけた積の表現記号ｖからなり、検証者Ｂにより用いられる公開鍵を、証明者Ａに割り当て、
−証明者Ａが、表現記号ｒを選ぶことで、群Ｇ３の中から組紐Ｒを選び、組紐Ｘ＝ＲＶＲ-1の表現記号ｘを計算し、ｘを検証者Ｂに送り、
−検証者Ｂが、一つのビットｃを選んで、ｃを証明者Ａに送り、
・ｃ＝０の場合には、証明者Ａがｙ＝ｒを設定し、ｙを検証者Ｂに送り、該検証者Ｂが表現記号ｘとｙｖｙ-1との同値性を検証し、
・ｃ＝１の場合には、証明者Ａが組紐ＲＳＲ-1の表現記号ｙを計算し、ｙを検証者Ｂに送り、該検証者Ｂが表現記号ｘと、ｙに基づいて得られた組紐Ｙpを表現するｙp＝ｙ．．．ｙとの同値性を検証し、
上記の三つのやりとりをk回繰り返すことを特徴とする、請求項７に記載の暗号通信方法。
【請求項１２】
演算子Ｔの代わりに自己分配演算を行うことを特徴とする、請求項６に記載の暗号通信方法。
【請求項１３】
前記組紐Ｗが純粋であることを特徴とする、請求項８に記載の暗号通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組紐群を主体とする公開鍵での暗号通信方法に関するものである。
【０００２】
本発明は、接触型または非接触型の標準的マイクロプロセッサー・カードのような資源に余り恵まれない環境においてこそ、実行速度の速い公開鍵での暗号通信方法の分野において、特に好適に応用されるものである。
【背景技術】
【０００３】
公開鍵での暗号通信の分野においては、各ユーザーが所定の用途のための一対の鍵を保持するのであるが、前記一対の鍵というのは、秘密鍵と、結合された公開鍵とで構成されたものである。例えば、秘密保持専用の鍵が一対ある場合には、公開鍵はデータを暗号化するために用いられ、その一方で、秘密鍵は、その暗号化されたデータを復号するため、つまり、平文のデータに戻すために用いられる。逆に、認証専用の鍵が一対ある場合には、秘密鍵は認証の値を計算するために用いられるのであり、その一方で、公開鍵はそのような認証の値を検証するために用いられる。他の用途としては、電子署名や鍵のやりとりなどもまた可能である。
【０００４】
公開鍵での暗号通信法は、秘密鍵での暗号通信法とは逆に、相手と同じ秘密を共有していなくても安全な通信を行えるという点で、大いに役立つものである。しかしながら、安全性でのそのような利点は、性能面での短所も伴うものである、というのは、（「公開鍵方式」とも呼ばれる）公開鍵での暗号通信方法は、（「秘密鍵方式」とも呼ばれる）いわゆる秘密鍵での暗号通信方法よりも百倍ないし千倍も遅いということがよくあるからである。そういうわけで、実行速度の速い公開鍵での暗号通信方法を見いだし、それにより、マイクロプロセッサー・カードのような、上記に述べた資源の乏しい環境で、そのような方法を活用できるようにするということは、非常に重要な課題である。
【０００５】
実際に既にある公開鍵方式の大部分は、計算の分野に由来する数学的な諸問題の困難さ、つまり「数論」に基づくものである。そういうわけで、（著者の名前であるＲｉｖｅｓｔ，ＳｈａｍｉｒおよびＡｄｌｅｍａｎの頭文字を取った）ＲＳＡという名称で知られる暗号化と電子署名との方式での安全性が基づくのは、整数の因数分解の問題が解きにくいということなのであって、比較の対象となりうる大きさの、二つまたは幾つかの素因数の積に等しい（１０００ビットを越える）大きな整数が与えられた場合、そのような素因数を効率的に捜し出す方法は存在しないのである。
【０００６】
公開鍵方式には、他にも、仏国特許発明第２７１６０５８号明細書に記載された電子署名方式のように、離散対数問題の困難さに基づいて安全性を行うものもある。そのような方式はすべて、係数の乗法：ａｂ（ｍｏｄ  ｎ）、係数の割り算：ａ／ｂ（ｍｏｄ  ｎ）、あるいは更に係数の累乗：ａb（ｍｏｄ  ｎ）但しａとｂは整数というような、整数についての演算を、基礎演算として用いるというところが共通している。
【０００７】
既に存在する公開鍵方式の大部分は、計算方法を基礎とするものであるが、それには少なくとも二つの短所がある。
【０００８】
第一の短所は、対象となる整数の長さが数百ビットの場合には、因数分解の問題を解くのに効率的なアルゴリズムと離散対数とが存在し、そのことから、非常に大きな、つまり、現時点では１０００ビット以上の、整数の長さ（特に鍵の長さ）を取り出すことが想定されるということである。その結果、保存に困難が生じ、特に計算時間そのものが非常に長くなってしまう。更に、そのようなアルゴリズムの効率は時とともにかなり急速に高まり、それに従って鍵の長さももっと長くしなければならない。
【０００９】
第二の短所は、安全な応用は多々あるのに、その大多数の安全な応用の安全性の基礎を、二つの数学の問題の難しさのみに置くという危険性である。それは、そのような二つの問題が互いに近いものである場合には尚更のことであるし、その一つについて効率的なアルゴリズムを見いだせば、それに伴って、もう一つを解くのに効率的なアルゴリズムも見つかるというのも全く当然のことである。
【００１０】
そういうわけで、１５年程前から、上記の二つとは別の問題及び／または整数とは別の数学的対象に基礎を置く、公開鍵での暗号通信方式を構築するために、多大の努力が費やされてきた。特に、整数についての演算の代わりに所謂「楕円」曲線上の諸点についての演算を用いることが提案されている。そのような考えに至った動機は、離散対数の問題が楕円曲線においては依然として更に解決が難しいように思われるということであり、それにより、対象となる方式の安全性を危険にさらすことなく鍵の長さを減じることが可能になるということである。
【００１１】
しかしながら、楕円曲線を用いることで解決できるのは、上記に提起した二つの問題の一部に過ぎない。事実、たとえ楕円曲線が数学的対象として異なっており、整数の集合よりも更に複雑ではあっても、そのようなものを説明する理論が、数論と密接な関係を有するものであるという意味において、そこから比較的近いものであるということに変わりはないからである。このような近似性から明白な効果としては、楕円曲線について計算を実行すると、それは結局のところ、整数についての一連の演算を行うことになるということであり、該整数はたとえ大きさが小さくなっていても、上記に規定したものと似通ったものである。その結果、計算時間が依然として余りにも掛かりすぎることになる。
【特許文献１】
仏国特許発明第２７１６０５８号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１２】
それゆえ、数論や、それに近い理論の数々から得られるものとは大いに異なる数学的対象を、暗号通信のために利用し、それにより、一方では、上記の諸理論において見いだされた問題を解決するのに効率的なアルゴリズムが発見された場合の代替的解決法を活用したり、他方では、性能面で、そしてとりわけ計算時間の面で極めて効率的な解決法を活用したりすることは依然として必要である。
【課題を解決するための手段】
【００１３】
この方向での幾つかの試みがなされた。そのうちの一つ（２０００年８月のＫ．Ｈ．Ｋｏ，  Ｓ．Ｊ．Ｌｅｅ，  J．Ｈ．Ｃｈｅｏｎ，  Ｊ．Ｗ．Ｈａｎ，  Ｊ．Ｋａｎｇ  およびＣ．ＰａｒｋによるＮｅｗ  Ｐｕｂｌｉｃ−Ｋｅｙ  Ｃｒｙｐｔｏｓｙｓｔｅｍ  Ｕｓｉｎｇ  Ｂｒａｉｄ  Ｇｒｏｕｐｓ，  Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ，  ＬＮＣＳ  １８８０，  ｐ．１６６−１８３，  Ｓｐｒｉｎｇｅｒ  Ｖｅｒｌａｇ参照）は、「組紐群」と呼ばれる数学的対象を用いるということである。
【００１４】
組紐というのは、その用語の数学的な意味では、その用語の形状に関しておよび通常の使用の意味での組紐というものの基本的なあり方を概念形成して一般化したものである。組紐理論の詳細に関しては、Ｐ．ＤｅｈｏｒｎｏｙのＬ’ａｒｔ  ｄｅ  ｔｒｅｓｓｅｒ，Ｐｏｕｒ  ｌａ  Ｓｃｉｅｎｃｅ，Ｄｏｓｓｉｅｒの記事で、シリーズとは別冊の≪Ｌａ  ｓｃｉｅｎｃｅ  ｄｅｓ  ｎｏｅｕｄｓ≫、ｐ．６８−７５，  １９９７を参照されたい。
【００１５】
「ｎ本の糸からなる組紐」の集合が構成する群Ｇには、積と呼ばれる内部組成の法則があり、その法則により、二本の組紐ＸとＹについては、組紐Ｘの下に組紐Ｙを「付着」させるという演算の結果として、ＸＹという記号で示される一つの組紐を結合させることになる。一般的には、組紐の積は、可換演算ではない。更に、ｎ本の糸の組紐のいずれにも、集合｛１，２，．．．，ｎ｝の置換を、一意的に結合させることが可能である。（１からｎの整数のいずれも自分の上に送る）置換が恒等置換である組紐は、純粋組紐と呼ばれる。
【００１６】
ｎ本の糸の組紐群Ｇにある単位元Ｅは、組紐になっていないｎ本の糸で表され、どのような組紐Ｘについても積ＥＸ及びＸＥがどちらもＸに等しいというような単位元である。更に、どのような組紐Ｘにも、それとは逆の、Ｘ-1という記号で示されるものがあり、積ＸＸ-1とＸ-1ＸとがどちらもＥに等しくなるようになっている。
【００１７】
群Ｇのｎ本の糸の組紐は幾つもの方法でコード化されることができ、該方法は表現と呼ばれる。一つの組紐を所定の表現でコード化するについては、それに一つまたは複数の「表現記号」を結びつける。Ｘが一つの組紐である場合には、下にある表現でのＸの表現記号にｘという記号を付ける。本発明で用いられるような通常の表現においては、組紐Ｘと組紐Ｙのそれぞれの表現記号がｘとｙである場合には、ｘとｙについての単純な演算が存在し、その結果にｘｙという記号が付けられて、組紐ＸＹの表現記号ということになり、同様に、ｘについての単純な演算が存在し、その結果にｘ-1という記号が付けられて、組紐Ｘ-1の表現記号となる。
【００１８】
最も広く普及した表現は「標準」と呼ばれるもので、その基礎となる事実は、どのような組紐も、それぞれアルファベットの文字一つで示すｎ−１個の基本的組紐と、それらを逆にしたものとの積に分解できるということである。そのような基本的組紐の表現記号を小文字で記すことにする。例えば、４本の糸の組紐の場合には、３つの基本的組紐にＡ、Ｂ、およびＣという記号を付け、その結果、その群のいずれの組紐Ｘも、組紐Ａ、Ｂ、Ｃとそれらを逆にしたＡ-1、Ｂ-1、Ｃ-1に応じて表現することができ、しかもそれは一意的ではない。例えば、組紐ＡＢＡとＢＡＢは等しい。ａｂａとｂａｂは同値の組紐の表現記号であり、つまりは同一の組紐を示していると言えることになる。同様に、組紐Ｂは組紐ＢＢＢ-1に等しく、その結果、表現記号ｂとｂｂｂ-1は同値であることになる。
【００１９】
群Ｇについて他の表現を用いられることができ、そのようなものを「代わりの選択肢」と言うことにする。そういうわけで、ｎ本の糸からなる一つの組紐は、｛１，２，．．．，ｎ｝の置換で表される「単純な」あるいは「規準にかなった」組紐と、それらを逆にしたものとの積としてコード化されることができる。また改めてＧの表現について触れると、それは「Ｂｉｒｍａｎ−Ｋｏ−Ｌｅｅ表現」と呼ばれるものであり、そこでのコード化にはまた置換を用いたり、あるいは、すべて１からｎの間に含まれるｎ個の数の幾つかの表を用いたりするのだが、もう一つ他の、Ｄｙｎｎｉｋｏｖ表現と呼ばれるものでは、コード化には整数を用いる。そこでもまた、一つの組紐には幾つもの表現記号があり得るし、同一の組紐の幾つかの表現記号が同値であると言われる。
【００２０】
「標準」と言われる表現では、一つの組紐は幾つかの単語でコード化され、「同値である」という意味の「〜」という表記が導入される。組紐ＵとＶが同等である場合、ｕを組紐Ｕの表現記号とし、ｖを組紐Ｖの表現記号として、「ｕ〜ｖ」と記すことになる。以下の同値関係式により、確実に、二つの単語が同一の組紐を表現しているかどうかを決定することが可能になる：
−ａａ-1〜ａ-1ａ〜ｅ、
−ａとｃとが連続しない文字である場合は、ａｃ〜ｃａ、
−ａとｂとが連続する文字である場合には、ａｂａ〜ｂａｂ。
【００２１】
上記の組紐を用いる公開鍵での暗号通信方法は、もっぱら、データの秘密保持専用のものであり、該データは伝送前に暗号化され、それから受信者によって復号化される。
【発明の効果】
【００２２】
本発明の対象により解決されるべき技術的課題は、組紐群を主体とする公開鍵での暗号通信方法を提案することであって、該方法により、一方では、データの秘密保持だけでなく、エンティティ及び／またはデータの認証もまた確実に行うことが可能になるのであり、他方では、それと同時に、マイクロプロセッサー・カードのように、潜在的に資源が限られたシステムを用いる方法を応用するのと両立するような、高いレベルの安全性と速い計算時間とを得ることが可能になる。
【発明を実施するための最良の形態】
【００２３】
技術的課題を解決するには、本発明によると、前記の方法で以下のものを活用することである：
−組紐群Ｇの中の所定の組紐Ｓの表現記号ｓによって規定された秘密鍵、
−とりわけ、演算子Ｔにより組紐Ｓから変換した組紐Ｔ（Ｓ）の表現記号ｖによって規定された公開鍵、
−二つの組紐が同等であること、つまり、そのような二つの組紐の表現記号が同値であることを検証する、少なくとも一回の演算。
【００２４】
そういうわけで、本発明による暗号通信方法の安全性の基礎となるのは、公開鍵の中に含まれているＴ（Ｓ）の表現記号ｖから秘密組紐Ｓを再構成するのは難しいということなのであって、そのような再構成を行おうとすると、それにつれて累積するような形で益々、組紐の同等性、ひいては表現記号の同値性の問題と、演算子Ｔの逆転の問題とに直面することになる。その意味では、本発明の対象である方法を活用するのに都合よくできるように、演算子Ｔについての二つの例が提案されている。
−演算子ＴはＴ（Ｓ）＝ＳＷＳ-1によって規定され、但しＷは群Ｇの組紐であり、その表現記号ｗは、Ｖ＝Ｔ（Ｓ）の表現記号ｖと共に、前記公開鍵を形成し、そしてＳ-1は、群ＧのＳを逆転した組紐である。
−演算子Ｔは、２以上の正の整数ｐのデータによって、そしてＴ（Ｓ）＝Ｓp＝Ｓ．．．Ｓ、Ｓをｐ回かけた積によって規定される。
【００２５】
第一の演算子が扱う共役の問題は、極めて難解なものと考えられている。組紐ＳＷＳ-1の表現記号が分かった上で、組紐Ｓの表現記号を見いだすということが重要である。特に、組紐の表現記号の中でも特に優先されるべきものである、被約形を用いることにより、この問題は特に錯綜したものになる。それは、第二の演算子で活用される根の問題についても同様であって、表現記号Ｓpが分かった上でＳの表現記号を見いだすというのは、実際には、実現不可能な演算である。
【００２６】
また、組紐の表現記号の同値性を検証する演算は、前記組紐の表現記号の被約形、あるいは前記組紐に基づいて計算された組紐の表現記号の被約形を用いて行えば、それだけ早くできることになる。そのような被約形は、一つの組紐の表現記号を、その同一の組紐の（場合によっては同じになるかも知れない）もう一つの他の表現記号に変換する関数なのであるが、その利点は、該被約形から実際に、二つの組紐が同等なのかどうかという、あながち自明とも決めつけられない問題を、前記組紐の表現記号に基づいて解くのに効率的な方法が得られるということである。
【００２７】
被約形ＦＲを特徴づける事実は、単位元組紐Ｅの表現記号が何であれ、それを自明の（つまりは中身のない）ｅという記号で示される表現記号に、該被約形が変換するということである。しかしながら、同一の組紐の二つの表現記号が必ずしも同一の被約形を有するとは限らない。それは、Ｐ．Ｄｅｈｏｒｎｏｙ，Ａ  Ｆａｓｔ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｃｏｍｐａｒｉｎｇ  Ｂｒａｉｄｓ，  Ａｄｖａｎｃｅｓ  ｉｎ  Ｍａｔｈｅｍａｔｉｃｓ，ｎ°１２５，ｐｐ．２００−２３５，１９９７で展開される被約形についても言えることである。組紐ＵとＶの二つの表現記号ｕとｖが同値であるかどうかを知るためには、組紐ＵＶ-1の表現記号であるｕｖ-1の被約形を計算する。事実、それは結局のところ、ｕとｖが同値である、あるいはｕｖ-1が自明の組紐Ｅを表現すると言うのと同じことになる。そういうわけで、ＦＲ（ｕｖ-1）＝ｅであれば、しかも、そうでさえあれば、ｕとｖは同値である。それに代わるものとしては、ｕｖ-1の代わりにｕ-1ｖを用いてもよい。
【００２８】
被約形の特殊なケースは、正規形から成る。正規形ＦＮは、同一の組紐の任意の二つの表現記号に、その組紐の同一の表現記号を関連づける被約形である。言葉を換えていうと、組紐の二つの表現記号ｕとｖは、それらが同一の正規形ＦＮ（ｕ）＝ＦＮ（ｖ）を持っていれば、そして、持ってさえいれば、同値である。そのような正規形ＦＮを規定する方法は幾つもあるが、それは現行技術において記述されているところであり、特にＤ．Ｅｐｓｔｅｉｎ  ｅｔ  ａｌ．，  Ｗｏｒｄ  Ｐｒｏｃｅｓｓｉｎｇ  ｉｎ  Ｇｒｏｕｐｓ，  Ｊｏｎｅｓ  ａｎｄ  Ｂａｒｌｅｔｔ  Ｐｕｂｌｉｓｈｅｒｓ，Ｂｏｓｔｏｎ，１９８８に述べられている。特に上記に述べられた組紐群の表現が「代わりの選択肢」である場合には、効率的に計算可能な正規形も幾つかある。その場合には、組紐の表現記号は正規形の計算に特に適している。
【００２９】
しかしながら、「標準的な」表現の場合には、被約形を用いることにより、より効率的なアルゴリズムの入手が可能になるが、これは、一つの被約形について必要とされる条件が正規形についてよりはきつくなくて、二つの同値の表現記号の被約形が必ずしも同一ではない一方で、正規形は必ず同一だという事実によるものである。そういうわけで、上記の被約形を計算するアルゴリズムは、「標準的な」表現の場合に正規形の計算を行う既知のアルゴリズムのどれよりも早い。そこで分かるのは、どのような表現を選ぶかに応じて、ある時は（典型的には「標準的な」表現での）ＦＲという記号で示される必ずしも正規ではないの被約形で、ある時は（特に「代わりの選択肢」としての表現における）ＦＮという記号で示される正規の被約形で、本発明による暗号通信方法を活用するのが好適になるということである。
【００３０】
申し添えることは、所定の組紐についての被約形が場合によっては同じものは二つとないようにならないことがあったとしても、その決定を左右するのが、例えば「通信相手のエンティティが真正なものであるかどうか」というような、二つの単語が同値かどうかということだけである場合には、それが短所にはならないということである。
【実施例】
【００３１】
本発明による暗号通信方法の応用例四つをこれから詳細にわたって説明するが、それは限定的なものではなく、すべて認証プロトコールについてのものである。
【００３２】
同様に、必ずしも不可欠というわけではないが、既に上記で見たように、必ずしも正規形ではない被約形ＦＲを、該被約形が本発明のより望ましい実施態様であることを踏まえた上で、体系的に使用していく。
【００３３】
第一の認証プロトコールは、ｎ＝ｐ＋ｑ本の糸の組紐の群Ｇ１と共役問題とを作用させるものである。更に詳細に言うと、ある特殊なタイプの二つの組紐を想定しているのである。二つの組紐のうちの一つには、左の糸がｐ本しか使われておらず、「標準的な」表現でコード化が可能であるが、その際に用いるのはｎ＝ｐ＋ｑ文字のアルファベットの中の最初のｐ−１個の文字とそれらを逆さまにしたものとであり、二つの組紐のうちの他のもう一つには、右の糸がｑ本しか使われておらず、そしてそれゆえに、「標準的な」表現でコード化が可能であるが、その際に用いるのはそのアルファベットの中の終わりからｑ−１個の文字とそれらを逆さまにしたものとである。そのような二つの組紐の特徴は、一般の場合とは逆に、互いに入れ替わるということである。
【００３４】
証明者Ａの秘密鍵は、左の糸がｐ本の組紐Ｓの表現記号ｓである。検証者Ｂにより用いられる証明者Ａの公開鍵は、群Ｇ１の中から選ばれた組紐Ｗの表現記号ｗと、組紐Ｖ＝Ｔ（Ｓ）＝ＳＷＳ-1の表現記号ｖとから成る一つのペア（ｖ，ｗ）である。
【００３５】
検証者Ｂによって証明者Ａの認証を行うのは、以下のように、二つのやりとりで進められていく：
１．表現記号ｚを選ぶことにより、右の糸がｑ本の組紐ＺをＢが選ぶ。その場合、Ｂが保持する表現記号は組紐Ｃ＝ＺＷＺ-1の表現記号であり、ｚｗｚ-1という記号が付けられる。ＢはＣの表現記号ｃ＝Ｆ１（ｚｗｚ-1）を計算し、ｃをＡに送る。
２．Ａは組紐ＳＣＳ-1の表現記号ｙ＝Ｆ２（ｓｃｓ-1）を計算し、ｙをＢに送る。Ｂは、（場合によっては正規にもなる）被約形ＦＲを用いて、ｙ〜ｚｖｚ-1の同値性を検証する。
【００３６】
ｙがｚｖｚ-1と同値であるという事実は、ＳとＺが互いに入れ替わるということに由来するものである。事実、ｙは組紐ＳＣＳ-1を表現しており、それはつまり、
Ｓ（ＺＷＺ-1）Ｓ-1＝（ＳＺ）Ｗ（Ｚ-1Ｓ-1）＝（ＺＳ）Ｗ（Ｓ-1Ｚ-1）＝Ｚ（ＳＷＳ-1）Ｚ-1＝ＺＶＺ-1であり、ｚｖｚ-1によっても表現されるということである。
【００３７】
手順２において公式化された同値性の検証は、他の方法ではできないというわけではないが、等式ＦＲ（ｙｚｖ-1ｚ-1）＝ｅを、あるいは、正規形を用いる場合はＦＮ（ｙ）＝ＦＮ（ｚｖｚ-1）を検証することにより、行うことが可能である。
【００３８】
関数Ｆ１とＦ２は、一つの組紐の一つの表現記号に、その同一の組紐の一つの表現記号を結合させる関数である。「標準的な」表現の場合には、Ｆ１とＦ２は被約形となりうるが、必ずしもそうでなければならないということもない。それらは典型的には、被約形となるが、一般的には、同値性の検証に用いられるものとは別のものである。代わりの選択肢としての表現においては、Ｆ１とＦ２について正規形ＦＮを取る。
【００３９】
また、Ｗについては純粋組紐を選ぶのが望ましい。
【００４０】
このプロトコールの変化形は、容易に特定されることができる。特に、ｖについては組紐Ｔ’（Ｓ）＝Ｓ-1ＷＳの表現記号を選ぶことができ、そして、その結果、プロトコールの残りを変更することができる。あるいは更に、Ｓについては、右のｑ本の糸について一つの組紐を、そしてＺについては左のｐ本の糸について一つの組紐を選ぶことができる。
【００４１】
第二の認証プロトコールは、ｎ本の糸の組紐群Ｇ２と共役問題とを作用させるものである。それは、やりとりが３つある基礎プロトコールをｋ回、繰り返すというものであり、Ａの秘密を知らないけれども、Ａとして認識されようと試みる詐称者がもし発生しても、そのプロトコールは、それ単独に属するものとしては、そのような詐称者、つまりエンティティＣを検出する機会を二回のうち一回しか提供しないというものである。ｋ回の繰り返しの後、詐称者が検出されずにいられる機会は２kのうちの一回だけしかない。このプロトコールはゼロ知識（≪ｚｅｒｏ−ｋｎｏｗｌｅｄｇｅ≫）プロトコールの範疇に属するものである。
【００４２】
証明者Ａの秘密鍵は、群Ｇ２の組紐Ｓの表現記号ｓである。検証者Ｂによって用いられる証明者Ａの公開鍵は、群Ｇ２の中から選ばれた組紐Ｗの表現記号ｗと、組紐Ｖ＝Ｔ（Ｓ）＝ＳＷＳ-1の表現記号ｖとから成る一つのペア（ｖ，ｗ）である。
【００４３】
検証者Ｂによって証明者Ａの認証を行うのは、以下のように、ｋ回繰り返される三つのやりとりで進められていく：
１．Ａは、表現記号ｒを選ぶことにより、組紐Ｒを選ぶ。それゆえ、Ａが保持する表現記号ｒｗｒ-1は組紐Ｘ＝ＲＷＲ-1の表現記号である。ＡはＸの表現記号ｘ＝Ｆ１（ｒｗｒ-1）を計算し、ｘをＢに送る。
２．Ｂは一つのビットｃを無作為に抽出して、ｃをＡに送る。
３ａ．ｃ＝０の場合には、Ａはｙ＝ｒを設定し、ｙをＢに送る。Ｂは、（場合によっては正規にもなる）被約形ＦＲを用いて、ｙ〜ｙｗｙ-1の同値性を検証する。
３ｂ．ｃ＝１の場合には、Ａは組紐ＲＳ-1の表現記号ｙ＝Ｆ２（ｒｓ-1）を計算し、ｙをＢに送る。Ｂはそこで、（場合によっては正規にもなる）被約形ＦＲを用いて、ｘ〜ｙｖｙ-1の同値性を検証する。
【００４４】
事実、ｃ＝１の場合に、ｘとｙｖｙ-1とが同値になるのは、ｙｖｙ-1が組紐（ＲＳ-1）ＳＷＳ-1（ＳＲ-1）＝Ｒ（Ｓ-1Ｓ）Ｗ（Ｓ-1Ｓ）Ｒ-1＝ＲＷＲ-1を表現していて、そのｘは表現記号だからである。
【００４５】
手順３ａにおいて公式化された同値性の検証は、他の方法ではできないというわけではないが、等式ＦＲ（ｘｙｗ-1ｙ-1）＝ｅを、あるいは、正規形を用いる場合はＦＮ（ｘ）＝ＦＮ（ｙｗｙ-1）とを検証することにより、行うことが可能である。
【００４６】
手順３ｂにおいて公式化された同値性の検証は、他の方法ではできないというわけではないが、等式ＦＲ（ｘｙｖ-1ｙ-1）＝ｅの、あるいは、正規形を用いる場合はＦＮ（ｘ）＝ＦＮ（ｙｖｙ-1）を検証することにより、行うことが可能である。
【００４７】
関数Ｆ１とＦ２は、一つの組紐の一つの表現記号に、その同一の組紐の一つの表現記号を結合させる関数である。「標準的な」表現の場合には、Ｆ１とＦ２は被約形となりうるが、必ずしもそうでなければならないということもない。それらは典型的には、被約形となるが、一般的には、同値性の検証に用いられるものとは別のものである。代わりの選択肢としての表現においては、Ｆ１とＦ２については正規形ＦＮを取るのが望ましい。
【００４８】
このプロトコールの変化形は、容易に特定されることができる。特に、ｖについては組紐Ｔ’（Ｓ）＝Ｓ-1ＷＳの表現記号を選ぶことができ、そして、その結果、プロトコールの残りを変更することができる。
【００４９】
第三の認証プロトコールは、ｎ本の糸の組紐群Ｇ３と共役問題とを作用させるものである。前述のもののように、このプロトコールはゼロ知識プロトコールの範疇に属するものであり、三つのやりとりをｋ回繰り返す。
【００５０】
証明者Ａの秘密鍵は、群Ｇ３の組紐Ｓの表現記号ｓである。検証者Ｂによって用いられる証明者Ａの公開鍵は、群Ｇ３の中から選ばれた組紐Ｗの表現記号ｗと、組紐Ｖ＝Ｔ（Ｓ）＝ＳＷＳ-1の表現記号ｖとから成る一つのペア（ｖ，ｗ）である。
【００５１】
検証者Ｂによって証明者Ａの認証を行うのは、以下のように、ｋ回繰り返される三つのやりとりで進められていく。
１．Ａは、表現記号ｒを選ぶことにより、組紐Ｒを選ぶ。それゆえ、Ａが保持する表現記号は、組紐Ｘ＝ＲＷＲ-1の表現記号ｒｗｒ-1並びに組紐Ｘ’＝ＲＶＲ-1の表現記号ｒｖｒ-1である。ＡはＸの表現記号ｘ＝Ｆ１（ｒｗｒ-1）、Ｘ’の表現記号ｘ’＝Ｆ’１（ｒｖｒ-1）を計算し、ｘとｘ’をＢに送る。
２．Ｂは一つのビットｃを無作為に抽出して、ｃをＡに送る。
３ａ．ｃ＝０の場合には、Ａはｙ＝ｒを設定し、ｙをＢに送る。Ｂは、（場合によっては正規にもなる）被約形ＦＲを用いて、ｘ〜ｙｗｙ-1とｘ’〜ｙｖｙ-1の同値性を検証する。
３ｂ．ｃ＝１の場合には、Ａは組紐ＲＳＲ-1の表現記号ｙ＝Ｆ２（ｒｓｒ-1）を計算し、ｙをＢに送る。Ｂはそこで、（場合によっては正規にもなる）被約形ＦＲを用いて、ｘ’〜ｙｘｙ-1の同値性を検証する。
【００５２】
事実、ｃ＝１の場合に、ｘ’とｙｘｙ-1とが同値になるのは、ｙｘｙ-1が組紐（ＲＳＲ-1）ＲＷＲ-1（ＲＳ-1Ｒ-1）＝ＲＳ（Ｒ-1Ｒ）Ｗ（Ｒ-1Ｒ）Ｓ-1Ｒ-1＝Ｒ（ＳＷＳ-1）Ｒ-1＝ＲＶＲ-1を表現していて、そのｘ’は表現記号だからである。
【００５３】
手順３ａにおいて公式化された同値性の検証は、他の方法ではできないというわけではないが、等式ＦＲ（ｘｙｗ-1ｙ-1）＝ｅとＦＲ（ｘ’ｙｖ-1ｙ-1）＝ｅの、あるいは、正規形を用いる場合はＦＮ（ｘ）＝ＦＮ（ｙｗｙ-1）とＦＮ（ｘ）＝ＦＮ（ｙｖｙ-1）とを検証することにより、行うことが可能である。
【００５４】
手順３ｂにおいて公式化された同値性の検証は、他の方法ではできないというわけではないが、等式ＦＲ（ｘ’ｙｘ-1ｙ-1）＝ｅの、あるいは、正規形を用いる場合はＦＮ（ｘ’）＝ＦＮ（ｙｘｙ-1）を検証することにより、行うことが可能である。
【００５５】
関数Ｆ１、Ｆ’１とＦ２は、一つの組紐の一つの表現記号に、その同一の組紐の一つの表現記号を結合させる関数である。「標準的な」表現の場合には、Ｆ１、Ｆ’１とＦ２は被約形となりうるが、必ずしもそうでなければならないということもない。それらは典型的には、被約形となるが、一般的には、同値性の検証に用いられるものとは別のものである。代わりの選択肢としての表現においては、Ｆ１とＦ’１、そしてＦ２についてはできれば正規形ＦＮを取るのが望ましい。
【００５６】
注目すべきは、検証で用いられる特性は、その共役が自己分配的なものだという事実である。ここで思い出されるのは、ｕ*（ｖ*ｗ）＝（ｕ*ｖ）*（ｕ*ｗ）という関係がある場合には、演算*は自己分配的なものだと言われるということである。そういうわけで、このプロトコールでは、共役演算の代わりに、もう一つ別の自己分配演算を行うことも可能である。
【００５７】
第四の認証プロトコールは、ｎ本の糸の組紐群Ｇ４と、同時に、ｐ乗根の問題と共役問題とを作用させるものである。前述の二つのものの意味で、このプロトコールはゼロ知識のプロトコールの範疇に属するものである。
【００５８】
証明者Ａの秘密鍵は、群Ｇ４の組紐Ｓの表現記号ｓである。検証者Ｂによって用いられる証明者Ａの公開鍵は、組紐Ｖ＝Ｓp＝Ｓ．．．Ｓ、ｐ回反復したＳの積の表現記号ｖであるが、但し、ｐは２以上の小さな整数である。
【００５９】
検証者Ｂによって証明者Ａの認証を行うのは、以下のように、ｋ回繰り返される三つのやりとりで進められていく。
１．Ａは、表現記号ｒを選ぶことにより、組紐Ｒを選ぶ。それゆえ、Ａが保持する表現記号は、組紐Ｘ＝ＲＶＲ-1の表現記号ｒｖｒ-1である。ＡはＸの表現記号ｘ＝Ｆ１（ｒｖｒ-1）を計算し、ｘをＢに送る。
２．Ｂは一つのビットｃを無作為に抽出して、ｃをＡに送る。
３ａ．ｃ＝０の場合には、Ａはｙ＝ｒを設定し、ｙをＢに送る。Ｂは、（場合によっては正規にもなる）被約形ＦＲを用いて、ｘ〜ｙｖｙ-1の同値性を検証する。
３ｂ．ｃ＝１の場合には、Ａは組紐ＲＳＲ-1の表現記号ｙ＝Ｆ２（ｒｓｒ-1）を計算し、ｙをＢに送る。Ｂはそこで、（場合によっては正規にもなる）被約形ＦＲを用いて、ｘ〜ｙpの同値性を検証する。
【００６０】
事実、ｃ＝１の場合に、ｘとｙpとが同値になるのは、ｙpが組紐（ＲＳＲ-1）p＝ＲＳpＲ-1＝ＲＶＲ-1を表現していて、そのｘは表現記号だからである。
【００６１】
手順３ａにおいて公式化された同値性の検証は、他の方法ではできないというわけではないが、等式ＦＲ（ｘｙｖ-1ｙ-1）＝ｅ、あるいは、正規形を用いる場合はＦＮ（ｘ）＝ＦＮ（ｙｖｙ-1）を検証することにより、行うことが可能である。
【００６２】
手順３ｂにおいて公式化された同値性の検証は、他の方法ではできないというわけではないが、（ｙ-1をｐ回反復する）等式ＦＲ（ｖｙ-1．．．ｙ-1）＝ｅの、あるいは、正規形を用いる場合は（ｙをｐ回反復する）ＦＮ（ｖ）＝ＦＮ（ｙ．．．ｙ）を検証することにより、行うことが可能である。
【００６３】
関数Ｆ１とＦ２は、一つの組紐の一つの表現記号に、その同一の組紐の一つの表現記号を結合させる関数である。「標準的な」表現の場合には、Ｆ１とＦ２は被約形となりうるが、必ずしもそうでなければならないということもない。それらは典型的には、被約形となるが、一般的には、同値性の検証に用いられるものとは別のものである。代わりの選択肢としての表現においては、Ｆ１とＦ２については、正規形ＦＮを取るのが望ましい。
【国際公開パンフレット】
2005506585.tif 000002
2005506585.tif 000003
2005506585.tif 000004
2005506585.tif 000005
2005506585.tif 000006
2005506585.tif 000007
2005506585.tif 000008
2005506585.tif 000009
2005506585.tif 000010
2005506585.tif 000011
2005506585.tif 000012
2005506585.tif 000013
2005506585.tif 000014
2005506585.tif 000015
2005506585.tif 000016
2005506585.tif 000017
2005506585.tif 000018
【国際調査報告】
2005506585.tif 000019
2005506585.tif 000020
2005506585.tif 000021
2005506585.tif 000022