説明

共通データを暗号学的に共有し伝送する方法及び装置

【課題】計算量的に安全な鍵共有及びデータ伝送を、簡単な計算で高速に行うこと。
【解決手段】第1サイトと第2サイトとの間で共通のデータを暗号学的に共有する。行列X、Yが正則行列であって、行列C、Dが非正則行列であるとして、第1サイトにおける第1装置は、第2サイトにおける第2装置に「XC」を送信し、他方、第2装置は「DY」を第1装置に送信する。第1装置は「CDY」を生成してこれを第2装置に送信し、他方、第2装置は「XCD」を生成して第1装置に送信する。第1装置は「X」の逆行列を用いて「CD」を求め、また、第2装置は「Y」の逆行列を用いて「CD」を求める。非正則行列CとDとの積を、共通のデータとして用いることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は暗号システムに関する。詳しくは、秘密鍵のような共通のデータを互いに暗号学的に共有し、データを伝送するための方法及び装置に関する。
【背景技術】
【0002】
多くの暗号システムが様々な分野で使用されている。それらには対称暗号システムと非対称暗号システムが挙げられる。前者では、秘密鍵と称する単一のキーを用いて、情報を暗号化し復号化する。後者では、暗号化用の公開鍵と、復号化用の秘匿鍵を使用する。
【0003】
現在利用可能な暗号化アルゴリズムには、DES、IDEA、RC4などがある。
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、全ての対称暗号システムは、原理的に秘密鍵の共有という問題を抱えている。非対称暗号は、この問題を解決したが、これには暗号化及び復号化の計算量の増加という不利益を伴う。
【0005】
従って、計算量的に安全な鍵共有を、暗号化及び復号化において簡単な計算で高速に行えるようにした暗号システムの提供が望まれている。
【課題を解決するための手段】
【0006】
本発明に係る方法及び装置は、秘密鍵などの共通データを共有したりデータを暗号学的に伝送するものである。
【0007】
この暗号学的な処理は、以下のステップを含む。
第1サイトの場合、
(a1)第1非正則行列と第1正則行列を含むデータを送信するステップ。
(a2)第2非正則行列、第1非正則行列、第1正則行列を含むデータを受信するステップ。
(a3)第1正則行列の逆行列を用いた演算によって、第1非正則行列と第2非正則行列との積として共通データを生成するステップ。
また、第2サイトの場合、
(b1)第2非正則行列と第2正則行列を含むデータを送信するステップ。
(b2)第2正則行列、第2非正則行列、第1非正則行列を含むデータを受信するステップ。
(b3)第2正則行列の逆行列を用いた演算によって、第1非正則行列と第2非正則行列との積として共通データを生成するステップ。
【0008】
本発明のある態様では、第1データが第1サイトから第2サイトへ伝送され、第2データが第2サイトから第1サイトへ伝送される。前記第1データが第1非正則行列と第1正則行列との積を含み、前記第2データが第2非正則行列と第2正則行列との積を含むことを前提として、第1サイトと第2サイトとの間で共通のデータを暗号学的に共有する方法が以下のステップを有する。
・第2サイトにて前記第1データに前記第2非正則行列を掛けて第3データを得るステップ。
・第1サイトにて前記第2データに前記第1非正則行列を掛けて第4データを得るステップ。
・第1サイトにて前記第3データに対して前記第1正則行列の逆行列を掛けて、前記第1非正則行列と前記第2非正則行列との積として共通のデータを得るステップ。
・第2サイトにて前記第4データに対して前記第2正則行列の逆行列を掛けて、前記第1非正則行列と前記第2非正則行列との積として前記共通のデータを得るステップ。
【0009】
また、本発明の別の態様によれば、共通のデータ又は秘密鍵を暗号学的に共有するための装置が、以下の構成要素を備える。
・第1非正則行列と第1正則行列との積を含む第1データを送信する出力ポート。
・前記第1データと第2非正則行列との積を含む第2データを受信する入力ポート。
・前記第1正則行列の逆行列を用いた演算によって、前記第1非正則行列と前記第2非正則行列との積として前記共通のデータ又は前記秘密鍵を生成するプロセッサ。
【0010】
本発明の別の態様によれば、第1サイトから第2サイトにデータを暗号学的に伝送する方法において、以下のステップを含む。
・送信対象のデータから生成した非正則行列と第1正則行列を掛けて第1データを計算して第1サイトから第2サイトに送信するステップ。
・第2サイトにて前記第1データに第2正則行列を掛けて第2データを計算して第1サイトに送信するステップ。
・第1サイトにて前記第2データに前記第1正則行列の逆行列を掛けて第3データを計算して第2サイトに送信するステップ。
・第2サイトにて前記第3データに前記第2正則行列の逆行列を掛けて前記非正則行列を求めるステップ。
【0011】
従って、本発明によれば、行列演算を用いた高速で簡単な処理を通じて、第1サイトと第2サイトとの間で秘密鍵などの共通のデータを計算量的に安全に共有し、またデータを安全に伝送することができる。
【発明を実施するための最良の形態】
【0012】
本発明の実施形態を、データ共有及びデータ伝送方法並びに装置の枠内で説明する。
【0013】
図1は、本発明の実施形態による装置1、2を示している。
【0014】
装置1は、入力ポート1aと、出力ポート1bと、プロセッサ1cと、メモリ1dと、を含み、また、装置2は、入力ポート2aと、出力ポート2bと、プロセッサ2cと、メモリ2dと、を含む。
【0015】
2つの装置1、2が互いにネットワークで、例えば、ローカルエリアネットワークや、広域ネットワーク、インターネットなどで通信する場合に、入力ポート1a、2aの一方は、これに対応する出力ポート1b、2bの一方からデータを受信する。
【0016】
入力ポート1a、2aは、データを受信するように構成されて、プロセッサ1c、2cにそれぞれ接続されている。これに代わって、他の適用においては、これらの入力ポートを、データ記憶装置や読み取り可能な媒体からデータを読み出すための入力バッファに置換することができる。
【0017】
出力ポート1b、2bは、データを出力するように構成されて、プロセッサ1c、2cにそれぞれ接続されている。これに代わって、他の適用においては、これらの出力ポートを、データ記憶装置や読み取り可能な媒体にデータを書き込むための出力バッファに置換することができる。
【0018】
装置1と装置2が互いに通信し合う場合に、入力ポート1a、2aは、出力ポート1b、2bに対してそれぞれに接続される。つまり、入力ポート1aが出力ポート2bに対応し、入力ポート2aが出力ポート1bに対応する。
【0019】
図2は、本発明の例示的な実施形態による、共通のデータを共有するための方法について示している。本方法は、ネットワークなどを通して装置1と装置2との間で、行列演算に基づいて実行される。
【0020】
図2を参照すると、第1ユーザ「A」は第1サイトにおいて装置1を使用可能であり、他方、第2ユーザ「B」は第2サイトにおいて装置2を使用可能である。
【0021】
第1サイトでは、装置1が、装置2に対して、行列データ「XC」を送信する(図2の[K1]参照)。ここで、「X」は第1正則行列であり、「C」は第1非正則行列である。なお、「非正則」という用語は、対象となる行列が逆行列をもたないこと、又はその行列式がゼロであることを意味する。
【0022】
装置2が非正則行列である「XC」を受信した場合に、装置2のプロセッサ2cは、「XC」にDを掛けた結果である、「XCD」の行列データを生成する。ここで、「D」は第2非正則行列である。装置2は、装置1に対して行列データ「XCD」を送信する。
【0023】
装置1は、行列データ「XCD」を受信し、そのプロセッサ1cが「XCD」に対して左側から「X_inv」を掛ける。この「X_inv」は、第1正則行列「X」の逆行列である。これにより、「X_inv(XCD)=ICD=CD」が得られる(図2の[K3]参照)。ここで、「I」は単位行列である。
【0024】
従って、2つの非正則行列「C」と「D」との積、つまり、「CD」がこのような簡単な行列演算により秘密鍵として得られることになる。
【0025】
他方、装置2は、装置1に対して、行列データ「DY」を送信する(図2の[M1]参照)。ここで、「Y」は第2正則行列であり、「D」は第2非正則行列である。
【0026】
装置1が非正則行列である「DY」を受信した場合に、装置1のプロセッサ1cは、「DY」に左側からCを掛けた結果である、「CDY」の行列データを生成する。そして、装置1は、装置2に対して行列データ「CDY」を送信する。
【0027】
装置2は、行列データ「CDY」を受信し、そのプロセッサ2cが「CDY」に対して右側から「Y_inv」を掛ける。この「Y_inv」は、第2正則行列「Y」の逆行列である。これにより、「(CDY)Y_inv=CDI=CD」が得られる(図2の[M3]参照)。ここで、「I」は単位行列である。
【0028】
従って、2つの非正則行列「C」と「D」との積、つまり、「CD」がこのような簡単な行列演算により、第2サイトで秘密鍵として得られることになる。
【0029】
上記の手順をまとめると以下のようになる。
第1サイトの場合、
(a1)ユーザAが「XC」をユーザBに送る。
(a2)ユーザBが「XC」に「D」を右から掛け、「XCD」をユーザAに送る。
(a3)ユーザAが「XCD」に「X_inv」を左から掛け「CD」を秘密鍵として得る。
【0030】
第2サイトの場合、
(b1)ユーザBが「DY」をユーザAに送る。
(b2)ユーザAが「DY」に「C」を左から掛け、「CDY」をユーザBに送る。
(b3)ユーザBが「CDY」に「Y_inv」を右から掛け「CD」を秘密鍵として得る。
【0031】
従って、ユーザAとユーザBは、共通のデータ「CD」を秘密鍵として共有することができる。この手続は、二人以上で共通のデータを共有する場合において、容易に拡張することができる。
【0032】
「XC」と「XCD」を取得した第三者は、行列「XCD」から「X」と「CD」を分離することが困難であり、また、「DY」と「CDY」を取得した第三者は、行列「CDY」から「Y」と「CD」を分離することが困難である。その理由は、「C」、「D」がともに非正則行列であり、つまり、「C」と「D」は多数の可能な値をもつことができ、「C」と「D」との組み合わせの数が膨大であることによる。
【0033】
こうして共有されたキー又はデータは、従来の対称暗号システムにおいて秘密鍵として用いることができ、また、非対称暗号システムにおいて、文書やメッセージ、個人情報などの認証に使用することができる。
【0034】
なお、ユーザAが「CX」を有する場合には、以下の手順を踏む。
(b1)ユーザBが「DY」をユーザAに送る。
(b2)ユーザAが「DY」に「X_inv」を左から掛け「X_invDY」をユーザBに送る。
(b3)ユーザBが「X_invDY」に「CX」を左から掛け、「Y_inv」を右から掛け、「CX(X_invDY)Y_inv=CD」を秘密鍵として得る。
【0035】
次に、本発明による暗号通信方法について説明する。ここで、送信対象となるデータから生成される非正則行列を「M」と記し、ユーザAの正則行列を「X」、ユーザBの正則行列を「Y」と記す。そして、認証用の非正則行列を「E」と記す。
【0036】
非正則行列「M」をユーザAからユーザBへの秘密裏に伝送する場合の手順は、以下のようになる。
(c1)「MX」を計算し、ユーザAが「MX」をユーザBに送る。
(c2)ユーザBが「MX」に「Y」を左から掛け「YMX」を求めてユーザAに送る。
(c3)ユーザAが「YMX」にXの逆行列「X_inv」を右から掛けた結果である「YM」をユーザBに送る。
(c4)ユーザBが「YM」に左からYの逆行列「Y_inv」を掛ける。その結果、「Y_inv(YM)=IM=M」が得られる。
【0037】
尚、ユーザA側での、ユーザBからのデータ認証処理は、事前に取得した「E」、「EY」をもとにユーザAが上記(c3)で「E(YCX)」と「EY(CX)」を計算し、両者が一致するかどうかを調べればよい(一致で認証成功、不一致で認証失敗)。
【図面の簡単な説明】
【0038】
【図1】本発明にかかる装置構成例を示すブロック図。
【図2】共通データを共有するための方法を示す説明図。
【符号の説明】
【0039】
1、2 装置 1a、2a 入力ポート 1b、2b 出力ポート 1c、2c プロセッサ

