(57)【要約】【課題】計算量的に安全な鍵共有及びデータ伝送を、簡単な計算で高速に行うこと。【解決手段】第１サイトと第２サイトとの間で共通のデータを暗号学的に共有する。行列Ｘ、Ｙが正則行列であって、行列Ｃ、Ｄが非正則行列であるとして、第１サイトにおける第１装置は、第２サイトにおける第２装置に「ＸＣ」を送信し、他方、第２装置は「ＤＹ」を第１装置に送信する。第１装置は「ＣＤＹ」を生成してこれを第２装置に送信し、他方、第２装置は「ＸＣＤ」を生成して第１装置に送信する。第１装置は「Ｘ」の逆行列を用いて「ＣＤ」を求め、また、第２装置は「Ｙ」の逆行列を用いて「ＣＤ」を求める。非正則行列ＣとＤとの積を、共通のデータとして用いることができる。【選択図】図１
2008228261.tif 000002
【特許請求の範囲】
【請求項１】
第１サイトと第２サイトとの間で共通のデータを暗号学的に共有する方法において、
第１サイトから第２サイトに対して、第１非正則行列と第１正則行列との積を含む第１データを送信し、また、第２サイトから第１サイトに対して、第２非正則行列と第２正則行列との積を含む第２データを送信するステップと、
第２サイトから第１サイトに対して、前記第１データと第２非正則行列との積を含む第３データを送信し、また、第１サイトから第２サイトに対して、第１非正則行列と前記第２データとの積を含む第１データを送信するステップと、
第１サイトにおいて前記第１正則行列の逆行列を用いた演算によって前記第１非正則行列と前記第２非正則行列との積として前記共通のデータを生成し、また、第２サイトにおいて前記第２正則行列の逆行列を用いた演算によって前記第１非正則行列と前記第２非正則行列との積として前記共通のデータを生成するステップと、を有することを特徴とする方法。
【請求項２】
共通のデータを暗号学的に共有するための装置において、
第１非正則行列と第１正則行列との積を含む第１データを送信する出力ポートと、
前記第１データと第２非正則行列との積を含む第２データを受信する入力ポートと、
前記第１正則行列の逆行列を用いた演算によって、前記第１非正則行列と前記第２非正則行列との積として前記共通のデータを生成するプロセッサと、を備えたことを特徴とする装置。
【請求項３】
第１サイトから第２サイトにデータを暗号学的に伝送する方法において、
送信対象のデータから生成した非正則行列に第１正則行列を掛けて第１データを計算して第１サイトから第２サイトに送信するステップと、
第２サイトにて前記第１データに第２正則行列を掛けて第２データを計算して第１サイトに送信するステップと、
第１サイトにて前記第２データに前記第１正則行列の逆行列を掛けて第３データを計算して第２サイトに送信するステップと、
第２サイトにて前記第３データに前記第２正則行列の逆行列を掛けて前記非正則行列を求めるステップと、を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は暗号システムに関する。詳しくは、秘密鍵のような共通のデータを互いに暗号学的に共有し、データを伝送するための方法及び装置に関する。
【背景技術】
【０００２】  多くの暗号システムが様々な分野で使用されている。それらには対称暗号システムと非対称暗号システムが挙げられる。前者では、秘密鍵と称する単一のキーを用いて、情報を暗号化し復号化する。後者では、暗号化用の公開鍵と、復号化用の秘匿鍵を使用する。【０００３】  現在利用可能な暗号化アルゴリズムには、ＤＥＳ、ＩＤＥＡ、ＲＣ４などがある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】  ところで、全ての対称暗号システムは、原理的に秘密鍵の共有という問題を抱えている。非対称暗号は、この問題を解決したが、これには暗号化及び復号化の計算量の増加という不利益を伴う。【０００５】  従って、計算量的に安全な鍵共有を、暗号化及び復号化において簡単な計算で高速に行えるようにした暗号システムの提供が望まれている。
【課題を解決するための手段】
【０００６】  本発明に係る方法及び装置は、秘密鍵などの共通データを共有したりデータを暗号学的に伝送するものである。【０００７】  この暗号学的な処理は、以下のステップを含む。
第１サイトの場合、
（ａ１）第１非正則行列と第１正則行列を含むデータを送信するステップ。
（ａ２）第２非正則行列、第１非正則行列、第１正則行列を含むデータを受信するステップ。
（ａ３）第１正則行列の逆行列を用いた演算によって、第１非正則行列と第２非正則行列との積として共通データを生成するステップ。
また、第２サイトの場合、
（ｂ１）第２非正則行列と第２正則行列を含むデータを送信するステップ。
（ｂ２）第２正則行列、第２非正則行列、第１非正則行列を含むデータを受信するステップ。
（ｂ３）第２正則行列の逆行列を用いた演算によって、第１非正則行列と第２非正則行列との積として共通データを生成するステップ。【０００８】  本発明のある態様では、第１データが第１サイトから第２サイトへ伝送され、第２データが第２サイトから第１サイトへ伝送される。前記第１データが第１非正則行列と第１正則行列との積を含み、前記第２データが第２非正則行列と第２正則行列との積を含むことを前提として、第１サイトと第２サイトとの間で共通のデータを暗号学的に共有する方法が以下のステップを有する。
・第２サイトにて前記第１データに前記第２非正則行列を掛けて第３データを得るステップ。
・第１サイトにて前記第２データに前記第１非正則行列を掛けて第４データを得るステップ。
・第１サイトにて前記第３データに対して前記第１正則行列の逆行列を掛けて、前記第１非正則行列と前記第２非正則行列との積として共通のデータを得るステップ。
・第２サイトにて前記第４データに対して前記第２正則行列の逆行列を掛けて、前記第１非正則行列と前記第２非正則行列との積として前記共通のデータを得るステップ。【０００９】  また、本発明の別の態様によれば、共通のデータ又は秘密鍵を暗号学的に共有するための装置が、以下の構成要素を備える。
・第１非正則行列と第１正則行列との積を含む第１データを送信する出力ポート。
・前記第１データと第２非正則行列との積を含む第２データを受信する入力ポート。
・前記第１正則行列の逆行列を用いた演算によって、前記第１非正則行列と前記第２非正則行列との積として前記共通のデータ又は前記秘密鍵を生成するプロセッサ。【００１０】  本発明の別の態様によれば、第１サイトから第２サイトにデータを暗号学的に伝送する方法において、以下のステップを含む。
・送信対象のデータから生成した非正則行列と第１正則行列を掛けて第１データを計算して第１サイトから第２サイトに送信するステップ。
・第２サイトにて前記第１データに第２正則行列を掛けて第２データを計算して第１サイトに送信するステップ。
・第１サイトにて前記第２データに前記第１正則行列の逆行列を掛けて第３データを計算して第２サイトに送信するステップ。
・第２サイトにて前記第３データに前記第２正則行列の逆行列を掛けて前記非正則行列を求めるステップ。【００１１】  従って、本発明によれば、行列演算を用いた高速で簡単な処理を通じて、第１サイトと第２サイトとの間で秘密鍵などの共通のデータを計算量的に安全に共有し、またデータを安全に伝送することができる。
【発明を実施するための最良の形態】
【００１２】  本発明の実施形態を、データ共有及びデータ伝送方法並びに装置の枠内で説明する。【００１３】  図１は、本発明の実施形態による装置１、２を示している。【００１４】  装置１は、入力ポート１ａと、出力ポート１ｂと、プロセッサ１ｃと、メモリ１ｄと、を含み、また、装置２は、入力ポート２ａと、出力ポート２ｂと、プロセッサ２ｃと、メモリ２ｄと、を含む。【００１５】  ２つの装置１、２が互いにネットワークで、例えば、ローカルエリアネットワークや、広域ネットワーク、インターネットなどで通信する場合に、入力ポート１ａ、２ａの一方は、これに対応する出力ポート１ｂ、２ｂの一方からデータを受信する。【００１６】  入力ポート１ａ、２ａは、データを受信するように構成されて、プロセッサ１ｃ、２ｃにそれぞれ接続されている。これに代わって、他の適用においては、これらの入力ポートを、データ記憶装置や読み取り可能な媒体からデータを読み出すための入力バッファに置換することができる。【００１７】  出力ポート１ｂ、２ｂは、データを出力するように構成されて、プロセッサ１ｃ、２ｃにそれぞれ接続されている。これに代わって、他の適用においては、これらの出力ポートを、データ記憶装置や読み取り可能な媒体にデータを書き込むための出力バッファに置換することができる。【００１８】  装置１と装置２が互いに通信し合う場合に、入力ポート１ａ、２ａは、出力ポート１ｂ、２ｂに対してそれぞれに接続される。つまり、入力ポート１ａが出力ポート２ｂに対応し、入力ポート２ａが出力ポート１ｂに対応する。【００１９】  図２は、本発明の例示的な実施形態による、共通のデータを共有するための方法について示している。本方法は、ネットワークなどを通して装置１と装置２との間で、行列演算に基づいて実行される。【００２０】  図２を参照すると、第１ユーザ「Ａ」は第１サイトにおいて装置１を使用可能であり、他方、第２ユーザ「Ｂ」は第２サイトにおいて装置２を使用可能である。【００２１】  第１サイトでは、装置１が、装置２に対して、行列データ「ＸＣ」を送信する（図２の［Ｋ１］参照）。ここで、「Ｘ」は第１正則行列であり、「Ｃ」は第１非正則行列である。なお、「非正則」という用語は、対象となる行列が逆行列をもたないこと、又はその行列式がゼロであることを意味する。【００２２】  装置２が非正則行列である「ＸＣ」を受信した場合に、装置２のプロセッサ２ｃは、「ＸＣ」にＤを掛けた結果である、「ＸＣＤ」の行列データを生成する。ここで、「Ｄ」は第２非正則行列である。装置２は、装置１に対して行列データ「ＸＣＤ」を送信する。【００２３】  装置１は、行列データ「ＸＣＤ」を受信し、そのプロセッサ１ｃが「ＸＣＤ」に対して左側から「Ｘ＿ｉｎｖ」を掛ける。この「Ｘ＿ｉｎｖ」は、第１正則行列「Ｘ」の逆行列である。これにより、「Ｘ＿ｉｎｖ（ＸＣＤ）＝ＩＣＤ＝ＣＤ」が得られる（図２の［Ｋ３］参照）。ここで、「Ｉ」は単位行列である。【００２４】  従って、２つの非正則行列「Ｃ」と「Ｄ」との積、つまり、「ＣＤ」がこのような簡単な行列演算により秘密鍵として得られることになる。【００２５】  他方、装置２は、装置１に対して、行列データ「ＤＹ」を送��する（図２の［Ｍ１］参照）。ここで、「Ｙ」は第２正則行列であり、「Ｄ」は第２非正則行列である。【００２６】  装置１が非正則行列である「ＤＹ」を受信した場合に、装置１のプロセッサ１ｃは、「ＤＹ」に左側からＣを掛けた結果である、「ＣＤＹ」の行列データを生成する。そして、装置１は、装置２に対して行列データ「ＣＤＹ」を送信する。【００２７】  装置２は、行列データ「ＣＤＹ」を受信し、そのプロセッサ２ｃが「ＣＤＹ」に対して右側から「Ｙ＿ｉｎｖ」を掛ける。この「Ｙ＿ｉｎｖ」は、第２正則行列「Ｙ」の逆行列である。これにより、「（ＣＤＹ）Ｙ＿ｉｎｖ＝ＣＤＩ＝ＣＤ」が得られる（図２の［Ｍ３］参照）。ここで、「Ｉ」は単位行列である。【００２８】  従って、２つの非正則行列「Ｃ」と「Ｄ」との積、つまり、「ＣＤ」がこのような簡単な行列演算により、第２サイトで秘密鍵として得られることになる。【００２９】  上記の手順をまとめると以下のようになる。
第１サイトの場合、
（ａ１）ユーザＡが「ＸＣ」をユーザＢに送る。
（ａ２）ユーザＢが「ＸＣ」に「Ｄ」を右から掛け、「ＸＣＤ」をユーザＡに送る。
（ａ３）ユーザＡが「ＸＣＤ」に「Ｘ＿ｉｎｖ」を左から掛け「ＣＤ」を秘密鍵として得る。【００３０】  第２サイトの場合、
（ｂ１）ユーザＢが「ＤＹ」をユーザＡに送る。
（ｂ２）ユーザＡが「ＤＹ」に「Ｃ」を左から掛け、「ＣＤＹ」をユーザＢに送る。
（ｂ３）ユーザＢが「ＣＤＹ」に「Ｙ＿ｉｎｖ」を右から掛け「ＣＤ」を秘密鍵として得る。【００３１】  従って、ユーザＡとユーザＢは、共通のデータ「ＣＤ」を秘密鍵として共有することができる。この手続は、二人以上で共通のデータを共有する場合において、容易に拡張することができる。【００３２】  「ＸＣ」と「ＸＣＤ」を取得した第三者は、行列「ＸＣＤ」から「Ｘ」と「ＣＤ」を分離することが困難であり、また、「ＤＹ」と「ＣＤＹ」を取得した第三者は、行列「ＣＤＹ」から「Ｙ」と「ＣＤ」を分離することが困難である。その理由は、「Ｃ」、「Ｄ」がともに非正則行列であり、つまり、「Ｃ」と「Ｄ」は多数の可能な値をもつことができ、「Ｃ」と「Ｄ」との組み合わせの数が膨大であることによる。【００３３】  こうして共有されたキー又はデータは、従来の対称暗号システムにおいて秘密鍵として用いることができ、また、非対称暗号システムにおいて、文書やメッセージ、個人情報などの認証に使用することができる。【００３４】  なお、ユーザＡが「ＣＸ」を有する場合には、以下の手順を踏む。
（ｂ１）ユーザＢが「ＤＹ」をユーザＡに送る。
（ｂ２）ユーザＡが「ＤＹ」に「Ｘ＿ｉｎｖ」を左から掛け「Ｘ＿ｉｎｖＤＹ」をユーザＢに送る。
（ｂ３）ユーザＢが「Ｘ＿ｉｎｖＤＹ」に「ＣＸ」を左から掛け、「Ｙ＿ｉｎｖ」を右から掛け、「ＣＸ（Ｘ＿ｉｎｖＤＹ）Ｙ＿ｉｎｖ＝ＣＤ」を秘密鍵として得る。【００３５】  次に、本発明による暗号通信方法について説明する。ここで、送信対象となるデータから生成される非正則行列を「Ｍ」と記し、ユーザＡの正則行列を「Ｘ」、ユーザＢの正則行列を「Ｙ」と記す。そして、認証用の非正則行列を「Ｅ」と記す。【００３６】  非正則行列「Ｍ」をユーザＡからユーザＢへの秘密裏に伝送する場合の手順は、以下のようになる。
（ｃ１）「ＭＸ」を計算し、ユーザＡが「ＭＸ」をユーザＢに送る。
（ｃ２）ユーザＢが「ＭＸ」に「Ｙ」を左から掛け「ＹＭＸ」を求めてユーザＡに送る。
（ｃ３）ユーザＡが「ＹＭＸ」にＸの逆行列「Ｘ＿ｉｎｖ」を右から掛けた結果である「ＹＭ」をユーザＢに送る。
（ｃ４）ユーザＢが「ＹＭ」に左からＹの逆行列「Ｙ＿ｉｎｖ」を掛ける。その結果、「Ｙ＿ｉｎｖ（ＹＭ）＝ＩＭ＝Ｍ」が得られる。【００３７】  尚、ユーザＡ側での、ユーザＢからのデータ認証処理は、事前に取得した「Ｅ」、「ＥＹ」をもとにユーザＡが上記（ｃ３）で「Ｅ（ＹＣＸ）」と「ＥＹ（ＣＸ）」を計算し、両者が一致するかどうかを調べればよい（一致で認証成功、不一致で認証失敗）。
【図面の簡単な説明】
【００３８】
【図１】本発明にかかる装置構成例を示すブロック図。
【図２】共通データを共有するための方法を示す説明図。
【符号の説明】
【００３９】  １、２  装置  １ａ、２ａ  入力ポート  １ｂ、２ｂ  出力ポート  １ｃ、２ｃ  プロセッサ
【図１】
2008228261.tif 000003
【図２】
2008228261.tif 000004