JP2008203548A - 二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。 - Google Patents

二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。 Download PDF

Info

Publication number
JP2008203548A
JP2008203548A JP2007039780A JP2007039780A JP2008203548A JP 2008203548 A JP2008203548 A JP 2008203548A JP 2007039780 A JP2007039780 A JP 2007039780A JP 2007039780 A JP2007039780 A JP 2007039780A JP 2008203548 A JP2008203548 A JP 2008203548A
Authority
JP
Japan
Prior art keywords
key
function
finite
group
quadratic
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.)
Pending
Application number
JP2007039780A
Other languages
English (en)
Inventor
Kimito Horie
公人 堀江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2007039780A priority Critical patent/JP2008203548A/ja
Priority to US11/962,640 priority patent/US20100020964A1/en
Publication of JP2008203548A publication Critical patent/JP2008203548A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】楕円曲線に代わり得る整数論的関数において定義される有限可換群を用いて楕円曲線暗号と同等の解読困難性を実現可能にする。
【解決手段】鍵生成装置1は、鍵設定部11および鍵生成部13を有する。鍵設定部11は、秘密鍵αを設定し、有限可換群の元を公開鍵Gとして選択する。鍵生成部13は、公開鍵Gに対して前記有限可換群で定義される加法演算を施すことにより公開鍵Gを秘密鍵αでスカラー倍して公開鍵Yを生成する。前記有限可換群は、有限環上で定義された二次双曲線関数の従属変数yと当該二次双曲線関数の独立変数xとの組(x,y)からなる集合である。
【選択図】図1

Description