【特許請求の範囲】
【請求項1】
第1サイトと第2サイトとの間で共通のデータを暗号学的に共有する方法において、
第1サイトから第2サイトに対して、第1非正則行列と第1正則行列との積を含む第1データを送信し、また、第2サイトから第1サイトに対して、第2非正則行列と第2正則行列との積を含む第2データを送信するステップと、
第2サイトから第1サイトに対して、前記第1データと第2非正則行列との積を含む第3データを送信し、また、第1サイトから第2サイトに対して、第1非正則行列と前記第2データとの積を含む第1データを送信するステップと、
第1サイトにおいて前記第1正則行列の逆行列を用いた演算によって前記第1非正則行列と前記第2非正則行列との積として前記共通のデータを生成し、また、第2サイトにおいて前記第2正則行列の逆行列を用いた演算によって前記第1非正則行列と前記第2非正則行列との積として前記共通のデータを生成するステップと、を有することを特徴とする方法。
【請求項2】
共通のデータを暗号学的に共有するための装置において、
第1非正則行列と第1正則行列との積を含む第1データを送信する出力ポートと、
前記第1データと第2非正則行列との積を含む第2データを受信する入力ポートと、
前記第1正則行列の逆行列を用いた演算によって、前記第1非正則行列と前記第2非正則行列との積として前記共通のデータを生成するプロセッサと、を備えたことを特徴とする装置。
【請求項3】
第1サイトから第2サイトにデータを暗号学的に伝送する方法において、
送信対象のデータから生成した非正則行列に第1正則行列を掛けて第1データを計算して第1サイトから第2サイトに送信するステップと、
第2サイトにて前記第1データに第2正則行列を掛けて第2データを計算して第1サイトに送信するステップと、
第1サイトにて前記第2データに前記第1正則行列の逆行列を掛けて第3データを計算して第2サイトに送信するステップと、
第2サイトにて前記第3データに前記第2正則行列の逆行列を掛けて前記非正則行列を求めるステップと、を有することを特徴とする方法。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2008−228261(P2008−228261A)
【公開日】平成20年9月25日(2008.9.25)
【国際特許分類】
【出願番号】特願2007−102194(P2007−102194)
【出願日】平成19年3月12日(2007.3.12)
【出願人】(502411643)
【Fターム(参考)】