JP2004297578A - 公開鍵生成装置、共有鍵生成装置、鍵交換装置、及び鍵交換方法 - Google Patents
公開鍵生成装置、共有鍵生成装置、鍵交換装置、及び鍵交換方法 Download PDFInfo
- Publication number
- JP2004297578A JP2004297578A JP2003088788A JP2003088788A JP2004297578A JP 2004297578 A JP2004297578 A JP 2004297578A JP 2003088788 A JP2003088788 A JP 2003088788A JP 2003088788 A JP2003088788 A JP 2003088788A JP 2004297578 A JP2004297578 A JP 2004297578A
- Authority
- JP
- Japan
- Prior art keywords
- key
- random number
- public key
- shared key
- shared
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3013—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
【課題】DH鍵交換処理時の鍵演算処理を第3者から秘匿し、第3者による主要な演算の流用あるいは改変が極めて困難な公開鍵生成装置,共有鍵生成装置,鍵交換装置及び鍵交換方法を提供する。
【解決手段】乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし0<ka<qとなる乱数kaを生成する乱数生成手段11、前記乱数kaと前記元gと前記素数qより公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段12、及び公開鍵配布元及び共有鍵配布先となるユーザー2の生成した公開鍵ybと前記乱数生成手段11にて生成された秘密鍵kaとを基に共有鍵Kaを作成する共有鍵生成手段21を、1つのLSI31に集積化して、秘密鍵kaがLSI31内部で公開鍵ya及び共有鍵Kaの生成にのみ用いられる構成とし、鍵交換装置33の主要な暗号化演算が外部に漏れないようにする。
【選択図】 図3
【解決手段】乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし0<ka<qとなる乱数kaを生成する乱数生成手段11、前記乱数kaと前記元gと前記素数qより公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段12、及び公開鍵配布元及び共有鍵配布先となるユーザー2の生成した公開鍵ybと前記乱数生成手段11にて生成された秘密鍵kaとを基に共有鍵Kaを作成する共有鍵生成手段21を、1つのLSI31に集積化して、秘密鍵kaがLSI31内部で公開鍵ya及び共有鍵Kaの生成にのみ用いられる構成とし、鍵交換装置33の主要な暗号化演算が外部に漏れないようにする。
【選択図】 図3
Description
【0001】
【発明の属する技術分野】
本発明は、公開されたネットワークにおける電子情報の伝送を第三者に秘匿し、安全に行うために用いられる公開鍵生成装置,共有鍵生成装置,鍵交換装置及び鍵交換方法に関し、特に第3者による装置の流用あるいは改変が極めて困難な公開鍵生成装置,共有鍵生成装置,鍵交換装置及び鍵交換方法を提供するものである。
【0002】
【従来の技術】
従来の有限群上の離散対数問題を利用した鍵交換装置として、Diffie−Hellman鍵交換装置(以下、DH鍵交換装置と呼ぶ)が知られている(例えば、特許文献1参照)。
【0003】
図5に、DH鍵交換装置の従来例を示す。図5において、51は公開鍵配布元となるユーザー1の乱数生成手段、52はユーザー1の公開鍵生成手段、53はユーザー1の共有鍵生成手段である。また、54はユーザー2の乱数生成手段、55は公開鍵配布先となるユーザー2の公開鍵生成手段、56はユーザー2の共有鍵生成手段である。
【0004】
以下、図5を用いて、ユーザー1の従来のDH鍵交換装置とユーザー2の従来のDH鍵交換装置とで、ユーザー1とユーザー2とが鍵を共有する方法について説明する。
【0005】
有限群F上では乗算が定義されているものとする。有限群F上の元をg(gは素数である位数qを持つもの)とする。また、有限群F、元g、素数qは公開されており、少なくともユーザー1とユーザー2との間で共有されているものとする。ユーザー1とユーザー2は以下のステップを経て、鍵を共有する。
【0006】
(ステップ1)
ユーザー1は乱数生成手段51を用いて乱数ka(0<ka<q)を生成し、これをユーザー1の秘密鍵kaとする。同様にユーザー2は乱数生成手段54を用いて乱数kb(0<kb<q)を生成し、これをユーザー2の秘密鍵kbとする。
【0007】
(ステップ2)
ユーザー1は公開鍵生成手段52を用いて公開鍵yaを生成する。ここで
ya=g^ka mod q …(数1)
であり、yaは有限群F上で演算され求められる。mod qはqで割った余りを示す。同様にユーザー2は公開鍵生成手段55を用いて公開鍵ybを生成する。ここで、
yb=g^kb mod q …(数2)
であり、ybは有限群F上で演算され求められる。
【0008】
(ステップ3)
ユーザー1はユーザー2へ公開鍵yaを伝送し、ユーザー2はユーザー1へ公開鍵ybを伝送する。すなわち、ユーザー1とユーザー2との間で公開鍵ya、公開鍵ybを交換する。
【0009】
(ステップ4)
ユーザー1は共有鍵生成手段53を用いて鍵Kaを生成する。ここで、
であり、Kaは有限群F上で演算され求められる。同様にユーザー2は共有鍵生成手段56を用いて鍵Kbを生成する。ここで、
であり、Kbは有限群F上で演算され求められる。
【0010】
以上のステップ1〜4により、ユーザー1とユーザー2との間で同一の共有鍵K=Ka=Kbが生成される。
【0011】
上記のDH鍵交換装置では、有限群Fにおける離散対数問題の解法の困難性に基づいて装置が構成されている。すなわちy=g^xmodq(0<x<q)を満たす整数xをy、gより求める困難性を安全性の根拠としている。
【0012】
有限群Fにおける離散対数問題の解法の困難性を根拠とする暗号系として、楕円曲線暗号系が広く知られている。すなわち、有限体上の楕円曲線をE(F)、楕円曲線E(F)上のあらかじめユーザー1とユーザー2との間で共有されている点をGとし、楕円曲線E(F)上の点xとの演算xGが定義されているものとすると、数1〜数4はそれぞれ数5〜数8に書き改めることができる。
【0013】
【0014】
以上のように、楕円曲線暗号系を使用しても、ユーザー1とユーザー2との間で同一の共有鍵K=Ka=Kbが生成される。素数qを160ビット程度に選べば、現在知られている最も効率のよい計算アルゴリズムを使用し、最新のコンピュータを用いても、現実的な時間で解は求めることができないことが知られている。
【0015】
上述したように、DH鍵交換装置ではg^x(楕円曲線暗号系におけるxG)が鍵交換における主要な演算処理である。通常秘密鍵xは素数qと同程度のビット長(楕円曲線暗号系では160ビット程度)にとられるが、ユーザー1、ユーザー2以外の悪意ある第3者がg^x(あるいはxG)を流用、あるいは鍵長をより長く改変するようなことがあれば、より強固な公開鍵暗号系を容易に構成することも可能であり、暗号系の保安上好ましくなく、特に主要な演算に高速演算アルゴリズムを使用している場合、さらに被害は甚大なものとなる。
【0016】
【特許文献1】
特開2001−352319号公報(第9頁、図4)
【0017】
【発明が解決しようとする課題】
従来の公開鍵生成装置、共有鍵生成装置、鍵交換装置、及び鍵交換方法は以上のように構成されており、第3者からの攻撃に対しなんら配慮されないDH鍵交換装置が用いられており、万が一主要な演算を悪意ある第3者が流用、あるいは改変することがあれば、国家の安全保障上極めて甚大な被害をもたらすという問題点を有していた。
【0018】
本発明は以上のような問題点を解消するためになされたもので、第3者による装置の流用、あるいは改変が極めて困難な公開鍵生成装置,共有鍵生成装置,鍵交換装置、及び鍵交換方法を提供することを目的とする。
【0019】
【課題を解決するための手段】
上記課題を解決するために、本発明(請求項1)にかかる公開鍵生成装置は、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段とを備え、少なくとも前記乱数生成手段と前記公開鍵生成手段とが同一の半導体集積回路上に集積され、公開鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵yaを取得し、該公開鍵yaを公開鍵配布先となる第2のユーザーへ伝送するものである。
【0020】
また、本発明(請求項2)にかかる公開鍵生成装置は、請求項1記載の公開鍵生成装置において、前記公開鍵生成手段は、前記乱数kaと、前記元gと、前記素数qより、前記公開鍵yaを、ya=g^ka mod qとして、前記有限群F上で演算し出力するものである。
【0021】
また、本発明(請求項3)にかかる公開鍵生成装置は、請求項1記載の公開鍵生成装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記公開鍵生成手段が、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、ya=kaG mod qとして、前記楕円曲線E(F)上で演算し出力するものである。
【0022】
また、本発明(請求項4)にかかる公開鍵生成装置は、請求項1ないし3のいずれかに記載の公開鍵生成装置において、前記乱数生成手段が、前記公開鍵yaの演算終了後に、新たな乱数を生成するものである。
【0023】
また、本発明(請求項5)にかかる共有鍵生成装置は、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記乱数kaより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、少なくとも前記乱数生成手段と前記共有鍵生成手段とが同一の半導体集積回路上に集積され、共有鍵配布元となる第1のユーザーの制御手段が、前記共有鍵配布先となる第2のユーザーより前記公開鍵ybを取得し、前記乱数生成手段と前記共有鍵生成手段とを制御して、前記共有鍵Kaを導出するものである。
【0024】
また、本発明(請求項6)にかかる共有鍵生成装置は、請求項5記載の共有鍵生成装置において、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが生成した前記公開鍵yb=g^kb mod qと、前記乱数kaにより、前記共有鍵Kaを、Ka=yb^ka mod qとして、前記有限群F上で演算し出力するものである。
【0025】
また、本発明(請求項7)にかかる共有鍵生成装置は、請求項5記載の共有鍵生成装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記乱数kaにより、前記共有鍵Kaを、Ka=kayb mod qとして、前記楕円曲線E(F)上で演算し出力するものである。
【0026】
また、本発明(請求項8)にかかる共有鍵生成装置は、請求項5ないし7のいずれかに記載の共有鍵生成装置において、前記乱数生成手段は、前記共有鍵Kaの演算終了後に、新たな乱数を生成するものである。
【0027】
また、本発明(請求項9)にかかる鍵交換装置は、が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段と、共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記乱数kaより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、少なくとも前記乱数生成手段と前記公開鍵生成手段と前記共有鍵生成手段とが同一の半導体集積回路上に集積され、共有鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵ybを取得し、前記共有鍵生成手段を制御して前記共有鍵Kaを導出するものである。
【0028】
また、本発明(請求項10)にかかる鍵交換装置は、請求項9記載の鍵交換装置において、前記公開鍵生成手段は、前記乱数kaと、前記元gと、前記素数qより、前記公開鍵yaをya=g^ka mod qとして、前記有限群F上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが、前記乱数kbより前記有限群F上で演算し生成した前記公開鍵yb=g^kb mod qと、前記乱数kaにより、前記共有鍵KaをKa=yb^ka mod qとして、前記有限群F上で演算し出力するものである。
【0029】
また、本発明(請求項11)にかかる鍵交換装置は、請求項9記載の鍵交換装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記公開鍵生成手段は、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、ya=kaG mod qとして、前記楕円曲線E(F)上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが、前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記乱数kaにより、前記共有鍵Kaを、Ka=kayb mod qとして、前記楕円曲線E(F)上で演算し出力するものである。
【0030】
また、本発明(請求項12)にかかる鍵交換装置は、請求項9ないし11のいずれかに記載の鍵交換装置において、前記乱数生成手段は、前記公開鍵yaと前記共有鍵Kaの演算がともに終了した後に、新たな乱数を生成するものである。
【0031】
また、本発明(請求項13)にかかる鍵交換装置は、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、前記乱数kaを一時的に記憶する秘密鍵保持手段と、前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段と、共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記秘密鍵保持手段が保持する乱数kaにより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、少なくとも、前記乱数生成手段と、前記秘密鍵保持手段と、前記公開鍵生成手段と、前記共有鍵生成手段とが、同一の半導体集積回路上に集積され、共有鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵yaを取得して、該公開鍵yaを前記共有鍵配布先となる第2のユーザーへ伝送し、前記共有鍵配布先となる第2のユーザーより前記公開鍵ybを取得して、前記共有鍵生成手段を制御して前記共有鍵Kaを導出するものである。
【0032】
また、本発明(請求項14)にかかる鍵交換装置は、請求項13記載の鍵交換装置において、前記公開鍵生成手段は、前記乱数kaと、前記元gと、前記素数qより前記公開鍵yaを、ya=g^ka mod qとして、前記有限群F上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが前記乱数kbより前記有限群F上で演算し生成した前記公開鍵yb=g^kb mod qと、前記秘密鍵保持手段が記憶している乱数kaより、前記共有鍵Kaを、Ka=yb^ka mod qとして、前記有限群F上で演算し出力するものである。
【0033】
また、本発明(請求項15)にかかる鍵交換装置は、請求項13記載の鍵交換装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記公開鍵生成手段は、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、ya=kaG mod qとして、前記楕円曲線E(F)上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが、前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記秘密鍵保持手段が記憶している乱数kaにより、前記共有鍵Kaを、Ka=kayb mod qとして、前記楕円曲線E(F)上で演算し出力するものである。
【0034】
また、本発明(請求項16)にかかる鍵交換装置は、請求項13ないし15のいずれかに記載の鍵交換装置において、前記乱数生成手段は、前記公開鍵yaの演算終了後に、新たな乱数を生成するものである。
【0035】
また、本発明(請求項17)にかかる鍵交換装置は、請求項13ないし15のいずれかに記載の鍵交換装置において、前記乱数生成手段は、前記共有鍵Kaの演算終了後に、新たな乱数を生成し、前記秘密鍵保持手段が、前記乱数生成手段の生成した前記新たな乱数を保持するものである。
【0036】
また、本発明(請求項18)にかかる鍵交換装置は、請求項9ないし17のいずれかに記載の鍵交換装置を使用し、鍵を共有したいユーザーの双方が前記鍵を共有するものである。
【0037】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を用いて説明する。
【0038】
(実施の形態1)
図1は、本発明の請求項1に対応する実施の形態1による公開鍵生成装置のブロック構成図を示すものである。
【0039】
図1において、11は乱数生成手段、12は公開鍵生成手段、13は1つのパッケージに収められた半導体集積回路(以下LSIと呼ぶ)、14は半導体集積回路(LSI)13を制御する制御手段、15は半導体集積回路13、制御手段14を含む公開鍵配布元であるユーザー1の公開鍵生成装置である。
【0040】
以下、図1を参照しながら、本実施の形態1の公開鍵生成装置の動作について説明する。
乱数生成手段11は、制御手段14によって制御され、乱数kaを生成し、これを秘密鍵kaとする。ここで秘密鍵kaは、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとした時、0<ka<qを満たしている。制御手段14は、乱数を生成するタイミングや乱数の種、初期値の設定を行う。制御手段14には、例えばマイクロコンピュータが使用される。
【0041】
公開鍵生成手段12は、上記制御手段14により制御され、公開鍵yaを生成する。公開鍵yaは、上述した数1式に基づいて秘密鍵kaより求められる。生成された公開鍵yaは、制御手段14によって公開鍵配布先であるユーザー2へ伝送される。
【0042】
少なくとも乱数生成手段11と、公開鍵生成手段12を、LSI13内部に集積すれば、上記数1式の演算を他の暗号処理へ流用、あるいは改変することは非常に困難である。加えて制御手段14を集積すれば、さらに効果が高まる。また公開鍵ya生成後、乱数生成手段11が、新たに乱数を生成するようにすれば、公開鍵yaは出力される毎に異なる値をとる。この時、上記数1式から明らかなように、公開鍵yaは、乱数の関数となる。よって、ユーザー1を含めた誰もが、本公開鍵生成装置15を公開鍵yaの生成以外に流用、あるいは改変することは極めて困難である。
【0043】
以上のように、本実施の形態1による公開鍵生成装置によれば、公開鍵生成装置15を、乱数生成手段11と公開鍵生成手段12とを1つのLSI15に集積化して構成するようにしたので、従来、何ら安全対策のなされていない演算アルゴリズムを用いて秘密鍵及び共有鍵を作製する場合に比べて、秘密鍵kaは、チップ内部で公開鍵yaの生成にのみ用いられる構成となり、公開鍵生成装置15の数1式の演算が外部には漏れることがなく、このようなLSI13を用いることで、本公開鍵生成装置15を公開鍵yaの生成以外に流用、あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度が極めて高い。
【0044】
なお、数1式に基づいて公開鍵yaを演算する例について説明したが、楕円曲線暗号を使用し、数5式に基づいて公開鍵yaを演算するようにしても、同様の効果が得られる。
【0045】
また、離散対数問題に基づく公開鍵暗号系を使用すれば、どのような公開鍵暗号系に対しても同様の効果が得られることは言うまでもない。
【0046】
(実施の形態2)
次に、本発明の請求項5に対応する実施の形態2による共有鍵生成装置について説明する。
図2は、本発明の実施の形態2による共有鍵生成装置のブロック構成図を示すものである。図2において、図1と同一符号は同一、または相当部分を示し、21は共有鍵生成手段、22は乱数生成手段11と上記共有鍵生成手段21とを含むLSI、23はLSI22を制御する制御手段、24は共有鍵配布先となるユーザー2が生成した公開鍵を元に共有鍵を作成する、共有鍵配布元であるユーザー1の共有鍵生成装置を示す。以下、図2を参照しながら、本実施の形態2の共有鍵生成装置24の動作について説明する。
【0047】
乱数生成手段11は制御手段23に制御され、乱数kaを生成し、これを秘密鍵kaとする。ここで秘密鍵kaは、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとした時、0<ka<qを満たしている。制御手段23は乱数を生成するタイミングや乱数の種、初期値の設定を行う。制御手段23には、例えばマイクロコンピュータが使用される。さらに制御手段23は、共有鍵配布先となるユーザー2より数2式で表されるユーザー2の公開鍵ybを取得する。共有鍵生成手段21は制御手段23に制御され、共有鍵Kaを生成する。共有鍵Kaは数3式に基づいてユーザー1の秘密鍵kaとユーザー2の公開鍵ybとにより演算される。生成された共有鍵Kaは、例えば、制御手段14によって秘密鍵暗号方式の鍵として用いられ、ユーザー1とユーザー2との間でこの共通の共有鍵Kaを用いた暗号化伝送に使用される。
【0048】
以上の構成において、少なくとも乱数生成手段11と共有鍵生成手段21とをLSI22内部に集積すれば、数3式の演算を他の暗号処理へ流用あるいは改変することは非常に困難である。加えて制御手段23を集積すれば、さらに効果が高まる。また共有鍵Ka生成後、乱数生成手段11が新たに乱数を生成するようにすれば、共有鍵Kaは出力される毎に異なる値をとる。この時、数3式から明らかなように、共有鍵Kaは乱数の関数となる。よって、ユーザー1を含めた誰もが本共有鍵生成装置24を共有鍵Kaの生成以外に流用あるいは改変することは極めて困難である。
【0049】
以上のように、本実施の形態2による共有鍵生成装置によれば、共有鍵生成装置24を、乱数生成手段11と共有鍵生成手段21とを1つのLSI22に集積化して構成するようにしたので、秘密鍵kaはチップ内部で共有鍵Kaの生成にのみ用いられる構成となり、共有鍵生成装置24の数3式の演算が外部には漏れることがなく、このようなLSI22を用いることで、本共有鍵生成装置24を共有鍵Kaの生成以外に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度が極めて高い。
【0050】
なお、数3式に基づいて共有鍵Kaを演算する例について説明したが、楕円曲線暗号を使用し、数7式に基づいて共有鍵Kaを演算しても同様の効果が得られる。
また、離散対数問題に基づく公開鍵暗号系を使用すれば、どのような公開鍵暗号系に対しても同様の効果が得られることは言うまでもない。
【0051】
(実施の形態3)
次に、本発明の請求項9に対応する実施の形態3による鍵交換装置について説明する。
図3は、本発明の実施の形態3である鍵交換装置のブロック構成図を示すものである。
【0052】
図3において、図1または図2と同一符号は同一、または相当部分を示し、31は乱数生成手段11,公開鍵生成手段12,共有鍵生成手段21とを含むLSI、32はLSI31を制御する制御手段、33は公開鍵配布元、及び共有鍵配布先となるユーザー2の生成した公開鍵を基に作成した共有鍵の配布元、となるユーザー1の鍵交換装置である。
【0053】
以下、図3を参照しながら、実施の形態3の鍵交換装置の動作について説明する。
乱数生成手段11は制御手段32に制御され、乱数kaを生成し、これを秘密鍵kaとする。ここで秘密鍵kaは、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとした時、0<ka<qを満たしている。制御手段32は乱数を生成するタイミングや乱数の種、初期値の設定を行う。制御手段32には、例えばマイクロコンピュータが使用される。公開鍵生成手段12は制御手段32に制御され、公開鍵yaを生成する。公開鍵yaは数1式に基づいて演算される。生成された公開鍵yaは、制御手段32によってユーザー2へ伝送される。
【0054】
さらに制御手段32は、ユーザー2より数2式で表されるユーザー2の公開鍵ybを取得する。共有鍵生成手段21は制御手段32に制御され、共有鍵Kaを生成する。共有鍵Kaは数3式に基づいて秘密鍵kaと公開鍵ybより演算される。生成された共有鍵Kaは、制御手段32によって例えば秘密鍵暗号方式の鍵として用いられ、ユーザー1とユーザー2との間の暗号化伝送に使用される。
【0055】
少なくとも乱数生成手段11と公開鍵生成手段12と共有鍵生成手段21をLSI31内部に集積すれば、数1式および数3式の演算を他の暗号処理へ流用あるいは改変することは非常に困難である。加えて制御手段32を集積すれば、さらに効果が高まる。また公開鍵yaと共有鍵Kaとを生成後、乱数生成手段11が新たに乱数を生成するようにすれば、数1式および数3式から明らかなように、公開鍵yaと共有鍵Kaは乱数の関数となる。よって、ユーザー1を含めた誰もが本鍵交換装置33を鍵交換処理以外に流用あるいは改変することは極めて困難である。
【0056】
以上のように、本実施の形態3による鍵交換装置によれば、鍵交換装置33を、乱数生成手段11と公開鍵生成手段12と共有鍵生成手段21とを、1つのLSI131に集積化して構成するようにしたので、秘密鍵kaはチップ内部で公開鍵ya、及び共有鍵Kaの生成にのみ用いられる構成となり、鍵交換装置33の数1式及び数3式の演算が外部には漏れることがなく、このようなLSI131を用いることで本鍵交換装置33を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難となり、第3者の不正な攻撃に対する強度が極めて高い。
【0057】
なお、数1式および数3式に基づいて公開鍵yaと共有鍵Kaを演算する例について説明したが、楕円曲線暗号を使用し、数5式および数7式に基づいて公開鍵yaと共有鍵Kaとを演算しても同様の効果が得られる。
【0058】
また、離散対数問題に基づく公開鍵暗号系を使用すれば、どのような公開鍵暗号系に対しても同様の効果が得られることは言うまでもない。
なお、本実施の形態3における鍵交換装置33と同様の構成をもつ鍵交換装置をユーザー2が使用することによって、ユーザー1とユーザー2の間の鍵交換処理を極めて安全に行うことができることは説明するまでもない。
【0059】
(実施の形態4)
次に、本発明の請求項13に対応する実施の形態4による鍵交換装置について説明する。
図4は、本発明の実施の形態4による鍵交換装置のブロック構成図を示すものである。
【0060】
図4において、図1または図2と同一符号は同一、または相当部分を示し、41は秘密鍵保持手段、42は乱数生成手段11,公開鍵生成手段,共有鍵生成手段21,秘密鍵保持手段41とを含むLSI、43はLSI42を制御する制御手段、44は公開鍵配布元、及び共有鍵配布先となるユーザー2の生成した公開鍵を基に作成した共有鍵の配布元、となるユーザー1の鍵交換装置である。以下、図4を参照しながら、本実施の形態4の鍵交換装置の動作について説明する。
【0061】
乱数生成手段11は制御手段43に制御され、乱数kaを生成し、これを秘密鍵kaとする。ここで秘密鍵kaは、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとした時、0<ka<qを満たしている。制御手段43は乱数を生成するタイミングや乱数の種、初期値の設定を行う。制御手段43には、例えばマイクロコンピュータが使用される。秘密鍵保持手段41は秘密鍵kaを一時的に記憶する。公開鍵生成手段12は制御手段43に制御され、公開鍵yaを生成する。公開鍵yaは数1式に基づいて演算される。生成された公開鍵yaは、制御手段43によってユーザー2へ伝送される。
【0062】
さらに制御手段43は、ユーザー2より数2式で表されるユーザー2の公開鍵ybを取得する。共有鍵生成手段21は制御手段43に制御され、共有鍵Kaを生成する。共有鍵Kaは数3式に基づいて秘密鍵保持手段41が記憶している秘密鍵kaと公開鍵ybとより演算される。生成された共有鍵Kaは、制御手段43によって、例えば秘密鍵暗号方式の鍵として用いられ、ユーザー1とユーザー2との間の暗号化伝送に使用される。
【0063】
少なくとも乱数生成手段11と公開鍵生成手段12と共有鍵生成手段21と秘密鍵保持手段41とをLSI42内部に集積すれば、数1式および数3式の演算を他の暗号処理へ流用あるいは改変することは非常に困難である。加えて制御手段43を集積すれば、さらに効果が高まる。
【0064】
また公開鍵yaを生成後、乱数生成手段11が新たに乱数を生成するようにすれば、公開鍵yaは出力される毎に異なる値をとる。この時、数1式から明らかなように、公開鍵yaは乱数の関数となる。共有鍵生成手段21が共有鍵Kaを生成する以前に、乱数生成手段11が新たに乱数を生成しても、秘密鍵保持手段41が秘密鍵kaを保持しているため、共有鍵生成手段21は正しく共有鍵Kaを生成することができる。
【0065】
加えて、共有鍵生成手段21により共有鍵Kaを生成した後、乱数生成手段11が新たに乱数を生成し、生成した乱数を秘密鍵保持手段41が保持するようにすれば、共有鍵Kaは出力される毎に異なる値をとる。この時、数3式から明らかなように、共有鍵Kaは乱数の関数となる。
【0066】
よって、ユーザー1を含めた誰もが本鍵交換装置を鍵交換処理以外に流用あるいは改変することは極めて困難である。またLSI42の外部に出力される公開鍵ya、共有鍵Kaを観測しても乱数の関数となっているため、公開鍵生成手段12と共有鍵生成手段21の構成を類推することすら不可能である。
【0067】
以上のように、本実施の形態4による鍵交換装置によれば、鍵交換装置44を、乱数生成手段11と公開鍵生成手段12と共有鍵生成手段21と秘密鍵保持手段41とを1つのLSI42に集積化して構成するようにしたので、秘密鍵kaはチップ内部で公開鍵ya、及び共有鍵Kaの生成にのみ用いられる構成となり、鍵交換装置44の数1式及び数3式の演算が外部には漏れることがなく、このようなLSI42を用いることで本鍵交換装置44を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難となり、第3者の不正な攻撃に対する強度が極めて高い。
【0068】
加えて、共有鍵生成手段21が共有鍵Kaを生成する以前に、乱数生成手段11が新たに乱数を生成しても、共有鍵生成手段21が正しく共有鍵Kaを生成することができる。
【0069】
なお、数1式および数3式に基づいて公開鍵yaと共有鍵Kaを演算する例について説明したが、楕円曲線暗号を使用し、数5式および数7式に基づいて公開鍵yaと共有鍵Kaを演算しても同様の効果が得られる。
【0070】
また、離散対数問題に基づく公開鍵暗号系を使用すれば、どのような公開鍵暗号系に対しても同様の効果が得られることは言うまでもない。
【0071】
なお、本実施の形態4における鍵交換装置44と同様の構成をもつ鍵交換装置をユーザー2が使用することによって、ユーザー1とユーザー2の間の鍵交換処理を極めて安全に行うことができることは説明するまでもない。
【0072】
【発明の効果】
以上のように、本発明の請求項1にかかる公開鍵生成装置によれば、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段とを備え、少なくとも前記乱数生成手段と前記公開鍵生成手段とが同一の半導体集積回路上に集積され、公開鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵yaを取得し、該公開鍵yaを公開鍵配布先となる第2のユーザーへ伝送するものとしたので、秘密鍵kaは半導体集積回路のチップ内部で公開鍵yaの生成にのみ用いられる構成となり、鍵交換装置の演算が外部には漏れることがなく、このような集積回路を用いることで本公開鍵生成装置を公開鍵yaの生成以外に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0073】
また、本発明の請求項2にかかる公開鍵生成装置によれば、請求項1記載の公開鍵生成装置において、前記公開鍵生成手段は、前記乱数kaと、前記元gと、前記素数qより、前記公開鍵yaを、ya=g^ka mod qとして、前記有限群F上で演算し出力するものとしたので、有限群Fにおける離散対数問題の解法の困難性を根拠とした暗号系において、公開鍵生成装置を公開鍵yaの生成以外に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0074】
また、本発明の請求項3にかかる公開鍵生成装置によれば、請求項1記載の公開鍵生成装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記公開鍵生成手段が、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、ya=kaG mod qとして、前記楕円曲線E(F)上で演算し出力するものとしたので、楕円曲線暗号系においても、公開鍵生成装置を公開鍵yaの生成以外に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0075】
また、本発明の請求項4にかかる公開鍵生成装置によれば、請求項1ないし3のいずれかに記載の公開鍵生成装置において、前記乱数生成手段が、前記公開鍵yaの演算終了後に、新たな乱数を生成するものとしたので、公開鍵yaは出力される毎に異なるものとなり、第3者の不正な攻撃に対する強度をさらに高いものとすることができるという効果が得られる。
【0076】
また、本発明の請求項5にかかる共有鍵生成装置は、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記乱数kaより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、少なくとも前記乱数生成手段と前記共有鍵生成手段とが同一の半導体集積回路上に集積され、共有鍵配布元となる第1のユーザーの制御手段が、前記共有鍵配布先となる第2のユーザーより前記公開鍵ybを取得し、前記乱数生成手段と前記共有鍵生成手段とを制御して、前記共有鍵Kaを導出するものとしたので、秘密鍵kaは半導体集積回路のチップ内部で共有鍵Kaの生成にのみ用いられる構成となり、鍵交換装置の演算が外部には漏れることがなく、このような集積回路を用いることで本共有鍵生成装置を共有鍵Kaの生成以外に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0077】
また、本発明の請求項6にかかる共有鍵生成装置は、請求項5記載の共有鍵生成装置において、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが生成した前記公開鍵yb=g^kb mod qと、前記乱数kaにより、前記共有鍵Kaを、Ka=yb^ka mod qとして、前記有限群F上で演算し出力するものとしたので、有限群Fにおける離散対数問題の解法の困難性を根拠とした暗号系において、共有鍵生成装置を共有鍵Kaの生成以外に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0078】
また、本発明の請求項7にかかる共有鍵生成装置は、請求項5記載の共有鍵生成装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記乱数kaにより、前記共有鍵Kaを、Ka=kayb mod qとして、前記楕円曲線E(F)上で演算し出力するものとしたので、楕円曲線暗号系においても、共有鍵生成装置を共有鍵Kaの生成以外に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0079】
また、本発明の請求項8にかかる共有鍵生成装置は、請求項5ないし7のいずれかに記載の共有鍵生成装置において、前記乱数生成手段は、前記共有鍵Kaの演算終了後に、新たな乱数を生成するものとしたので、共有鍵Kaは出力される毎に異なるものとなり、第3者の不正な攻撃に対する強度をさらに高いものとすることができるという効果が得られる。
【0080】
また、本発明の請求項9にかかる鍵交換装置は、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段と、共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記乱数kaより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、少なくとも前記乱数生成手段と前記公開鍵生成手段と前記共有鍵生成手段とが同一の半導体集積回路上に集積され、共有鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵ybを取得し、前記共有鍵生成手段を制御して前記共有鍵Kaを導出するものとしたので、秘密鍵kaは半導体集積回路のチップ内部で公開鍵ya、及び共有鍵Kaの生成にのみ用いられる構成となり、鍵交換装置の演算が外部には漏れることがなく、このような集積回路を用いることで本鍵交換装置を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難となり、第3者の不正な攻撃に対する強度が極めて高いものとすることができるという効果が得られる。
【0081】
また、本発明の請求項10にかかる鍵交換装置は、請求項9記載の鍵交換装置において、前記公開鍵生成手段は、前記乱数kaと、前記元gと、前記素数qより、前記公開鍵yaをya=g^ka mod qとして、前記有限群F上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが、前記乱数kbより前記有限群F上で演算し生成した前記公開鍵yb=g^kbmod qと、前記乱数kaにより、前記共有鍵KaをKa=yb^ka mod qとして、前記有限群F上で演算し出力するものとしたので、有限群Fにおける離散対数問題の解法の困難性を根拠とした暗号系において、鍵交換装置を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0082】
また、本発明の請求項11にかかる鍵交換装置は、請求項9記載の鍵交換装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記公開鍵生成手段は、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、ya=kaG mod qとして、前記楕円曲線E(F)上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる前記第2のユーザーが、前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記乱数kaにより、前記共有鍵Kaを、Ka=kayb mod qとして、前記楕円曲線E(F)上で演算し出力するものとしたので、楕円曲線暗号系においても、鍵交換装置を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0083】
また、本発明の請求項12にかかる鍵交換装置は、請求項9ないし11のいずれかに記載の鍵交換装置において、前記乱数生成手段は、前記公開鍵yaと前記共有鍵Kaの演算がともに終了した後に、新たな乱数を生成するものとしたので、公開鍵ya、及び共有鍵Kaは出力される毎に異なるものとなり、第3者の不正な攻撃に対する強度をさらに高いものとすることができるという効果が得られる。
【0084】
また、本発明の請求項13にかかる鍵交換装置は、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、前記乱数kaを一時的に記憶する秘密鍵保持手段と、前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段と、共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記秘密鍵保持手段が保持する乱数kaにより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、少なくとも、前記乱数生成手段と、前記秘密鍵保持手段と、前記公開鍵生成手段と、前記共有鍵生成手段とが、同一の半導体集積回路上に集積され、共有鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵yaを取得して、該公開鍵yaを前記共有鍵配布先となる第2のユーザーへ伝送し、前記共有鍵配布先となる第2のユーザーより前記公開鍵ybを取得して、前記共有鍵生成手段を制御して前記共有鍵Kaを導出するものとしたので、秘密鍵kaは半導体集積回路のチップ内部で公開鍵ya、及び共有鍵Kaの生成にのみ用いられる構成となり、鍵交換装置の演算が外部には漏れることがなく、このような集積回路を用いることで本鍵交換装置を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難となり、第3者の不正な攻撃に対する強度が極めて高いものとすることができるという効果が得られるのに加えて、共有鍵生成手段が共有鍵Kaを生成する以前に、乱数生成手段が新たに乱数を生成しても、共有鍵生成手段は正しく共有鍵Kaを生成することができるという効果が得られる。
【0085】
また、本発明の請求項14にかかる鍵交換装置は、請求項13記載の鍵交換装置において、前記公開鍵生成手段は、前記乱数kaと前記元gと前記素数qより前記公開鍵yaを、ya=g^ka mod qとして、前記有限群F上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが前記乱数kbより前記有限群F上で演算し生成した前記公開鍵yb=g^kb mod qと前記秘密鍵保持手段が記憶している乱数kaより前記共有鍵Kaを、Ka=yb^ka mod qとして、前記有限群F上で演算し出力するものとしたので、有限群Fにおける離散対数問題の解法の困難性を根拠とした暗号系において、鍵交換装置を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0086】
また、本発明の請求項15にかかる鍵交換装置は、請求項13記載の鍵交換装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記公開鍵生成手段は、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、ya=kaG mod qとして、前記楕円曲線E(F)上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが、前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記秘密鍵保持手段が記憶している乱数kaにより、前記共有鍵Kaを、Ka=kayb mod qとして、前記楕円曲線E(F)上で演算し出力するものとしたので、楕円曲線暗号系においても、鍵交換装置を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0087】
また、本発明の請求項16にかかる鍵交換装置は、請求項13ないし15のいずれかに記載の鍵交換装置において、前記乱数生成手段は、前記公開鍵yaの演算終了後に、新たな乱数を生成するようにしたので、公開鍵ya、及び共有鍵Kaは出力される毎に異なるものとなり、第3者の不正な攻撃に対する強度をさらに高いものとすることができるという効果が得られる。
【0088】
また、本発明の請求項17にかかる鍵交換装置は、請求項13ないし15のいずれかに記載の鍵交換装置において、
【0089】
前記乱数生成手段は、前記共有鍵Kaの演算終了後に、新たな乱数を生成し、前記秘密鍵保持手段が、前記乱数生成手段の生成した前記新たな乱数を保持するようにしたので、共有鍵生成手段が共有鍵Kaを生成する以前に、乱数生成手段が新たに乱数を生成しても、共有鍵生成手段が正しく共有鍵Kaを生成することができるという効果が得られる。
【0090】
また、本発明の請求項18にかかる鍵交換方法は、請求項9ないし17のいずれかに記載の鍵交換装置を使用し、鍵を共有したいユーザーの双方が前記鍵を共有するようにしたので、鍵交換装置の演算が外部には漏れることがなく、このような集積回路を用いることで暗号鍵生成、または鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難となり、第3者の不正な攻撃に対する強度が極めて高いものとすることができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施の形態1における公開鍵生成装置の構成を示すブロック構成図である。
【図2】本発明の実施の形態2における共有鍵生成装置の構成を示すブロック構成図である。
【図3】本発明の実施の形態3における鍵交換装置の構成を示すブロック構成図である。
【図4】本発明の実施の形態4における鍵交換装置の構成を示すブロック構成図である。
【図5】従来の鍵交換装置の構成を示すブロック構成図である。
【符号の説明】
11 乱数生成手段
12 公開鍵生成手段
13,22,31,42 LSI
14,23,32,43 制御手段
15 公開鍵生成装置
21 共有鍵生成手段
24 共有鍵生成装置
33,44 鍵交換装置
41 秘密鍵保持手段
【発明の属する技術分野】
本発明は、公開されたネットワークにおける電子情報の伝送を第三者に秘匿し、安全に行うために用いられる公開鍵生成装置,共有鍵生成装置,鍵交換装置及び鍵交換方法に関し、特に第3者による装置の流用あるいは改変が極めて困難な公開鍵生成装置,共有鍵生成装置,鍵交換装置及び鍵交換方法を提供するものである。
【0002】
【従来の技術】
従来の有限群上の離散対数問題を利用した鍵交換装置として、Diffie−Hellman鍵交換装置(以下、DH鍵交換装置と呼ぶ)が知られている(例えば、特許文献1参照)。
【0003】
図5に、DH鍵交換装置の従来例を示す。図5において、51は公開鍵配布元となるユーザー1の乱数生成手段、52はユーザー1の公開鍵生成手段、53はユーザー1の共有鍵生成手段である。また、54はユーザー2の乱数生成手段、55は公開鍵配布先となるユーザー2の公開鍵生成手段、56はユーザー2の共有鍵生成手段である。
【0004】
以下、図5を用いて、ユーザー1の従来のDH鍵交換装置とユーザー2の従来のDH鍵交換装置とで、ユーザー1とユーザー2とが鍵を共有する方法について説明する。
【0005】
有限群F上では乗算が定義されているものとする。有限群F上の元をg(gは素数である位数qを持つもの)とする。また、有限群F、元g、素数qは公開されており、少なくともユーザー1とユーザー2との間で共有されているものとする。ユーザー1とユーザー2は以下のステップを経て、鍵を共有する。
【0006】
(ステップ1)
ユーザー1は乱数生成手段51を用いて乱数ka(0<ka<q)を生成し、これをユーザー1の秘密鍵kaとする。同様にユーザー2は乱数生成手段54を用いて乱数kb(0<kb<q)を生成し、これをユーザー2の秘密鍵kbとする。
【0007】
(ステップ2)
ユーザー1は公開鍵生成手段52を用いて公開鍵yaを生成する。ここで
ya=g^ka mod q …(数1)
であり、yaは有限群F上で演算され求められる。mod qはqで割った余りを示す。同様にユーザー2は公開鍵生成手段55を用いて公開鍵ybを生成する。ここで、
yb=g^kb mod q …(数2)
であり、ybは有限群F上で演算され求められる。
【0008】
(ステップ3)
ユーザー1はユーザー2へ公開鍵yaを伝送し、ユーザー2はユーザー1へ公開鍵ybを伝送する。すなわち、ユーザー1とユーザー2との間で公開鍵ya、公開鍵ybを交換する。
【0009】
(ステップ4)
ユーザー1は共有鍵生成手段53を用いて鍵Kaを生成する。ここで、
であり、Kaは有限群F上で演算され求められる。同様にユーザー2は共有鍵生成手段56を用いて鍵Kbを生成する。ここで、
であり、Kbは有限群F上で演算され求められる。
【0010】
以上のステップ1〜4により、ユーザー1とユーザー2との間で同一の共有鍵K=Ka=Kbが生成される。
【0011】
上記のDH鍵交換装置では、有限群Fにおける離散対数問題の解法の困難性に基づいて装置が構成されている。すなわちy=g^xmodq(0<x<q)を満たす整数xをy、gより求める困難性を安全性の根拠としている。
【0012】
有限群Fにおける離散対数問題の解法の困難性を根拠とする暗号系として、楕円曲線暗号系が広く知られている。すなわち、有限体上の楕円曲線をE(F)、楕円曲線E(F)上のあらかじめユーザー1とユーザー2との間で共有されている点をGとし、楕円曲線E(F)上の点xとの演算xGが定義されているものとすると、数1〜数4はそれぞれ数5〜数8に書き改めることができる。
【0013】
【0014】
以上のように、楕円曲線暗号系を使用しても、ユーザー1とユーザー2との間で同一の共有鍵K=Ka=Kbが生成される。素数qを160ビット程度に選べば、現在知られている最も効率のよい計算アルゴリズムを使用し、最新のコンピュータを用いても、現実的な時間で解は求めることができないことが知られている。
【0015】
上述したように、DH鍵交換装置ではg^x(楕円曲線暗号系におけるxG)が鍵交換における主要な演算処理である。通常秘密鍵xは素数qと同程度のビット長(楕円曲線暗号系では160ビット程度)にとられるが、ユーザー1、ユーザー2以外の悪意ある第3者がg^x(あるいはxG)を流用、あるいは鍵長をより長く改変するようなことがあれば、より強固な公開鍵暗号系を容易に構成することも可能であり、暗号系の保安上好ましくなく、特に主要な演算に高速演算アルゴリズムを使用している場合、さらに被害は甚大なものとなる。
【0016】
【特許文献1】
特開2001−352319号公報(第9頁、図4)
【0017】
【発明が解決しようとする課題】
従来の公開鍵生成装置、共有鍵生成装置、鍵交換装置、及び鍵交換方法は以上のように構成されており、第3者からの攻撃に対しなんら配慮されないDH鍵交換装置が用いられており、万が一主要な演算を悪意ある第3者が流用、あるいは改変することがあれば、国家の安全保障上極めて甚大な被害をもたらすという問題点を有していた。
【0018】
本発明は以上のような問題点を解消するためになされたもので、第3者による装置の流用、あるいは改変が極めて困難な公開鍵生成装置,共有鍵生成装置,鍵交換装置、及び鍵交換方法を提供することを目的とする。
【0019】
【課題を解決するための手段】
上記課題を解決するために、本発明(請求項1)にかかる公開鍵生成装置は、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段とを備え、少なくとも前記乱数生成手段と前記公開鍵生成手段とが同一の半導体集積回路上に集積され、公開鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵yaを取得し、該公開鍵yaを公開鍵配布先となる第2のユーザーへ伝送するものである。
【0020】
また、本発明(請求項2)にかかる公開鍵生成装置は、請求項1記載の公開鍵生成装置において、前記公開鍵生成手段は、前記乱数kaと、前記元gと、前記素数qより、前記公開鍵yaを、ya=g^ka mod qとして、前記有限群F上で演算し出力するものである。
【0021】
また、本発明(請求項3)にかかる公開鍵生成装置は、請求項1記載の公開鍵生成装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記公開鍵生成手段が、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、ya=kaG mod qとして、前記楕円曲線E(F)上で演算し出力するものである。
【0022】
また、本発明(請求項4)にかかる公開鍵生成装置は、請求項1ないし3のいずれかに記載の公開鍵生成装置において、前記乱数生成手段が、前記公開鍵yaの演算終了後に、新たな乱数を生成するものである。
【0023】
また、本発明(請求項5)にかかる共有鍵生成装置は、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記乱数kaより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、少なくとも前記乱数生成手段と前記共有鍵生成手段とが同一の半導体集積回路上に集積され、共有鍵配布元となる第1のユーザーの制御手段が、前記共有鍵配布先となる第2のユーザーより前記公開鍵ybを取得し、前記乱数生成手段と前記共有鍵生成手段とを制御して、前記共有鍵Kaを導出するものである。
【0024】
また、本発明(請求項6)にかかる共有鍵生成装置は、請求項5記載の共有鍵生成装置において、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが生成した前記公開鍵yb=g^kb mod qと、前記乱数kaにより、前記共有鍵Kaを、Ka=yb^ka mod qとして、前記有限群F上で演算し出力するものである。
【0025】
また、本発明(請求項7)にかかる共有鍵生成装置は、請求項5記載の共有鍵生成装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記乱数kaにより、前記共有鍵Kaを、Ka=kayb mod qとして、前記楕円曲線E(F)上で演算し出力するものである。
【0026】
また、本発明(請求項8)にかかる共有鍵生成装置は、請求項5ないし7のいずれかに記載の共有鍵生成装置において、前記乱数生成手段は、前記共有鍵Kaの演算終了後に、新たな乱数を生成するものである。
【0027】
また、本発明(請求項9)にかかる鍵交換装置は、が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段と、共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記乱数kaより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、少なくとも前記乱数生成手段と前記公開鍵生成手段と前記共有鍵生成手段とが同一の半導体集積回路上に集積され、共有鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵ybを取得し、前記共有鍵生成手段を制御して前記共有鍵Kaを導出するものである。
【0028】
また、本発明(請求項10)にかかる鍵交換装置は、請求項9記載の鍵交換装置において、前記公開鍵生成手段は、前記乱数kaと、前記元gと、前記素数qより、前記公開鍵yaをya=g^ka mod qとして、前記有限群F上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが、前記乱数kbより前記有限群F上で演算し生成した前記公開鍵yb=g^kb mod qと、前記乱数kaにより、前記共有鍵KaをKa=yb^ka mod qとして、前記有限群F上で演算し出力するものである。
【0029】
また、本発明(請求項11)にかかる鍵交換装置は、請求項9記載の鍵交換装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記公開鍵生成手段は、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、ya=kaG mod qとして、前記楕円曲線E(F)上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが、前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記乱数kaにより、前記共有鍵Kaを、Ka=kayb mod qとして、前記楕円曲線E(F)上で演算し出力するものである。
【0030】
また、本発明(請求項12)にかかる鍵交換装置は、請求項9ないし11のいずれかに記載の鍵交換装置において、前記乱数生成手段は、前記公開鍵yaと前記共有鍵Kaの演算がともに終了した後に、新たな乱数を生成するものである。
【0031】
また、本発明(請求項13)にかかる鍵交換装置は、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、前記乱数kaを一時的に記憶する秘密鍵保持手段と、前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段と、共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記秘密鍵保持手段が保持する乱数kaにより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、少なくとも、前記乱数生成手段と、前記秘密鍵保持手段と、前記公開鍵生成手段と、前記共有鍵生成手段とが、同一の半導体集積回路上に集積され、共有鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵yaを取得して、該公開鍵yaを前記共有鍵配布先となる第2のユーザーへ伝送し、前記共有鍵配布先となる第2のユーザーより前記公開鍵ybを取得して、前記共有鍵生成手段を制御して前記共有鍵Kaを導出するものである。
【0032】
また、本発明(請求項14)にかかる鍵交換装置は、請求項13記載の鍵交換装置において、前記公開鍵生成手段は、前記乱数kaと、前記元gと、前記素数qより前記公開鍵yaを、ya=g^ka mod qとして、前記有限群F上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが前記乱数kbより前記有限群F上で演算し生成した前記公開鍵yb=g^kb mod qと、前記秘密鍵保持手段が記憶している乱数kaより、前記共有鍵Kaを、Ka=yb^ka mod qとして、前記有限群F上で演算し出力するものである。
【0033】
また、本発明(請求項15)にかかる鍵交換装置は、請求項13記載の鍵交換装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記公開鍵生成手段は、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、ya=kaG mod qとして、前記楕円曲線E(F)上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが、前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記秘密鍵保持手段が記憶している乱数kaにより、前記共有鍵Kaを、Ka=kayb mod qとして、前記楕円曲線E(F)上で演算し出力するものである。
【0034】
また、本発明(請求項16)にかかる鍵交換装置は、請求項13ないし15のいずれかに記載の鍵交換装置において、前記乱数生成手段は、前記公開鍵yaの演算終了後に、新たな乱数を生成するものである。
【0035】
また、本発明(請求項17)にかかる鍵交換装置は、請求項13ないし15のいずれかに記載の鍵交換装置において、前記乱数生成手段は、前記共有鍵Kaの演算終了後に、新たな乱数を生成し、前記秘密鍵保持手段が、前記乱数生成手段の生成した前記新たな乱数を保持するものである。
【0036】
また、本発明(請求項18)にかかる鍵交換装置は、請求項9ないし17のいずれかに記載の鍵交換装置を使用し、鍵を共有したいユーザーの双方が前記鍵を共有するものである。
【0037】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を用いて説明する。
【0038】
(実施の形態1)
図1は、本発明の請求項1に対応する実施の形態1による公開鍵生成装置のブロック構成図を示すものである。
【0039】
図1において、11は乱数生成手段、12は公開鍵生成手段、13は1つのパッケージに収められた半導体集積回路(以下LSIと呼ぶ)、14は半導体集積回路(LSI)13を制御する制御手段、15は半導体集積回路13、制御手段14を含む公開鍵配布元であるユーザー1の公開鍵生成装置である。
【0040】
以下、図1を参照しながら、本実施の形態1の公開鍵生成装置の動作について説明する。
乱数生成手段11は、制御手段14によって制御され、乱数kaを生成し、これを秘密鍵kaとする。ここで秘密鍵kaは、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとした時、0<ka<qを満たしている。制御手段14は、乱数を生成するタイミングや乱数の種、初期値の設定を行う。制御手段14には、例えばマイクロコンピュータが使用される。
【0041】
公開鍵生成手段12は、上記制御手段14により制御され、公開鍵yaを生成する。公開鍵yaは、上述した数1式に基づいて秘密鍵kaより求められる。生成された公開鍵yaは、制御手段14によって公開鍵配布先であるユーザー2へ伝送される。
【0042】
少なくとも乱数生成手段11と、公開鍵生成手段12を、LSI13内部に集積すれば、上記数1式の演算を他の暗号処理へ流用、あるいは改変することは非常に困難である。加えて制御手段14を集積すれば、さらに効果が高まる。また公開鍵ya生成後、乱数生成手段11が、新たに乱数を生成するようにすれば、公開鍵yaは出力される毎に異なる値をとる。この時、上記数1式から明らかなように、公開鍵yaは、乱数の関数となる。よって、ユーザー1を含めた誰もが、本公開鍵生成装置15を公開鍵yaの生成以外に流用、あるいは改変することは極めて困難である。
【0043】
以上のように、本実施の形態1による公開鍵生成装置によれば、公開鍵生成装置15を、乱数生成手段11と公開鍵生成手段12とを1つのLSI15に集積化して構成するようにしたので、従来、何ら安全対策のなされていない演算アルゴリズムを用いて秘密鍵及び共有鍵を作製する場合に比べて、秘密鍵kaは、チップ内部で公開鍵yaの生成にのみ用いられる構成となり、公開鍵生成装置15の数1式の演算が外部には漏れることがなく、このようなLSI13を用いることで、本公開鍵生成装置15を公開鍵yaの生成以外に流用、あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度が極めて高い。
【0044】
なお、数1式に基づいて公開鍵yaを演算する例について説明したが、楕円曲線暗号を使用し、数5式に基づいて公開鍵yaを演算するようにしても、同様の効果が得られる。
【0045】
また、離散対数問題に基づく公開鍵暗号系を使用すれば、どのような公開鍵暗号系に対しても同様の効果が得られることは言うまでもない。
【0046】
(実施の形態2)
次に、本発明の請求項5に対応する実施の形態2による共有鍵生成装置について説明する。
図2は、本発明の実施の形態2による共有鍵生成装置のブロック構成図を示すものである。図2において、図1と同一符号は同一、または相当部分を示し、21は共有鍵生成手段、22は乱数生成手段11と上記共有鍵生成手段21とを含むLSI、23はLSI22を制御する制御手段、24は共有鍵配布先となるユーザー2が生成した公開鍵を元に共有鍵を作成する、共有鍵配布元であるユーザー1の共有鍵生成装置を示す。以下、図2を参照しながら、本実施の形態2の共有鍵生成装置24の動作について説明する。
【0047】
乱数生成手段11は制御手段23に制御され、乱数kaを生成し、これを秘密鍵kaとする。ここで秘密鍵kaは、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとした時、0<ka<qを満たしている。制御手段23は乱数を生成するタイミングや乱数の種、初期値の設定を行う。制御手段23には、例えばマイクロコンピュータが使用される。さらに制御手段23は、共有鍵配布先となるユーザー2より数2式で表されるユーザー2の公開鍵ybを取得する。共有鍵生成手段21は制御手段23に制御され、共有鍵Kaを生成する。共有鍵Kaは数3式に基づいてユーザー1の秘密鍵kaとユーザー2の公開鍵ybとにより演算される。生成された共有鍵Kaは、例えば、制御手段14によって秘密鍵暗号方式の鍵として用いられ、ユーザー1とユーザー2との間でこの共通の共有鍵Kaを用いた暗号化伝送に使用される。
【0048】
以上の構成において、少なくとも乱数生成手段11と共有鍵生成手段21とをLSI22内部に集積すれば、数3式の演算を他の暗号処理へ流用あるいは改変することは非常に困難である。加えて制御手段23を集積すれば、さらに効果が高まる。また共有鍵Ka生成後、乱数生成手段11が新たに乱数を生成するようにすれば、共有鍵Kaは出力される毎に異なる値をとる。この時、数3式から明らかなように、共有鍵Kaは乱数の関数となる。よって、ユーザー1を含めた誰もが本共有鍵生成装置24を共有鍵Kaの生成以外に流用あるいは改変することは極めて困難である。
【0049】
以上のように、本実施の形態2による共有鍵生成装置によれば、共有鍵生成装置24を、乱数生成手段11と共有鍵生成手段21とを1つのLSI22に集積化して構成するようにしたので、秘密鍵kaはチップ内部で共有鍵Kaの生成にのみ用いられる構成となり、共有鍵生成装置24の数3式の演算が外部には漏れることがなく、このようなLSI22を用いることで、本共有鍵生成装置24を共有鍵Kaの生成以外に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度が極めて高い。
【0050】
なお、数3式に基づいて共有鍵Kaを演算する例について説明したが、楕円曲線暗号を使用し、数7式に基づいて共有鍵Kaを演算しても同様の効果が得られる。
また、離散対数問題に基づく公開鍵暗号系を使用すれば、どのような公開鍵暗号系に対しても同様の効果が得られることは言うまでもない。
【0051】
(実施の形態3)
次に、本発明の請求項9に対応する実施の形態3による鍵交換装置について説明する。
図3は、本発明の実施の形態3である鍵交換装置のブロック構成図を示すものである。
【0052】
図3において、図1または図2と同一符号は同一、または相当部分を示し、31は乱数生成手段11,公開鍵生成手段12,共有鍵生成手段21とを含むLSI、32はLSI31を制御する制御手段、33は公開鍵配布元、及び共有鍵配布先となるユーザー2の生成した公開鍵を基に作成した共有鍵の配布元、となるユーザー1の鍵交換装置である。
【0053】
以下、図3を参照しながら、実施の形態3の鍵交換装置の動作について説明する。
乱数生成手段11は制御手段32に制御され、乱数kaを生成し、これを秘密鍵kaとする。ここで秘密鍵kaは、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとした時、0<ka<qを満たしている。制御手段32は乱数を生成するタイミングや乱数の種、初期値の設定を行う。制御手段32には、例えばマイクロコンピュータが使用される。公開鍵生成手段12は制御手段32に制御され、公開鍵yaを生成する。公開鍵yaは数1式に基づいて演算される。生成された公開鍵yaは、制御手段32によってユーザー2へ伝送される。
【0054】
さらに制御手段32は、ユーザー2より数2式で表されるユーザー2の公開鍵ybを取得する。共有鍵生成手段21は制御手段32に制御され、共有鍵Kaを生成する。共有鍵Kaは数3式に基づいて秘密鍵kaと公開鍵ybより演算される。生成された共有鍵Kaは、制御手段32によって例えば秘密鍵暗号方式の鍵として用いられ、ユーザー1とユーザー2との間の暗号化伝送に使用される。
【0055】
少なくとも乱数生成手段11と公開鍵生成手段12と共有鍵生成手段21をLSI31内部に集積すれば、数1式および数3式の演算を他の暗号処理へ流用あるいは改変することは非常に困難である。加えて制御手段32を集積すれば、さらに効果が高まる。また公開鍵yaと共有鍵Kaとを生成後、乱数生成手段11が新たに乱数を生成するようにすれば、数1式および数3式から明らかなように、公開鍵yaと共有鍵Kaは乱数の関数となる。よって、ユーザー1を含めた誰もが本鍵交換装置33を鍵交換処理以外に流用あるいは改変することは極めて困難である。
【0056】
以上のように、本実施の形態3による鍵交換装置によれば、鍵交換装置33を、乱数生成手段11と公開鍵生成手段12と共有鍵生成手段21とを、1つのLSI131に集積化して構成するようにしたので、秘密鍵kaはチップ内部で公開鍵ya、及び共有鍵Kaの生成にのみ用いられる構成となり、鍵交換装置33の数1式及び数3式の演算が外部には漏れることがなく、このようなLSI131を用いることで本鍵交換装置33を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難となり、第3者の不正な攻撃に対する強度が極めて高い。
【0057】
なお、数1式および数3式に基づいて公開鍵yaと共有鍵Kaを演算する例について説明したが、楕円曲線暗号を使用し、数5式および数7式に基づいて公開鍵yaと共有鍵Kaとを演算しても同様の効果が得られる。
【0058】
また、離散対数問題に基づく公開鍵暗号系を使用すれば、どのような公開鍵暗号系に対しても同様の効果が得られることは言うまでもない。
なお、本実施の形態3における鍵交換装置33と同様の構成をもつ鍵交換装置をユーザー2が使用することによって、ユーザー1とユーザー2の間の鍵交換処理を極めて安全に行うことができることは説明するまでもない。
【0059】
(実施の形態4)
次に、本発明の請求項13に対応する実施の形態4による鍵交換装置について説明する。
図4は、本発明の実施の形態4による鍵交換装置のブロック構成図を示すものである。
【0060】
図4において、図1または図2と同一符号は同一、または相当部分を示し、41は秘密鍵保持手段、42は乱数生成手段11,公開鍵生成手段,共有鍵生成手段21,秘密鍵保持手段41とを含むLSI、43はLSI42を制御する制御手段、44は公開鍵配布元、及び共有鍵配布先となるユーザー2の生成した公開鍵を基に作成した共有鍵の配布元、となるユーザー1の鍵交換装置である。以下、図4を参照しながら、本実施の形態4の鍵交換装置の動作について説明する。
【0061】
乱数生成手段11は制御手段43に制御され、乱数kaを生成し、これを秘密鍵kaとする。ここで秘密鍵kaは、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとした時、0<ka<qを満たしている。制御手段43は乱数を生成するタイミングや乱数の種、初期値の設定を行う。制御手段43には、例えばマイクロコンピュータが使用される。秘密鍵保持手段41は秘密鍵kaを一時的に記憶する。公開鍵生成手段12は制御手段43に制御され、公開鍵yaを生成する。公開鍵yaは数1式に基づいて演算される。生成された公開鍵yaは、制御手段43によってユーザー2へ伝送される。
【0062】
さらに制御手段43は、ユーザー2より数2式で表されるユーザー2の公開鍵ybを取得する。共有鍵生成手段21は制御手段43に制御され、共有鍵Kaを生成する。共有鍵Kaは数3式に基づいて秘密鍵保持手段41が記憶している秘密鍵kaと公開鍵ybとより演算される。生成された共有鍵Kaは、制御手段43によって、例えば秘密鍵暗号方式の鍵として用いられ、ユーザー1とユーザー2との間の暗号化伝送に使用される。
【0063】
少なくとも乱数生成手段11と公開鍵生成手段12と共有鍵生成手段21と秘密鍵保持手段41とをLSI42内部に集積すれば、数1式および数3式の演算を他の暗号処理へ流用あるいは改変することは非常に困難である。加えて制御手段43を集積すれば、さらに効果が高まる。
【0064】
また公開鍵yaを生成後、乱数生成手段11が新たに乱数を生成するようにすれば、公開鍵yaは出力される毎に異なる値をとる。この時、数1式から明らかなように、公開鍵yaは乱数の関数となる。共有鍵生成手段21が共有鍵Kaを生成する以前に、乱数生成手段11が新たに乱数を生成しても、秘密鍵保持手段41が秘密鍵kaを保持しているため、共有鍵生成手段21は正しく共有鍵Kaを生成することができる。
【0065】
加えて、共有鍵生成手段21により共有鍵Kaを生成した後、乱数生成手段11が新たに乱数を生成し、生成した乱数を秘密鍵保持手段41が保持するようにすれば、共有鍵Kaは出力される毎に異なる値をとる。この時、数3式から明らかなように、共有鍵Kaは乱数の関数となる。
【0066】
よって、ユーザー1を含めた誰もが本鍵交換装置を鍵交換処理以外に流用あるいは改変することは極めて困難である。またLSI42の外部に出力される公開鍵ya、共有鍵Kaを観測しても乱数の関数となっているため、公開鍵生成手段12と共有鍵生成手段21の構成を類推することすら不可能である。
【0067】
以上のように、本実施の形態4による鍵交換装置によれば、鍵交換装置44を、乱数生成手段11と公開鍵生成手段12と共有鍵生成手段21と秘密鍵保持手段41とを1つのLSI42に集積化して構成するようにしたので、秘密鍵kaはチップ内部で公開鍵ya、及び共有鍵Kaの生成にのみ用いられる構成となり、鍵交換装置44の数1式及び数3式の演算が外部には漏れることがなく、このようなLSI42を用いることで本鍵交換装置44を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難となり、第3者の不正な攻撃に対する強度が極めて高い。
【0068】
加えて、共有鍵生成手段21が共有鍵Kaを生成する以前に、乱数生成手段11が新たに乱数を生成しても、共有鍵生成手段21が正しく共有鍵Kaを生成することができる。
【0069】
なお、数1式および数3式に基づいて公開鍵yaと共有鍵Kaを演算する例について説明したが、楕円曲線暗号を使用し、数5式および数7式に基づいて公開鍵yaと共有鍵Kaを演算しても同様の効果が得られる。
【0070】
また、離散対数問題に基づく公開鍵暗号系を使用すれば、どのような公開鍵暗号系に対しても同様の効果が得られることは言うまでもない。
【0071】
なお、本実施の形態4における鍵交換装置44と同様の構成をもつ鍵交換装置をユーザー2が使用することによって、ユーザー1とユーザー2の間の鍵交換処理を極めて安全に行うことができることは説明するまでもない。
【0072】
【発明の効果】
以上のように、本発明の請求項1にかかる公開鍵生成装置によれば、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段とを備え、少なくとも前記乱数生成手段と前記公開鍵生成手段とが同一の半導体集積回路上に集積され、公開鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵yaを取得し、該公開鍵yaを公開鍵配布先となる第2のユーザーへ伝送するものとしたので、秘密鍵kaは半導体集積回路のチップ内部で公開鍵yaの生成にのみ用いられる構成となり、鍵交換装置の演算が外部には漏れることがなく、このような集積回路を用いることで本公開鍵生成装置を公開鍵yaの生成以外に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0073】
また、本発明の請求項2にかかる公開鍵生成装置によれば、請求項1記載の公開鍵生成装置において、前記公開鍵生成手段は、前記乱数kaと、前記元gと、前記素数qより、前記公開鍵yaを、ya=g^ka mod qとして、前記有限群F上で演算し出力するものとしたので、有限群Fにおける離散対数問題の解法の困難性を根拠とした暗号系において、公開鍵生成装置を公開鍵yaの生成以外に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0074】
また、本発明の請求項3にかかる公開鍵生成装置によれば、請求項1記載の公開鍵生成装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記公開鍵生成手段が、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、ya=kaG mod qとして、前記楕円曲線E(F)上で演算し出力するものとしたので、楕円曲線暗号系においても、公開鍵生成装置を公開鍵yaの生成以外に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0075】
また、本発明の請求項4にかかる公開鍵生成装置によれば、請求項1ないし3のいずれかに記載の公開鍵生成装置において、前記乱数生成手段が、前記公開鍵yaの演算終了後に、新たな乱数を生成するものとしたので、公開鍵yaは出力される毎に異なるものとなり、第3者の不正な攻撃に対する強度をさらに高いものとすることができるという効果が得られる。
【0076】
また、本発明の請求項5にかかる共有鍵生成装置は、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記乱数kaより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、少なくとも前記乱数生成手段と前記共有鍵生成手段とが同一の半導体集積回路上に集積され、共有鍵配布元となる第1のユーザーの制御手段が、前記共有鍵配布先となる第2のユーザーより前記公開鍵ybを取得し、前記乱数生成手段と前記共有鍵生成手段とを制御して、前記共有鍵Kaを導出するものとしたので、秘密鍵kaは半導体集積回路のチップ内部で共有鍵Kaの生成にのみ用いられる構成となり、鍵交換装置の演算が外部には漏れることがなく、このような集積回路を用いることで本共有鍵生成装置を共有鍵Kaの生成以外に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0077】
また、本発明の請求項6にかかる共有鍵生成装置は、請求項5記載の共有鍵生成装置において、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが生成した前記公開鍵yb=g^kb mod qと、前記乱数kaにより、前記共有鍵Kaを、Ka=yb^ka mod qとして、前記有限群F上で演算し出力するものとしたので、有限群Fにおける離散対数問題の解法の困難性を根拠とした暗号系において、共有鍵生成装置を共有鍵Kaの生成以外に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0078】
また、本発明の請求項7にかかる共有鍵生成装置は、請求項5記載の共有鍵生成装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記乱数kaにより、前記共有鍵Kaを、Ka=kayb mod qとして、前記楕円曲線E(F)上で演算し出力するものとしたので、楕円曲線暗号系においても、共有鍵生成装置を共有鍵Kaの生成以外に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0079】
また、本発明の請求項8にかかる共有鍵生成装置は、請求項5ないし7のいずれかに記載の共有鍵生成装置において、前記乱数生成手段は、前記共有鍵Kaの演算終了後に、新たな乱数を生成するものとしたので、共有鍵Kaは出力される毎に異なるものとなり、第3者の不正な攻撃に対する強度をさらに高いものとすることができるという効果が得られる。
【0080】
また、本発明の請求項9にかかる鍵交換装置は、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段と、共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記乱数kaより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、少なくとも前記乱数生成手段と前記公開鍵生成手段と前記共有鍵生成手段とが同一の半導体集積回路上に集積され、共有鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵ybを取得し、前記共有鍵生成手段を制御して前記共有鍵Kaを導出するものとしたので、秘密鍵kaは半導体集積回路のチップ内部で公開鍵ya、及び共有鍵Kaの生成にのみ用いられる構成となり、鍵交換装置の演算が外部には漏れることがなく、このような集積回路を用いることで本鍵交換装置を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難となり、第3者の不正な攻撃に対する強度が極めて高いものとすることができるという効果が得られる。
【0081】
また、本発明の請求項10にかかる鍵交換装置は、請求項9記載の鍵交換装置において、前記公開鍵生成手段は、前記乱数kaと、前記元gと、前記素数qより、前記公開鍵yaをya=g^ka mod qとして、前記有限群F上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが、前記乱数kbより前記有限群F上で演算し生成した前記公開鍵yb=g^kbmod qと、前記乱数kaにより、前記共有鍵KaをKa=yb^ka mod qとして、前記有限群F上で演算し出力するものとしたので、有限群Fにおける離散対数問題の解法の困難性を根拠とした暗号系において、鍵交換装置を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0082】
また、本発明の請求項11にかかる鍵交換装置は、請求項9記載の鍵交換装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記公開鍵生成手段は、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、ya=kaG mod qとして、前記楕円曲線E(F)上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる前記第2のユーザーが、前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記乱数kaにより、前記共有鍵Kaを、Ka=kayb mod qとして、前記楕円曲線E(F)上で演算し出力するものとしたので、楕円曲線暗号系においても、鍵交換装置を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0083】
また、本発明の請求項12にかかる鍵交換装置は、請求項9ないし11のいずれかに記載の鍵交換装置において、前記乱数生成手段は、前記公開鍵yaと前記共有鍵Kaの演算がともに終了した後に、新たな乱数を生成するものとしたので、公開鍵ya、及び共有鍵Kaは出力される毎に異なるものとなり、第3者の不正な攻撃に対する強度をさらに高いものとすることができるという効果が得られる。
【0084】
また、本発明の請求項13にかかる鍵交換装置は、乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、前記乱数kaを一時的に記憶する秘密鍵保持手段と、前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段と、共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記秘密鍵保持手段が保持する乱数kaにより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、少なくとも、前記乱数生成手段と、前記秘密鍵保持手段と、前記公開鍵生成手段と、前記共有鍵生成手段とが、同一の半導体集積回路上に集積され、共有鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵yaを取得して、該公開鍵yaを前記共有鍵配布先となる第2のユーザーへ伝送し、前記共有鍵配布先となる第2のユーザーより前記公開鍵ybを取得して、前記共有鍵生成手段を制御して前記共有鍵Kaを導出するものとしたので、秘密鍵kaは半導体集積回路のチップ内部で公開鍵ya、及び共有鍵Kaの生成にのみ用いられる構成となり、鍵交換装置の演算が外部には漏れることがなく、このような集積回路を用いることで本鍵交換装置を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難となり、第3者の不正な攻撃に対する強度が極めて高いものとすることができるという効果が得られるのに加えて、共有鍵生成手段が共有鍵Kaを生成する以前に、乱数生成手段が新たに乱数を生成しても、共有鍵生成手段は正しく共有鍵Kaを生成することができるという効果が得られる。
【0085】
また、本発明の請求項14にかかる鍵交換装置は、請求項13記載の鍵交換装置において、前記公開鍵生成手段は、前記乱数kaと前記元gと前記素数qより前記公開鍵yaを、ya=g^ka mod qとして、前記有限群F上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが前記乱数kbより前記有限群F上で演算し生成した前記公開鍵yb=g^kb mod qと前記秘密鍵保持手段が記憶している乱数kaより前記共有鍵Kaを、Ka=yb^ka mod qとして、前記有限群F上で演算し出力するものとしたので、有限群Fにおける離散対数問題の解法の困難性を根拠とした暗号系において、鍵交換装置を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0086】
また、本発明の請求項15にかかる鍵交換装置は、請求項13記載の鍵交換装置において、前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記公開鍵生成手段は、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、ya=kaG mod qとして、前記楕円曲線E(F)上で演算し出力し、前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが、前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記秘密鍵保持手段が記憶している乱数kaにより、前記共有鍵Kaを、Ka=kayb mod qとして、前記楕円曲線E(F)上で演算し出力するものとしたので、楕円曲線暗号系においても、鍵交換装置を鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難な状態となり、第3者の不正な攻撃に対する強度を極めて高いものとすることができるという効果が得られる。
【0087】
また、本発明の請求項16にかかる鍵交換装置は、請求項13ないし15のいずれかに記載の鍵交換装置において、前記乱数生成手段は、前記公開鍵yaの演算終了後に、新たな乱数を生成するようにしたので、公開鍵ya、及び共有鍵Kaは出力される毎に異なるものとなり、第3者の不正な攻撃に対する強度をさらに高いものとすることができるという効果が得られる。
【0088】
また、本発明の請求項17にかかる鍵交換装置は、請求項13ないし15のいずれかに記載の鍵交換装置において、
【0089】
前記乱数生成手段は、前記共有鍵Kaの演算終了後に、新たな乱数を生成し、前記秘密鍵保持手段が、前記乱数生成手段の生成した前記新たな乱数を保持するようにしたので、共有鍵生成手段が共有鍵Kaを生成する以前に、乱数生成手段が新たに乱数を生成しても、共有鍵生成手段が正しく共有鍵Kaを生成することができるという効果が得られる。
【0090】
また、本発明の請求項18にかかる鍵交換方法は、請求項9ないし17のいずれかに記載の鍵交換装置を使用し、鍵を共有したいユーザーの双方が前記鍵を共有するようにしたので、鍵交換装置の演算が外部には漏れることがなく、このような集積回路を用いることで暗号鍵生成、または鍵交換以外の暗号化処理に流用あるいは改変することが極めて困難となり、第3者の不正な攻撃に対する強度が極めて高いものとすることができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施の形態1における公開鍵生成装置の構成を示すブロック構成図である。
【図2】本発明の実施の形態2における共有鍵生成装置の構成を示すブロック構成図である。
【図3】本発明の実施の形態3における鍵交換装置の構成を示すブロック構成図である。
【図4】本発明の実施の形態4における鍵交換装置の構成を示すブロック構成図である。
【図5】従来の鍵交換装置の構成を示すブロック構成図である。
【符号の説明】
11 乱数生成手段
12 公開鍵生成手段
13,22,31,42 LSI
14,23,32,43 制御手段
15 公開鍵生成装置
21 共有鍵生成手段
24 共有鍵生成装置
33,44 鍵交換装置
41 秘密鍵保持手段
Claims (18)
- 乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、
前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段とを備え、
少なくとも前記乱数生成手段と前記公開鍵生成手段とが同一の半導体集積回路上に集積され、
公開鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵yaを取得し、該公開鍵yaを公開鍵配布先となる第2のユーザーへ伝送する、
ことを特徴とする公開鍵生成装置。 - 請求項1記載の公開鍵生成装置において、
前記公開鍵生成手段は、
前記乱数kaと、前記元gと、前記素数qより、前記公開鍵yaを、
ya=g^ka mod q
として、前記有限群F上で演算し出力する、
ことを特徴とする公開鍵生成装置。 - 請求項1記載の公開鍵生成装置において、
前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、
前記公開鍵生成手段が、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、
ya=kaG mod q
として、前記楕円曲線E(F)上で演算し出力する、
ことを特徴とする公開鍵生成装置。 - 請求項1ないし3のいずれかに記載の公開鍵生成装置において、
前記乱数生成手段が、前記公開鍵yaの演算終了後に、新たな乱数を生成する、
ことを特徴とする公開鍵生成装置。 - 乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、
共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記乱数kaより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、
少なくとも前記乱数生成手段と前記共有鍵生成手段とが同一の半導体集積回路上に集積され、
共有鍵配布元となる第1のユーザーの制御手段が、前記共有鍵配布先となる第2のユーザーより前記公開鍵ybを取得し、前記乱数生成手段と前記共有鍵生成手段とを制御して、前記共有鍵Kaを導出する、
ことを特徴とする共有鍵生成装置。 - 請求項5記載の共有鍵生成装置において、
前記共有鍵生成手段は、
前記共有鍵配布先となる第2のユーザーが生成した前記公開鍵yb=g^kbmod qと、前記乱数kaにより、前記共有鍵Kaを、
Ka=yb^ka mod q
として、前記有限群F上で演算し出力する、
ことを特徴とする共有鍵生成装置。 - 請求項5記載の共有鍵生成装置において、
前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、
前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記乱数kaにより、前記共有鍵Kaを、
Ka=kayb mod q
として、前記楕円曲線E(F)上で演算し出力する、
ことを特徴とする共有鍵生成装置。 - 請求項5ないし7のいずれかに記載の共有鍵生成装置において、
前記乱数生成手段は、前記共有鍵Kaの演算終了後に、新たな乱数を生成する、
ことを特徴とする共有鍵生成装置。 - 乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、
前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段と、
共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記乱数kaより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、
少なくとも前記乱数生成手段と前記公開鍵生成手段と前記共有鍵生成手段とが同一の半導体集積回路上に集積され、
共有鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵ybを取得し、前記共有鍵生成手段を制御して前記共有鍵Kaを導出する、
ことを特徴とする鍵交換装置。 - 請求項9記載の鍵交換装置において、
前記公開鍵生成手段は、前記乱数kaと、前記元gと、前記素数qより、前記公開鍵yaをya=g^ka mod qとして、前記有限群F上で演算し出力し、
前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが、前記乱数kbより前記有限群F上で演算し生成した前記公開鍵yb=g^kb mod qと、前記乱数kaにより、前記共有鍵KaをKa=yb^ka mod qとして、前記有限群F上で演算し出力する、
ことを特徴とする鍵交換装置。 - 請求項9記載の鍵交換装置において、
前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、
前記公開鍵生成手段は、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、ya=kaG mod q
として、前記楕円曲線E(F)上で演算し出力し、
前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが、前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記乱数kaにより、前記共有鍵Kaを、
Ka=kayb mod q
として、前記楕円曲線E(F)上で演算し出力する、
ことを特徴とする鍵交換装置。 - 請求項9ないし11のいずれかに記載の鍵交換装置において、
前記乱数生成手段は、前記公開鍵yaと前記共有鍵Kaの演算がともに終了した後に、新たな乱数を生成する、
ことを特徴とする鍵交換装置。 - 乗算が定義された有限群F上の元をg、前記gの素数である位数をqとし、0<ka<qとなる乱数kaを生成する乱数生成手段と、
前記乱数kaを一時的に記憶する秘密鍵保持手段と、
前記乱数kaと、前記元gと、前記素数qより、公開鍵yaを前記有限群F上で演算し出力する公開鍵生成手段と、
共有鍵配布先となる第2のユーザーが発生した0<kb<qとなる乱数kbより生成された公開鍵ybと、前記秘密鍵保持手段が保持する乱数kaにより、共有鍵Kaを前記有限群F上で演算し出力する共有鍵生成手段とを備え、
少なくとも、前記乱数生成手段と、前記秘密鍵保持手段と、前記公開鍵生成手段と、前記共有鍵生成手段とが、同一の半導体集積回路上に集積され、
共有鍵配布元となる第1のユーザーの制御手段が、前記乱数生成手段と前記公開鍵生成手段とを制御して前記公開鍵yaを取得して、該公開鍵yaを前記共有鍵配布先となる第2のユーザーへ伝送し、
前記共有鍵配布先となる第2のユーザーより前記公開鍵ybを取得して、前記共有鍵生成手段を制御して前記共有鍵Kaを導出する、
ことを特徴とする鍵交換装置。 - 請求項13記載の鍵交換装置において、
前記公開鍵生成手段は、前記乱数kaと、前記元gと、前記素数qより前記公開鍵yaを、
ya=g^ka mod q
として、前記有限群F上で演算し出力し、
前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが前記乱数kbより前記有限群F上で演算し生成した前記公開鍵yb=g^kb mod qと、前記秘密鍵保持手段が記憶している乱数kaより、前記共有鍵Kaを、
Ka=yb^ka mod q
として、前記有限群F上で演算し出力する、
ことを特徴とする鍵交換装置。 - 請求項13記載の鍵交換装置において、
前記有限群Fを有限体上の楕円曲線E(F)とし、前記楕円曲線E(F)の元をGとし、前記公開鍵生成手段は、前記乱数kaと、前記元Gと、前記素数qより、前記公開鍵yaを、
ya=kaG mod q
として、前記楕円曲線E(F)上で演算し出力し、
前記共有鍵生成手段は、前記共有鍵配布先となる第2のユーザーが、前記乱数kbより前記楕円曲線E(F)上で演算し生成した前記公開鍵yb=kbG mod qと、前記秘密鍵保持手段が記憶している乱数kaにより、前記共有鍵Kaを、
Ka=kayb mod q
として、前記楕円曲線E(F)上で演算し出力する、
ことを特徴とする鍵交換装置。 - 請求項13ないし15のいずれかに記載の鍵交換装置において、
前記乱数生成手段は、前記公開鍵yaの演算終了後に、新たな乱数を生成する、
ことを特徴とする鍵交換装置。 - 請求項13ないし15のいずれかに記載の鍵交換装置において、
前記乱数生成手段は、前記共有鍵Kaの演算終了後に、新たな乱数を生成し、
前記秘密鍵保持手段が、前記乱数生成手段の生成した前記新たな乱数を保持する、
ことを特徴とする鍵交換装置。 - 請求項9ないし17のいずれかに記載の鍵交換装置を使用し、鍵を共有したいユーザーの双方が前記鍵を共有する、
ことを特徴とする鍵交換方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003088788A JP2004297578A (ja) | 2003-03-27 | 2003-03-27 | 公開鍵生成装置、共有鍵生成装置、鍵交換装置、及び鍵交換方法 |
CNB2004100304959A CN100338906C (zh) | 2003-03-27 | 2004-03-25 | 共享密钥生成装置、密钥交换装置以及密钥交换方法 |
US10/809,507 US20040228484A1 (en) | 2003-03-27 | 2004-03-26 | Public key generation apparatus, shared key generation apparatus, key exchange apparatus, and key exchanging method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003088788A JP2004297578A (ja) | 2003-03-27 | 2003-03-27 | 公開鍵生成装置、共有鍵生成装置、鍵交換装置、及び鍵交換方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004297578A true JP2004297578A (ja) | 2004-10-21 |
Family
ID=33402824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003088788A Withdrawn JP2004297578A (ja) | 2003-03-27 | 2003-03-27 | 公開鍵生成装置、共有鍵生成装置、鍵交換装置、及び鍵交換方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20040228484A1 (ja) |
JP (1) | JP2004297578A (ja) |
CN (1) | CN100338906C (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008520145A (ja) * | 2004-11-11 | 2008-06-12 | サーティコム コーポレーション | 汎用鍵導出関数サポートのための安全インタフェース |
JP2008245112A (ja) * | 2007-03-28 | 2008-10-09 | Hitachi Global Storage Technologies Netherlands Bv | データ記憶装置及びその暗号鍵の管理方法 |
US8594332B2 (en) | 2007-05-25 | 2013-11-26 | Nec Corporation | Key generating apparatus, encrypting apparatus and decrypting appatatus |
JP2021044828A (ja) * | 2016-02-23 | 2021-03-18 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | ウォレット管理システムと併せたブロックチェーンベースのシステムのための暗号鍵のセキュアなマルチパーティ損失耐性のある記憶及び転送 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8316416B2 (en) | 2005-04-04 | 2012-11-20 | Research In Motion Limited | Securely using a display to exchange information |
KR100891323B1 (ko) * | 2005-05-11 | 2009-03-31 | 삼성전자주식회사 | 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치 |
US8005223B2 (en) | 2006-05-12 | 2011-08-23 | Research In Motion Limited | System and method for exchanging encryption keys between a mobile device and a peripheral device |
US8670566B2 (en) * | 2006-05-12 | 2014-03-11 | Blackberry Limited | System and method for exchanging encryption keys between a mobile device and a peripheral output device |
CN100583745C (zh) * | 2006-12-06 | 2010-01-20 | 华为技术有限公司 | 一种基于Diameter服务器的密钥生成与分发方法及系统 |
CN101321053B (zh) | 2007-06-08 | 2011-09-14 | 华为技术有限公司 | 一种生成组密钥的方法、系统和设备 |
CN102104481B (zh) * | 2010-12-17 | 2013-04-10 | 中国科学院数据与通信保护研究教育中心 | 一种基于椭圆曲线的密钥交换方法 |
US9219604B2 (en) * | 2011-05-09 | 2015-12-22 | Cleversafe, Inc. | Generating an encrypted message for storage |
CN103023641B (zh) * | 2012-10-25 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种序列号生成验证方法 |
US10419213B2 (en) * | 2015-01-16 | 2019-09-17 | Nippon Telegraph And Telephone Corporation | Key exchange method, key exchange system, key device, terminal device, and program |
US10237063B2 (en) * | 2016-12-13 | 2019-03-19 | Nxp B.V. | Distributed cryptographic key insertion and key delivery |
CN106549770B (zh) * | 2017-01-13 | 2019-07-12 | 武汉理工大学 | Sm2数字签名生成方法及系统 |
CN117792641A (zh) * | 2024-02-27 | 2024-03-29 | 天津医康互联科技有限公司 | 联邦学习系统的全局评价指标获取方法及联邦学习系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4956863A (en) * | 1989-04-17 | 1990-09-11 | Trw Inc. | Cryptographic method and apparatus for public key exchange with authentication |
US5604805A (en) * | 1994-02-28 | 1997-02-18 | Brands; Stefanus A. | Privacy-protected transfer of electronic information |
US5539828A (en) * | 1994-05-31 | 1996-07-23 | Intel Corporation | Apparatus and method for providing secured communications |
US6307936B1 (en) * | 1997-09-16 | 2001-10-23 | Safenet, Inc. | Cryptographic key management scheme |
JP2001352319A (ja) * | 2000-03-23 | 2001-12-21 | Mitsuko Miyaji | 統合装置 |
FR2811442B1 (fr) * | 2000-07-10 | 2002-09-13 | Gemplus Card Int | Procede de generation d'une cle electronique a partir d'un nombre premier compris dans un intervalle determine et dispositif de mise en oeuvre du procede |
-
2003
- 2003-03-27 JP JP2003088788A patent/JP2004297578A/ja not_active Withdrawn
-
2004
- 2004-03-25 CN CNB2004100304959A patent/CN100338906C/zh not_active Expired - Fee Related
- 2004-03-26 US US10/809,507 patent/US20040228484A1/en not_active Abandoned
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008520145A (ja) * | 2004-11-11 | 2008-06-12 | サーティコム コーポレーション | 汎用鍵導出関数サポートのための安全インタフェース |
JP2008245112A (ja) * | 2007-03-28 | 2008-10-09 | Hitachi Global Storage Technologies Netherlands Bv | データ記憶装置及びその暗号鍵の管理方法 |
US8594332B2 (en) | 2007-05-25 | 2013-11-26 | Nec Corporation | Key generating apparatus, encrypting apparatus and decrypting appatatus |
JP2021044828A (ja) * | 2016-02-23 | 2021-03-18 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | ウォレット管理システムと併せたブロックチェーンベースのシステムのための暗号鍵のセキュアなマルチパーティ損失耐性のある記憶及び転送 |
JP7164580B2 (ja) | 2016-02-23 | 2022-11-01 | エヌチェーン ホールディングス リミテッド | ウォレット管理システムと併せたブロックチェーンベースのシステムのための暗号鍵のセキュアなマルチパーティ損失耐性のある記憶及び転送 |
JP7164580B6 (ja) | 2016-02-23 | 2022-11-28 | エヌチェーン ライセンシング アーゲー | ウォレット管理システムと併せたブロックチェーンベースのシステムのための暗号鍵のセキュアなマルチパーティ損失耐性のある記憶及び転送 |
Also Published As
Publication number | Publication date |
---|---|
CN100338906C (zh) | 2007-09-19 |
CN1543118A (zh) | 2004-11-03 |
US20040228484A1 (en) | 2004-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4405810B2 (ja) | 階層型の同一性に基づく暗号化および署名スキーム | |
EP0936776B1 (en) | A network system using a threshold secret sharing method | |
JP2004297578A (ja) | 公開鍵生成装置、共有鍵生成装置、鍵交換装置、及び鍵交換方法 | |
US20110202773A1 (en) | Method of generating a password protocol using elliptic polynomial cryptography | |
JP2020508021A (ja) | キー交換デバイス及び方法 | |
US11290272B2 (en) | Elliptic curve point multiplication device and method in a white-box context | |
US20050005100A1 (en) | Cryptographic method and system | |
US20200287712A1 (en) | Method and device to protect a cryptographic exponent | |
CN101296072B (zh) | 一种椭圆曲线上的共享密钥产生方法 | |
KR100989185B1 (ko) | Rsa기반 패스워드 인증을 통한 세션키 분배방법 | |
Gupta et al. | Enhancement of Security of Diffie-Hellman Key Exchange Protocol using RSA Cryptography. | |
US7248692B2 (en) | Method of and apparatus for determining a key pair and for generating RSA keys | |
JP7155173B2 (ja) | 外部監視攻撃からモジュラーインバージョン演算を保護すること | |
KR100396740B1 (ko) | 계산적 디피-헬만 가정에 기반하는 안전성 증명 가능한공개키 암호화 방법 | |
CN108055134B (zh) | 椭圆曲线点数乘及配对运算的协同计算方法及系统 | |
JP5633563B2 (ja) | 楕円曲線上のパラメータ化による暗号法 | |
CN106534077A (zh) | 一种基于对称密码的可认证的代理重加密系统及方法 | |
US11616994B2 (en) | Embedding information in elliptic curve base point | |
CN115765985A (zh) | 用于多方安全计算的处理方法及装置 | |
JP4563037B2 (ja) | 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法 | |
CN110401533A (zh) | 一种私钥加密方法及装置 | |
KR100363253B1 (ko) | 통신에서 비밀키를 생성하는 방법 및 그 장치 | |
Te Chen | A Secure Group Data Encryption Scheme in Intelligent Manufacturing Systems for IIoT | |
Somsuk | The new Weakness of RSA and The Algorithm to Solve this Problem | |
JP4237306B2 (ja) | 超楕円曲線c生成装置、暗号管理装置、データ送信装置及びデータ受信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060125 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20081126 |