本発明は、整数論的関数の従属変数と独立変数との組からなる点集合のなす群を用いた離散対数型の暗号技術に関する。
インターネットなどのデジタル通信網上での電子商取引や電子申請のセキュリティを確保するために暗号技術は必須の技術であり、この種の暗号技術として、公開鍵と秘密鍵という2組の鍵を用いる公開鍵暗号方式(public key cryptosystem)が広く普及している。代表的な公開鍵暗号方式の一つは、互いに異なる2個の奇素数p,qの積N(=pq)を公開鍵として使用するRSA暗号である。RSA暗号の安全性は、奇素数p,qが適切に選択されれば合成数N(=pq)の素因数分解が極めて困難であるという仮定に依っている。現在、もっとも高速な素因数分解のアルゴリズムとして一般数体ふるい法(GNFS: General Number Field Sieve)が知られており、この一般数体ふるい法を使用すれば、RSA暗号の秘密鍵を準指数オーダーの計算時間で見つけ出すことができる。近年のコンピュータの演算速度の向上により暗号解読時間の短縮化が進んでいるため、RSA暗号の安全性を確保するには1024ビットあるいは2048ビットといった大きな鍵長を使用する必要が生じている。
次世代の公開鍵暗号方式としては、離散対数問題(DLP:Discrete Logarithm Problem)を安全性の根拠とする楕円曲線暗号が研究されている。楕円曲線暗号の秘密鍵を見つけ出すには指数オーダーの計算時間が必要であるため、楕円曲線暗号の解読困難性はRSA暗号のそれよりも高いと考えられている。有限環上で定義された代数曲線上の有理点の集合は、適当な演算により群を構成し得る。この演算記号を「+」で表すとき、かかる群の元である代数曲線上の2点K,Sについて、S=αK=K+…+K(α個のKの加算)、を満たすただ一つの整数α(ここで、α∈[0,n−1];nは代数曲線群の位数)を求めよとする問題が離散対数問題である。楕円曲線上の離散対数問題(ECDLP: Elliptic Curve Discrete Logarithm Problem)に対して整数αを求めることは、特殊な場合を除いて計算量が膨大になるため極めて困難である。1024ビットの鍵長を使用するRSA暗号の安全性は、163ビット程度の短い鍵長を使用する楕円曲線暗号により達成できると考えられている。楕円曲線暗号に関する従来技術は、たとえば、特許文献1(特開2005−283674号公報)、特許文献2(特開2000−224157号公報)および非特許文献1(「数論アルゴリズムと楕円暗号理論入門」,N.コブリッツ著)に開示されている。
前述の離散対数問題を解くことが計算量上困難であれば楕円曲線暗号は安全である。一般に、安全な楕円曲線暗号を構成するためには、楕円曲線のパラメータを適切に選択することと、楕円曲線のなす群の位数が大きな素因数を含むことが必要であるが、素数位数を与える曲線パラメータの確定と位数の計算とに非常に時間を要するという問題がある。位数の高速計算を妨げる原因の一つは、位数が楕円曲線のパラメータの変化に応じて変動し得る点にある。曲線パラメータの決定方法としては、Schoof法や虚数乗法法(CM法:Complex Multiplication method)が知られている。Schoof法は、曲線パラメータをランダムに選択して楕円曲線のなす群を構成し、その群の位数を計算し、楕円曲線暗号の安全性を確認するという作業を行う。しかしながら、Schoof法には位数の計算に非常に時間がかかるという問題がある。一方、虚数乗法法は、群の位数を特殊な形に制限することにより曲線パラメータを比較的短時間で計算し得る方法であるが、位数の特殊な型に基づいた攻撃法が発見され易いという問題がある。
また、一般に、RSA暗号や楕円曲線暗号などのブロック暗号の演算量は多いため暗号処理に長時間を要する。それゆえ、高速伝送すべき平文データをリアルタイムに暗号化することが難しいという問題がある。高いリアルタイム性を持つ暗号方式としてはストリーム暗号が知られており、ストリーム暗号は、平文データ系列と疑似乱数系列とにビット毎またはバイト毎に排他的論理和演算を施して暗号文データ系列を得る共通鍵暗号技術の一方式である。ストリーム暗号は、小規模構成の実装を可能にするため、携帯電話機などの小型通信機器や、無線LANなどの近距離無線通信技術において広く採用されている。
ストリーム暗号に関する従来技術としては、1998年に提案された「PANAMA」が知られている(非特許文献2: J. Daemen, C. Clapp, “Fast Hashing and Stream Encryption with PANAMA,” Fast Software Encryption, 5th International Workshop, FSE’98, Proceedings, LNCS Vol. 1372, Springer-Verlag, 1998.)。「PANAMA」は、ストリーム暗号用の疑似乱数系列からなる鍵ストリームを生成し得る暗号モジュールである。鍵ストリーム生成のアルゴリズムには、「SNOW2.0」(Patrik Ekdahl and Thomas Johansson, Lund University)やPANAMA型の「MUGI」(日立製作所)が知られており、「SNOW2.0」と「MUGI」は国際標準暗号規格(ISO/IEC 18033−4)に規定されている。また「MUGI」の詳細については、たとえば、特許文献3(特開2003−37482号公報)、特許文献4(米国特許出願公開第2002/097868号公報)および特許文献5(米国特許出願公開第2002/118830号公報)に開示されている。しかしながら、このようなストリーム暗号の解読困難性は、素因数分解の困難性や離散対数問題を安全性の根拠とするブロック暗号のそれと比べると低いという問題がある。
上記公開鍵暗号方式は、暗号文データの解読が計算量上困難であることを安全性の根拠とする技術であるが、この安全性の根拠は、将来のコンピュータの演算速度の飛躍的向上により崩れてしまう可能性がある。そこで、量子力学におけるハイゼンベルグの不確定性原理により安全性の保証された量子通信暗号が近年研究されている。この種の量子通信暗号は、たとえば、特許文献6(特開2004−112278号公報)や特許文献7(米国特許出願公開第2006/059403号公報)に開示されている。量子通信暗号の暗号鍵配送プロトコルでは、バーナム暗号(Vernam cipher)と称するワンタイムパッド暗号(One-pad cipher)が使用されている。このバーナム暗号は、平文のビットストリームと真性乱数ビット列とにビット毎に排他的論理和演算を施して暗号ビットストリームを生成する技術であり、秘密鍵(すなわち、暗号鍵)の長さは平文の長さと等しい。バーナム暗号は、平文と同じ長さを持つ秘密鍵を一度で使い捨てるので、送信側と受信側とが秘密鍵を安全に共有している限り、絶対安全性を保証する技術であるが、送信側と受信側とで共有される秘密鍵を常に供給しなければならないという煩雑さがある。また、量子通信暗号は、通信経路上の盗聴行為を検知することが可能な技術であるが、十分な安全性の根拠を持つ量子鍵を「使い捨ての秘密鍵」として簡易に供給する方法は存在していない。
特開2005−283674号公報 特開2000−224157号公報 特開2003−37482号公報 米国特許出願公開第2002/097868号公報(特許文献3に係る特許出願の対応米国特許出願に係る公開公報) 米国特許出願公開第2002/118830号公報(特許文献3に係る特許出願の対応米国特許出願に係る公開公報) 特開2004−112278号公報 米国特許出願公開第2006/059403号公報(特許文献6に係る特許出願の対応米国特許出願に係る公開公報) 「数論アルゴリズムと楕円暗号理論入門」,N.コブリッツ著,櫻井幸一訳,シュプリンガーフェアラーク東京(ISBN4-431-70727-1 C3041) J. Daemen, C. Clapp, "Fast Hashing and Stream Encryption with PANAMA," Fast Software Encryption, 5th International Workshop, FSE’98, Proceedings, LNCS Vol. 1372, Springer-Verlag, 1998.
上記に鑑みて本発明の主な目的は、楕円曲線に代わり得る整数論的関数において定義される有限可換群を用い、楕円曲線暗号と同等の解読困難性を実現可能にする鍵生成方法、鍵生成装置、復号方法、復号装置、署名検証方法および署名検証装置を提供すること、特に、群の位数を極めて高速に計算し得、安全な整数論的関数に基づいた暗号システムを短時間で得ることを可能にする鍵生成方法、鍵生成装置、復号方法、復号装置、署名検証方法および署名検証装置を提供することである。
本発明の他の目的は、高い解読困難性を実現し得る鍵ストリーム生成方法および鍵ストリーム生成装置を提供すること、特に、高い解読困難性と高いリアルタイム性とを併せて実現可能にする鍵ストリーム生成方法および鍵ストリーム生成装置を提供することである。
前記目的を達成すべく、本発明の第1の態様による鍵生成方法は、暗号処理用の鍵を生成する鍵生成方法であって、(a)スカラー係数である秘密鍵を設定するとともに、有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元を第1の公開鍵として選択するステップと、(b)前記第1の公開鍵に対して前記有限可換群において定義される加法演算を施すことにより前記第1の公開鍵を前記秘密鍵でスカラー倍して第2の公開鍵を生成するステップと、を有し、前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、前記ステップ(b)においては、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とするものである。
本発明の第2の態様による鍵生成方法は、平文データを暗号化する鍵生成方法であって、(a)有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元である第1および第2の公開鍵をメモリから読み出すステップと、(b)当該読み出された第1および第2の公開鍵を用いて、前記平文データに対して前記有限可換群において定義される加法演算を施すことにより前記平文データを暗号化するステップと、を有し、前記第2の公開鍵は、前記第1の公開鍵に対して前記加法演算を施すことにより前記第1の公開鍵を秘密鍵でスカラー倍して得られる鍵であり、前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、前記ステップ(b)においては、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とするものである。
本発明の第3の態様による鍵生成方法は、平文データからデジタル署名を生成する鍵生成方法であって、(a)有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元である公開鍵とスカラー係数である秘密鍵とをメモリから読み出すステップと、(b)前記平文データに基づいてダイジェストデータを生成するステップと、(c)前記ステップ(a)で読み出された公開鍵と秘密鍵とを用いて、前記ダイジェストデータに対して前記有限可換群において定義される加法演算を施すことにより前記ダイジェストデータを暗号化してデジタル署名データを生成するステップと、を有し、前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、前記ステップ(c)においては、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とするものである。
本発明の第4の態様による鍵生成装置は、暗号処理用の鍵を生成する鍵生成装置であって、スカラー係数である秘密鍵を設定するとともに、有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元を第1の公開鍵として選択する鍵設定部と、前記第1の公開鍵に対して前記有限可換群において定義される加法演算を施すことにより前記第1の公開鍵を前記秘密鍵でスカラー倍して第2の公開鍵を生成する鍵生成部と、を有し、前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、前記鍵生成部は、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とするものである。
本発明の第5の態様による鍵生成装置は、平文データを暗号化する鍵生成装置であって、有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元である第1および第2の公開鍵を記憶するメモリと、前記第1および第2の公開鍵を用いて、前記平文データに対して前記有限可換群において定義される加法演算を施すことにより前記平文データを暗号化する暗号処理部と、を有し、前記第2の公開鍵は、前記第1の公開鍵に対して前記加法演算を施すことにより前記第1の公開鍵を秘密鍵でスカラー倍して得られる鍵であり、前記暗号処理部は、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とするものである。
本発明の第6の態様による鍵生成装置は、平文データからデジタル署名を生成する鍵生成装置であって、有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元である公開鍵とスカラー係数である秘密鍵とを記憶するメモリと、前記平文データに基づいてダイジェストデータを生成するダイジェスト生成部と、前記公開鍵と前記秘密鍵とを用いて、前記ダイジェストデータに対して前記有限可換群において定義される加法演算を施すことにより前記ダイジェストデータを暗号化してデジタル署名データを生成する暗号処理部と、を有し、前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、前記暗号処理部は、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とするものである。
本発明の第7の態様による復号方法は、暗号文データを復号する復号方法であって、(a)有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元を用いて暗号化された暗号文データを受信するステップと、(b)秘密鍵をメモリから読み出すステップと、(c)当該読み出された秘密鍵を用いて、前記暗号文データに対して前記有限可換群において定義される加法演算を施すことにより前記暗号文データを平文データに変換するステップと、を有し、前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、前記ステップ(c)においては、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とするものである。
本発明の第8の態様による復号装置は、暗号文データを復号する復号装置であって、秘密鍵を記憶するメモリと、有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元を用いて暗号化された暗号文データを受信し、前記秘密鍵を用いて、当該受信された暗号文データに対して前記有限可換群において定義される加法演算を施すことにより前記暗号文データを平文データに変換する復号部と、を有し、前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、前記復号部は、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とするものである。
本発明の第9の態様による署名検証方法は、外部から供給された平文データを用いてデジタル署名データの正当性を検証する署名検証方法であって、(a)有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元である公開鍵をメモリから読み出すステップと、(b)当該読み出された公開鍵を用いて、前記デジタル署名データに対し前記有限可換群において定義される加法演算を施して被検証データを生成するステップと、(c)前記平文データに基づいてダイジェストデータを生成するステップと、(d)前記ダイジェストデータが前記被検証データと整合するか否かを判定するステップと、を有し、前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、前記ステップ(b)においては、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とするものである。
本発明の第10の態様による署名検証装置は、外部から供給された平文データを用いてデジタル署名データの正当性を検証する署名検証装置であって、有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元である公開鍵を記憶するメモリと、前記平文データに基づいてダイジェストデータを生成するダイジェスト生成部と、前記公開鍵を用いて、前記デジタル署名データに対し前記有限可換群において定義される加法演算を施して被検証データを生成し、前記ダイジェストデータが前記被検証データと整合するか否かを判定する署名検証部と、を有し、前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、前記署名検証部は、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とするものである。
本発明の第11の態様による鍵ストリーム生成装置は、疑似乱数系列からなる鍵ストリームを生成する鍵ストリーム生成装置であって、有限環上で定義された整数論的関数の形を規定する曲線パラメータを設定するとともに、前記整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元の1つであるベースポイントを設定する群制御部と、スカラー係数である秘密鍵を設定する鍵設定部と、前記鍵設定部で設定された秘密鍵を用いて、前記群制御部で設定されたベースポイントに対して前記有限可換群において定義される加法演算を施すことにより当該設定されたベースポイントを当該設定された秘密鍵でスカラー倍して作業鍵を生成する作業鍵生成部と、前記作業鍵に基づいて疑似乱数系列からなる鍵ストリームを生成するストリーム生成部と、前記曲線パラメータ、前記ベースポイントおよび前記秘密鍵のうちの少なくとも1つを指定時刻毎に新たに生成する群パラメータ生成部と、を有し、前記群制御部は、現在設定中のベースポイントを前記群パラメータ生成部により新たに生成されたベースポイントで置換し、且つ現在設定中の曲線パラメータを前記群パラメータ生成部により新たに生成された曲線パラメータで置換するものであり、前記鍵設定部は、現在設定中の秘密鍵を前記群パラメータ生成部により新たに生成された秘密鍵で置換することを特徴とするものである。
そして、本発明の第12の態様による鍵ストリーム生成方法は、疑似乱数系列からなる鍵ストリームを生成する鍵ストリーム生成方法であって、(a)有限環上で定義された整数論的関数の形を規定する曲線パラメータを設定するとともに、前記整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元の1つであるベースポイントを設定するステップと、(b)スカラー係数である秘密鍵を設定するステップと、(c)前記ステップ(b)で設定された秘密鍵を用いて、前記ステップ(a)で設定されたベースポイントに対して前記有限可換群において定義される加法演算を施すことにより当該設定されたベースポイントを当該設定された秘密鍵でスカラー倍して作業鍵を生成するステップと、(d)前記作業鍵に基づいて疑似乱数系列からなる鍵ストリームを生成するステップと、(e)前記曲線パラメータ、前記ベースポイントおよび前記秘密鍵のうちの少なくとも1つを指定時刻毎に新たに生成するステップと、(f)前記ステップ(e)でベースポイントが新たに生成されたときに現在設定中のベースポイントを当該新たに生成されたベースポイントで置換するステップと、(g)前記ステップ(e)で曲線パラメータが新たに生成されたときに現在設定中の曲線パラメータを当該新たに生成された曲線パラメータで置換するステップと、(h)前記ステップ(e)で秘密鍵が新たに生成されたときに現在設定中の秘密鍵を当該新たに生成された秘密鍵で置換するステップと、を有することを特徴とするものである。
本発明に係る鍵生成方法、鍵生成装置、復号方法、復号装置、署名検証方法および署名検証装置は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数に基づいて構成される有限可換群の元を用いて、暗号処理用の鍵生成、暗号化、デジタル署名生成、復号および署名検証を実行する。これにより、楕円曲線暗号と同等の解読困難性を実現することが可能である。
また、本発明に係る鍵生成方法、鍵生成装置、復号方法、復号装置、署名検証方法および署名検証装置では、二次双曲線関数のパラメータを変更しても、有限可換群すなわち二次双曲線群の位数を短時間で計算して安全性を確認できるので、安全な二次双曲線群を素早く構成することができる。したがって、攻撃に対する耐性の高いシステムを実現することが可能である。
本発明に係る鍵ストリーム生成装置および鍵ストリーム生成方法は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数に基づいて構成される有限可換群の元を用いて、疑似乱数系列からなる鍵ストリームを生成するものである。ここで、本発明に係る鍵ストリーム生成装置および鍵ストリーム生成方法は、二次双曲線関数の形を規定するパラメータ(曲線パラメータあるいは曲線係数)、ベースポイントおよび秘密鍵のうちの少なくとも1つを指定時刻毎に新たに生成し、現在設定中のベースポイントを当該新たに生成されたベースポイントで置換し、現在設定中の曲線パラメータを当該新たに生成された曲線パラメータで置換し、現在設定中の秘密鍵を当該新たに生成された秘密鍵で置換することにより群構造をリアルタイムで変動させて鍵ストリームを生成する。したがって、解読困難性の高いストリーム暗号を実現することが可能である。
また、二次双曲線関数のパラメータを変更しても、有限可換群すなわち二次双曲線群の位数を短時間で計算して安全性を確認できるので、有限環の位数が一定のもとでベースポイントや二次双曲線関数のパラメータを変化させても安全な群構造をリアルタイムに得ることが可能である。それゆえ、二次双曲線群の元全体を効率良く使用して暗号処理を実行することができる。比較的短い鍵長を用いても解読困難性の高いストリーム暗号を実現でき、比較的簡易な構成のストリーム暗号システムを提供することも可能である。
以下、本発明に係る種々の実施例について説明する。
<第1実施例>
図1は、本発明の第1実施例に係る鍵生成装置1の概略構成を示す機能ブロック図である。鍵生成装置1は、乱数発生器10、鍵設定部11、曲線パラメータ設定部12および鍵生成部13を有している。機能ブロック10〜13の全部または一部は、ハードウェアの回路構成で実現されてもよいし、あるいは、不揮発性メモリや光ディスクなどの記録媒体に記録されたプログラムまたはプログラムコードで実現されてもよい。そのようなプログラムまたはプログラムコードは、CPUなどのプロセッサに上記機能ブロック10〜13の全部または一部の処理を実行させるものである。
鍵生成装置1は、有限環Rp上で定義された整数論的関数の従属変数y=f(x)と独立変数である整数xとの組(x,y)からなる点集合のなす有限可換群Hc(Rp)の元を用いて、暗号処理用の鍵を生成する機能を有する。整数論的関数y=f(x)は、有限環Rp上で定義された2次多項式の分母と有限環Rp上で定義された1次多項式の分子とからなる。この整数論的関数yは、次式(1a)の二次双曲線関数Hc(以下、単に「二次双曲線Hc」と呼ぶ。)により表現することができる。
Figure 2008203548
ただし、x+cx−a≠0。ここで、x,yは有限環Rpの元であり(すなわち、Rp×Rp∋(x,y))、曲線パラメータa,b,cも有限環Rpの元である(すなわち、Rp∋a,b,c)。以下、有限環Rpの元rに対して乗法についての逆元が存在する場合、その逆元をr−1または1/rと表す。よって、「1」を有限環Rpの単位元とするとき、r・r−1=r・(1/r)=1、である。上式(1a)の右辺は、2次多項式の逆数で表現される1/(x+cx−a)の因子を含むが、この因子は、有限環Rpの元である2次多項式x+cx−aの値の逆元を意味する。
上記二次双曲線Hcの曲線パラメータの組{a,b,c}を{−(c/a),−(e/d),b/a}に変換し、従属変数yを(a/d)・yに変換すれば、上記式(1a)と等価な下記の式(1b)が得られる。
Figure 2008203548
ただし、ax+bx+c≠0。ここで、x,yは有限環Rpの元であり(すなわち、Rp×Rp∋(x,y))、曲線パラメータa,b,c,d,eも有限環Rpの元である(すなわち、Rp∋a,b,c,d,e)。上式(1a)の代わりに上式(1b)の整数論的関数のなす有限可換群Hg(Rp)の元を用いて、暗号処理用の鍵を生成することも可能である。
有限環Rpとしては、奇素数pを法とする整数の剰余類全体のなす剰余環Z/pZを使用することが好ましいが、これに限定されるものではない。剰余環Z/pZ上で定義された二次双曲線Hc,Hgは、以下の合同式(2a),(2b)により表現することができる。
Figure 2008203548
整数x,xに対してx−xがpで割り切れるとき、整数x,xはpを法として合同であるといい、この合同関係は、「x≡x(mod p)」の如く表現される。この合同関係は、整数x,xをそれぞれpで割って得られる剰余が等しいことと同値であり、その同値類の集合は環を構成し、一般にZ/pZと表現される。整数xが乗法についての逆元x(=1/x)を持つ場合、x・x≡1(mod p)となる。たとえば、剰余環Z/11Zの2つの元「3」、「4」について、3・4=12≡1(mod 11)であるから、「3」と「4」は互いの逆元である。なお、有限環の元xの逆元1/xは整数値をとることに注意すべきである。たとえば「1/2」の値は「2」の逆元である「6」であり、1未満の正の有理数(=0.5)を意味するものではない。
p=11,a=7,b=2,c=0の場合、剰余環Z/pZ上で定義された二次双曲線Hcは、y≡(x−2)/(x−7)(mod 11)の合同式で表現される。この合同式を満たす点(x,y)としては、たとえば、(5,2)、(6,10)、(9,5)、(8,3)、(3,6)および(2,0)が挙げられる。(x,y)=(5,2)については、x−7(mod 11)=7であり、「7」の逆元は「8」である。また、x−2 (mod 11)=3であり、3・8=24≡2 (mod 11)。故に、点(x,y)=(5,2)は、y≡(x−2)/(x−7)(mod 11)の合同式を満たすことが分かる。
本発明者は、有限環Rp上で定義された二次双曲線Hc上の点について適切な加法演算を定義すれば、二次双曲線Hc上の点の集合は、その加法演算について有限可換群Hc(Rp)を構成し得ることを見出した。有限環Rp上で定義された二次双曲線Hgについても同様にその加法演算について有限可換群Hg(Rp)を構成し得る。以下、この種の有限可換群を「二次双曲線群」と呼ぶこととする。二次双曲線群の構造については後述する。
図1に示される曲線パラメータ設定部12は、二次双曲線Hcの曲線パラメータa,b,cを適切な値に設定し、その曲線パラメータの組み合わせ{a,b,c}を示す設定データPdを公開鍵の要素としてメモリ(図示せず)に記憶する機能を有する。設定データPdは鍵設定部11と鍵生成部13とに供給される。
乱数発生器10は、熱雑音や原子核分裂などのランダムな自然現象を利用して物理乱数を生成し、あるいは、所定の数学的アルゴリズムに従ってシード(種)である数値から疑似乱数を生成するものである。鍵設定部11は、乱数発生器10から供給される乱数を用いて所定ビット長の整数値を生成し、この整数値を暗号処理用の秘密鍵αの値に設定することができる。
鍵設定部11は、曲線パラメータa,b,cにより定まる二次双曲線Hc上のベースポイントGを公開鍵の一要素(第1の公開鍵)として選択する機能を有する。鍵設定部11は、公開鍵Gと秘密鍵αとを鍵生成部13に供給する。鍵生成部13は、公開鍵Gに対して、曲線パラメータa,b,cにより定まる二次双曲線群Hc(Rp)において定義される加法演算を施すことにより、公開鍵Gを秘密鍵αでスカラー倍して公開鍵の一要素Y(第2の公開鍵)を生成する機能を有する。二次双曲線群Hc(Rp)において定義される加法演算の記号を「+」で表現するとき、公開鍵G,Yとスカラー係数である秘密鍵αとの間には以下の式(3)が成立する。
Figure 2008203548
式(3)によれば、公開鍵G,Yからただ一つの秘密鍵αを求める問題は二次双曲線Hc上の離散対数問題であり、楕円曲線上の離散対数問題と同様に、曲線パラメータa,b,cが適切な値に選択された場合にこの離散対数問題を解くことは極めて困難である。また、冒認者が秘密鍵αを求めるためには少なくともα回の加算を行う必要があるのに対し、Y=αGの計算には、ベキ乗剰余演算で広く使用されている高速指数演算法を適用できるので、点Yの計算量を大幅に削減できる。二次双曲線群Hc(Rp)の位数kが2のベキ乗展開で表現できるとき、秘密鍵αも2のベキ乗展開で表現できる。この場合、上式(3)は次式(3a)に変形できる。
Figure 2008203548
ここで、mは正整数、βは0または1のいずれか一方の値である。2G=2・(2i−1G)、であるから、2Gの計算には、2i−1Gの計算結果を利用して1回の加算を実行すればよい。それゆえ、点Yのスカラー倍演算を行うには、2・(m−1)回の加算で足りる。2m−1<k<2であるから、m≒logkである。冒認者が秘密鍵αを求めるためにN回の加算を必要とし、秘密鍵αを位数kの半分程度の値に設定する場合、N=αであれば、m−1≒logk−1≒log(2N)−1=logN。したがって、Y=αGを計算するには、2・logN回程度の加算で足り、双方の計算量の比は、およそ(2・logN)/Nである。α=234のとき、log234≒15.7回であるので、高速指数演算法を用いれば、それを用いない場合と比べて点Yのスカラー倍演算の計算量を約1/7に削減できる。また、100ビットの秘密鍵αを使用する場合に高速指数演算法を用いれば、点Yのスカラー倍演算の計算量は約1/1028に削減できる。
二次双曲線群Hc(Rp)において定義される加法演算では、二次双曲線群Hc(Rp)の2つの元P(x,y),Q(x,y)が加算される場合、これらの元P,Qを解として有する1次関数y=LPQ(x)と二次双曲線Hcとの共通解のうち、元P,Qを除く第3の元S(x12,y12)が定まるとき、第3の元Sと二次双曲線群Hc(Rp)の所定の固定元O(x,y)とを解として有する1次関数y=LSO(x)と二次双曲線Hcとの共通解のうち、元S,Oを除く第4の元R(x,y)が当該加算結果として与えられる。
より具体的に説明すると、1次関数y=LPQ(x)をy=ax+bの形で表現するとき、最初に与えられた元P(x,y),Q(x,y)に基づいてパラメータa,bが一意に定まり、これにより1次関数y=LPQ(x)の形が決定される。また、1次関数y=LSO(x)をy=ax+bの形で表現するとき、2つの元S,Oに基づいてパラメータa,bが一意に定まり、これにより1次関数y=LSO(x)の形が決定される。この1次関数y=LSO(x)と二次双曲線Hcとの連立方程式を解くことで第4の元R(x,y)を算出することができる。
上記加法演算は、幾何学的に以下の如く表現することもできる。二次双曲線Hc上の異なる座標の2点P(x,y)、Q(x,y)を加算する場合は、当該2点P,Qを結ぶ直線と二次双曲線Hcとの第1の交点S(x12,y12)が定まるとき、この第1の交点S(x12,y12)と所定の固定点O(x,y)とを結ぶ直線と二次双曲線cとの第2の交点R(x,y)が当該加算結果として与えられる。一方、二次双曲線Hc上の同一座標の2点P(x,y)、Q(x,y)を加算する場合には、当該2点P,Qにおける接線と二次双曲線Hcとの第1の交点S(x12,y12)が定まるとき、この第1の交点S(x12,y12)と所定の固定点O(x,y)とを結ぶ直線と二次双曲線Hcとの第2の交点R(x,y)が当該加算結果として与えられる。
また、任意の点P(x,y)に固定点O(x,y)を加算するとき、1次関数y=LPO(x)と1次関数y=LOP(x)とが一致することから、当該加算結果は点P(x,y)自身になる。したがって、固定点O(x,y)が二次双曲線群Hc(Rp)の単位元すなわちゼロ元である。
図2は、c=0および|b|<aとの条件下での二次双曲線Hcの一例を概略的に示すグラフである。図2に示されるように二次双曲線Hc上の2点P,Q(P≠Q)が与えられたとき、これら2点P,Qを結ぶ直線LPQと二次双曲線Hcとの第1の交点Sが定まる。この第1の交点Sと固定点Oとを結ぶ直線LSOと二次双曲線Hcとの第2の交点R(=P+Q)が2点P,Qの加算結果として算出される。図2のグラフから明らかなように点Pと点Qとを入れ替えても、2点P,Qに対する加算結果である点Rは変わらない(すなわち、R=P+Q=Q+P)。それゆえ、2点P,Qは加法演算に関して可換である。
固定点Q(x,y)を二次双曲線Hc上の点O(b,0)(ここで、bは、二次双曲線Hcの曲線パラメータ)とし、二次双曲線Hc上の異なる座標の2点P(x,y)、Q(x,y)を加算する場合には、当該加算結果である点R(x,y)の座標値xは、下記の式(4a)で与えられる。
Figure 2008203548
上式(4a)は、2点P,Qのx座標の値x,yについて対称である。言い換えれば、値x,yを入れ替えても点Rの座標値xは変わらない。それゆえ、加法演算について交換法則が成立し、二次双曲線群Hc(Rp),Hg(Rp)は可換群である。
二次双曲線上の同一座標の2点P(x,y)、Q(x,y)を加算する場合には、当該加算結果である点R(x,y)の座標値xは、下記の式(4b)で与えられる。
Figure 2008203548
上式(4b)は、上式(4a)において座標値xを座標値xに置き換えることで導出される式である。上式(4a),(4b)に示されるように、座標値xは、座標値y,yとは無関係に算出される。このため、鍵設定部11は、公開鍵Gのx座標の値のみを設定すればよく、鍵生成部13は、x座標の値のみを用いた加法演算を実行すればよい。以下、必要に応じて、二次双曲線上の点をP(x)の如くx座標値のみを用いて表現することとする。
二次双曲線群Hc(Rp)の単位元すなわちゼロ元は、前記固定点O(b,0)である。また、二次双曲線群Hc(Rp)の元である点P(x,y)の逆元T(<x>,<y>)のx座標値<x>は、次式(5)で与えられる。
Figure 2008203548
上式(4a)を用いることにより下記の等式が成立することが容易に証明される。
Figure 2008203548
また、点Pに対する加法演算についての逆元Tを減算記号「−」を用いて−Pと表現するとき、ゼロ元Oに関して、O=−O、の等式が成立することが容易に証明される。
なお、上式(5)の右辺の分母がゼロとなる点Hに対する逆元は存在しない。点H(x=e)を「素元」と呼ぶとき、素元Hは、二次双曲線群Hc(Rp)から除外して考えることができる。また、ゼロ元Oと同様に、二次双曲線Hc上の点とその逆元とが一致する点I(x=(2a−bc)/(2b+c))が存在する。以下、この点Iを「偶単位元」と呼ぶこととする。
たとえば、剰余環Z/23Z上で定義される二次双曲線Hc(a=7,b=2,c=0)のなす二次双曲線群Hc(Z/23Z)のベースポイントとして1P=P(0,20)が選択された場合、図3に示されるように、2P(=P+P)、3P(=2P+P),…,12P(=11P+P)を算出することができる。しかしながら、13P(=12P+P)を算出することはできない。その理由は、点Pのy座標の値(=20)と点12Pのy座標の値(=20)とが同じであるため、点Pと点12Pとを結ぶ直線の傾きがゼロになり、加法演算を実行できないという問題(以下「同値対の問題」という。)があるからである。図3に示されるように、同値対をなす点6P=(14,7)と点7P=(19,7)の組を中心元として、点5Pと点8Pの対、点4Pと点9Pの対、点3Pと点10Pの対、点2Pと点11Pの対、および点Pと点12Pの対がそれぞれ同値対を構成する。同値対は、中心元6P,7Pの組から伝播しているように見える。
一般に、二次双曲線群Hc(Z/23Z)の生成群だけでなく、二次双曲線群Hc(Z/pZ),Hg(Z/pZ)の生成群でも同値対の問題は起こり得る。同値対の問題を回避する1つの方法は、生成群の元から、同値対をなす2点のうちの一方の点を排除することである。後に証明するように、二次双曲線Hc,Hgの分母(x+cx−a),(ax+bx+c)が、それぞれ、pを法として平方非剰余であるとの条件を生成群の元が満たせば、同値対の問題を回避することができる。なお、整数Nとpが互いに素であるとき、x≡N(mod p)という合同式が整数解xを持てば、Nは「pを法として平方剰余」であるといい、当該合同式が整数解xを持たなければ、Nは「pを法として平方非剰余」であるという。
上記平方非剰余の条件を満たす二次双曲線群Hc(Z/pZ)の位数kは、奇素数pの型に依らずに次式(6)で与えられる。
Figure 2008203548
上式(6)の証明は後述する(定理T9を参照)。図4の表に、4m+n(m,nは整数)の型を有する奇素数pについて、平方非剰余の条件を満たす二次双曲線群Hc(Z/pZ)の位数kの計算結果を示す(ただし、b=2,c=0)。図4の表には、二次双曲線群Hc(Z/pZ)の元のうち平方剰余の条件を満たす元の総数Nqと、平方非剰余の条件を満たす元の総数Nnも示されている。図4の表に示される位数kの値は、いずれも、上式(6)を満たすことが分かる。
このように本実施例に係る二次双曲線群Hc(Z/pZ)の位数kは、曲線パラメータに依らずに明示的に表現することができる。このため、曲線パラメータを変更したときに群の位数が変化し得る従来の楕円曲線暗号と比べて、本実施例に係る二次双曲線暗号の取り扱いは容易である。したがって、二次双曲線群Hc(Z/pZ)の位数kを極めて高速に計算し得、安全な二次双曲線群を短時間で得ることができる。よって、二次双曲線群を使用する現在の暗号システムに対する有効な攻撃法が発見されたとしても、曲線パラメータを変更して安全な構造を有する二次双曲線群を用いた暗号システムへ素早く変更することが可能である。
暗号処理では、二次双曲線群Hc(Z/pZ)の所定の元をベースポイントとして定め、当該ベースポイントにスカラー倍演算を施して得られる点を平文データに対応させる。安全性の向上のため、また、暗号化されるべき平文データのビット数を多くするために、ベースポイントは、当該ベースポイントから得られる生成群の位数ができるだけ大きな素因数を含むように選択されることが望ましい。
二次双曲線群Hc(Z/pZ)を使用する暗号システムの安全性は、ベースポイントから生成される生成群の位数に依存している。この種の生成群の簡単な例について説明する。説明の便宜上、p=23,a=7,b=2,c=0の場合の二次双曲線群Hc(Z/23Z)を例として挙げると、この二次双曲線群Hc(Z/23Z)において前述の平方非剰余の条件を満たす元の集合は、P(21)=(21,9),P(1),P(14),P(11),P(16),P(15),P(8),P(7),P(12),P(9),P(22)およびP(2)という12個の点より構成される。平方非剰余の条件を満たさない点は、P(0),P(3),P(4),P(5),P(6),P(10),P(13),P(17),P(18),P(19)およびP(20)である。平方非剰余の条件を満たす点P(x)を生成元として得られる生成群をQ[x]で表すとすると、図5に示されるような生成群を得ることができる。
図6は、図5に示した生成群Q[x]の包含関係を示す概念図である。生成群Q[x]の位数をkと表現すれば、k=6,k=1,k=3,k=12,k=6,k11=3,k12=4,k14=4,k15=2,k16=12,k21=12,k22=12、である。また、位数kを持つ生成群の数をφ(k)(φ(k):オイラーのφ関数)で表現すれば、φ(12)=4個,φ(6)=2個,φ(4)=2個,φ(3)=2個,φ(2)=1個,φ(1)=1個、である。上記の包含関係は、位数の約数に対応している。前述の通り、生成群Q[8],Q[16],Q[21],Q[22]は、要素となる元の出現の順番が異なるだけであり、同じ位数を有し且つ同じ点集合からなるので等価である。以下、このような等価関係を「共役」と呼ぶ。生成群Q[1],Q[9]は互いに共役であり、生成群Q[12],Q[14]も互いに共役である。
後述するように、二次双曲線群Hc(Z/pZ)の位数kが奇素数qであれば、ゼロ元以外の点P(x)(∈Hc(Z/pZ))をベースポイントして生成される生成群Q[x]は位数qを有する(定理T16を参照)。すなわち、生成群Q[x]の位数qは二次双曲線群Hc(Z/pZ)の位数kと一致するので、位数kを奇素数qに設定することで、安全なベースポイントを極めて容易に選択することが可能になる。
次に、上記二次双曲線群Hc(Rp)を利用した暗号システムについて説明する。図7は、暗号システム2の概略構成を示す機能ブロック図である。この暗号システム2は、鍵生成装置である暗号装置20と復号装置30とで構成される。暗号装置20は、平文データMdを所定ビット長のブロック毎に暗号化して暗号文データEdを生成する機能を有し、復号装置30は、当該暗号文データEdを復号して平文データMdを復元する機能を有する。
暗号装置20と復号装置30の機能の全部または一部は、ハードウェアの回路構成で実現されてもよいし、あるいは、不揮発性メモリや光ディスクなどの記録媒体に記録されたプログラムまたはプログラムコードで実現されてもよい。そのようなプログラムまたはプログラムコードは、CPUなどのプロセッサに暗号装置20と復号装置30の機能の全部または一部の処理を実行させるものである。
図7に示されるように、暗号装置20は、メモリ21、鍵生成部22、係数設定部23および暗号化部24からなる。メモリ21は、図1の鍵生成装置1で生成された公開鍵G,Y(=αG)と、二次双曲線Hcを定めるパラメータ(曲線パラメータと有限環Rpの位数p)を示す設定データPdとを記憶している。設定データPdは、鍵生成部22と暗号化部24とに供給される。係数設定部23は、乱数発生器(図示せず)を内蔵しており、この乱数発生器で生成された物理乱数または疑似乱数に基づいて整数値を生成する。そして、係数設定部23は、当該整数値にスカラー係数r(1<r<k;kは二次双曲線群の位数)を設定し、そのスカラー係数rを鍵生成部22に供給する。
鍵生成部22は、メモリ21から読み出した公開鍵Gに対して、二次双曲線群Hc(Rp)で定義される加法演算を施すことにより、公開鍵Gをスカラー係数rでスカラー倍して作業鍵C1(=rG)を生成する。また鍵生成部22は、メモリ21から読み出した公開鍵Yに対して加法演算を施すことにより、公開鍵Yをスカラー係数rでスカラー倍して作業鍵C2(=rY)を生成する。これら作業鍵C1,C2は暗号化部24に供給される。なお、鍵生成部22は、上述の高速指数演算法を用いて加法演算を実行すればよい。
暗号化部24は、平文データMdを所定ビット長のブロックに分割し、各ブロックに二次双曲線群Hc(Rp)の元である点Pmを対応付ける。暗号化部24は、作業鍵C1,C2を用いて、平文データMdを表す点Pmに加法演算を施して暗号文データEdを生成する。
一方、復号装置30は、メモリ32および復号部31からなる。メモリ32は、図1の鍵生成装置1で生成された秘密鍵αと、暗号装置20と共有されるデータPdとを記憶している。秘密鍵αとデータPdは復号部31に供給される。復号部31は、秘密鍵αを用いて、暗号文データEdに対して二次双曲線群Hc(Rp)で定義される加法演算を施すことにより、暗号文データEdを平文データMdに変換する。
上記暗号システム2の暗号方式は、上式(3)による離散対数問題を安全性の根拠とする方式であればよく、特に限定されるものではない。暗号システム2がたとえばエルガマル暗号方式(ElGamal encryption scheme)を用いる場合、暗号化部24は、(C2+Pm,C1)の組を暗号文データEdとして生成する。復号部31は、暗号文データEdを受信すると、秘密鍵αを用いて対称鍵Ys=αC1を算出する。そして、復号部31は、(C2+Pm)−Ysを復号データMdとして算出する。作業鍵C2は対称鍵として使用されており、作業鍵C2(=rY=(r・α)G)と対称鍵Ys(=αC1=(r・α)G)とは同じ点を示すので、C2+(−Ys)=(−C2)+Ys=O(O:二次双曲線群のゼロ元)。故に、(C2+Pm)+(−Ys)=(C2+(−Ys))+Pm=O+Pm=Pm、が成立する。
次に、上記二次双曲線群Hc(Rp)を利用したデジタル署名システムについて説明する。インターネットなどのデジタル通信網においては、伝送経路上で送信データが改竄される恐れがある。デジタル署名システムは、送信者の身元や受信データの真否を確認する手段として使用される。デジタル署名を生成できるのは、秘密鍵を有する装置のみである。
図8は、デジタル署名システム3の概略構成を示す図である。このデジタル署名システム3は、鍵生成装置である署名生成装置40および暗号装置20からなる送信装置3Aと、署名検証装置50および復号装置30からなる受信装置3Bとで構成される。署名生成装置40は、平文データMdから、数十バイト程度の固定ビット長のビット列をメッセージダイジェストデータ(以下、「ダイジェストデータ」と呼ぶ。)h(Md)として生成し、秘密鍵αを用いて当該ダイジェストデータh(Md)を暗号化してデジタル署名データSdを生成する機能を有する。署名検証装置50は、デジタル署名データSdに対応する公開鍵(すなわち、検証鍵)を用いて、デジタル署名データSdの正当性(すなわち、デジタル署名データSdが正当な秘密鍵αを用いて平文データMdに対して生成されたものか否か)を検証する機能を有する。デジタル署名データSdあるいは平文データMdが伝送路上で改竄された場合、署名検証装置50は当該検証結果によりその改竄を検出できる。
本実施例では、平文データMdは、図7に示した構成を持つ暗号装置20で暗号化された後に伝送路を介して復号装置30に送信されるが、これに限るものではない。平文データMdは、任意の暗号方式で暗号化された後に送信装置3Aから受信装置3Bに送信されてもよいし、あるいは、暗号化されずに受信装置3Bに送信されてもよい。また、伝送路は、インターネットなどの広域ネットワークでもよいし、あるいは専用通信回線でもよい。伝送路の代わりに記録媒体を介して、デジタル署名データSdと平文データMdとを受信装置3Bに供給することも可能である。
図8に示されるように、署名生成装置40は、メモリ41、鍵生成部42、係数設定部43、ダイジェスト生成部44および暗号化部45からなる。メモリ41は、図1の鍵生成装置1で生成された公開鍵Gと、秘密鍵αと、二次双曲線Hcを定めるパラメータ(曲線パラメータと有限環Rpの位数p)を示す設定データPdとを記憶している。設定データPdは、鍵生成部42と暗号化部45とに供給される。係数設定部43は、乱数発生器(図示せず)を内蔵しており、この乱数発生器で生成された物理乱数または疑似乱数に基づいて整数値を生成する。係数設定部43は、当該整数値にスカラー係数r(1<r<k;kは二次双曲線群の位数)を設定し、そのスカラー係数rを鍵生成部42に供給する。
鍵生成部42は、メモリ41から読み出した公開鍵Gに対して、二次双曲線群Hc(Rp)で定義される加法演算を施すことにより、公開鍵Gをスカラー係数rでスカラー倍して作業鍵R(=rG)を生成する。この作業鍵Rは、暗号化部45に与えられる。
ダイジェスト生成部44は、入力データのビット長を圧縮する圧縮関数に従って、平文データMdからダイジェストデータh(Md)を生成しこれを暗号化部45に与える。圧縮関数としては、平文データMdの入力に対して固定ビット長の出力を与えるハッシュ関数を使用するのが好ましい。
暗号化部45は、作業鍵Rおよび秘密鍵αを用いて、ダイジェストデータh(Md)に対して二次双曲線群Hc(Rp)で定義される加法演算を施すことによりダイジェストデータh(Md)を暗号化してデジタル署名データSdを生成する。暗号化部45で使用される暗号方式は、上式(3)による離散対数問題を安全性の根拠とする方式であればよく、特に限定されるものではない。たとえば、エルガマル暗号方式またはその改良方式の採用が可能である。
エルガマル暗号方式が採用される場合、暗号化部45は、二次双曲線Hc上の点R(=rG)と、次の合同式で与えられるスカラー量sとの組(R,s)をデジタル署名データSdとして生成する。
Figure 2008203548
この式において、hは、ダイジェストデータh(Md)の値、[R]は、点Rのx座標値、qは、ベースポイントG(x)より生成される生成群Q[x]の位数、である。
一方、署名検証装置50は、メモリ51と署名検証部52とで構成される。メモリ51は、署名生成装置40と共有される公開鍵G,Yおよび設定データPdを記憶している。設定データPdは、鍵生成部42と暗号化部45とに供給される。ダイジェスト生成部53は、署名生成装置40のダイジェスト生成部44で使用される圧縮関数と同一の圧縮関数に従って、復号装置30から与えられた平文データMdを圧縮してダイジェストデータh(Md)を生成する。
署名検証部52は、メモリ51から読み出された公開鍵G,Yを用いて、デジタル署名データSdに対し二次双曲線群Hc(Rp)で定義される加法演算を施して被検証データを生成する。署名検証部52は、さらに、被検証データがダイジェストデータh(Md)と整合するか否かを判定し、当該判定結果を示す判定データVsを出力する。判定データVsの値が「0」であれば、平文データMdあるいはデジタル署名データSdの改竄は行われていないと判定され、判定データVsの値が「1」であれば、改竄が行われたと判定される。
デジタル署名システム3がエルガマル暗号方式を用いる場合、署名検証部52は、次式に従って被検証データを示す点Pvを生成する。
Figure 2008203548
また、署名検証部52は、ダイジェストデータh(Md)を用いて公開鍵Gに加法演算を施すことにより、点Pn=hGを生成する。そして、署名検証部52は、点Pnが点Pvと一致するか否かを判定し、当該判定結果すなわち検証結果を示す判定データVsを与える。平文データMdあるいはデジタル署名データSdが伝送路において改竄されていなければ、点Pnは点Pvと一致すべきである。
なお、上記の署名生成装置40と署名検証装置50の機能の全部または一部は、ハードウェアの回路構成で実現されてもよいし、あるいは、不揮発性メモリや光ディスクなどの記録媒体に記録されたプログラムまたはプログラムコードで実現されてもよい。そのようなプログラムまたはプログラムコードは、CPUなどのプロセッサに署名生成装置40と署名検証装置50の機能の全部または一部の処理を実行させるものである。
上記の通り、二次双曲線群Hc(Rp)(またはこれと等価なHg(Rp))を用いて平文データの暗号化、暗号文データの復号、デジタル署名の生成およびデジタル署名の正当性の検証を実現することができる。この二次双曲線群Hc(Rp)(またはこれと等価なHc(Rp))を用いた暗号技術は、楕円曲線暗号と同等の解読困難性を実現することが可能である。なお、二次双曲線群Hc(Rp)(またはこれと等価なHg(Rp))は、たとえば、Diffe-Hellmanの鍵交換方式などの鍵交換方式に適用することも可能である。
また、上式(6)によれば、二次双曲線群Hc(Z/pZ)(またはこれと等価なEg(Z/pZ))の位数kは曲線パラメータに依らないため、曲線パラメータを変更しても位数kを極めて短時間で算出することができる。このため、二次双曲線群Hc(Z/pZ)(またはこれと等価なEg(Z/pZ))を用いた暗号に対する攻撃法が発見されても、曲線パラメータを変更して安全な二次双曲線群を短時間で得ることができる。したがって、既存の暗号システムを安全な暗号システムへ素早く変更することが可能である。
なお、上記二次双曲線群を使用する暗号システムは、量子暗号通信において送信側と受信側とで共有される量子鍵(すなわち秘密鍵)を簡易に供給することが可能である。
<二次双曲線群の構造>
以下、上記二次双曲線群の構造について、より厳密な数学的説明を与える。上述の通り、剰余環Z/pZ上で定義された二次双曲線Hcは、次式で表現される。
Figure 2008203548
+cx−a≠0という条件を満たすためには、判別式D=c+4aがpを法として平方非剰余であればよい。
二次双曲線Hc上の異なる座標の2点P(x,y)、Q(x,y)を結ぶ直線LPQ上の任意の点(X,Y)について、Y=m12X+B12との1次方程式が成立する。
傾きm12と切片B12は、次式(10a),(10b)で与えられる。
Figure 2008203548
直線LPQと二次双曲線Hcとの交点S(x12,y12)の座標値x12は、次式(11)で与えられる。
Figure 2008203548
固定点O(b,0)が定められたとき、交点Sと固定点Oとを結ぶ直線LSOと二次双曲線Hcとの交点R(x,y)の座標値xは、上述した通り、次式(4)で与えられる。
Figure 2008203548
上式(4)は、P≠Qの場合とP=Qの場合の双方で成立するものである。二次双曲線群Hc(Z/pZ)において定義される加法演算の記号を「+」で表現するとき、上記の3点P,Q,Rの間には次式(12)の関係が成立する。
Figure 2008203548
二次双曲線Hc上の点Pのn倍(nは正整数のスカラー係数)の点Sは、次式(13)に示されるように点Pに加法演算を施すことで得られる。
Figure 2008203548
上式(4a)によれば、O(b,0)+P(x,y)=P(x,y)の等式が成立する。また、二次双曲線Hc上の点P(x,y),Q(x,y)について、P+Q=O(O:固定点)の等式が成立するとき、上式(4a)の座標値xはbの値に等しい(すなわち、x=b)。これにより、点Qのx座標値<x>は、次式(5)で与えられる。
Figure 2008203548
よって、固定点O(b,0)は、加法演算に関して二次双曲線Hcのなす群のゼロ元とすることができる。また、上式(5)で与えられるx座標値を持つ点Qは、点Pの逆元−Pである。よって、P+(−P)=O、の等式が成立する。
加法演算に関する結合法則の証明のための準備として下記定理T1を証明する。
[定理T1] 二次双曲線群Hc(Z/pZ)の加法演算に関し、二次双曲線Hc上の任意の整数点P(x,y),Q(x,y),R(x,y)について次の等式(14)が成立する。
Figure 2008203548
[定理T1の証明]二次双曲線Hc上の任意の整数点Rのx座標値を[R]と表すこととする。整数点P,Q,Rについて下記の式(14a),(14b),(14c)を導き出すことができる。
Figure 2008203548
Figure 2008203548
このとき、下記式(14d)を導き出すことができる。
Figure 2008203548
上式(14d)を用いて下記の式(14e)を導き出すことができる。
Figure 2008203548
したがって、上式(4)を用いれば、上記の等式(14)が導出される。[定理T1の証明終わり]
定理T1によれば、R=O(O:ゼロ元)のときに、(−P+Q)+P=Qの等式が成立し、二次双曲線群Hc(Z/pZ)はその正規部分群と同型であることを示している。定理T1を使用して下記の定理T2(結合法則)を証明することができる。
[定理T2(結合法則)] 二次双曲線群Hc(Z/pZ)の加法演算に関し、二次双曲線Hc上の任意の整数点P,R,Sについて、次の等式(15)が成立する。
Figure 2008203548
[定理T2の証明]定理T1によれば、R=O(O:ゼロ元)のときに、上式(14)は、((−P)+Q)+P=Q、の等式(以下、式(15a)と呼ぶ。)に変形される。S=(−P)+Qとすれば、式(15a)は、S+P=((−P)+Q)+P=Q、の等式に変形される。この変形式の各辺に点Rを加算すれば、(S+P)+R=Q+R、の等式(以下、式(15b)と呼ぶ。)を導出することができる。一方、S=(−P)+Qとすれば、上式(14)は、S+(P+R)=Q+R、の等式(以下、式(15c)と呼ぶ。)に変形される。この式(15c)の右辺と式(15b)の右辺とは同じであるから、S+(P+R)=(S+P)+R。点Sは、独立した整数点Qを含むので、点Sも二次双曲線Hc上の任意の整数点である。したがって、上式(15)が成立する。[定理T2の証明終わり]
次に「同値対の問題」について説明する。2点P(x,y),Q(x,y)が同一のy座標値を持つ場合(すなわち、y=yの場合)、これら2点P,Qを結ぶ直線の傾きはゼロである。このとき、上式(10a)で示される傾きm12はゼロであるから、次の等式(16)が成立して上式(4)の分数式の分母をゼロにする。
Figure 2008203548
よって、次の等式(17)が成立するとき、点P+Qのx座標値xは不定になる。
Figure 2008203548
このとき、剰余環Z/pZにおいて「0」の逆元は存在しないことから、二次双曲線群Hc(Z/pZ)で定義される加法演算に従って同一のy座標値を持つ2点P(x,y),Q(x,y)を加算することはできない。これが同値対の問題である。剰余環Z/pZ上で定義される二次双曲線Hc上の2点Q(x,y),R(x,y)が同値対をなすとすれば、次式(17a)が成立する。
Figure 2008203548
このとき、上式(14d)の右辺はゼロとなるので、上式(14d)から次式(17b)が導出される。
Figure 2008203548
定理T1より、この式(17b)は、点(−P)+Qと点P+Rとが同値対であることを示している。したがって、次の定理T3が成立する。
[定理T3] 二次双曲線群Hc(Z/pZ)の元である3点P,Q,Rについて、2点Q,Rが同値対であれば、点(−P)+Qと点P+Rとは同値対である。[定理T3終わり]
この定理T3から、任意のスカラー係数mにつき2点Q,Rが同値対であれば、明らかに点(−mP)+Qと点mP+Rとは同値対である。したがって、図3に示したように複数の同値対の組が中心元から派生する。
この定理T3を用いて以下の定理T4を証明することができる。
[定理T4] 剰余環Z/pZ上で定義される二次双曲線Hc上の点R=P+Qと点Qとが同値対であり且つ中心元をなす条件は、点P(x,y)について、次の合同式(18)が整数解xを持つこと、すなわち、次の合同式(18)の右辺がpを法として平方剰余であることである。
Figure 2008203548
[定理T4の証明] R(x,y)=P(x,y)+Q(x,y)とすれば、点Rの座標値xと点Qの座標値xとの間に上式(17a)の関係と同様に次式(18a)が成立する。
Figure 2008203548
上式(18a)から次式(18b)が得られる。
Figure 2008203548
一方、3点R,P,Qの座標値x,x,xの間に上式(4)の関係が成立する。よって、式(4),(18b)から次式(18c)が得られる。
Figure 2008203548
点P(x)の逆元−Pのx座標値は、上式(5)により与えられる。逆元−Pのx座表値を<x>で表すものとすれば、上式(18c)をxに関する次の二次方程式(18d)に変形することができる。
Figure 2008203548
二次方程式(18d)が整数解xを持つには、二次方程式(18d)の判別式をDで表すとき、D/4=<x+c<x>−a、が平方剰余である必要がある。したがって、D/4が平方剰余であることが、中心元をなす点Q,Rの同値対が存在する条件である。逆に判別式Dが平方非剰余であれば、点Q,Rは同値対とならない。この条件は、座標値<x>とxとが対称関係にあるので判別式Dにおいて座標値<x>をxで置き換えても同様である。すなわち、
Figure 2008203548
との式(18e)が成立するので、x +cx−aが平方剰余であることが、中心元をなす点Q,Rの同値対が存在する条件になる。逆に、x +cx−aが平方非剰余であれば、同値対の問題は発生しない。[定理T4の証明終わり]
[定理T5] 剰余環Z/pZ上で定義される二次双曲線Hc上の点の集合HC={P(x)|x∈Z/pZ,x+cx−a≠0および(x+cx−a)がpを法として平方非剰余である。}は、加法演算に関して閉じている。
[定理T5の証明] 二次双曲線Hc上の2点P(x),Q(x)を加算して点R(x)を得るときは上式(4)が成立する。よって、上式(4)を用いて以下の式(19)が導出される。
Figure 2008203548
題意より、上式(19)の右辺の2つの因子(x +cx−a)と(x +cx−a)はpを法として平方非剰余であるから、上式(19)の左辺(x +cx−a)がpを法として平方非剰余であるためには、上式(19)の右辺の因子(b(b+c)−a)も平方非剰余でなければならない。然るに、点P(x=b)はゼロ元を意味する。したがって、因子(x +cx−a),(x +cx−a)が平方非剰余である場合には、(b(b+c)−a)は必ず平方非剰余になる。[定理T5の証明終わり]
上述した通り、上式(5)の右辺の分母がゼロとなる点すなわち素元Hに対する逆元は存在しない。素元H(x=e)に関しては、x+cx−aがpを法として平方剰余であることが容易に確認できる。よって、定理T5により素元Hは二次双曲線群Hc(Z/pZ)に含まれない。
以下、二次双曲線群Hc(Z/pZ)は、上記定理T5により定義される集合HCとする。先ず、二次双曲線群Hc(Z/pZ)の位数を導出する前にいくつかの定理を証明する。
[定理T6] 奇素数pを法とする平方非剰余である整数x(x≠0)の個数は(p−1)/2個である。
[定理T6の証明] 集合A={1,2,…,p−2,p−1}と、生成元tのベキ集合である位数p−1の有限巡回群B={t,t,…,tp−2}とを導入し、集合Aの元を集合Bの元に一対一で対応付ける。オイラーの基準(Euler's criterion)によれば、xが平方非剰余であるとき、x(p−1)/2≡−1(mod p)であり、xが平方剰余であるときは、x(p−1)/2≡+1(mod p)である。
偶数mについてx=t(t∈Bおよびx∈A)と対応付けすれば、フェルマーの小定理(Fermat's Little Theorem)により次式(20a)が導出されるため、xは平方剰余である。
Figure 2008203548
一方、奇数mについてx=tと対応付けすれば、次式(20b)が導出される。
Figure 2008203548
生成元tについてt(p−1)/2≡+1と仮定すれば、有限巡回群Bの位数が(p−1)/2となり、その位数がp−1であるとした定義に反する。したがって、t(p−1)/2≡−1であり、mが奇数の場合にはxは平方非剰余である。この結果、平方非剰余であるxの個数は(p−1)/2個であり、平方剰余であるxの個数も(p−1)/2個である。[定理T6の証明終わり]
「初等整数論構義(第2版),高木貞治著,共立出版(ISBN:4-320-01001-9)」の第70〜71頁には、ディレクレ(Dirichlet)の整数論講義によるオイラーの基準(Euler's criterion)の証明が記載されている。かかる記載に基づいて以下の定理T7が導出される。
[定理T7] aをpで割り切れない整数とすれば、集合A={1,2,…,p−2,p−1}の中の任意の整数rに対して、rs≡a(mod p)を満たす整数sが集合Aの中にただ一つ存在する。当該整数sをrの配偶と呼ぶとき、sの配偶はrであり、同一の数の配偶はただ一つに限る。したがって、配偶の組み合わせは、原則として、(p−1)/2個存在する。ただし、aが平方剰余であるときは、rの配偶sがrである場合並びにp−rの配偶sがp−rである場合が存在する。これらの2つの場合を例外として除外すれば、配偶の組み合わせは、(p−3)/2個存在する。
[定理T7の証明] 生成元tのベキ集合である有限巡回群B={t,t,…,tp−2}を導入し、集合Aの元を集合Bの元に一対一で対応付ける。a=t(t∈B)と対応付けしたとき、a=t−k(kは整数)である。ここで、r=tおよびs=th−kと対応付けすれば、a≡rs(mod p)が成立する。このとき、r/s=t2k−hであるから、2k−h=0の場合には、r=sである。したがって、配偶r,sが一致するのはhが偶数の場合に限る。逆に、hが奇数であれば、常にr≠s(mod p)である。然らば、配偶r,sの組み合わせの数は(p−1)/2個である。これは、aが平方非剰余である場合には、配偶の組み合わせの数が(p−1)/2個であることを意味する。
次に、hが偶数の場合は、前述の通り、2k−h=0より、r=th/2およびs=th−h/2=th/2であり、r=sである。然るに生成元tについて、フェルマーの小定理により、(t(p−1)/2≡1(mod p)が成立するから、r’=t(p−1)/2+h/2およびs’=t(p−1)/2+h/2と対応付けた場合もr’=s’であり、且つ、r’s’≡a(mod p)である。上記定理T6の証明過程で、t(p−1)/2≡−1(mod p)が示された。よって、配偶r’,s’につき、r’≡−r≡p−rおよびr’=s’≡p−rである。したがって、配偶の値が一致する2個を除いたp−3個の数につき、(p−3)/2個の配偶を構成できる。この場合r≠s(mod p)である。これは、aが平方剰余である場合には、配偶の組み合わせの数は、配偶の値が一致する2個を除いて(p−3)/2個であることを意味する。[定理T7の証明終わり]
[定理T8] 二次双曲線Hcの「因子x+cx−aがpを法とした平方非剰余である」との条件を満たす座標値xの個数(以下、「平方非剰余数」と呼ぶ。)は、判別式D=c+4a(≠0)がpを法とした平方剰余である場合、Nq=(p−1)/2個であり、判別式Dがpを法とした平方非剰余である場合には、Nn=(p+1)/2個である。これら平方非剰余数Nn,Nqは、いずれも奇素数pの型に依らない。
[定理T8の証明] 因子x+cx−aがpを法とした平方剰余であれば、z≡x+cx−a(mod p)との合同式を満たす整数解zが存在する。然らば、次式(21a)が導出される。
Figure 2008203548
ここで、x’=x+c・2−1およびa’=a+c・4−1=D・4−1としてx’,a’を定めれば、上式(21a)から次式(21b)が導出される。
Figure 2008203548
定理T7より、x’−zとx’+zとは、a’(=D・4−1)に関して互いに配偶になり得る。これらは互いに異なり、かつ、一対一で対応するからである。定理T7によれば、配偶x’−z,x’+zの組み合わせの数は、(p−1)/2個である。配偶x’−z,x’+zの組み合わせに対応するxの値だけが、「因子x+cx−aがpを法とした平方剰余である」との条件を満たす。
よって、「因子x+cx−aがpを法とした平方剰余である」との条件を満たす座標値xの数は、判別式Dが平方非剰余であれば、Kn=(p−1)/2個であり、判別式Dが平方剰余であれば、Kq=(p+1)/2個である。もっとも、判別式Dが平方剰余であっても、判別式D≡0(mod p)であれば、判別式の性格から明らかに全てのxに関して「因子x+cx−aがpを法とした平方剰余である」との条件は満たされる。
したがって、「因子x+cx−aがpを法とした平方非剰余である」との条件を満たす座標値xの個数すなわち平方非剰余数は、判別式Dが平方非剰余であれば、Nn=(p−1)−Kn=(p+1)/2であり、判別式Dが平方剰余であれば、Nq=(p−1)−Kq=(p−1)/2である。[定理T8の証明終わり]
定理T8の証明結果を図9の表に整理して示す。また、定理T8に関する簡単な計算例を図10(A),(B)に示す。図10(A)は、座標値x,zが与えられた場合にp=11(=4m+3)を法とするx+cx−z(ここで、c=1)の剰余値aを示し、図10(B)は、aの値が与えられた場合にa≡x+cx−z(mod p)の条件を満たす座標値xの計数結果を示すものである。図10(A)に示されるように、たとえば点(x,z)=(3,5)に対する剰余値は、a=7である。図10(B)に示されるように、この点(3,5)に対応するa=7の値が与えられたとき、判別式Dの剰余値は7であり平方非剰余であるから、定理T8によれば、xの個数は、(11−1)/2=5個であるべきである。また、図10(A)に示されるように、点(x,z)=(8,4)に対する剰余値は、a=2である。図10(B)に示されるように、a=2の値が与えられたとき、判別式Dの剰余値は9であり平方剰余であるから、定理T8によれば、xの個数は、(11+1)/2=6個であるべきである。
なお、図10(B)には、D(p−1)/2の剰余の計算結果も示されている。この計算結果は、判別式Dが平方剰余であればD(p−1)/2の剰余は「1」の値であり、判別式Dが平方非剰余であればD(p−1)/2の剰余は「−1」の値であるとするオイラーの基準に合致する。
また、定理T8に関する他の計算例を図11(A),(B)に示す。図11(A)は、座標値x,zが与えられた場合にp=13(=4m+1)を法とするx+cx−z(ここで、c=2)の剰余値aを示し、図11(B)は、aの値が与えられた場合にa≡x+cx−z(mod p)の条件を満たす座標値xの計数結果を示すものである。
二次双曲線群Hc(Z/pZ)の位数kを確定するための準備として、以下の補題L1を示す。
[補題L1] 二次双曲線Hc上の点P(x)について因子x +cx−aがpを法とした平方剰余であれば、点P(x)と同値対をなす点Q(x)について因子x +cx−aはpを法とした平方非剰余である。
[補題L1の証明] 上式(17)の合同式が成立するとき、二次双曲線Hc上の2点P,Qは同値対をなす。上式(17)を用いて次式(22)を導出できる。
Figure 2008203548
二次双曲線Hc上のx=bの点はゼロ元であり、上式(22)の右辺の因子である(b(b+c)−a)は常にpを法として平方非剰余である。したがって、因子x +cx−aが平方剰余であれば、因子x +cx−aは平方非剰余であり、その逆も成立する。[補題L1の証明終わり]
[定理T9] 二次双曲線群Hc(Z/pZ)の位数kは、次式(6)で与えられ、奇素数pの型に依らない。
Figure 2008203548
[定理T9の証明] 定理T8によれば、因子x+cx−aが平方非剰余であるとの条件を満たす座標値xの個数は、判別式D=c+4a(≠0)が平方剰余である場合、(p−1)/2個であり、判別式Dが平方非剰余である場合には、(p+1)/2個である。ここで、「因子x+cx−aが平方非剰余である」との条件は、直接的にパラメータa,cの値を制限するものではない。しかし、x+cx−a=(x+c/2)−D/4の判別式Dが平方非剰余であれば、x+cx−a≠0(mod p)である。それゆえ、「判別式Dが平方非剰余である」との条件は、「因子x+cx−aが平方非剰余である」との条件に含まれる。また、D/4≠(x+c/2)の形より、任意のx値に対して判別式Dが平方剰余となることはない。したがって、「判別式Dが平方剰余である」との条件は満たされず、「判別式Dが平方非剰余である」との条件のみが満たされる。然らば、二次双曲線群Hc(Z/pZ)の有する異なる整数点xの個数は、k=(p+1)/2=(p−1)/2+1、である。
二次双曲線Hc上の点(x,y)についてy=f(x)とするとき、二次双曲線Hc上の異なる2点P(x),Q(x)について、f(x)−f(x)は、Δ=x−b(x+x+c)+a、に比例することが容易に証明される。よって、x≠xであれば、Δ=0が成立する場合にのみf(x)=f(x)が成立する。これは2点P,Qが同値対をなす場合である。二次関数の性質から、同値対は一対のみ存在し、一つの関数値f(x)について3つ以上の異なるx座標値は存在しない。二次双曲線群Hc(Z/pZ)において、補題L1より同値対の一方の点は排除される。それゆえ、二次双曲線群Hc(Z/pZ)の元である2点P(x),Q(x)は、x≠xのとき、異なるy座標値を持つ。したがって、二次双曲線群Hc(Z/pZ)はk個の元を有する。[定理T9の証明終わり]
上記定理T9により、本発明に係る二次双曲線群Hc(Z/pZ)の位数kは、二次双曲線Hcのパラメータに依らずに明示的に表現でき、容易に取り扱うことができる。それゆえ、曲線パラメータを変えても位数kを極めて容易に算出することが可能である。二次双曲線Hcを利用する暗号システムで最も実用的な方法は、後述するように位数kを素数qとする場合である。この場合、式(6)を満たす素数の組み合わせ(p,q)が多数存在し、特に素数pが大きな数である場合にもその組み合わせの選択を自由に行うことができる点が重要である。このような組み合わせの数が少ない場合には、二次双曲線群Hc(Rp)の利用価値は低下する。しかし、既存の素数表において式(6)を満たす素数の組み合わせを多数発見することができるため、素数pが大きな数である場合にも式(6)を満たす組み合わせ(p,q)が十分多数存在するものと予想される。
上記の通り、剰余環Z/pZ上で定義される二次双曲線Hc上の点P(x)の集合HCは、因子(x+cx−a)がpを法として平方非剰余である場合に成立する。これに対し、因子(x+cx−a)がpを法として平方剰余である場合の点の集合HCn={P(x)|x∈Z/pZ,x+cx−a≠0および(x+cx−a)がpを法として平方剰余である。}について考察する。集合HCnに属する点P(x)は、因子x+cx−a≠0という条件を満たすので、集合HCnに属する点P(x)について、群演算を定義する上式(4)や、結合法則に関する上式(14)などの式がそのまま成立する。しかしながら、群演算が閉じていることを示す上式(19)においては、因子(x +cx−a),(x +cx−a)が平方剰余である場合であって、さらに、ゼロ元に対応する(b(b+c)−a)が平方剰余である場合に限り前記群演算が閉じるので、ゼロ元に関する群の構成が集合HCと集合HCnとでは異なる。集合HCと集合HCnの双方に関係する共通因子(b(b+c)−a)は、平方非剰余あるいは平方剰余のいずれか一方にしか定め得ないものであるから、計算式は同じでも集合間で群構造が異なったものとなる。
集合HCnの位数に関しては、上記の定理T8およびx+cx−a≠0(mod p)、さらにD/4≠(x+c/2)の形より、任意のx値に対して前記2次方程式の判別式Dが平方剰余とならないことから、集合HCnは、Kn=(p−1)/2個の異なる個数のx値を有する。しかしながら、かかる事実は、x値とP(x)との1対1の対応が確認されていないので、直ちに集合HCnの位数を示すことにはならない。
ここで「同値対の問題」を再考すると、上式(22)において、因子(b(b+c)−a)が平方剰余である場合には、同値対の双方が集合HCnに属する元となり、「同値対の問題」が残存し、その結果定義された群演算を実行できない場合が生じる。したがって、前記群演算に関し、集合HCnは群としての要件を満たさない。
さらに素元Hについて考察する。上式(5)に基づいて次式(5a)を導出できる。
Figure 2008203548
したがって、x=eの場合に素元Hも集合HCnの元である。然るに素元Hについては逆元が存在しないので、この点についても、集合HCnは群としての要件を満たしていない。
上述の通り、二次双曲線群Hc(Z/pZ)は、加法演算に関して結合法則を満たし、且つ交換法則を満たすのでアーベル群(可換群)である。二次双曲線群Hc(Z/pZ)は、加法演算およびスカラー倍演算に関して以下の定理T10(分配法則)を満たす。
[定理T10(分配法則)] 二次双曲線群Hc(Z/pZ)の元P,Qおよび整数mについて、位数kが素数qである場合に、以下の等式が成立する。
Figure 2008203548
[定理T10の証明] 結合法則と交換法則を用いて分配法則を数学的帰納法により証明する。m=1のとき、等式は正しい。任意の自然数mについて等式が正しいとすれば、(m+1)(P+Q)=m(P+Q)+(P+Q)=(mP+mQ)+(P+Q)=((mP+mQ)+P)+Q=(P+(mP+mQ))+Q=((P+mP)+mQ)+Q=((1+m)P+mQ)+Q=(m+1)P+(mQ+Q)=(m+1)P+(m+1)Q、である。故に、m+1についても等式は正しい。
位数kが合成数である場合には、「自然数mについて等式が正しい」という仮定が成立しない。これは、位数kが合成数である場合に、PとQとが、位数kの異なる約数を位数とする生成群の元である場合が生じ得るからである。位数kが素数qである場合には、かかる場合が起こらない。また、明らかにmが負の整数値である場合にも上式は成立する。さらに、m=0の場合にも上式は成立すると考えることができる。この場合、mP=0P=O、である。したがって、整数mにつき上記等式が成立する。[定理T10の証明終わり]
スカラー倍演算の表現は、群の加法演算を表す記号「+」を省略表示するものであるから、二次双曲線群Hc(Z/pZ)の元同士の積(たとえば、P×Q)およびその逆元を定義するものではない点に注意すべきである。スカラー倍演算についての単位元は「1」の係数である。ここで、二次双曲線群Hc(Z/pZ)の任意の元である点Pおよび位数kについて、kP=O、すなわち、P+(k−1)P=O、が成立する(ここで、Oはゼロ元)。位数kは曲線パラメータに依存しない固定値(=(p−1)/2+1)であるから、点Pの逆元として点(k−1)P=((p−1)/2)Pが常に存在する。
暗号処理では、所定の生成元Gをベースポイントとして定め、当該ベースポイントGにスカラー倍演算を施して得られる点を平文データに対応させる。それゆえ、生成元Gに基づいた生成群の構造は重要である。以下、生成群の構造について詳説する。
二次双曲線群Hc(Z/pZ)の元である点P(x)をベースポイントGとし、点P(x)に基づいて得られる生成群をQ[x]={mP(x)|P(x)∈Hc(Z/pZ),m∈Z/kZ,kはkP=Oを満たす最小の正整数}と定義する。生成群Q[x]は、スカラー倍演算および加法演算に関して群を構成する。事実、正整数m,nに対し、(n+m)P(x)=nP(x)+mP(x)∈Hc(Z/pZ)であるから、集合Q[x]はスカラー倍演算および加法演算に関して閉じている。また、「0」のスカラー係数について0P=O(Oはゼロ元)であり、点Pの逆元は(−1)P=−Pである。
さらに、生成群Q[x]は、スカラー積演算に関して「環」を構成する。これは、スカラー係数について位数qを法とする剰余値が同一になるので、剰余環Z/qZと同型になるからである。スカラー積演算は、スカラー係数mとスカラー係数nとの積を意味し、その演算記号は「・」で表すものとする。(m・n)P=n(mP)∈Hc(Z/pZ)であり、集合Q[x]はスカラー積演算に関して閉じている。また、「1」のスカラー係数について1P=Pである。
上述の通り、2つの生成群Q[x],Q[x]が互いに異なる生成元P(x),P(x)から生成され、同じ位数qを有し且つ同じ点集合からなる場合、これら2つの生成群は互いに共役である。P(x)=(−1)P(x)すなわちP(x)がP(x)の逆元であれば、(q−m)P(x)=(q−m)((−1)P(x))=mP(x)、であるので、図5に示されるQ[1],Q[9]のように、生成群Q[x]と生成群Q[x]とは互いに逆の順序で配列された点集合を有する。
生成群Q[x]については、以下に説明する定理T11〜定理T17が成立する。
[定理T11] 二次双曲線群Hc(Z/pZ)の元である点P(x)より生成群Q[x]が生成され、生成群Q[x]の元である点P(y)=mP(x)(ここで、m∈Z/kZ,m≠1)よりさらに生成群Q[y]が生成されるとき、生成群Q[x]の位数kと生成群Q[y]の位数kについて、k≦k、との関係が成立する。
[定理T11の証明] 生成群Q[y]の任意の元として、P(z)=nP(y)との式を満たす点P(z)が存在し、この式から、P(z)=(n・m)P(x)が導出されるので、点P(z)は点P(x)から生成され得る。P(z)は生成群Q[y]の任意の元であるから、生成群Q[y]の全ての元が生成群Q[x]に含まれる。すなわち、Q[x]⊇Q[y]、との関係が成立する。したがって、常に、k≦k、との関係が成立する。[定理T11の証明終わり]
[定理T12] 二次双曲線群Hc(Z/pZ)の元である点P(x)より生成群Q[x]が生成され、生成群Q[x]の任意の元である点P(y)=mP(x)よりさらに生成群Q[y]が生成されるとき、生成群Q[x]の位数kとQ[y]の位数kについて、m・kは位数kの倍数である。
[定理T12の証明] kP(y)=O(O:ゼロ元)であるから、(m・k)P(x)=Oである。したがって、少なくとも、m・kは位数kの倍数である。[定理T12の証明終わり]
[定理T13] 二次双曲線群Hc(Z/pZ)の元である点P(x)より生成群Q[x]が生成され、生成群Q[x]の任意の元である点P(y)=mP(x)よりさらに生成群Q[y]が生成されるとき、スカラー係数mと位数kが互いに素(すなわち、GCD(m,k)=1)であれば、生成群Q[y]の位数kは、生成群Q[x]の位数kと等しい。なお、GCD(m,k)はmとkの最大公約数を意味する。
[定理T13の証明] 定理T12により、m・k=n・k、との式が成立し得る。GCD(m,k)=1であるから、スカラー係数mの素因数は全てnに存在し、nはmで割り切れる。故に、k=n’・k。然るに定理T11により、k≦kであるから、n’=1である。他方、GCD(m,k)=1であるから、位数kの素因数は全てkに存在し、kはkで割り切れる。故に、k=n’・k。然るに定理T11により、k≦kであるから、n’=1である。したがって、生成群Q[y]の位数kは生成群Q[x]の位数kに等しい。[定理T13の証明終わり]
実際、二次双曲線群Hc(Z/23Z)(ここで、a=7,b=2,c=0)について、点P(8)(=1P(8)),P(16)(=11P(8)),P(21)(=7P(8)),P(22)(=5P(8))は、それぞれ、m=1,11,7,5の位置に対応している。これらの点P(8),P(16),P(21),P(22)はGCD(m,k)=1を満たし、図5に示されるようにこれらの点に基づいた生成群Q[8],Q[16],Q[21],Q[22]の位数k,k16,k21,k22は12である。
[定理T14] 二次双曲線群Hc(Z/pZ)の元である点P(x)より生成群Q[x]が生成され、生成群Q[x]の任意の元である点P(y)=mP(x)よりさらに生成群Q[y]が生成されるとき、スカラー係数mと位数kが互いに素(すなわち、GCD(m,k)=1)であれば、生成群Q[x],Q[y]は互いに共役である。またこのような共役関係にある生成群の個数はφ(k)である。ここで、φ(k)は、1〜kまでの正整数のうちkと互いに素なものの個数と定義され、オイラーのφ関数(Euler's Phi function)と呼ばれている。
[定理T14の証明] 生成群Q[x],Q[y]が同じ点集合からなることを示したい。定理T13により、生成群Q[y]の位数kは生成群Q[x]の位数kと等しい(すなわち、k=k)。いま、Q[y]の元として、点P(z)=nP(y)と点P(z)=nP(y)(ここで、n≠n(mod k))とが存在するものとする。題意よりGCD(m,k)=1であるから、m≡m・n(mod k)、m≡m・n(mod k)およびm≠mという関係を満たす正整数m,mが存在する。よって、生成群Q[x]の元としてmP(x)とmP(x)という2点が存在し、mP(x)≠mP(x)が成立する。したがって、生成群Q[y]の元である2点P(z),P(z)が異なれば、生成群Q[x]の元である2点mP(x),mP(x)も異なる。故に、生成群Q[y]の元と生成群Q[x]の元との間に一対一の対応が成立する。また、生成群Q[y]の任意の元である点P(y)=mP(x)は生成群Q[x]に含まれる。したがって、生成群Q[x],Q[y]は互いに共役である。また、GCD(m,k)=1を満たすkの値以下のmの個数は、オイラーのφ関数の定義により、φ(k)である。[定理T14の証明終わり]
[定理T15] 二次双曲線群Hc(Z/pZ)の元である点P(x)より生成群Q[x]が生成され、生成群Q[x]の任意の元である点P(y)=mP(x)よりさらに生成群Q[y]が生成されるとき、生成群Q[y]の位数kは、生成群Q[x]の位数kの約数である。特に、GCD(m,k)=gであれば、k=g・k、との関係が成立する。
[定理T15の証明] 定理T12により、m・k=n・k、との式が成立する。GCD(m,k)=gであれば、g・m’=m、且つ、g・k’=k、を満たすm’,k’が存在する。故に、m’・k=n・k’、且つ、GCD(m’,k’)=1。
P(z)=gP(x)より生成される生成群Q(z)の位数kについては、kP(x)=(g・k’)P(x)=k’(gP(x))=k’P(z)。また、kP(x)=O(O:ゼロ元)であるから、k’P(z)=O。したがって、k’は位数kの倍数であり、k≦k’。
ところが、P(y)=m’(gP(x))=m’P(z)であり、且つ、Q[y]はQ[z]の元である点P(z)から生成されるので、定理T11より、k≦kであり、上記k≦k’の関係から少なくともk≦k’である。
以上より、生成群Q[x]の元である点P(z)=gP(x)につき、定理T13を適用することができる。すなわち、m’・k=n・k’、且つ、GCD(m’,k’)=1の関係において、nがm’で割り切れるならば、k=n’・k’であり、n’=1。したがって、k=g・k。逆に、kがk’で割り切れるならば、k=n’・k’であり、n’=1。したがって、k=g・k。[定理T15の証明終わり]
実際、二次双曲線群Hc(Z/23Z)(ここで、a=7,b=2,c=0)において、点P(8)より生成された生成群Q[8]の位数は、k=12。Q[8]の元は、図5に示されるように、P(8)(=1P(8)),P(1)(=2P(8)),P(12)(=3P(8)),P(11)(=4P(8)),P(22)(=5P(8)),P(15)(=6P(8)),P(21)(=7P(8)),P(7)(=8P(8)),P(14)(=9P(8)),P(9)(=10P(8)),P(16)(=11P(8)),P(2)(=12P(8))、である。g=GCD(m,k=12)の値は、g=1,g=2,g=3,g=4,g=1,g=6,g=1,g=4,g=3,g10=2,g11=1,g12=12。一方、P(y)=mP(8)(m∈Z/12Z,m≠1)から生成される生成群Q[y]の位数kは、図5に示されるように、k=6,k12=4,k11=3,k22=12,k15=2,k21=12,k=3,k14=4,k=6,k16=12,k=1。したがって、常に、k=g・k、の関係が成立している。
二次双曲線群Hc(Z/pZ)が剰余環Z/mZと決定的に異なる事実がある。これは、剰余環Z/mZでは、φ(m)は、その群である既約剰余類(Z/mZ)の「位数」を表すものに過ぎないが、二次双曲線群Hc(Z/pZ)では、位数kの約数kにつき、φ(k)は、位数kを持つ「生成群の個数」を表す、という事実である。この事実は、二次双曲線群Hc(Z/pZ)が上式(3)による離散対数問題に基づいた加法演算を有し、そのうえで定義されるスカラー倍演算を有するのに対し、剰余環Z/mZが整数剰余についての単純な加法演算を有するに過ぎないことの違いを表している。二次双曲線群Hc(Z/pZ)の生成群の個数φ(k)は剰余環Z/kZの位数φ(k)と一対一に対応する。
上述の如く、安全性の向上のため、また、暗号化されるべき平文データのビット数を多くするために、ベースポイントから得られる生成群の位数はできるだけ大きな素因数を含むように選択されることが望ましい。二次双曲線群Hc(Z/pZ)の位数kが奇素数qであるときは、次の定理T16が成立する。
[定理T16] 二次双曲線群Hc(Z/pZ)の位数kが奇素数qであるとき、二次双曲線群Hc(Z/pZ)のゼロ元以外の任意の元である点P(x)をベースポイントとして生成される生成群Q[x]は位数qを有し、当該生成された生成群は互いに共役である。
[定理T16の証明] 定理T15により、生成群Q[x]の任意の元である点P(y)=mP(x)により生成された生成群Q[y]につき、Q[y]の位数kはQ[x]の位数kの約数である。また、GCD(m,k)=gであれば、k=g・k。したがって、位数k=kが奇素数qであるとき、gは1またはqの値を持つので、生成群Q[y]の位数kもqまたは1の値を持たなければならない。故に、位数qの生成群Q[x]の個数は、φ(q)=q−1個であり、1個のゼロ元が存在する。
また、定理T14において、q以下の正整数mにつきGCD(m,q)=1であるから、生成群Q[x]の元であるP(y)(=mP(x))を生成元とする生成群Q[y]は、いずれも、生成群Q[x]と共役である。したがって、上記q−1個の生成群は互いに共役である。[定理T16の証明終わり]
定理T16は、ベースポイントの選択の際に位数kを素数qに選択するための簡便な方法を提供する。たとえば、p=541の場合の位数は、上式(6)によりk=271であり、これらp,kは奇素数である。また、次の定理T16の2が成立する。
[定理T16の2] 二次双曲線群Hc(Z/pZ)の位数kが奇素数qであるとき、二次双曲線群Hc(Z/pZ)のゼロ元以外の任意の元である点P(x)に対し、二次双曲線群Hc(Z/pZ)の任意の元である点P(y)を、P(y)=mP(x)(mは整数)の形により求めることができる。
[定理T16の2の証明] 仮に点P(y)が、P(y)=mP(x)(mは整数)との関係を満たさないとすれば、点P(x)による生成群Q[x]の中に点P(y)は含まれない。然るに定理T16により、二次双曲線群Hc(Z/pZ)の位数kが奇素数qであるので、ゼロ元を除き、点P(y)による生成群Q[y]と点P(x)による生成群Q[x]とは共役である。したがって、生成群Q[x]の中に点P(y)は含まれないとする仮定は矛盾する。なお、m=0とすれば、ゼロ元もP(y)=mP(x)の形を有する。[定理T16の2の証明終わり]
定理T16の2は、二次双曲線群Hc(Z/pZ)の位数kが奇素数qであるときは、作業鍵Yを上式(3a)に従って高速指数計算する際に生じるmP(x)の形を有する点が、どの生成群の点であるか区別できないことを意味している。したがって、計算の過程で生じたmP(x)の形を有する点を他の目的で使う場合でも、点P(x)との関係で支障が出る場合は殆どないと考えられる。
二次双曲線群Hc(Z/pZ)の位数kが奇素数qであれば、上式(6)により、q=(p−1)/2+1、であるから、p=2(q−1)+1。故に、奇素数pは、p=4m+1(ここで、mは正整数)、の型を有する素数でなければならない。また、二次双曲線群Hc(Z/pZ)の位数kが奇素数qであれば、二次双曲線群Hc(Z/pZ)は、上記の偶単位元Iを要素として含まない。なぜならば、二次双曲線群Hc(Z/pZ)の任意の元RについてkR=Oが成立するのに対し、k=2n+1(ここで、nは正整数)とするとき、kI=n(2I)+I=Iとなり、これは矛盾を呈するからである。
上記の通り、位数kが奇素数qである場合には、定理T16により生成群Q[x]の位数kがパラメータに依らずに定まるので、ベースポイントを容易に選択することができる。上記した鍵生成装置1(図1)、暗号システム2(図7)およびデジタル署名システム3(図8)では、いずれも、二次双曲線群Hc(Rp)の元である公開鍵Gをベースポイントとして生成される生成群の元を用いた処理が実行されている。定理T16によれば、安全な公開鍵を容易に選択することが可能である。一方、位数kが合成数である場合には、生成群の位数はパラメータに依存して変化し得るので、ベースポイントは、定理T11〜T15を用いて試行錯誤的に選択することができる。最大位数を持つ安全な生成群を探す手段として下記定理T17を利用することも可能である。
[定理T17] 生成群Q[x],Q[y]が互いに素であるとは、ゼロ元以外の共通の要素を持たないこと、すなわち、Q[x]∩Q[y]=O(O:ゼロ元)であると定義する。生成群Q[x]の生成元P(x)と生成群Q[x]の生成元P(x)とが互いに素であるとき、P(x)=P(x)+P(x)は、生成群Q[x],Q[y]のいずれにも含まれない。すなわち、P(x)∈Q(x)およびP(x)∈Q(x)に対して、Q[x]∩Q[x]=O、であるとき、P(x)は、Q[x]∪Q[x]に含まれない。
[定理T17の証明] 点P(x)を生成元として生成される最大位数の生成群Q[x]が存在する。定理T11により、P(x)=mP(x)およびP(x)=nP(x)を満たす整数m,nが存在する。このとき、P(x)=P(x)+P(x)=(mP(x))+(nP(x))=(m+n)P(x)∈Q[x]。
仮に、P(x)∈Q[x]であり、P(x)=hP(x)が成立するとすれば、P(x)=hP(x)=(h・m)P(x)。P(x)=(m+n)P(x)が成立するので、m+n≡h・m(mod k)。故に、P(x)=nP(x)=(h・m−m)P(x)=(h−1)P(x)∈Q[x]。これは、Q[x]とQ[x]とが互いに素であること(すなわち、Q[x]∩Q[x]=O)に反する。したがって、P(x)はQ[x]に含まれない。同様に、P(x)∈Q[x]であり、P(x)=h’P(x)が成立するとの仮定は、Q[x]とQ[x]とが互いに素であることに反する。したがって、P(x)はQ[x]に含まれない。[定理T17の証明終わり]
定理T17により、集合Q[x],Q[x]が互いに素であるとき、Q[x]の元とQ[x]の元とを加算することで、集合Q[x],Q[x]に含まれない元が生成され得る。たとえば、図5に示される生成群において、Q[7]とQ[15]は互いに素である(すなわち、Q[7]∩Q[15]=O=P(2))。このとき、P(7)+P(15)=P(1)であり、点P(1)はQ[7],Q[15]のいずれにも含まれない。
<第2実施例>
次に、本発明の第2実施例について説明する。図12は、第2実施例に係る鍵ストリーム生成装置4の概略構成を示す機能ブロック図である。鍵ストリーム生成装置4は、群制御部60、鍵設定部61、作業鍵生成部62、ストリーム生成部63およびデータ攪拌部69を有している。
群制御部60は、剰余環Z/pZ上で定義された二次双曲線Hcの形を規定する曲線パラメータ{a,b,c}を設定し、当該設定された曲線パラメータをレジスタ60aに保持する。鍵ストリーム生成装置4の起動時には、群制御部60は、外部から供給された初期値{a,b,c}を曲線パラメータ{a,b,c}としてレジスタ60aに設定する。群制御部60は、さらに、二次双曲線群Hc(Z/pZ)の元の1つであるベースポイントP(x)を設定し、当該設定されたベースポイントP(x)を表す値をレジスタ60aに保持する機能を有する。なお、本実施例では、鍵ストリーム生成装置4は、上述した二次双曲線群Hc(Z/pZ)の元を用いて鍵ストリームを生成するが、これに限らず、上述の有限環Rp上で定義された二次双曲線群Hc(Rp)の元を用いて鍵ストリームを生成してもよい。
鍵設定部61は、スカラー係数である秘密鍵αを設定する機能を有する。鍵ストリーム生成装置4の起動時には、鍵設定部61は、秘密鍵αを、外部から供給された初期値αに設定する。作業鍵生成部62は、群制御部60から供給される曲線パラメータ{a,b,c}およびベースポイントP(x)を用い、ベースポイントP(x)を秘密鍵αでスカラー倍して作業鍵Y(=αP(x))を生成する機能を有する。
なお、二次双曲線群Hc(Z/pZ)の元であるベースポイントP(x)と作業鍵Yは、従属変数yと独立変数xとの組を表す点(x,y)で特定されるものであるが、上述した通り、二次双曲線群Hc(Z/pZ)の加法演算はx座標値のみを用いて実行できる。このため、ベースポイントP(x)および作業鍵Yをそれぞれ表す値としてx座標値のみを生成すればよい。
ストリーム生成部63は、曲線パラメータb,ベースポイントP(x),秘密鍵αおよび作業鍵Yのうち少なくとも作業鍵Yに基づいて疑似乱数系列からなる鍵ストリームKxを生成する。具体的には、ストリーム生成部63は、曲線パラメータb,ベースポイントP(x),秘密鍵αおよび作業鍵Yを独立変数とする所定の攪拌関数ST(b,P,α,Y)の出力を鍵ストリームKxとして与えるものである。作業鍵Yは、二次双曲線群上の離散対数問題に依る解読困難性を与えるものである。また、攪拌関数ST(b,P,α,Y)の機能は、作業鍵Y,曲線パラメータb,ベースポイントP(x)および秘密鍵αといった状態変数から鍵ストリームKxを生成することの他に、これら状態変数間の相関を低下させ或いは遮蔽することである。たとえば、作業鍵Y(=αP(x))は、曲線パラメータ{a,b,c}を用いた群演算(すなわち加法演算)により秘密鍵αとベースポイントP(x)から計算される。このとき、攪拌関数STは、ベースポイントP(x),秘密鍵αおよび作業鍵Yの間の相関を低下させ或いは遮断する。
攪拌関数STとしては、一方向関数などの非線形変換関数を使用すればよい。たとえば、単数または複数のSボックス(S-box)や転置関数を用いて非線形変換関数を構成することができる。Sボックスは、米国の標準暗号規格であるDES(Data Encryption Standard)で採用されているn行m列(n,mは2以上の正整数)の変換テーブルである。あるいは、公知のRC4(ARCFOUR)やSHA(Secure Hash Algorithm)によるハッシュ関数を用いて非線形変換関数を構成してもよい。このような攪拌関数STは、作業鍵Yを秘密にする機能を有する。これは、状態変数間の依存関係を遮蔽することにより、短ビット長の作業鍵Yが明らかになったときに秘密鍵αが知られる危険性を低下させるためである。当該依存関係が明らかになれば、鍵ストリームの解読対象となる状態変数の有効ビット数が減少する。さらに、攪拌関数STは、新たに生成されたベースポイントPと古いベースポイントとの間の相関を断つ機能をも有する。この機能を発揮するには、攪拌関数STの構造を第三者に知られないことが望ましい。
鍵ストリーム生成装置4がストリーム暗号装置として動作する場合、データ攪拌部69は、平文データ系列を入力データ系列Idとして、この入力データ系列Idと鍵ストリームKxである疑似乱数系列とに排他的論理和演算を施すことにより暗号データ系列である出力データ系列Odをリアルタイムに生成する。鍵ストリーム生成装置4Aが復号装置として動作する場合には、暗号データ系列を入力データ系列Idとし、当該入力データ系列Idと鍵ストリームKxである疑似乱数系列とに排他的論理和演算を施すことにより復号データ系列である出力データ系列Odをリアルタイムに生成する。
鍵ストリーム生成装置4はさらに群パラメータ生成部64を有しており、この群パラメータ生成部64には、作業鍵生成部62およびストリーム生成部63から、それぞれ、作業鍵Yおよび鍵ストリームKxが供給される。群パラメータ生成部64は、作業鍵Yおよび鍵ストリームKxのうちの少なくとも一方に基づいて、曲線パラメータb、ベースポイントPおよび秘密鍵αのうちの少なくとも1つを指定時刻毎(ラウンド毎)に新たに生成する機能を持つ。群制御部60は、現在設定中のベースポイントP(x)を新たに生成されたベースポイントPで置換し、現在設定中の曲線パラメータbを新たに生成された曲線パラメータbで置換する。また、鍵設定部61は、現在設定中の秘密鍵αを新たに生成された秘密鍵αで置換する。この結果、曲線パラメータb、ベースポイントP(x)および秘密鍵αのうちの少なくとも1つの状態変数が指定時刻毎に更新される。
したがって、鍵ストリーム生成装置4は、曲線パラメータb、ベースポイントP(x)および秘密鍵αを状態変数とするステート・マシンとみなすことができる。鍵ストリーム生成装置4をステート・マシンとみた場合、鍵ストリーム生成装置4の内部状態は、曲線パラメータ{a,b,c}が指定され且つ秘密鍵αが与えられることで決定される。作業鍵Yを表す値は、秘密鍵αとベースポイントP(x)とを入力変数とする関数値ではあるが、離散対数問題に依る解読困難性を考慮すれば、内部状態の1つを規定する変数して扱うことができる。この場合、鍵ストリーム生成装置4は、曲線パラメータb、ベースポイントP(x)、秘密鍵αおよび作業鍵Yを状態変数とするステート・マシンとみなすことが可能である。このように、第2実施例に係る鍵ストリーム生成装置4は、曲線パラメータbを変化させることで群構造を変化させるので、「演算変動型暗号(Hyper-Curve Fluctuational Operator Cypher)」あるいは「パラメータ変動型暗号(Hyper-Curve Fluctuational Parameter Cypher)」と呼ぶべき新しいタイプの暗号を実現するものである。本実施例に係る暗号を従来のストリーム暗号と比べた場合、状態変数の個数が多いので各状態変数のビット数を小さくすることができる。これは、鍵計算において、高速性を維持しつつストリーム暗号の安全性を向上させ得ることを意味している。なお、本実施例では作業鍵Yの個数は1個だけであるが、これに限らず、作業鍵の個数が複数個であってもよい。この場合、ストリーム暗号の安全性は若干低下することになるが、作業鍵の個数(たとえば、第1の作業鍵Y、第2の作業鍵Y、…、第Nの作業鍵Yの個数N)を増加させることで見かけ上の状態変数のビット数を増やすことができる。
上述した通り、従来の楕円曲線暗号における問題点は、従来の楕円曲線のなす群の位数が曲線パラメータに依存して変動するので、位数の計算に長時間を要することである。このため、従来の楕円曲線のなす群を用いて安全な鍵ストリームをリアルタイムに生成することは難しかった。一方、第2実施例で使用される二次双曲線群Hc(Z/pZ)の位数kは、上式(6)に示される通り、曲線パラメータに依らずに明示的に表現することができる。このため、剰余環Z/pZの位数pが一定のもとで曲線パラメータやベースポイントを変動させても安全な位数kを維持しつつ群演算を実行することが可能である。また、上記定理T16によれば、二次双曲線群Hc(Z/pZ)の位数kが奇素数qであれば、二次双曲線群Hc(Z/pZ)のゼロ元以外の任意の元である点P(x)をベースポイントとして生成される生成群Q[x]も位数qを有する。よって、二次双曲線群Hc(Z/pZ)の位数kが安全な奇素数qに選択されていれば、ベースポイントP(x)が更新されても、生成群Q[x]の位数を安全な位数qに維持しつつ群演算を実行することができる。したがって、二次双曲線群Hc(Z/pZ)の元を効率的に使用したストリーム暗号処理が可能である。
図12に示される通り、群パラメータ生成部64は、ポイント生成部65およびポイント検査部66を有する。ポイント生成部65は、作業鍵Yおよび鍵ストリームKxのうちの少なくとも一方に基づいて、ベースポイントPと曲線パラメータbとを指定時刻毎に新たに生成する。新たに生成されたベースポイントPおよび曲線パラメータbは、ポイント検査部66を介して群制御部60に供給される。ここで、曲線パラメータbは、上述の通り、二次双曲線群Hc(Z/pZ)の加法演算についての単位元(すなわち、ゼロ元)Oのx座標値を表すべき値である。
ポイント検査部66は、新たに生成されたベースポイントPがゼロ元Oに一致するか否かを検査して当該検査結果を群制御部60に供給する。具体的には、ポイント検査部66は、新たに生成されたベースポイントPのx座標値がゼロ元Oのx座標値bに一致するか否かを判定し、当該判定結果を検査結果として与えればよい。群制御部60は、当該検査結果に基づき、ベースポイントPがゼロ元Oに一致したときには、現在設定中のベースポイントP(x)をPで置換せず、現在設定中の曲線パラメータbをbで置換しない。
ベースポイントPがゼロ元Oに一致したとき、ポイント生成部65は、ポイント検査部66によりベースポイントPがゼロ元Oに一致しないと判定されるまで、ベースポイントPおよび曲線パラメータbを繰り返し生成してもよい。あるいは、ポイント生成部65は、以前に生成されたベースポイントPおよび曲線パラメータbを繰り返し出力してもよい。
なお、本実施例では、指定時刻毎にベースポイントPと曲線パラメータbを同時に生成するが、これに限らず、ベースポイントPを曲線パラメータbとは異なる指定時刻に生成してもよい。ポイント生成部65が或る指定時刻でベースポイントPのみを生成した場合、ポイント検査部66は、新たに生成されたベースポイントPのx座標値が現在設定中の曲線パラメータbと一致するか否かを検査すればよい。またポイント生成部65が或る指定時刻で曲線パラメータbのみを生成した場合には、ポイント検査部66は、現在設定中のベースポイントP(x)のx座標値が、新たに生成された曲線パラメータbと一致するか否かを検査すればよい。
図13は、ポイント生成部65の構成の一例を概略的に示すブロック図である。ポイント生成部65は、置換テーブルメモリ650、読み出し制御部650Rおよびアドレス制御部650Aを有する。置換テーブルメモリ650は、二次双曲線群Hc(Z/pZ)の複数個の元を表すx座標値(スカラー値)を記憶している。置換テーブルメモリ650の記憶値zとしては、(z+cz−a)が法pに関して平方非剰余であるとの条件を満たす値が選択される。
読み出し制御部650Rは、作業鍵Yおよび鍵ストリームKxのうち少なくとも一方に基づいて置換テーブルメモリ650の記憶領域を指定する。読み出し制御部650Rは、当該指定記憶領域から読み出された記憶値zを、新たに生成されたベースポイントPまたは曲線パラメータbとして出力する。読み出し制御部650Rは、現在読み出されたzの値が、1サイクル前に読み出されたzの値と一致するか否かを検査する機能を有してもよい。現在読み出されたzの値が1サイクル前に読み出されたzの値と一致したとき、読み出し制御部650Rは、置換テーブルの記憶内容を整理させるために割り込み信号を群制御部60に供給できる。
置換テーブルメモリ650の記憶値zは、ゴム関数z=gom(x)に従って与えることができ、変数xは置換テーブルメモリ650のアドレス値に対応する。図14の表は、c=0,a=7の場合のゴム関数z=gom(x)の独立変数xと従属変数zを例示するものである。ゴム関数の関数値(従属変数)zは、二次双曲線群Hc(Z/pZ)の定義域を規定する。また、関数値zの値は、必ず(z+cz−a)が法pに関して平方非剰余であるとの条件を満たす。このゴム関数z=gom(x)は、z=1,…,p−1までの範囲内の各整数に対して、(z+cz−a)が平方非剰余であるとの条件を満たすzの値を1から順に数えて、変数xに対応させた関数である。したがって、1≦x≦(p−1)/2+1に対して、1≦z≦(p−1)との関係が成立する。gom(x)を「ゴム関数」と呼ぶ理由は、z=1およびz=(p−1)の両端の値が決まっており、その中間の値が曲線パラメータに依存して変動し得るからである。xの値を特定してz=gom(x)を正確に求めるには、1から昇順で、(z+cz−a)につきオイラーの基準による値を計算しなければならない。この計算は大変な作業である。z=gom(x)の中心値は、平方非剰余の条件を満たす値が1から(p−1)まで均等に分布すると仮定すれば、z≒2xである。置換テーブルメモリ650の容量には経済的あるいは物理的な限界があるので、そのメモリ容量に応じて、ゴム関数gom(x)に従って計算され得るzの値のうちの一部を置換テーブルメモリ650に記憶すればよい。
置換テーブルメモリ650の機能はキャッシュメモリの機能と一見似ているように見えるが、そうではない。キャッシュメモリには、最近アクセスされたデータを優先して残す規則(たとえば、LRU:Least Recently Used)が採用されている。しかしながら、置換テーブルメモリ650では、秘匿性の向上のために、最近アクセスされたベースポイントおよび曲線パラメータとは可能な限り異なるベースポイントおよび曲線パラメータが選択されるべきである。したがって、図23のアドレス制御部650Aは、置換テーブルメモリ650の記憶データをできるだけランダムに選択するのが好ましい。
図15は、ポイント検査部66の概略構成の一例を示す回路図である。ポイント検査部66は、比較器660、フラグレジスタ661および論理積ゲート662を有している。比較器660の端子D0には曲線パラメータbが入力し、端子D1にはベースポイントPのx座標値Px=[Pが入力する。
比較器660は、ベースポイントPのx座標値Pxが曲線パラメータbと一致するときは、出力端子Qから論理値「1」に対応する高レベルの一致信号を出力する。一致信号は書込禁止信号INHとして群制御部60に供給される。群制御部60は、ポイント検査部66から書込禁止信号INHが供給されるとき、現在設定中のベースポイントP(x)の値と曲線パラメータbを置換せず、そのまま使用する。一方、比較器660は、ベースポイントPのx座標値Pxが曲線パラメータbと一致しないときは、端子Qから論理値「0」に対応する低レベル信号を出力する。比較器660の端子Qの出力は、フラグレジスタ661の入力端子Dと論理積ゲート662の一方の入力端子とに供給される。
フラグレジスタ661は、タイミングジェネレータ(図示せず)より供給されるクロックCLKに同期して動作し、クロックCLKのパルスエッジ(立ち上がりエッジまたは立ち下がりエッジ)に応じて、入力端子Dに供給された信号をフラグ信号としてラッチする。フラグ信号は、出力端子Qから論理積ゲート662の他方の入力端子に供給される。なお、フラグレジスタ661は、端子RにリセットパルスRsが入力したときにはリセットされ、出力端子Qから低レベル信号を出力する。
論理積ゲート662は、フラグレジスタ661の出力(フラグ信号)と比較器660の出力とに論理積演算を施して、両出力が高レベル信号のときに限り、高レベルの割り込み信号INTを群制御部60に供給する。両出力のうち少なくとも一方が低レベル信号のときには、論理積ゲート662は割り込み信号INTを群制御部60に供給しない。論理積ゲート662の一方の端子には、比較器660の現在の出力が供給されており、その他方の端子には、比較器660の1クロック周期前の出力であるフラグ信号がフラグレジスタ661から供給される。このため、論理積ゲート662は、2クロック周期に亘って比較器660が連続的に一致信号を出力したとき、言い換えれば、新たに生成されたベースポイントPのx座標値Pxと曲線パラメータbとが2回続けて一致したときに限り、割り込み信号INTを出力する。群制御部60は、割り込み信号INTが入力されると、たとえば、原因究明や置換テーブルメモリ650の記憶内容の整理などといった割り込みルーチンの処理を実行する。
次に、図16のフローチャートを参照しつつ秘密鍵αの生成手順の一例を説明する。図12の秘密鍵生成部67は、群制御部60から更新命令を受けると(ステップS10)、作業鍵Yおよび鍵ストリームKxを独立変数とする鍵関数SK(Y,Kx)に従って鍵αを新たに生成する(ステップS2)。ここで、鍵αの値は、剰余環Z/qZの元となるように選択される(ここで、qは、ベースポイントから生成される生成群の位数)。鍵関数SK(Y,Kx)は、疑似乱数に基づいて鍵αを出力する関数でもよいし、あるいは、ハッシュ関数などの一方向関数であればよい。
続いて、図12の鍵検査部68は、生成された鍵αの値が閾値Kt以上であるか否かを検査する(ステップS12)。鍵αの値が所定の閾値Kt以上であるとき、鍵αは秘密鍵として安全な有効ビット長を有すると判断し、鍵検査部68は、αを秘密鍵として出力する(ステップS14)。一方、鍵αが閾値Kt未満であるとき、鍵αは秘密鍵として安全な有効ビット長を有していないと判断し、鍵検査部68は、鍵αの有効ビット長を増大して鍵αの値を増加させる(ステップS13)。その後、ステップS12以後の処理手順が実行される。閾値Ktとしては、二次双曲線群Hc(Z/pZ)の位数kの半分程度の値が望ましい。
図17は、鍵検査部68の構成の一例を概略的に示すブロック図である。この鍵検査部68は、上位ビット検出部681、論理積ゲート682および鍵出力部683を有する。上位ビット検出部681には、秘密鍵生成部67から鍵αが供給される。上位ビット検出部681は、鍵αの上位nビット(nは2以上の整数)の値が「0」であるか否かを判別することによって、鍵αの値が閾値Kt以上であるか否かを判定し、当該判定結果を示す判定信号を論理積ゲート682の一方の端子に供給する。ここで、鍵αの上位nビットの値が「0」であるとき、判定信号は高レベル信号であり、鍵αの上位nビットの値が「0」で無いときは、判定信号は低レベル信号である。
秘密鍵αの更新命令が発せられているとき、論理積ゲート682の他方の端子には高レベルの更新信号Usが群制御部60から供給される。よって、更新信号Usが供給されるときに限り、上位ビット検出部681から出力された高レベルの判定信号が論理積ゲート682を介して鍵出力部683に供給される。鍵出力部683は、高レベル信号が論理積ゲート682から供給されたとき、鍵αの上位nビットの全部または一部を所定ビットで置換することで鍵αの有効ビット長を増大する。この結果、安全な有効ビット長を持つ鍵αを鍵設定部61に供給することができる。なお、位数kに対して値(k―α)が閾値Kt未満である場合を考慮することができ、この場合にも上位ビットの全部または一部を置換する処理方法を採用できる。
上述の通り、ストリーム生成部63(図12)は、攪拌関数ST(b,Y)を用いて鍵ストリームKxを生成する。またアドレス制御部650A(図13)は、アドレス生成関数AF(b,Y)を用いて置換テーブルメモリ650の記憶領域を指定するアドレスを生成できる。図18は、攪拌関数ST(Yx)とアドレス生成関数AF(Yx)の簡単な構成例を示す図である。攪拌関数ST(Yx)とアドレス生成関数AF(Yx)の独立変数Yxは、作業鍵Yのx座標値である。
図18に示される通り、攪拌関数ST(Yx)は、排他的論理和演算子631と剰余演算子632を有しており、排他的論理和演算子631は、Kビット長(Kは2以上の偶整数;たとえば64ビット)の鍵Kdのうちの下位K/2ビットと作業鍵のx座標値Yxとに排他的論理和演算を施す。剰余演算子632は、排他的論理和演算子631の出力に対してpを法とする剰余演算を施して剰余値を算出する。この剰余値が鍵ストリームKxの値として出力される。
一方、アドレス生成関数AF(Yx)は、排他的論理和演算子651と剰余演算子652とを有しており、排他的論理和演算子651は、Kビット長の鍵Kdのうちの上位K/2ビットと鍵ストリームYxとに排他的論理和演算を施す。剰余演算子652は、排他的論理和演算子651の出力に対してpを法とする剰余演算を施して剰余値TAを算出する。そして、剰余値TAのうちのsビット(sは正整数)がベースポイント用の第1アドレスTAxとして抽出され、剰余値TAのうちのrビット(rは正整数)がゼロ元用の第2アドレスTAbとして抽出される。第1アドレスTAxは、たとえば、剰余値TAのうちの最下位ビット(第1番目ビット)から第s番目ビットまでのsビットで構成できる。また第2アドレスTAbは、たとえば、剰余値TAのうちの第(s+1)番目ビットから第(s+r)番目ビットまでのrビットで構成できる。
次に、図18に示した関数を用いて算出された数値例について説明する。図19(A)は、置換テーブルメモリ650に記憶されている置換テーブルの簡単な数値例を示す図である。この置換テーブルは、ベースポイント用記憶値とアドレスとの関係、並びにゼロ元用記憶値とアドレスとの関係を示すものである。図19(B)は、図19(A)の置換テーブルを用いて各指定時刻で算出されたPx,b,Yx,Kxの値を表す図である。ここで、Pxはベースポイントのx座標値を、bはゼロ元のx座標値(あるいは曲線パラメータ)を、Yxは作業鍵Yのx座標値を、Kxは鍵ストリームを、それぞれ示している。また、第1アドレスTAxおよび第2アドレスTAbは、図18のアドレス生成関数AF(Yx)を用いて計算され、鍵ストリームKxは、図18の攪拌関数ST(Yx)を用いて計算された。鍵Kdとしては固定値のDES鍵(=0x133457799bbcdff1;「0x」は16進表現を表すための接頭記号。)が使用された。第1アドレスTAxは、剰余値TAのうちの最下位ビット(第1番目ビット)から第3番目ビットまでの下位3ビットであり、第2ビットTAbは、剰余値TAのうちの第4番目ビットから第6番目ビットまでの3ビットである。
図19(B)を参照すると、時刻t=00のとき、ベースポイントのx座標値Pxの初期値「504」と、曲線パラメータbの初期値「101」とが与えられる。秘密鍵α、法pおよび曲線パラメータa,cは一定であり、図19(B)に示される値を持つ。qは、ベースポイントから生成される生成群の位数である。作業鍵生成部62は、作業鍵Yのx座標値Yx(=「87204」)を算出する。ストリーム生成部63は、Yxの算出値「87204」に基づき、図18の攪拌関数ST(Yx)を用いて鍵ストリームKx(=「92454」)を算出する。一方、図13のアドレス制御部650Aは、Yxの算出値「87204」に基づき、図18のアドレス生成関数AF(Yx)を用いて第1アドレスTAx(=「01」)と第2アドレスTAb(=「01」)を算出する。第1アドレスTAxの値「01」に応じて、図19(A)のベースポイント用記憶値「506」が置換テーブルメモリ650から読み出され、次の時刻t=01のとき、値Pxはその値「506」に置換される。また、第2アドレスTAbの値「01」に応じて、図19(A)のゼロ元用記憶値「107」が置換テーブルメモリ650から読み出され、次の時刻t=01のとき、値bはその値「107」に置換される。
次の時刻t=01のときは、作業鍵生成部62は、Pxとbの値から作業鍵Yのx座標値Yx(=「58094」)を算出する。ストリーム生成部63は、Yxの算出値「58094」に基づき、図18の攪拌関数ST(Yx)を用いて鍵ストリームKx(=「6896」)を算出する。一方、図13のアドレス制御部650Aは、Kxの算出値「6896」に基づき、図18のアドレス生成関数AF(Yx)を用いて第1アドレスTAx(=「04」)と第2アドレスTAb(=「03」)を算出する。第1アドレスTAxの値「04」に応じて、図19(A)のベースポイント用記憶値「512」が置換テーブルメモリ650から読み出され、次の時刻t=02のとき、値Pxはその値「512」に置換される。また、第2アドレスTAbの値「03」に応じて、図19(A)のゼロ元用記憶値「109」が置換テーブルメモリ650から読み出され、次の時刻t=02のとき、値bはその値「109」に置換される。時刻t=02〜09の各々についても、t=01の場合と同様の手順が実行された。
次に、鍵関数SK(Yx,TA)の構成例を図20に示す。この鍵関数SK(Yx,TA)は、図18に示した攪拌関数ST(Yx)およびアドレス生成関数AF(Yx)と共に使用されるものである。図20に示される通り、鍵関数SK(Yx,TA)は、ビットシフト演算子671、鍵生成部672および剰余演算子673を有しており、ビットシフト演算子671は、剰余値TAの下位mビット(mは2以上の整数)の値だけ、鍵ストリームKxをビットシフトして値DIを生成する。剰余演算子672は、値DIに対して位数qを法とした剰余演算を施して秘密鍵αを生成する。
図20の関数を用いて算出された数値例について説明する。図21(B)は、図21(A)の置換テーブルを用いて各指定時刻で算出された値Px,b,α,Yx,Kxを表す図である。図21(A)の置換テーブルは、図18(A)に示した置換テーブルと同じである。ここで、第1アドレスTAxおよび第2アドレスTAbは、図20のアドレス生成関数AF(Yx)を用いて計算され、鍵ストリームKxは、図20の攪拌関数ST(Yx)を用いて計算され、秘密鍵αは図20の鍵関数SK(Yx,TA)を用いて計算される。鍵Kdとしては固定値のDES鍵(=0x133457799bbcdff1)が使用される。第1アドレスTAxは、剰余値TAのうちの最下位ビット(第1番目ビット)から第3番目ビットまでの下位3ビットであり、第2アドレスTAbは、剰余値TAのうちの第4番目ビットから第6番目ビットまでの3ビットである。さらにビットシフト演算子671は、剰余値TAの下位6ビットの値だけ、鍵ストリームKxを左ビットシフトして値DIを生成する。
図21(A)を参照すると、時刻t=00のとき、ベースポイントのx座標値Pxの初期値「504」と、曲線パラメータbの初期値「101」と、秘密鍵αの初期値「23456」とが与えられる。法pおよび曲線パラメータa,cは一定であり、図21(B)に示される値を持つ。qは、ベースポイントから生成される生成群の位数である。作業鍵生成部62は、作業鍵Yのx座標値Yx(=「87204」)を算出する。ストリーム生成部63は、Yxの算出値「87204」に基づき、図20の攪拌関数ST(Yx)を用いて鍵ストリームKx(=「92454」)を算出する。一方、図13のアドレス制御部650Aは、Yxの算出値「87204」に基づき、図20のアドレス生成関数AF(Yx)を用いて第1アドレスTAx(=「04」)と第2アドレスTAb(=「04」)を算出する。第1アドレスTAxの値「04」に応じて、図21(A)のベースポイント用記憶値「512」が置換テーブルメモリ650から読み出され、次の時刻t=01のとき、値Pxはその値「512」に置換される。また、第2アドレスTAbの値「04」に応じて、図21(A)のゼロ元用記憶値「113」が置換テーブルメモリ650から読み出され、次の時刻t=01のとき、値bはその値「113」に置換される。さらに図12の秘密鍵生成部67は、図20の鍵関数SK(Yx,TA)を用いて鍵α(=「20542」)を算出する。次の時刻t=01のとき、秘密鍵αは鍵αに置換される。さらに図12の秘密鍵生成部67は、図20の鍵関数SK(Yx,TA)を用いて鍵α(=「10762」)を算出する。次の時刻t=01のとき、秘密鍵αは鍵αに置換される。
次の時刻t=01のときは、作業鍵生成部62は、Px,bおよびαの値を用いて作業鍵Yのx座標値Yx(=「81758」)を算出する。ストリーム生成部63は、Yxの算出値「81758」に基づき、図20の攪拌関数ST(Yx)を用いて鍵ストリームKx(=「17127」)を算出する。一方、図13のアドレス制御部650Aは、Yxの算出値「17127」に基づき、図20のアドレス生成関数AF(Yx)を用いて第1アドレスTAx(=「03」)と第2アドレスTAb(=「02」)を算出する。第1アドレスTAxの値「03」に応じて、図21(A)のベースポイント用記憶値「509」が置換テーブルメモリ650から読み出され、次の時刻t=02のとき、値Pxはその値「509」に置換される。また、第2アドレスTAbの値「02」に応じて、図21(A)のゼロ元用記憶値「108」が置換テーブルメモリ650から読み出され、次の時刻t=02のとき、値bはその値「108」に置換される。時刻t=02〜13の各々についても、t=01の場合と同様の手順が実行される。
図21(B)の秘密鍵αは指定時刻毎に変動するので、その秘密鍵αの値若しくは(q―α)の値が小さいことがある。これらの値が閾値Ktと比べて小さいと容易に作業鍵Yが計算できる可能性が高くなる。そこで、かかる可能性を低減するために、図12の鍵検査部68が使用される。
図22は、攪拌関数ST(Yx,Px,α,b)とアドレス生成関数AF(Yx)の他の構成例を示す図である。攪拌関数ST(Yx,Px,α,b)は、直列接続された排他的論理和演算子633,634,635と剰余演算子636とを有する。図22に示される通り、演算子633は、Mビット長のベースポイントPxと作業鍵のx座標値Yxとに排他的論理和演算を施し、演算子634は、演算子633の出力と秘密鍵αとに排他的論理和演算を施し、演算子635は、演算子634の出力と曲線パラメータbとに排他的論理和演算を施す。剰余演算子636は、演算子635の出力に対して法pに関する剰余演算を施して鍵ストリームKxを生成する。
一方、図22のアドレス生成関数AF(Yx)は剰余演算子653を有しており、この剰余演算子653は、作業鍵Yのx座標値Yxに対してpを法とする剰余演算を施して剰余値TAを算出する。そして、剰余値TAのうちのsビット(sは正整数)がベースポイント用の第1アドレスTAxとして抽出され、剰余値TAのうちのrビット(rは正整数)がゼロ元用の第2アドレスTAbとして抽出される。第1アドレスTAxは、たとえば、剰余値TAのうちの最下位ビット(第1番目ビット)から第s番目ビットまでのsビットで構成できる。また第2アドレスTAbは、たとえば、剰余値TAのうちの第(s+1)番目ビットから第(s+r)番目ビットまでのrビットで構成できる。
次に、図23は、ポイント生成部65の構成の他の例を概略的に示すブロック図である。図23に示される通り、ポイント生成部65は、図13に示した構成に加えてデータ更新部650Uを有する点に特徴がある。データ更新部650Uは、作業鍵Yおよび鍵ストリームKxのうちの少なくとも一方に基づいて二次双曲線群Hc(Z/pZ)の元を生成し、置換テーブルメモリ650の記憶内容(置換テーブル)を当該生成された元で更新する機能を有している。
置換テーブルメモリ650の記憶内容が固定されていると、曲線パラメータbおよびベースポイントPの組み合わせが同一の場合が繰り返し出現する可能性がある。このとき、秘密鍵αが一定であれば、同一の値を有する作業鍵Yが繰り返し出現する可能性が存在し、外部からの攻撃に対する弱点になる。データ更新部650Uは、そのような可能性を低減させるものである。
図24のフローチャートを参照しつつ、データ更新部650Uによるデータ生成手順の一例を説明する。先ず、データ更新部650Uは、群制御部60から更新命令を受けると(ステップS30)、作業鍵Yおよび鍵ストリームKxを入力変数とする関数M(Kx,Y)に従ってxの値を生成する(ステップS31)。次のステップS32において、データ更新部650Uは、当該生成されたxの値が適当であるか否かを判定する。具体的には、データ更新部650Uは、当該xの値が現時刻のゼロ元Oのx座標値bと一致するか否かを判定し、当該xの値が現時刻のゼロ元Oのx座標値bと一致する場合に当該xの値を適当ではないと判定できる。また、上記した「素元H」のx座標値あるいは「偶単位元I」のx座標値と一致する場合に当該xの値を適当ではないと判定してもよい。当該xの値が適当でなければステップS31に処理が戻り、当該xの値が適当であれば、ステップS33に処理が移行する。
ステップS33では、データ更新部650Uは、オイラーの基準に従って判定値rを算出する。データ更新部650Uは、さらに判定値rに基づいて、二次双曲線関数Hcの分母の2次多項式(=x+cx−a)がpを法として平方非剰余であるか否かを判定する(ステップS34)。判定値rが「−1」であれば、その2次多項式は平方非剰余であり、判定値rが「−1」でなければ、その2次多項式は平方剰余である。判定値rが「−1」であるとき、データ更新部650Uは当該xの値を出力する(ステップS37)。
前記ステップS34で判定値rが「−1」ではないと判定したとき、データ更新部650Uは、当該xに対する同値対の値xiを算出する(ステップS35)。上記補題L1によれば、xの値について2次多項式(=x+cx−a)が平方剰余であれば、xiの値について2次多項式(=xi+cxi−a)は必ず平方非剰余となる。さらに、データ更新部650Uは、上記ステップS23と同様に、この同値対の値xiが適当であるか否かを判定する(ステップS36)。当該xiの値が適当でなければステップS31に処理が戻る。一方、当該xiの値が適当であれば、ステップS37に処理が移行して当該xiの値が出力される(ステップS37)。
なお、上記のステップS31〜S36の処理は、鍵ストリームの高速生成のために作業鍵Yの計算と並行して行うことが望ましい。この並行計算を実現するために、鍵ストリーム生成装置4は、数値計算専用プロセッサまたはデュアルプロセッサを搭載すればよい。
上記のようにデータ更新部650U自身が、置換テーブルメモリ650に記憶されるべき値を生成する処理に加えて、作業鍵生成部62での作業鍵Yの計算過程で発生した値を置換テーブルメモリ650に記憶されるべき値として使用する処理を採用することができる。たとえば、上式(3a)に関して説明した通り、Y=αPの計算には高速指数演算法を適用できる。この高速指数演算法によれば、最終的に作業鍵Yの計算が完了するまでに、二次双曲線群Hc(Z/pZ)の元を表す値が算出されるので、これらを流用することができる。作業鍵Yの計算過程で発生した値は、全て、二次双曲線関数Ecの分母の2次多項式が法pに関して平方非剰余であるとの条件を満たすので、図24のフローチャートに示したステップS33,S34の処理手順が不要であり、計算負荷が軽減するというメリットがある。
データ更新部650Uは、鍵ストリーム生成装置4の起動直後の初期設定時に、置換テーブルメモリ650に記憶すべき値を一定個数以上生成し、当該生成された値を置換テーブルメモリ650に追加する、あるいは、当該生成された値で置換テーブルメモリ650に記憶されている初期値を置換することが望ましい。これは、置換テーブルメモリ650の記憶値の個数が多ければ多い程、鍵ストリームKxの解読困難性が高くなるからである。さらには初期設定の際に、秘密鍵αの秘匿性を高めるために、鍵ストリーム生成装置4は、所定サイクル以上の回数動作した後に、鍵ストリームKxを出力することが望ましい。このような初期設定時の動作は、置換テーブルメモリ650の記憶値の個数が少ない場合に安全な鍵ストリームKxを提供できるため、重要なものである。
次に、置換テーブルメモリ650の置換テーブルの更新方法について説明する。更新方法としては、以下に説明するように、(1)LUE(Latest Used Exchange)方式と、(2)LUAE(Limited Use And Exchange)方式と、がある。
(1)LUE(Latest Used Exchange)方式: LUE方式は、置換テーブルメモリ650において最近アクセスされ且つ読み出された値を優先的に置換する方式である。このLUE方式を採用することで同一アドレスの記憶データを繰り返し読み出すことが防止され、置換テーブルメモリ650の記憶データ量が少なくても鍵ストリームKxの解読困難性を向上することが可能になる。図25は、LUE方式による構成を概略的に示すブロック図である。図25に示されるデータ更新部650Uは、データ生成部655、カレントアドレスレジスタ657、前アドレスレジスタ658およびセレクタ(マルチプレクサ:MUX)659を有する。データ生成部655は、作業鍵Yおよび鍵ストリームKxのうちの少なくとも一方に基づいて、置換テーブルメモリ650に記憶されるべきデータを生成する機能を持つ。
カレントアドレスレジスタ657と前アドレスレジスタ658とは直列接続されており、実質的にシフトレジストを構成している。カレントアドレスレジスタ657は、アドレス制御部650Aから供給された読出アドレス(カレントアドレス)を保持する。置換テーブルメモリ650は読出アドレスで指定される記憶領域のデータを読み出し、読み出し制御部650Rは、当該読み出されたデータb,Pを出力する。前アドレスレジスタ658は、1サイクル前または数サイクル前にカレントアドレスレジスタ657から供給された読出アドレス(前アドレス)を保持する。セレクタ659は、カレントアドレスレジスタ657の出力(すなわちカレントアドレス)と、前アドレスレジスタ658の出力(すなわち前アドレス)とのいずれか一方を、群制御部60から供給された選択制御信号SEに応じて選択し、当該選択されたアドレスを書込アドレスとして置換テーブルメモリ650に供給する。置換テーブルメモリ650は、セレクタ659から供給された書込アドレスで指定される記憶領域に、データ生成部655から供給されたデータを書き込むこととなる。セレクタ659がカレントアドレスレジスタ657の出力を選択した場合、置換テーブルメモリ650から直近に読み出された記憶データを置換することができ、セレクタ659が前アドレスレジスタ658の出力を選択した場合は、置換テーブルメモリ650から比較的最近に読み出された記憶データを置換することができる。
(2)LUAE(Limited Use And Exchange)方式: LUAE方式は、置換テーブルメモリ650において所定回数読み出され使用された記憶データを優先的に置換する方式である。具体的には、データ更新部650Uは、アドレス制御部650Aから供給される読出アドレスに基づいて記憶値が読み出された回数または頻度を更新し、当該回数または頻度が閾値に達した順番に当該記憶値を新たなデータに置換する機能を持つことができる。
上記LUE方式またはLUAE方式に従って置換テーブルの内容を更新しつつ、データ更新部650Uは、一定規則に従って、置換テーブルメモリ650の記憶値のアドレスを定期的に変更して記憶値を配置変更することが望ましい。これにより、置換テーブルの内容の秘匿性を高めて鍵ストリームKxの解読困難性を向上させることが可能になる。
上記LUE方式に従って算出された数値例を説明する。図26(A),(B)は、LUE方式に従って置換テーブルが更新される様子を示す図である。図26(A)の置換テーブルは、時刻t=00の初期設定時の記憶内容を示すものであり、図26(B)の置換テーブルは、11サイクル経過後の時刻t=11の置換テーブルメモリ650の記憶内容を示すものである。図26に示されるように、複数回更新されたベースポイント用記憶値もあれば、1回も使用されなかった値(たとえば、第1アドレスTAx=「04」に対応する値「512」)もある。置換テーブルの記憶値の個数は少ないため、若干、第1アドレスTAxの出現値に若干の偏りが確認された。
図27は、図26(A),(B)に示されるが如く記憶内容が更新される置換テーブルを用いて各指定時刻で算出されたPx,b,Yx,Kxの値を表す図である。これらPx,b,Yx,Kxの値は、図18に示した関数を用いて算出された。ここで、第1アドレスTAxおよび第2アドレスTAbは、図18のアドレス生成関数AF(Yx)を用いて計算され、鍵ストリームKxは、図18の攪拌関数ST(Yx)を用いて計算された。鍵Kdとしては固定値のDES鍵(=0x133457799bbcdff1)が使用された。第1アドレスTAxは、剰余値TAのうちの最下位ビット(第1番目ビット)から第3番目ビットまでの下位3ビットであり、第2アドレスTAbは、剰余値TAのうちの第4番目ビットから第6番目ビットまでの3ビットである。図27に示される通り、時刻t=00のとき、ベースポイントのx座標値Pxの初期値「504」と、曲線パラメータbの初期値「101」とが与えられる。秘密鍵α、法pおよび曲線パラメータa,cは一定であり、図27に示される値を持つ。鍵ストリームKxは図12のデータ攪拌部69に供給され、入力データ系列Idから出力データ系列Odがリアルタイムに生成される。
図28(A),(B)は、LUE方式に従って置換テーブルが更新される様子を示す図である。図28(A)の置換テーブルは、時刻t=00の初期設定時の記憶内容を示すものであり、図28(B)の置換テーブルは、11サイクル経過後の時刻t=11のときの記憶内容を示すものである。図28(B)に示されるように、複数回更新されたベースポイント用記憶値もあれば、1回も使用されなかった値(たとえば、第1アドレスTAx=「00」に対応する値「504」および第1アドレスTAx=「06」に対応する値「515」)もある。ここでも置換テーブルの記憶値の個数は少ないため、若干、第1アドレスTAxの出現値に若干の偏りが確認された。
図29は、図28(A),(B)に示されるが如く記憶内容が更新される置換テーブルを用いて各指定時刻で算出されたPx,b,α,Yx,Kxの値を表す図である。これらPx,b,α,Yx,Kxの値は、図20に示した関数を用いて算出された。ここで、第1アドレスTAxおよび第2アドレスTAbは、図20のアドレス生成関数AF(Yx)を用いて計算され、鍵ストリームKxは、図20の攪拌関数ST(Yx)を用いて計算され、秘密鍵αは図20の鍵関数SK(Yx,TA)を用いて計算される。鍵Kdとしては固定値のDES鍵(=0x133457799bbcdff1)が使用される。第1アドレスTAxは、剰余値TAのうちの最下位ビット(第1番目ビット)から第3番目ビットまでの下位3ビットであり、第2アドレスTAbは、剰余値TAのうちの第4番目ビットから第6番目ビットまでの3ビットである。さらにビットシフト演算子671は、剰余値TAの下位6ビットの値だけ、鍵ストリームKxをビットシフトして値DIを生成する。図29に示される通り、時刻t=00のとき、ベースポイントのx座標値Pxの初期値「504」と、曲線パラメータbの初期値「101」とが与えられる。法pおよび曲線パラメータa,cは一定であり、図29に示される値を持つ。qは、ベースポイントから生成される生成群の位数である。鍵ストリームKxは図12のデータ攪拌部69に供給され、入力データ系列Idから出力データ系列Odがリアルタイムに生成される。
図30は、置換テーブルに対するアクセス状況を表す図である。図30に示される表には、図27に示したように秘密鍵αが変動しない一定である場合と、図29に示したように秘密鍵αが変動する場合とにおいて、各アドレスで指定される記憶領域の値の利用状況が、時刻t=100における第1アドレスTAxの使用回数により示されている。この表によれば、秘密鍵の変動が有る場合の方が若干テーブルアドレスの使用回数に偏りが認められるが、秘密鍵の変動がない場合と秘密鍵の変動がある場合との双方で置換テーブルの各テーブル値は10回前後使用されており、置換テーブルの利用が均一化されている状況が理解できる。それ故、置換テーブルの大きさが制限されている場合でも、比較的急速に置換テーブルの値の乱数化が進行するので、擬似乱数に近い性質の鍵ストリームを生成することができる。したがって、初期設定の際に、秘密鍵αの秘匿性を高めるために、鍵ストリーム生成装置4は、所定サイクル以上の回数動作した後に、鍵ストリームKxを出力することが望ましい。
本発明の第1実施例に係る鍵生成装置の概略構成を示す機能ブロック図である。 二次双曲線の一例を概略的に示すグラフである。 二次双曲線群Hc(Z/23Z)の元を例示する図である。 平方非剰余の条件を満たす二次双曲線群Hc(Z/pZ)の位数kの計算結果を示す図である。 生成群Q[x]を例示する図である。 図5に示した生成群Q[x]の包含関係を示す概念図である。 第1実施例に係る暗号システムの概略構成を示す機能ブロック図である。 第1実施例に係るデジタル署名システムの概略構成を示す図である。 定理T8の証明結果を示す図である。 定理T8に関する簡単な計算結果の一例を示す図である。 定理T8に関する簡単な計算結果の他の例を示す図である。 本発明の第2実施例に係る鍵ストリーム生成装置の概略構成を示す機能ブロック図である。 第2実施例に係るポイント生成部の概略構成を示すブロック図である。 ゴム関数の出力例を例示する図である。 第2実施例に係るポイント検査部の構成の一例を概略的に示す回路図である。 秘密鍵の生成手順の一例を示すフローチャートである。 第2実施例に係る鍵検査部の構成の一例を概略的に示すブロック図である。 各種関数の構成の一例を示す図である。 置換テーブルの簡単な数値例を示す図である。 各種関数の構成の他の例を示す図である。 図20に示される関数を用いて算出された数値例を示す図である。 各種関数の構成のさらに他の例を示す図である。 ポイント生成部の構成の他の例を概略的に示すブロック図である。 データ生成手順の一例を示すフローチャートである。 LUE方式によるデータ更新部の構成の一例を概略的に示す図である。 置換テーブルの内容が更新される様子を示す図である。 数値例を示す図である。 置換テーブルの内容が更新される様子を示す図である。 数値例を示す図である。 置換テーブルに対するアクセス状況を表す図である。
符号の説明
1 鍵生成装置
2 暗号システム
3 デジタル署名システム
4 鍵ストリーム生成装置
10 乱数発生器
11 鍵設定部
12 曲線パラメータ設定部
13 鍵生成部
20 暗号装置
22 鍵生成部
23 係数設定部
24 暗号化部
30 復号装置
31 復号部
40 署名生成装置
42 鍵生成部
43 係数設定部
44 ダイジェスト生成部
45 暗号化部
50 署名検証装置
52 署名検証部
53 ダイジェスト生成部
60 群制御部
61 鍵設定部
62 作業鍵生成部
63 ストリーム生成部
64 群パラメータ生成部
65 ポイント生成部
66 ポイント検査部
67 秘密鍵生成部
68 鍵検査部
69 データ攪拌部

Claims (33)

  1. 暗号処理用の鍵を生成する鍵生成方法であって、
    (a)スカラー係数である秘密鍵を設定するとともに、有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元を第1の公開鍵として選択するステップと、
    (b)前記第1の公開鍵に対して前記有限可換群において定義される加法演算を少なくとも1回施すことにより前記第1の公開鍵を前記秘密鍵でスカラー倍して第2の公開鍵を生成するステップと、
    を有し、
    前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、
    前記ステップ(b)の加法演算において、前記有限可換群の第1および第2の元を加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とする鍵生成方法。
  2. 平文データを暗号化する鍵生成方法であって、
    (a)有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元である第1および第2の公開鍵をメモリから読み出すステップと、
    (b)当該読み出された第1および第2の公開鍵を用いて、前記平文データに対して前記有限可換群において定義される加法演算を施すことにより前記平文データを暗号化するステップと、
    を有し、
    前記第2の公開鍵は、前記第1の公開鍵に対して前記加法演算を少なくとも1回施すことにより前記第1の公開鍵を秘密鍵でスカラー倍して得られる鍵であり、
    前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、
    前記ステップ(b)の加法演算において、前記有限可換群の第1および第2の元を加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とする鍵生成方法。
  3. 請求項2記載の鍵生成方法であって、
    前記ステップ(b)は、
    正整数のスカラー係数を設定するステップと、
    前記第1の公開鍵に対して前記加法演算を施すことにより前記第1の公開鍵を前記スカラー係数でスカラー倍して第1の作業鍵を生成するステップと、
    前記第2の公開鍵に対して前記加法演算を施すことにより前記第2の公開鍵を前記スカラー係数でスカラー倍して第2の作業鍵を生成するステップと、
    前記第1および第2の作業鍵を用いて前記平文データに対して前記加法演算を施すことにより前記平文データを暗号化するステップと、
    を含むことを特徴とする鍵生成方法。
  4. 平文データからデジタル署名を生成する鍵生成方法であって、
    (a)有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元である公開鍵とスカラー係数である秘密鍵とをメモリから読み出すステップと、
    (b)前記平文データに基づいてダイジェストデータを生成するステップと、
    (c)前記ステップ(a)で読み出された公開鍵と秘密鍵とを用いて、前記ダイジェストデータに対して前記有限可換群において定義される加法演算を少なくとも1回施すことにより前記ダイジェストデータを暗号化してデジタル署名データを生成するステップと、
    を有し、
    前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、
    前記ステップ(c)の加法演算において、前記有限可換群の第1および第2の元を加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とする鍵生成方法。
  5. 請求項4記載の鍵生成方法であって、
    前記ステップ(c)は、
    正整数のスカラー係数を設定するステップと、
    前記公開鍵に対して前記加法演算を施すことにより前記公開鍵を前記スカラー係数でスカラー倍して作業鍵を生成するステップと、
    前記作業鍵、前記公開鍵および前記秘密鍵を用いて前記ダイジェストデータに対して前記加法演算を施すことにより前記ダイジェストデータを暗号化するステップと、
    を含むことを特徴とする鍵生成方法。
  6. 請求項1から5のうちのいずれか1項に記載の鍵生成方法であって、前記所定の固定元は、前記加法演算に関する単位元であることを特徴とする鍵生成方法。
  7. 請求項1から6のうちのいずれか1項に記載の鍵生成方法であって、前記有限可換群の元は、前記整数論的関数の2次多項式が前記有限環の位数pを法として平方非剰余であるとの条件を満たすことを特徴とする鍵生成方法。
  8. 請求項7記載の鍵生成方法であって、前記有限可換群の位数は、奇素数であることを特徴とする鍵生成方法。
  9. 請求項7記載の鍵生成方法であって、前記有限可換群の位数は、奇素数を因子を含む合成数であることを特徴とする鍵生成方法。
  10. 請求項1から9のうちのいずれか1項に記載の鍵生成方法であって、前記有限環は、奇素数pを法とする整数の剰余類全体のなす剰余環Z/pZであることを特徴とする鍵生成方法。
  11. 請求項1から10のうちのいずれか1項に記載の鍵生成方法であって、前記二次双曲線関数は、前記有限環の元である整数a,b,cに対して、
    Figure 2008203548
    の式で与えられることを特徴とする鍵生成方法。
  12. 請求項1から10のうちのいずれか1項に記載の鍵生成方法であって、前記二次双曲線関数は、前記有限環の元である整数a,b,c,d,eに対して、
    Figure 2008203548
    の式で与えられることを特徴とする鍵生成方法。
  13. 暗号処理用の鍵を生成する鍵生成装置であって、
    スカラー係数である秘密鍵を設定するとともに、有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元を第1の公開鍵として選択する鍵設定部と、
    前記第1の公開鍵に対して前記有限可換群において定義される加法演算を少なくとも1回施すことにより前記第1の公開鍵を前記秘密鍵でスカラー倍して第2の公開鍵を生成する鍵生成部と、
    を有し、
    前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、
    前記鍵生成部は、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とする鍵生成装置。
  14. 平文データを暗号化する鍵生成装置であって、
    有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元である第1および第2の公開鍵を記憶するメモリと、
    前記第1および第2の公開鍵を用いて、前記平文データに対して前記有限可換群において定義される加法演算を施すことにより前記平文データを暗号化する暗号処理部と、
    を有し、
    前記第2の公開鍵は、前記第1の公開鍵に対して前記加法演算を少なくとも1回施すことにより前記第1の公開鍵を秘密鍵でスカラー倍して得られる鍵であり、
    前記暗号処理部は、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とする鍵生成装置。
  15. 平文データからデジタル署名を生成する鍵生成装置であって、
    有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元である公開鍵とスカラー係数である秘密鍵とを記憶するメモリと、
    前記平文データに基づいてダイジェストデータを生成するダイジェスト生成部と、
    前記公開鍵と前記秘密鍵とを用いて、前記ダイジェストデータに対して前記有限可換群において定義される加法演算を少なくとも1回施すことにより前記ダイジェストデータを暗号化してデジタル署名データを生成する暗号処理部と、
    を有し、
    前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、
    前記暗号処理部は、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とする鍵生成装置。
  16. 暗号文データを復号する復号方法であって、
    (a)有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元を用いて暗号化された暗号文データを受信するステップと、
    (b)秘密鍵をメモリから読み出すステップと、
    (c)当該読み出された秘密鍵を用いて、前記暗号文データに対して前記有限可換群において定義される加法演算を少なくとも1回施すことにより前記暗号文データを平文データに変換するステップと、
    を有し、
    前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、
    前記ステップ(c)において、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とする復号方法。
  17. 暗号文データを復号する復号装置であって、
    秘密鍵を記憶するメモリと、
    有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元を用いて暗号化された暗号文データを受信し、前記秘密鍵を用いて、当該受信された暗号文データに対して前記有限可換群において定義される加法演算を少なくとも1回施すことにより前記暗号文データを平文データに変換する復号部と、
    を有し、
    前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、
    前記復号部は、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とする復号装置。
  18. 外部から供給された平文データを用いてデジタル署名データの正当性を検証する署名検証方法であって、
    (a)有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元である公開鍵をメモリから読み出すステップと、
    (b)当該読み出された公開鍵を用いて、前記デジタル署名データに対し前記有限可換群において定義される加法演算を少なくとも1回施して被検証データを生成するステップと、
    (c)前記平文データに基づいてダイジェストデータを生成するステップと、
    (d)前記ダイジェストデータが前記被検証データと整合するか否かを判定するステップと、
    を有し、
    前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、
    前記ステップ(b)においては、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とする署名検証方法。
  19. 外部から供給された平文データを用いてデジタル署名データの正当性を検証する署名検証装置であって、
    有限環上で定義された整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元である公開鍵を記憶するメモリと、
    前記平文データに基づいてダイジェストデータを生成するダイジェスト生成部と、
    前記公開鍵を用いて、前記デジタル署名データに対し前記有限可換群において定義される加法演算を少なくとも1回施して被検証データを生成し、前記ダイジェストデータが前記被検証データと整合するか否かを判定する署名検証部と、
    を有し、
    前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、
    前記署名検証部は、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とする署名検証装置。
  20. 疑似乱数系列からなる鍵ストリームを生成する鍵ストリーム生成装置であって、
    有限環上で定義された整数論的関数の形を規定する曲線パラメータを設定するとともに、前記整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元の1つであるベースポイントを設定する群制御部と、
    スカラー係数である秘密鍵を設定する鍵設定部と、
    前記鍵設定部で設定された秘密鍵を用いて、前記群制御部で設定されたベースポイントに対して前記有限可換群において定義される加法演算を少なくとも1回施すことにより当該設定されたベースポイントを当該設定された秘密鍵でスカラー倍して作業鍵を生成する作業鍵生成部と、
    前記作業鍵に基づいて疑似乱数系列からなる鍵ストリームを生成するストリーム生成部と、
    前記曲線パラメータ、前記ベースポイントおよび前記秘密鍵のうちの少なくとも1つを指定時刻毎に新たに生成する群パラメータ生成部と、
    を有し、
    前記群制御部は、現在設定中のベースポイントを前記群パラメータ生成部により新たに生成されたベースポイントで置換し、且つ現在設定中の曲線パラメータを前記群パラメータ生成部により新たに生成された曲線パラメータで置換するものであり、前記鍵設定部は、現在設定中の秘密鍵を前記群パラメータ生成部により新たに生成された秘密鍵で置換することを特徴とする鍵ストリーム生成装置。
  21. 請求項20記載の鍵ストリーム生成装置であって、前記鍵ストリームを用いて入力データ系列を攪拌して出力データ系列を生成するデータ攪拌部をさらに有することを特徴とする鍵ストリーム生成装置。
  22. 請求項20または21記載の鍵ストリーム生成装置であって、前記ストリーム生成部は、前記作業鍵に加えて、前記曲線パラメータ、前記ベースポイントおよび前記秘密鍵のうちの少なくとも1つに基づいて前記鍵ストリームを生成することを特徴とする鍵ストリーム生成装置。
  23. 請求項20から22のうちのいずれか1項に記載の鍵ストリーム生成装置であって、前記群パラメータ生成部は、前記作業鍵および前記鍵ストリームのうちの少なくとも一方に基づいて前記ベースポイントを新たに生成するポイント生成部を含むことを特徴とする鍵ストリーム生成装置。
  24. 請求項23記載の鍵ストリーム生成装置であって、
    前記ポイント生成部は、
    前記有限可換群の複数個の元を記憶している置換テーブルメモリと、
    前記作業鍵および前記鍵ストリームのうちの少なくとも一方に基づいて前記置換テーブルメモリの記憶領域を指定するアドレス制御部と、
    当該指定された記憶領域から読み出された元を当該新たに生成されたベースポイントとして出力する読み出し制御部と、
    を含むことを特徴とする鍵ストリーム生成装置。
  25. 請求項24記載の鍵ストリーム生成装置であって、
    前記置換テーブルメモリは、複数個のスカラー値を記憶しており、
    前記アドレス制御部は、前記作業鍵および前記鍵ストリームのうちの少なくとも一方に基づいて前記置換テーブルメモリの記憶領域を指定し、
    前記読み出し制御部は、当該指定された記憶領域から読み出されたスカラー値を当該新たに生成された曲線パラメータとして出力することを特徴とする鍵ストリーム生成装置。
  26. 請求項24または25記載の鍵ストリーム生成装置であって、
    前記作業鍵および前記鍵ストリームのうちの少なくとも一方に基づいて前記有限可換群の元を生成し、前記置換テーブルメモリの記憶内容を当該生成された元で更新するデータ更新部をさらに備えることを特徴とする鍵ストリーム生成装置。
  27. 請求項24または25記載の鍵ストリーム生成装置であって、前記置換テーブルメモリの記憶内容を、前記作業鍵の計算過程に発生したデータで更新するデータ更新部をさらに備えることを特徴とする鍵ストリーム生成装置。
  28. 請求項26または27記載の鍵ストリーム生成装置であって、前記データ更新部は、前記置換テーブルメモリに記憶されているデータのうち最近読み出されたデータを優先的に置換することによって前記置換テーブルメモリの記憶内容を更新することを特徴とする鍵ストリーム生成装置。
  29. 請求項23から28のうちのいずれか1項に記載の鍵ストリーム生成装置であって、
    前記群パラメータ生成部は、前記ポイント生成部で新たに生成されたベースポイントが前記有限可換群の前記加法演算についての単位元に一致するか否かを検査して当該検査結果を前記群制御部に与えるポイント検査部をさらに含み、
    前記群制御部は、当該新たに生成されたベースポイントが前記単位元であるときは、現在設定中のベースポイントを置換しないことを特徴とする鍵ストリーム生成装置。
  30. 請求項20から29のうちのいずれか1項に記載の鍵ストリーム生成装置であって、前記群パラメータ生成部は、前記作業鍵および前記鍵ストリームのうちの少なくとも一方に基づいて前記秘密鍵を新たに生成する秘密鍵生成部を含むことを特徴とする鍵ストリーム生成装置。
  31. 請求項30記載の鍵ストリーム生成装置であって、前記群パラメータ生成部は、前記秘密鍵生成部で新たに生成された秘密鍵の有効ビット長が閾値未満であるときは、前記秘密鍵のビットの全部または一部を所定ビットで置換して前記有効ビット長を増大させる鍵検査部をさらに含むことを特徴とする鍵ストリーム生成装置。
  32. 請求項20から31のうちのいずれか1項に記載の鍵ストリーム生成装置であって、
    前記整数論的関数は、前記有限環上で定義された2次多項式の分母と前記有限環上で定義された1次多項式の分子とからなる二次双曲線関数であり、
    前記作業鍵生成部は、前記有限可換群の第1および第2の元を前記加法演算により加算する際には、前記第1および第2の元を解として有する1次関数と前記二次双曲線関数との共通解のうち前記第1および第2の元を除く第3の元が定まるとき、前記第3の元と前記有限可換群の所定の固定元とを解として有する1次関数と前記二次双曲線関数との共通解のうち前記第3の元と前記所定の固定元とを除く第4の元を当該加算結果として算出することを特徴とする鍵ストリーム生成装置。
  33. 疑似乱数系列からなる鍵ストリームを生成する鍵ストリーム生成方法であって、
    (a)有限環上で定義された整数論的関数の形を規定する曲線パラメータを設定するとともに、前記整数論的関数の従属変数yと当該整数論的関数の独立変数xとの組(x,y)からなる集合のなす有限可換群の元の1つであるベースポイントを設定するステップと、
    (b)スカラー係数である秘密鍵を設定するステップと、
    (c)前記ステップ(b)で設定された秘密鍵を用いて、前記ステップ(a)で設定されたベースポイントに対して前記有限可換群において定義される加法演算を少なくとも1回施すことにより当該設定されたベースポイントを当該設定された秘密鍵でスカラー倍して作業鍵を生成するステップと、
    (d)前記作業鍵に基づいて疑似乱数系列からなる鍵ストリームを生成するステップと、
    (e)前記曲線パラメータ、前記ベースポイントおよび前記秘密鍵のうちの少なくとも1つを指定時刻毎に新たに生成するステップと、
    (f)前記ステップ(e)でベースポイントが新たに生成されたときに現在設定中のベースポイントを当該新たに生成されたベースポイントで置換するステップと、
    (g)前記ステップ(e)で曲線パラメータが新たに生成されたときに現在設定中の曲線パラメータを当該新たに生成された曲線パラメータで置換するステップと、
    (h)前記ステップ(e)で秘密鍵が新たに生成されたときに現在設定中の秘密鍵を当該新たに生成された秘密鍵で置換するステップと、
    を有することを特徴とする鍵ストリーム生成方法。
JP2007039780A 2007-02-20 2007-02-20 二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。 Pending JP2008203548A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007039780A JP2008203548A (ja) 2007-02-20 2007-02-20 二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。
US11/962,640 US20100020964A1 (en) 2007-02-20 2007-12-21 Key generation method using quadratic-hyperbolic curve group

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007039780A JP2008203548A (ja) 2007-02-20 2007-02-20 二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。

Publications (1)

Publication Number Publication Date
JP2008203548A true JP2008203548A (ja) 2008-09-04

Family

ID=39781122

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007039780A Pending JP2008203548A (ja) 2007-02-20 2007-02-20 二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。

Country Status (2)

Country Link
US (1) US20100020964A1 (ja)
JP (1) JP2008203548A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223035A (ja) * 2008-03-17 2009-10-01 Oki Semiconductor Co Ltd 双曲線暗号の鍵生成方法

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8045708B2 (en) * 2008-05-21 2011-10-25 Apple Inc. Discrete key generation method and apparatus
US8848904B2 (en) * 2008-10-24 2014-09-30 University Of Maryland, College Park Method and implementation for information exchange using Markov models
IL205803A0 (en) * 2010-05-16 2010-12-30 Yaron Sella Collision-based signature scheme
US8744078B2 (en) * 2012-06-05 2014-06-03 Secure Channels Sa System and method for securing multiple data segments having different lengths using pattern keys having multiple different strengths
CN103491534B (zh) * 2012-06-13 2016-05-18 株式会社理光 发射设备、接收设备、通信系统及其控制方法
KR101479112B1 (ko) * 2012-10-23 2015-01-07 에스케이 텔레콤주식회사 양자키 분배 프로토콜에서 비트 오류 수정을 위한 치환 방법
EP3020159A1 (en) * 2013-07-12 2016-05-18 Koninklijke Philips N.V. Electronic signature system
CN103414569B (zh) * 2013-08-21 2016-08-10 王威鉴 一种建立抗攻击的公钥密码的方法
NL2013520B1 (en) * 2014-09-24 2016-09-29 Koninklijke Philips Nv Public-key encryption system.
US9923719B2 (en) * 2014-12-09 2018-03-20 Cryptography Research, Inc. Location aware cryptography
CN106161402B (zh) * 2015-04-22 2019-07-16 阿里巴巴集团控股有限公司 基于云环境的加密机密钥注入系统、方法及装置
CN104836661B (zh) * 2015-05-27 2018-05-18 中国科学院微电子研究所 一种体域网主密钥生成方法
US10218515B2 (en) * 2016-08-26 2019-02-26 Microsoft Technology Licensing, Llc Evolving a signature during trust verification of an object
WO2018200824A1 (en) * 2017-04-28 2018-11-01 University Of North Dakota Lightweight key exchange protocol
GB201816936D0 (en) * 2018-10-17 2018-11-28 Nchain Holdings Ltd Computer-implemented system and method
WO2020166879A1 (en) * 2019-02-15 2020-08-20 Crypto Lab Inc. Apparatus for performing threshold design on secret key and method thereof
KR102364047B1 (ko) * 2019-11-19 2022-02-16 기초과학연구원 구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치
CN111444242B (zh) * 2020-03-27 2023-11-14 苏州链原信息科技有限公司 用于数据等价性校验的方法、电子设备及计算机存储介质
WO2021225578A1 (en) 2020-05-04 2021-11-11 Pqsecure Technologies, Llc An efficient hardware architecture for highly secure isogeny-based cryptosystems
CN111669269B (zh) * 2020-06-08 2023-08-15 晋商博创(北京)科技有限公司 Blk数据加密方法、装置及存储介质
CN111935712A (zh) * 2020-07-31 2020-11-13 深圳市燃气集团股份有限公司 一种基于NB-IoT通信的数据传输方法、系统及介质
US11444767B1 (en) * 2021-03-03 2022-09-13 Nxp B.V. Method for multiplying polynomials for a cryptographic operation
CN113315628B (zh) * 2021-04-09 2022-12-16 中国科学院信息工程研究所 密钥封装方法、装置、设备及存储介质
CN117251884A (zh) * 2023-09-21 2023-12-19 北京海泰方圆科技股份有限公司 一种数据验证方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181351A (ja) * 1998-12-18 2000-06-30 Toshiba Corp 楕円曲線暗号の鍵生成方法および装置
JP2001066987A (ja) * 1999-08-27 2001-03-16 Nec Corp 代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体
JP2004077948A (ja) * 2002-08-21 2004-03-11 Nec Corp ヤコビ群要素加算装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7209555B2 (en) * 2001-10-25 2007-04-24 Matsushita Electric Industrial Co., Ltd. Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device
EP1783568A4 (en) * 2004-08-02 2011-11-30 Univ Electro Communications ROBUST DIGITAL CONTROLLER AND ITS DESIGN DEVICE

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181351A (ja) * 1998-12-18 2000-06-30 Toshiba Corp 楕円曲線暗号の鍵生成方法および装置
JP2001066987A (ja) * 1999-08-27 2001-03-16 Nec Corp 代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体
JP2004077948A (ja) * 2002-08-21 2004-03-11 Nec Corp ヤコビ群要素加算装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223035A (ja) * 2008-03-17 2009-10-01 Oki Semiconductor Co Ltd 双曲線暗号の鍵生成方法

Also Published As

Publication number Publication date
US20100020964A1 (en) 2010-01-28

Similar Documents

Publication Publication Date Title
JP2008203548A (ja) 二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。
Rodriguez-Henriquez et al. A brief introduction to modern cryptography
JP5190142B2 (ja) 楕円曲線上の新しいトラップドア1方向性関数と、その、より短い署名及び非対称暗号化への応用
US7594261B2 (en) Cryptographic applications of the Cartier pairing
Abidi et al. Implementation of elliptic curve digital signature algorithm (ECDSA)
Anees et al. Designing secure substitution boxes based on permutation of symmetric group
JP2006340347A (ja) データに署名するための楕円曲線デジタル署名暗号プロセスを実行する認証システム
JP2002543478A (ja) 公開鍵を署名する方法とシステム
Sarkar et al. Role of cryptography in network security
US6480606B1 (en) Elliptic curve encryption method and system
JP2014002230A (ja) 認証暗号化装置、認証復号装置、およびプログラム
Marton et al. Randomness in digital cryptography: A survey
US11418334B2 (en) Protecting modular inversion operation from external monitoring attacks
Braeken et al. SFINKS: A synchronous stream cipher for restricted hardware environments
JP4690819B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
Gorbenko et al. Methods of building general parameters and keys for NTRU Prime Ukraine of 5 th–7 th levels of stability. Product form
US11288985B2 (en) Encryption device, decryption device, encryption method, decryption method, encryption program product, and decryption program product
Anand et al. Real-time symmetric cryptography using quaternion julia set
JP2018092010A (ja) 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム
Zhang et al. An Improved Public Key Cryptographic Algorithm Based on Chebyshev Polynomials and RSA
AU2021106274A4 (en) A protocol for assuring data integrity in cloud setting by using a fully homomorphic batch encryption scheme with integer and shorter public key (hbeis)
Siddavaatam et al. An adaptive security framework with extensible computational complexity for cipher systems
Dubinsky Cryptography for Payment Professionals
Gobi et al. A new digital envelope approach for secure electronic medical records
Sarkar et al. Developments in Post‐Quantum Cryptography

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080811

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20081218

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120703