(57)【要約】【課題】楕円曲線に代わり得る整数論的関数において定義される有限可換群を用いて楕円曲線暗号と同等の解読困難性を実現可能にする。【解決手段】鍵生成装置１は、鍵設定部１１および鍵生成部１３を有する。鍵設定部１１は、秘密鍵αを設定し、有限可換群の元を公開鍵Ｇとして選択する。鍵生成部１３は、公開鍵Ｇに対して前記有限可換群で定義される加法演算を施すことにより公開鍵Ｇを秘密鍵αでスカラー倍して公開鍵Ｙを生成する。前記有限可換群は、有限環上で定義された二次双曲線関数の従属変数ｙと当該二次双曲線関数の独立変数ｘとの組（ｘ，ｙ）からなる集合である。【選択図】図１
2008203548.tif 000002
【特許請求の範囲】
【請求項１】
暗号処理用の鍵を生成する鍵生成方法であって、
（ａ）スカラー係数である秘密鍵を設定するとともに、有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元を第１の公開鍵として選択するステップと、
（ｂ）前記第１の公開鍵に対して前記有限可換群において定義される加法演算を少なくとも１回施すことにより前記第１の公開鍵を前記秘密鍵でスカラー倍して第２の公開鍵を生成するステップと、
を有し、
前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、
前記ステップ（ｂ）の加法演算において、前記有限可換群の第１および第２の元を加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とする鍵生成方法。
【請求項２】
平文データを暗号化する鍵生成方法であって、
（ａ）有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元である第１および第２の公開鍵をメモリから読み出すステップと、
（ｂ）当該読み出された第１および第２の公開鍵を用いて、前記平文データに対して前記有限可換群において定義される加法演算を施すことにより前記平文データを暗号化するステップと、
を有し、
前記第２の公開鍵は、前記第１の公開鍵に対して前記加法演算を少なくとも１回施すことにより前記第１の公開鍵を秘密鍵でスカラー倍して得られる鍵であり、
前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、
前記ステップ（ｂ）の加法演算において、前記有限可換群の第１および第２の元を加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とする鍵生成方法。
【請求項３】
請求項２記載の鍵生成方法であって、
前記ステップ（ｂ）は、
正整数のスカラー係数を設定するステップと、
前記第１の公開鍵に対して前記加法演算を施すことにより前記第１の公開鍵を前記スカラー係数でスカラー倍して第１の作業鍵を生成するステップと、
前記第２の公開鍵に対して前記加法演算を施すことにより前記第２の公開鍵を前記スカラー係数でスカラー倍して第２の作業鍵を生成するステップと、
前記第１および第２の作業鍵を用いて前記平文データに対して前記加法演算を施すことにより前記平文データを暗号化するステップと、
を含むことを特徴とする鍵生成方法。
【請求項４】
平文データからデジタル署名を生成する鍵生成方法であって、
（ａ）有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元である公開鍵とスカラー係数である秘密鍵とをメモリから読み出すステップと、
（ｂ）前記平文データに基づいてダイジェストデータを生成するステップと、
（ｃ）前記ステップ（ａ）で読み出された公開鍵と秘密鍵とを用いて、前記ダイジェストデータに対して前記有限可換群において定義される加法演算を少なくとも１回施すことにより前記ダイジェストデータを暗号化してデジタル署名データを生成するステップと、
を有し、
前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、
前記ステップ（ｃ）の加法演算において、前記有限可換群の第１および第２の元を加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とする鍵生成方法。
【請求項５】
請求項４記載の鍵生成方法であって、
前記ステップ（ｃ）は、
正整数のスカラー係数を設定するステップと、
前記公開鍵に対して前記加法演算を施すことにより前記公開鍵を前記スカラー係数でスカラー倍して作業鍵を生成するステップと、
前記作業鍵、前記公開鍵および前記秘密鍵を用いて前記ダイジェストデータに対して前記加法演算を施すことにより前記ダイジェストデータを暗号化するステップと、
を含むことを特徴とする鍵生成方法。
【請求項６】
請求項１から５のうちのいずれか１項に記載の鍵生成方法であって、前記所定の固定元は、前記加法演算に関する単位元であることを特徴とする鍵生成方法。
【請求項７】
請求項１から６のうちのいずれか１項に記載の鍵生成方法であって、前記有限可換群の元は、前記整数論的関数の２次多項式が前記有限環の位数ｐを法として平方非剰余であるとの条件を満たすことを特徴とする鍵生成方法。
【請求項８】
請求項７記載の鍵生成方法であって、前記有限可換群の位数は、奇素数であることを特徴とする鍵生成方法。
【請求項９】
請求項７記載の鍵生成方法であって、前記有限可換群の位数は、奇素数を因子を含む合成数であることを特徴とする鍵生成方法。
【請求項１０】
請求項１から９のうちのいずれか１項に記載の鍵生成方法であって、前記有限環は、奇素数ｐを法とする整数の剰余類全体のなす剰余環Ｚ／ｐＺであることを特徴とする鍵生成方法。
【請求項１１】
請求項１から１０のうちのいずれか１項に記載の鍵生成方法であって、前記二次双曲線関数は、前記有限環の元である整数ａ，ｂ，ｃに対して、
【数１】
2008203548.tif 000047
の式で与えられることを特徴とする鍵生成方法。
【請求項１２】
請求項１から１０のうちのいずれか１項に記載の鍵生成方法であって、前記二次双曲線関数は、前記有限環の元である整数ａ，ｂ，ｃ，ｄ，ｅに対して、
【数２】
2008203548.tif 000048
の式で与えられることを特徴とする鍵生成方法。
【請求項１３】
暗号処理用の鍵を生成する鍵生成装置であって、
スカラー係数である秘密鍵を設定するとともに、有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元を第１の公開鍵として選択する鍵設定部と、
前記第１の公開鍵に対して前記有限可換群において定義される加法演算を少なくとも１回施すことにより前記第１の公開鍵を前記秘密鍵でスカラー倍して第２の公開鍵を生成する鍵生成部と、
を有し、
前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、
前記鍵生成部は、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とする鍵生成装置。
【請求項１４】
平文データを暗号化する鍵生成装置であって、
有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元である第１および第２の公開鍵を記憶するメモリと、
前記第１および第２の公開鍵を用いて、前記平文データに対して前記有限可換群において定義される加法演算を施すことにより前記平文データを暗号化する暗号処理部と、
を有し、
前記第２の公開鍵は、前記第１の公開鍵に対して前記加法演算を少なくとも１回施すことにより前記第１の公開鍵を秘密鍵でスカラー倍して得られる鍵であり、
前記暗号処理部は、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とする鍵生成装置。
【請求項１５】
平文データからデジタル署名を生成する鍵生成装置であって、
有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元である公開鍵とスカラー係数である秘密鍵とを記憶するメモリと、
前記平文データに基づいてダイジェストデータを生成するダイジェスト生成部と、
前記公開鍵と前記秘密鍵とを用いて、前記ダイジェストデータに対して前記有限可換群において定義される加法演算を少なくとも１回施すことにより前記ダイジェストデータを暗号化してデジタル署名データを生成する暗号処理部と、
を有し、
前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、
前記暗号処理部は、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とする鍵生成装置。
【請求項１６】
暗号文データを復号する復号方法であって、
（ａ）有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元を用いて暗号化された暗号文データを受信するステップと、
（ｂ）秘密鍵をメモリから読み出すステップと、
（ｃ）当該読み出された秘密鍵を用いて、前記暗号文データに対して前記有限可換群において定義される加法演算を少なくとも１回施すことにより前記暗号文データを平文データに変換するステップと、
を有し、
前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、
前記ステップ（ｃ）において、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とする復号方法。
【請求項１７】
暗号文データを復号する復号装置であって、
秘密鍵を記憶するメモリと、
有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元を用いて暗号化された暗号文データを受信し、前記秘密鍵を用いて、当該受信された暗号文データに対して前記有限可換群において定義される加法演算を少なくとも１回施すことにより前記暗号文データを平文データに変換する復号部と、
を有し、
前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、
前記復号部は、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とする復号装置。
【請求項１８】
外部から供給された平文データを用いてデジタル署名データの正当性を検証する署名検証方法であって、
（ａ）有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元である公開鍵をメモリから読み出すステップと、
（ｂ）当該読み出された公開鍵を用いて、前記デジタル署名データに対し前記有限可換群において定義される加法演算を少なくとも１回施して被検証データを生成するステップと、
（ｃ）前記平文データに基づいてダイジェストデータを生成するステップと、
（ｄ）前記ダイジェストデータが前記被検証データと整合するか否かを判定するステップと、
を有し、
前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、
前記ステップ（ｂ）においては、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とする署名検証方法。
【請求項１９】
外部から供給された平文データを用いてデジタル署名データの正当性を検証する署名検証装置であって、
有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元である公開鍵を記憶するメモリと、
前記平文データに基づいてダイジェストデータを生成するダイジェスト生成部と、
前記公開鍵を用いて、前記デジタル署名データに対し前記有限可換群において定義される加法演算を少なくとも１回施して被検証データを生成し、前記ダイジェストデータが前記被検証データと整合するか否かを判定する署名検証部と、
を有し、
前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、
前記署名検証部は、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とする署名検証装置。
【請求項２０】
疑似乱数系列からなる鍵ストリームを生成する鍵ストリーム生成装置であって、
有限環上で定義された整数論的関数の形を規定する曲線パラメータを設定するとともに、前記整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元の１つであるベースポイントを設定する群制御部と、
スカラー係数である秘密鍵を設定する鍵設定部と、
前記鍵設定部で設定された秘密鍵を用いて、前記群制御部で設定されたベースポイントに対して前記有限可換群において定義される加法演算を少なくとも１回施すことにより当該設定されたベースポイントを当該設定された秘密鍵でスカラー倍して作業鍵を生成する作業鍵生成部と、
前記作業鍵に基づいて疑似乱数系列からなる鍵ストリームを生成するストリーム生成部と、
前記曲線パラメータ、前記ベースポイントおよび前記秘密鍵のうちの少なくとも１つを指定時刻毎に新たに生成する群パラメータ生成部と、
を有し、
前記群制御部は、現在設定中のベースポイントを前記群パラメータ生成部により新たに生成されたベースポイントで置換し、且つ現在設定中の曲線パラメータを前記群パラメータ生成部により新たに生成された曲線パラメータで置換するものであり、前記鍵設定部は、現在設定中の秘密鍵を前記群パラメータ生成部により新たに生成された秘密鍵で置換することを特徴とする鍵ストリーム生成装置。
【請求項２１】
請求項２０記載の鍵ストリーム生成装置であって、前記鍵ストリームを用いて入力データ系列を攪拌して出力データ系列を生成するデータ攪拌部をさらに有することを特徴とする鍵ストリーム生成装置。
【請求項２２】
請求項２０または２１記載の鍵ストリーム生成装置であって、前記ストリーム生成部は、前記作業鍵に加えて、前記曲線パラメータ、前記ベースポイントおよび前記秘密鍵のうちの少なくとも１つに基づいて前記鍵ストリームを生成することを特徴とする鍵ストリーム生成装置。
【請求項２３】
請求項２０から２２のうちのいずれか１項に記載の鍵ストリーム生成装置であって、前記群パラメータ生成部は、前記作業鍵および前記鍵ストリームのうちの少なくとも一方に基づいて前記ベースポイントを新たに生成するポイント生成部を含むことを特徴とする鍵ストリーム生成装置。
【請求項２４】
請求項２３記載の鍵ストリーム生成装置であって、
前記ポイント生成部は、
前記有限可換群の複数個の元を記憶している置換テーブルメモリと、
前記作業鍵および前記鍵ストリームのうちの少なくとも一方に基づいて前記置換テーブルメモリの記憶領域を指定するアドレス制御部と、
当該指定された記憶領域から読み出された元を当該新たに生成されたベースポイントとして出力する読み出し制御部と、
を含むことを特徴とする鍵ストリーム生成装置。
【請求項２５】
請求項２４記載の鍵ストリーム生成装置であって、
前記置換テーブルメモリは、複数個のスカラー値を記憶しており、
前記アドレス制御部は、前記作業鍵および前記鍵ストリームのうちの少なくとも一方に基づいて前記置換テーブルメモリの記憶領域を指定し、
前記読み出し制御部は、当該指定された記憶領域から読み出されたスカラー値を当該新たに生成された曲線パラメータとして出力することを特徴とする鍵ストリーム生成装置。
【請求項２６】
請求項２４または２５記載の鍵ストリーム生成装置であって、
前記作業鍵および前記鍵ストリームのうちの少なくとも一方に基づいて前記有限可換群の元を生成し、前記置換テーブルメモリの記憶内容を当該生成された元で更新するデータ更新部をさらに備えることを特徴とする鍵ストリーム生成装置。
【請求項２７】
請求項２４または２５記載の鍵ストリーム生成装置であって、前記置換テーブルメモリの記憶内容を、前記作業鍵の計算過程に発生したデータで更新するデータ更新部をさらに備えることを特徴とする鍵ストリーム生成装置。
【請求項２８】
請求項２６または２７記載の鍵ストリーム生成装置であって、前記データ更新部は、前記置換テーブルメモリに記憶されているデータのうち最近読み出されたデータを優先的に置換することによって前記置換テーブルメモリの記憶内容を更新することを特徴とする鍵ストリーム生成装置。
【請求項２９】
請求項２３から２８のうちのいずれか１項に記載の鍵ストリーム生成装置であって、
前記群パラメータ生成部は、前記ポイント生成部で新たに生成されたベースポイントが前記有限可換群の前記加法演算についての単位元に一致するか否かを検査して当該検査結果を前記群制御部に与えるポイント検査部をさらに含み、
前記群制御部は、当該新たに生成されたベースポイントが前記単位元であるときは、現在設定中のベースポイントを置換しないことを特徴とする鍵ストリーム生成装置。
【請求項３０】
請求項２０から２９のうちのいずれか１項に記載の鍵ストリーム生成装置であって、前記群パラメータ生成部は、前記作業鍵および前記鍵ストリームのうちの少なくとも一方に基づいて前記秘密鍵を新たに生成する秘密鍵生成部を含むことを特徴とする鍵ストリーム生成装置。
【請求項３１】
請求項３０記載の鍵ストリーム生成装置であって、前記群パラメータ生成部は、前記秘密鍵生成部で新たに生成された秘密鍵の有効ビット長が閾値未満であるときは、前記秘密鍵のビットの全部または一部を所定ビットで置換して前記有効ビット長を増大させる鍵検査部をさらに含むことを特徴とする鍵ストリーム生成装置。
【請求項３２】
請求項２０から３１のうちのいずれか１項に記載の鍵ストリーム生成装置であって、
前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、
前記作業鍵生成部は、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とする鍵ストリーム生成装置。
【請求項３３】
疑似乱数系列からなる鍵ストリームを生成する鍵ストリーム生成方法であって、
（ａ）有限環上で定義された整数論的関数の形を規定する曲線パラメータを設定するとともに、前記整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元の１つであるベースポイントを設定するステップと、
（ｂ）スカラー係数である秘密鍵を設定するステップと、
（ｃ）前記ステップ（ｂ）で設定された秘密鍵を用いて、前記ステップ（ａ）で設定されたベースポイントに対して前記有限可換群において定義される加法演算を少なくとも１回施すことにより当該設定されたベースポイントを当該設定された秘密鍵でスカラー倍して作業鍵を生成するステップと、
（ｄ）前記作業鍵に基づいて疑似乱数系列からなる鍵ストリームを生成するステップと、
（ｅ）前記曲線パラメータ、前記ベースポイントおよび前記秘密鍵のうちの少なくとも１つを指定時刻毎に新たに生成するステップと、
（ｆ）前記ステップ（ｅ）でベースポイントが新たに生成されたときに現在設定中のベースポイントを当該新たに生成されたベースポイントで置換するステップと、
（ｇ）前記ステップ（ｅ）で曲線パラメータが新たに生成されたときに現在設定中の曲線パラメータを当該新たに生成された曲線パラメータで置換するステップと、
（ｈ）前記ステップ（ｅ）で秘密鍵が新たに生成されたときに現在設定中の秘密鍵を当該新たに生成された秘密鍵で置換するステップと、
を有することを特徴とする鍵ストリーム生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、整数論的関数の従属変数と独立変数との組からなる点集合のなす群を用いた離散対数型の暗号技術に関する。
【背景技術】
【０００２】
インターネットなどのデジタル通信網上での電子商取引や電子申請のセキュリティを確保するために暗号技術は必須の技術であり、この種の暗号技術として、公開鍵と秘密鍵という２組の鍵を用いる公開鍵暗号方式（public key cryptosystem）が広く普及している。代表的な公開鍵暗号方式の一つは、互いに異なる２個の奇素数ｐ，ｑの積Ｎ（＝ｐｑ）を公開鍵として使用するＲＳＡ暗号である。ＲＳＡ暗号の安全性は、奇素数ｐ，ｑが適切に選択されれば合成数Ｎ（＝ｐｑ）の素因数分解が極めて困難であるという仮定に依っている。現在、もっとも高速な素因数分解のアルゴリズムとして一般数体ふるい法（ＧＮＦＳ: General Number Field Sieve）が知られており、この一般数体ふるい法を使用すれば、ＲＳＡ暗号の秘密鍵を準指数オーダーの計算時間で見つけ出すことができる。近年のコンピュータの演算速度の向上により暗号解読時間の短縮化が進んでいるため、ＲＳＡ暗号の安全性を確保するには１０２４ビットあるいは２０４８ビットといった大きな鍵長を使用する必要が生じている。
【０００３】
次世代の公開鍵暗号方式としては、離散対数問題（ＤＬＰ：Discrete Logarithm Problem）を安全性の根拠とする楕円曲線暗号が研究されている。楕円曲線暗号の秘密鍵を見つけ出すには指数オーダーの計算時間が必要であるため、楕円曲線暗号の解読困難性はＲＳＡ暗号のそれよりも高いと考えられている。有限環上で定義された代数曲線上の有理点の集合は、適当な演算により群を構成し得る。この演算記号を「＋」で表すとき、かかる群の元である代数曲線上の２点Ｋ，Ｓについて、Ｓ＝αＫ＝Ｋ＋…＋Ｋ（α個のＫの加算）、を満たすただ一つの整数α（ここで、α∈［０，ｎ−１］；ｎは代数曲線群の位数）を求めよとする問題が離散対数問題である。楕円曲線上の離散対数問題（ＥＣＤＬＰ: Elliptic Curve Discrete Logarithm Problem）に対して整数αを求めることは、特殊な場合を除いて計算量が膨大になるため極めて困難である。１０２４ビットの鍵長を使用するＲＳＡ暗号の安全性は、１６３ビット程度の短い鍵長を使用する楕円曲線暗号により達成できると考えられている。楕円曲線暗号に関する従来技術は、たとえば、特許文献１（特開２００５−２８３６７４号公報）、特許文献２（特開２０００−２２４１５７号公報）および非特許文献１（「数論アルゴリズムと楕円暗号理論入門」，Ｎ．コブリッツ著）に開示されている。
【０００４】
前述の離散対数問題を解くことが計算量上困難であれば楕円曲線暗号は安全である。一般に、安全な楕円曲線暗号を構成するためには、楕円曲線のパラメータを適切に選択することと、楕円曲線のなす群の位数が大きな素因数を含むことが必要であるが、素数位数を与える曲線パラメータの確定と位数の計算とに非常に時間を要するという問題がある。位数の高速計算を妨げる原因の一つは、位数が楕円曲線のパラメータの変化に応じて変動し得る点にある。曲線パラメータの決定方法としては、Ｓｃｈｏｏｆ法や虚数乗法法（ＣＭ法：Complex Multiplication method）が知られている。Ｓｃｈｏｏｆ法は、曲線パラメータをランダムに選択して楕円曲線のなす群を構成し、その群の位数を計算し、楕円曲線暗号の安全性を確認するという作業を行う。しかしながら、Ｓｃｈｏｏｆ法には位数の計算に非常に時間がかかるという問題がある。一方、虚数乗法法は、群の位数を特殊な形に制限することにより曲線パラメータを比較的短時間で計算し得る方法であるが、位数の特殊な型に基づいた攻撃法が発見され易いという問題がある。
【０００５】
また、一般に、ＲＳＡ暗号や楕円曲線暗号などのブロック暗号の演算量は多いため暗号処理に長時間を要する。それゆえ、高速伝送すべき平文データをリアルタイムに暗号化することが難しいという問題がある。高いリアルタイム性を持つ暗号方式としてはストリーム暗号が知られており、ストリーム暗号は、平文データ系列と疑似乱数系列とにビット毎またはバイト毎に排他的論理和演算を施して暗号文データ系列を得る共通鍵暗号技術の一方式である。ストリーム暗号は、小規模構成の実装を可能にするため、携帯電話機などの小型通信機器や、無線ＬＡＮなどの近距離無線通信技術において広く採用されている。
【０００６】
ストリーム暗号に関する従来技術としては、１９９８年に提案された「ＰＡＮＡＭＡ」が知られている（非特許文献２： 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.）。「ＰＡＮＡＭＡ」は、ストリーム暗号用の疑似乱数系列からなる鍵ストリームを生成し得る暗号モジュールである。鍵ストリーム生成のアルゴリズムには、「ＳＮＯＷ２．０」（Patrik Ekdahl and Thomas Johansson, Lund University）やＰＡＮＡＭＡ型の「ＭＵＧＩ」（日立製作所）が知られており、「ＳＮＯＷ２．０」と「ＭＵＧＩ」は国際標準暗号規格（ＩＳＯ／ＩＥＣ  １８０３３−４）に規定されている。また「ＭＵＧＩ」の詳細については、たとえば、特許文献３（特開２００３−３７４８２号公報）、特許文献４（米国特許出願公開第２００２／０９７８６８号公報）および特許文献５（米国特許出願公開第２００２／１１８８３０号公報）に開示されている。しかしながら、このようなストリーム暗号の解読困難性は、素因数分解の困難性や離散対数問題を安全性の根拠とするブロック暗号のそれと比べると低いという問題がある。
【０００７】
上記公開鍵暗号方式は、暗号文データの解読が計算量上困難であることを安全性の根拠とする技術であるが、この安全性の根拠は、将来のコンピュータの演算速度の飛躍的向上により崩れてしまう可能性がある。そこで、量子力学におけるハイゼンベルグの不確定性原理により安全性の保証された量子通信暗号が近年研究されている。この種の量子通信暗号は、たとえば、特許文献６（特開２００４−１１２２７８号公報）や特許文献７（米国特許出願公開第２００６／０５９４０３号公報）に開示されている。量子通信暗号の暗号鍵配送プロトコルでは、バーナム暗号（Vernam cipher）と称するワンタイムパッド暗号（One-pad cipher）が使用されている。このバーナム暗号は、平文のビットストリームと真性乱数ビット列とにビット毎に排他的論理和演算を施して暗号ビットストリームを生成する技術であり、秘密鍵（すなわち、暗号鍵）の長さは平文の長さと等しい。バーナム暗号は、平文と同じ長さを持つ秘密鍵を一度で使い捨てるので、送信側と受信側とが秘密鍵を安全に共有している限り、絶対安全性を保証する技術であるが、送信側と受信側とで共有される秘密鍵を常に供給しなければならないという煩雑さがある。また、量子通信暗号は、通信経路上の盗聴行為を検知することが可能な技術であるが、十分な安全性の根拠を持つ量子鍵を「使い捨ての秘密鍵」として簡易に供給する方法は存在していない。
【特許文献１】特開２００５−２８３６７４号公報
【特許文献２】特開２０００−２２４１５７号公報
【特許文献３】特開２００３−３７４８２号公報
【特許文献４】米国特許出願公開第２００２／０９７８６８号公報（特許文献３に係る特許出願の対応米国特許出願に係る公開公報）
【特許文献５】米国特許出願公開第２００２／１１８８３０号公報（特許文献３に係る特許出願の対応米国特許出願に係る公開公報）
【特許文献６】特開２００４−１１２２７８号公報
【特許文献７】米国特許出願公開第２００６／０５９４０３号公報（特許文献６に係る特許出願の対応米国特許出願に係る公開公報）
【非特許文献１】「数論アルゴリズムと楕円暗号理論入門」，Ｎ．コブリッツ著，櫻井幸一訳，シュプリンガーフェアラーク東京（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.
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記に鑑みて本発明の主な目的は、楕円曲線に代わり得る整数論的関数において定義される有限可換群を用い、楕円曲線暗号と同等の解読困難性を実現可能にする鍵生成方法、鍵生成装置、復号方法、復号装置、署名検証方法および署名検証装置を提供すること、特に、群の位数を極めて高速に計算し得、安全な整数論的関数に基づいた暗号システムを短時間で得ることを可能にする鍵生成方法、鍵生成装置、復号方法、復号装置、署名検証方法および署名検証装置を提供することである。
【０００９】
本発明の他の目的は、高い解読困難性を実現し得る鍵ストリーム生成方法および鍵ストリーム生成装置を提供すること、特に、高い解読困難性と高いリアルタイム性とを併せて実現可能にする鍵ストリーム生成方法および鍵ストリーム生成装置を提供することである。
【課題を解決するための手段】
【００１０】
前記目的を達成すべく、本発明の第１の態様による鍵生成方法は、暗号処理用の鍵を生成する鍵生成方法であって、（ａ）スカラー係数である秘密鍵を設定するとともに、有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元を第１の公開鍵として選択するステップと、（ｂ）前記第１の公開鍵に対して前記有限可換群において定義される加法演算を施すことにより前記第１の公開鍵を前記秘密鍵でスカラー倍して第２の公開鍵を生成するステップと、を有し、前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、前記ステップ（ｂ）においては、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とするものである。
【００１１】
本発明の第２の態様による鍵生成方法は、平文データを暗号化する鍵生成方法であって、（ａ）有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元である第１および第２の公開鍵をメモリから読み出すステップと、（ｂ）当該読み出された第１および第２の公開鍵を用いて、前記平文データに対して前記有限可換群において定義される加法演算を施すことにより前記平文データを暗号化するステップと、を有し、前記第２の公開鍵は、前記第１の公開鍵に対して前記加法演算を施すことにより前記第１の公開鍵を秘密鍵でスカラー倍して得られる鍵であり、前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、前記ステップ（ｂ）においては、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とするものである。
【００１２】
本発明の第３の態様による鍵生成方法は、平文データからデジタル署名を生成する鍵生成方法であって、（ａ）有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元である公開鍵とスカラー係数である秘密鍵とをメモリから読み出すステップと、（ｂ）前記平文データに基づいてダイジェストデータを生成するステップと、（ｃ）前記ステップ（ａ）で読み出された公開鍵と秘密鍵とを用いて、前記ダイジェストデータに対して前記有限可換群において定義される加法演算を施すことにより前記ダイジェストデータを暗号化してデジタル署名データを生成するステップと、を有し、前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、前記ステップ（ｃ）においては、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とするものである。
【００１３】
本発明の第４の態様による鍵生成装置は、暗号処理用の鍵を生成する鍵生成装置であって、スカラー係数である秘密鍵を設定するとともに、有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元を第１の公開鍵として選択する鍵設定部と、前記第１の公開鍵に対して前記有限可換群において定義される加法演算を施すことにより前記第１の公開鍵を前記秘密鍵でスカラー倍して第２の公開鍵を生成する鍵生成部と、を有し、前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、前記鍵生成部は、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とするものである。
【００１４】
本発明の第５の態様による鍵生成装置は、平文データを暗号化する鍵生成装置であって、有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元である第１および第２の公開鍵を記憶するメモリと、前記第１および第２の公開鍵を用いて、前記平文データに対して前記有限可換群において定義される加法演算を施すことにより前記平文データを暗号化する暗号処理部と、を有し、前記第２の公開鍵は、前記第１の公開鍵に対して前記加法演算を施すことにより前記第１の公開鍵を秘密鍵でスカラー倍して得られる鍵であり、前記暗号処理部は、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とするものである。
【００１５】
本発明の第６の態様による鍵生成装置は、平文データからデジタル署名を生成する鍵生成装置であって、有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元である公開鍵とスカラー係数である秘密鍵とを記憶するメモリと、前記平文データに基づいてダイジェストデータを生成するダイジェスト生成部と、前記公開鍵と前記秘密鍵とを用いて、前記ダイジェストデータに対して前記有限可換群において定義される加法演算を施すことにより前記ダイジェストデータを暗号化してデジタル署名データを生成する暗号処理部と、を有し、前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、前記暗号処理部は、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とするものである。
【００１６】
本発明の第７の態様による復号方法は、暗号文データを復号する復号方法であって、（ａ）有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元を用いて暗号化された暗号文データを受信するステップと、（ｂ）秘密鍵をメモリから読み出すステップと、（ｃ）当該読み出された秘密鍵を用いて、前記暗号文データに対して前記有限可換群において定義される加法演算を施すことにより前記暗号文データを平文データに変換するステップと、を有し、前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、前記ステップ（ｃ）においては、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とするものである。
【００１７】
本発明の第８の態様による復号装置は、暗号文データを復号する復号装置であって、秘密鍵を記憶するメモリと、有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元を用いて暗号化された暗号文データを受信し、前記秘密鍵を用いて、当該受信された暗号文データに対して前記有限可換群において定義される加法演算を施すことにより前記暗号文データを平文データに変換する復号部と、を有し、前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、前記復号部は、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とするものである。
【００１８】
本発明の第９の態様による署名検証方法は、外部から供給された平文データを用いてデジタル署名データの正当性を検証する署名検証方法であって、（ａ）有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元である公開鍵をメモリから読み出すステップと、（ｂ）当該読み出された公開鍵を用いて、前記デジタル署名データに対し前記有限可換群において定義される加法演算を施して被検証データを生成するステップと、（ｃ）前記平文データに基づいてダイジェストデータを生成するステップと、（ｄ）前記ダイジェストデータが前記被検証データと整合するか否かを判定するステップと、を有し、前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、前記ステップ（ｂ）においては、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とするものである。
【００１９】
本発明の第１０の態様による署名検証装置は、外部から供給された平文データを用いてデジタル署名データの正当性を検証する署名検証装置であって、有限環上で定義された整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元である公開鍵を記憶するメモリと、前記平文データに基づいてダイジェストデータを生成するダイジェスト生成部と、前記公開鍵を用いて、前記デジタル署名データに対し前記有限可換群において定義される加法演算を施して被検証データを生成し、前記ダイジェストデータが前記被検証データと整合するか否かを判定する署名検証部と、を有し、前記整数論的関数は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数であり、前記署名検証部は、前記有限可換群の第１および第２の元を前記加法演算により加算する際には、前記第１および第２の元を解として有する１次関数と前記二次双曲線関数との共通解のうち前記第１および第２の元を除く第３の元が定まるとき、前記第３の元と前記有限可換群の所定の固定元とを解として有する１次関数と前記二次双曲線関数との共通解のうち前記第３の元と前記所定の固定元とを除く第４の元を当該加算結果として算出することを特徴とするものである。
【００２０】
本発明の第１１の態様による鍵ストリーム生成装置は、疑似乱数系列からなる鍵ストリームを生成する鍵ストリーム生成装置であって、有限環上で定義された整数論的関数の形を規定する曲線パラメータを設定するとともに、前記整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元の１つであるベースポイントを設定する群制御部と、スカラー係数である秘密鍵を設定する鍵設定部と、前記鍵設定部で設定された秘密鍵を用いて、前記群制御部で設定されたベースポイントに対して前記有限可換群において定義される加法演算を施すことにより当該設定されたベースポイントを当該設定された秘密鍵でスカラー倍して作業鍵を生成する作業鍵生成部と、前記作業鍵に基づいて疑似乱数系列からなる鍵ストリームを生成するストリーム生成部と、前記曲線パラメータ、前記ベースポイントおよび前記秘密鍵のうちの少なくとも１つを指定時刻毎に新たに生成する群パラメータ生成部と、を有し、前記群制御部は、現在設定中のベースポイントを前記群パラメータ生成部により新たに生成されたベースポイントで置換し、且つ現在設定中の曲線パラメータを前記群パラメータ生成部により新たに生成された曲線パラメータで置換するものであり、前記鍵設定部は、現在設定中の秘密鍵を前記群パラメータ生成部により新たに生成された秘密鍵で置換することを特徴とするものである。
【００２１】
そして、本発明の第１２の態様による鍵ストリーム生成方法は、疑似乱数系列からなる鍵ストリームを生成する鍵ストリーム生成方法であって、（ａ）有限環上で定義された整数論的関数の形を規定する曲線パラメータを設定するとともに、前記整数論的関数の従属変数ｙと当該整数論的関数の独立変数ｘとの組（ｘ，ｙ）からなる集合のなす有限可換群の元の１つであるベースポイントを設定するステップと、（ｂ）スカラー係数である秘密鍵を設定するステップと、（ｃ）前記ステップ（ｂ）で設定された秘密鍵を用いて、前記ステップ（ａ）で設定されたベースポイントに対して前記有限可換群において定義される加法演算を施すことにより当該設定されたベースポイントを当該設定された秘密鍵でスカラー倍して作業鍵を生成するステップと、（ｄ）前記作業鍵に基づいて疑似乱数系列からなる鍵ストリームを生成するステップと、（ｅ）前記曲線パラメータ、前記ベースポイントおよび前記秘密鍵のうちの少なくとも１つを指定時刻毎に新たに生成するステップと、（ｆ）前記ステップ（ｅ）でベースポイントが新たに生成されたときに現在設定中のベースポイントを当該新たに生成されたベースポイントで置換するステップと、（ｇ）前記ステップ（ｅ）で曲線パラメータが新たに生成されたときに現在設定中の曲線パラメータを当該新たに生成された曲線パラメータで置換するステップと、（ｈ）前記ステップ（ｅ）で秘密鍵が新たに生成されたときに現在設定中の秘密鍵を当該新たに生成された秘密鍵で置換するステップと、を有することを特徴とするものである。
【発明の効果】
【００２２】
本発明に係る鍵生成方法、鍵生成装置、復号方法、復号装置、署名検証方法および署名検証装置は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数に基づいて構成される有限可換群の元を用いて、暗号処理用の鍵生成、暗号化、デジタル署名生成、復号および署名検証を実行する。これにより、楕円曲線暗号と同等の解読困難性を実現することが可能である。
【００２３】
また、本発明に係る鍵生成方法、鍵生成装置、復号方法、復号装置、署名検証方法および署名検証装置では、二次双曲線関数のパラメータを変更しても、有限可換群すなわち二次双曲線群の位数を短時間で計算して安全性を確認できるので、安全な二次双曲線群を素早く構成することができる。したがって、攻撃に対する耐性の高いシステムを実現することが可能である。
【００２４】
本発明に係る鍵ストリーム生成装置および鍵ストリーム生成方法は、前記有限環上で定義された２次多項式の分母と前記有限環上で定義された１次多項式の分子とからなる二次双曲線関数に基づいて構成される有限可換群の元を用いて、疑似乱数系列からなる鍵ストリームを生成するものである。ここで、本発明に係る鍵ストリーム生成装置および鍵ストリーム生成方法は、二次双曲線関数の形を規定するパラメータ（曲線パラメータあるいは曲線係数）、ベースポイントおよび秘密鍵のうちの少なくとも１つを指定時刻毎に新たに生成し、現在設定中のベースポイントを当該新たに生成されたベースポイントで置換し、現在設定中の曲線パラメータを当該新たに生成された曲線パラメータで置換し、現在設定中の秘密鍵を当該新たに生成された秘密鍵で置換することにより群構造をリアルタイムで変動させて鍵ストリームを生成する。したがって、解読困難性の高いストリーム暗号を実現することが可能である。
【００２５】
また、二次双曲線関数のパラメータを変更しても、有限可換群すなわち二次双曲線群の位数を短時間で計算して安全性を確認できるので、有限環の位数が一定のもとでベースポイントや二次双曲線関数のパラメータを変化させても安全な群構造をリアルタイムに得ることが可能である。それゆえ、二次双曲線群の元全体を効率良く使用して暗号処理を実行することができる。比較的短い鍵長を用いても解読困難性の高いストリーム暗号を実現でき、比較的簡易な構成のストリーム暗号システムを提供することも可能である。
【発明を実施するための最良の形態】
【００２６】
以下、本発明に係る種々の実施例について説明する。
【００２７】
＜第１実施例＞
図１は、本発明の第１実施例に係る鍵生成装置１の概略構成を示す機能ブロック図である。鍵生成装置１は、乱数発生器１０、鍵設定部１１、曲線パラメータ設定部１２および鍵生成部１３を有している。機能ブロック１０〜１３の全部または一部は、ハードウェアの回路構成で実現されてもよいし、あるいは、不揮発性メモリや光ディスクなどの記録媒体に記録されたプログラムまたはプログラムコードで実現されてもよい。そのようなプログラムまたはプログラムコードは、ＣＰＵなどのプロセッサに上記機能ブロック１０〜１３の全部または一部の処理を実行させるものである。
【００２８】
鍵生成装置１は、有限環Ｒｐ上で定義された整数論的関数の従属変数ｙ＝ｆ（ｘ）と独立変数である整数ｘとの組（ｘ，ｙ）からなる点集合のなす有限可換群Ｈｃ（Ｒｐ）の元を用いて、暗号処理用の鍵を生成する機能を有する。整数論的関数ｙ＝ｆ（ｘ）は、有限環Ｒｐ上で定義された２次多項式の分母と有限環Ｒｐ上で定義された１次多項式の分子とからなる。この整数論的関数ｙは、次式（１ａ）の二次双曲線関数Ｈｃ（以下、単に「二次双曲線Ｈｃ」と呼ぶ。）により表現することができる。
【００２９】
【数１】
2008203548.tif 000003
【００３０】
ただし、ｘ２＋ｃｘ−ａ≠０。ここで、ｘ，ｙは有限環Ｒｐの元であり（すなわち、Ｒｐ×Ｒｐ∋（ｘ，ｙ））、曲線パラメータａ，ｂ，ｃも有限環Ｒｐの元である（すなわち、Ｒｐ∋ａ，ｂ，ｃ）。以下、有限環Ｒｐの元ｒに対して乗法についての逆元が存在する場合、その逆元をｒ−１または１／ｒと表す。よって、「１」を有限環Ｒｐの単位元とするとき、ｒ・ｒ−１＝ｒ・（１／ｒ）＝１、である。上式（１ａ）の右辺は、２次多項式の逆数で表現される１／（ｘ２＋ｃｘ−ａ）の因子を含むが、この因子は、有限環Ｒｐの元である２次多項式ｘ２＋ｃｘ−ａの値の逆元を意味する。
【００３１】
上記二次双曲線Ｈｃの曲線パラメータの組｛ａ，ｂ，ｃ｝を｛−（ｃ／ａ），−（ｅ／ｄ），ｂ／ａ｝に変換し、従属変数ｙを（ａ／ｄ）・ｙに変換すれば、上記式（１ａ）と等価な下記の式（１ｂ）が得られる。
【００３２】
【数２】
2008203548.tif 000004
【００３３】
ただし、ａｘ２＋ｂｘ＋ｃ≠０。ここで、ｘ，ｙは有限環Ｒｐの元であり（すなわち、Ｒｐ×Ｒｐ∋（ｘ，ｙ））、曲線パラメータａ，ｂ，ｃ，ｄ，ｅも有限環Ｒｐの元である（すなわち、Ｒｐ∋ａ，ｂ，ｃ，ｄ，ｅ）。上式（１ａ）の代わりに上式（１ｂ）の整数論的関数のなす有限可換群Ｈｇ（Ｒｐ）の元を用いて、暗号処理用の鍵を生成することも可能である。
【００３４】
有限環Ｒｐとしては、奇素数ｐを法とする整数の剰余類全体のなす剰余環Ｚ／ｐＺを使用することが好ましいが、これに限定されるものではない。剰余環Ｚ／ｐＺ上で定義された二次双曲線Ｈｃ，Ｈｇは、以下の合同式（２ａ），（２ｂ）により表現することができる。
【００３５】
【数３】
2008203548.tif 000005
【００３６】
整数ｘ１，ｘ２に対してｘ１−ｘ２がｐで割り切れるとき、整数ｘ１，ｘ２はｐを法として合同であるといい、この合同関係は、「ｘ１≡ｘ２（ｍｏｄ ｐ）」の如く表現される。この合同関係は、整数ｘ１，ｘ２をそれぞれｐで割って得られる剰余が等しいことと同値であり、その同値類の集合は環を構成し、一般にＺ／ｐＺと表現される。整数ｘ１が乗法についての逆元ｘ３（＝１／ｘ１）を持つ場合、ｘ１・ｘ３≡１（ｍｏｄ ｐ）となる。たとえば、剰余環Ｚ／１１Ｚの２つの元「３」、「４」について、３・４＝１２≡１（ｍｏｄ １１）であるから、「３」と「４」は互いの逆元である。なお、有限環の元ｘ１の逆元１／ｘ１は整数値をとることに注意すべきである。たとえば「１／２」の値は「２」の逆元である「６」であり、１未満の正の有理数（＝０．５）を意味するものではない。
【００３７】
ｐ＝１１，ａ＝７，ｂ＝２，ｃ＝０の場合、剰余環Ｚ／ｐＺ上で定義された二次双曲線Ｈｃは、ｙ≡（ｘ−２）／（ｘ２−７）（ｍｏｄ １１）の合同式で表現される。この合同式を満たす点（ｘ，ｙ）としては、たとえば、（５，２）、（６，１０）、（９，５）、（８，３）、（３，６）および（２，０）が挙げられる。（ｘ，ｙ）＝（５，２）については、ｘ２−７（ｍｏｄ １１）＝７であり、「７」の逆元は「８」である。また、ｘ−２ （ｍｏｄ １１）＝３であり、３・８＝２４≡２ （ｍｏｄ １１）。故に、点（ｘ，ｙ）＝（５，２）は、ｙ≡（ｘ−２）／（ｘ２−７）（ｍｏｄ １１）の合同式を満たすことが分かる。
【００３８】
本発明者は、有限環Ｒｐ上で定義された二次双曲線Ｈｃ上の点について適切な加法演算を定義すれば、二次双曲線Ｈｃ上の点の集合は、その加法演算について有限可換群Ｈｃ（Ｒｐ）を構成し得ることを見出した。有限環Ｒｐ上で定義された二次双曲線Ｈｇについても同様にその加法演算について有限可換群Ｈｇ（Ｒｐ）を構成し得る。以下、この種の有限可換群を「二次双曲線群」と呼ぶこととする。二次双曲線群の構造については後述する。
【００３９】
図１に示される曲線パラメータ設定部１２は、二次双曲線Ｈｃの曲線パラメータａ，ｂ，ｃを適切な値に設定し、その曲線パラメータの組み合わせ｛ａ，ｂ，ｃ｝を示す設定データＰｄを公開鍵の要素としてメモリ（図示せず）に記憶する機能を有する。設定データＰｄは鍵設定部１１と鍵生成部１３とに供給される。
【００４０】
乱数発生器１０は、熱雑音や原子核分裂などのランダムな自然現象を利用して物理乱数を生成し、あるいは、所定の数学的アルゴリズムに従ってシード（種）である数値から疑似乱数を生成するものである。鍵設定部１１は、乱数発生器１０から供給される乱数を用いて所定ビット長の整数値を生成し、この整数値を暗号処理用の秘密鍵αの値に設定することができる。
【００４１】
鍵設定部１１は、曲線パラメータａ，ｂ，ｃにより定まる二次双曲線Ｈｃ上のベースポイントＧを公開鍵の一要素（第１の公開鍵）として選択する機能を有する。鍵設定部１１は、公開鍵Ｇと秘密鍵αとを鍵生成部１３に供給する。鍵生成部１３は、公開鍵Ｇに対して、曲線パラメータａ，ｂ，ｃにより定まる二次双曲線群Ｈｃ（Ｒｐ）において定義される加法演算を施すことにより、公開鍵Ｇを秘密鍵αでスカラー倍して公開鍵の一要素Ｙ（第２の公開鍵）を生成する機能を有する。二次双曲線群Ｈｃ（Ｒｐ）において定義される加法演算の記号を「＋」で表現するとき、公開鍵Ｇ，Ｙとスカラー係数である秘密鍵αとの間には以下の式（３）が成立する。
【００４２】
【数４】
2008203548.tif 000006
【００４３】
式（３）によれば、公開鍵Ｇ，Ｙからただ一つの秘密鍵αを求める問題は二次双曲線Ｈｃ上の離散対数問題であり、楕円曲線上の離散対数問題と同様に、曲線パラメータａ，ｂ，ｃが適切な値に選択された場合にこの離散対数問題を解くことは極めて困難である。また、冒認者が秘密鍵αを求めるためには少なくともα回の加算を行う必要があるのに対し、Ｙ＝αＧの計算には、ベキ乗剰余演算で広く使用されている高速指数演算法を適用できるので、点Ｙの計算量を大幅に削減できる。二次双曲線群Ｈｃ（Ｒｐ）の位数ｋが２のベキ乗展開で表現できるとき、秘密鍵αも２のベキ乗展開で表現できる。この場合、上式（３）は次式（３ａ）に変形できる。
【００４４】
【数５】
2008203548.tif 000007
【００４５】
ここで、ｍは正整数、βｉは０または１のいずれか一方の値である。２ｉＧ＝２・（２ｉ−１Ｇ）、であるから、２ｉＧの計算には、２ｉ−１Ｇの計算結果を利用して１回の加算を実行すればよい。それゆえ、点Ｙのスカラー倍演算を行うには、２・（ｍ−１）回の加算で足りる。２ｍ−１＜ｋ＜２ｍであるから、ｍ≒ｌｏｇ２ｋである。冒認者が秘密鍵αを求めるためにＮ回の加算を必要とし、秘密鍵αを位数ｋの半分程度の値に設定する場合、Ｎ＝αであれば、ｍ−１≒ｌｏｇ２ｋ−１≒ｌｏｇ２（２Ｎ）−１＝ｌｏｇ２Ｎ。したがって、Ｙ＝αＧを計算するには、２・ｌｏｇ２Ｎ回程度の加算で足り、双方の計算量の比は、およそ（２・ｌｏｇ２Ｎ）／Ｎである。α＝２３４のとき、ｌｏｇ２２３４≒１５．７回であるので、高速指数演算法を用いれば、それを用いない場合と比べて点Ｙのスカラー倍演算の計算量を約１／７に削減できる。また、１００ビットの秘密鍵αを使用する場合に高速指数演算法を用いれば、点Ｙのスカラー倍演算の計算量は約１／１０２８に削減できる。
【００４６】
二次双曲線群Ｈｃ（Ｒｐ）において定義される加法演算では、二次双曲線群Ｈｃ（Ｒｐ）の２つの元Ｐ（ｘ１，ｙ１），Ｑ（ｘ２，ｙ２）が加算される場合、これらの元Ｐ，Ｑを解として有する１次関数ｙ＝ＬＰＱ（ｘ）と二次双曲線Ｈｃとの共通解のうち、元Ｐ，Ｑを除く第３の元Ｓ（ｘ１２，ｙ１２）が定まるとき、第３の元Ｓと二次双曲線群Ｈｃ（Ｒｐ）の所定の固定元Ｏ（ｘ０，ｙ０）とを解として有する１次関数ｙ＝ＬＳＯ（ｘ）と二次双曲線Ｈｃとの共通解のうち、元Ｓ，Ｏを除く第４の元Ｒ（ｘ３，ｙ３）が当該加算結果として与えられる。
【００４７】
より具体的に説明すると、１次関数ｙ＝ＬＰＱ（ｘ）をｙ＝ａ１ｘ＋ｂ１の形で表現するとき、最初に与えられた元Ｐ（ｘ１，ｙ１），Ｑ（ｘ２，ｙ２）に基づいてパラメータａ１，ｂ１が一意に定まり、これにより１次関数ｙ＝ＬＰＱ（ｘ）の形が決定される。また、１次関数ｙ＝ＬＳＯ（ｘ）をｙ＝ａ２ｘ＋ｂ２の形で表現するとき、２つの元Ｓ，Ｏに基づいてパラメータａ２，ｂ２が一意に定まり、これにより１次関数ｙ＝ＬＳＯ（ｘ）の形が決定される。この１次関数ｙ＝ＬＳＯ（ｘ）と二次双曲線Ｈｃとの連立方程式を解くことで第４の元Ｒ（ｘ３，ｙ３）を算出することができる。
【００４８】
上記加法演算は、幾何学的に以下の如く表現することもできる。二次双曲線Ｈｃ上の異なる座標の２点Ｐ（ｘ１，ｙ１）、Ｑ（ｘ２，ｙ２）を加算する場合は、当該２点Ｐ，Ｑを結ぶ直線と二次双曲線Ｈｃとの第１の交点Ｓ（ｘ１２，ｙ１２）が定まるとき、この第１の交点Ｓ（ｘ１２，ｙ１２）と所定の固定点Ｏ（ｘ０，ｙ０）とを結ぶ直線と二次双曲線ｃとの第２の交点Ｒ（ｘ３，ｙ３）が当該加算結果として与えられる。一方、二次双曲線Ｈｃ上の同一座標の２点Ｐ（ｘ１，ｙ１）、Ｑ（ｘ１，ｙ１）を加算する場合には、当該２点Ｐ，Ｑにおける接線と二次双曲線Ｈｃとの第１の交点Ｓ（ｘ１２，ｙ１２）が定まるとき、この第１の交点Ｓ（ｘ１２，ｙ１２）と所定の固定点Ｏ（ｘ０，ｙ０）とを結ぶ直線と二次双曲線Ｈｃとの第２の交点Ｒ（ｘ３，ｙ３）が当該加算結果として与えられる。
【００４９】
また、任意の点Ｐ（ｘ１，ｙ１）に固定点Ｏ（ｘ０，ｙ０）を加算するとき、１次関数ｙ＝ＬＰＯ（ｘ）と１次関数ｙ＝ＬＯＰ（ｘ）とが一致することから、当該加算結果は点Ｐ（ｘ１，ｙ１）自身になる。したがって、固定点Ｏ（ｘ０，ｙ０）が二次双曲線群Ｈｃ（Ｒｐ）の単位元すなわちゼロ元である。
【００５０】
図２は、ｃ＝０および｜ｂ｜２＜ａとの条件下での二次双曲線Ｈｃの一例を概略的に示すグラフである。図２に示されるように二次双曲線Ｈｃ上の２点Ｐ，Ｑ（Ｐ≠Ｑ）が与えられたとき、これら２点Ｐ，Ｑを結ぶ直線ＬＰＱと二次双曲線Ｈｃとの第１の交点Ｓが定まる。この第１の交点Ｓと固定点Ｏとを結ぶ直線ＬＳＯと二次双曲線Ｈｃとの第２の交点Ｒ（＝Ｐ＋Ｑ）が２点Ｐ，Ｑの加算結果として算出される。図２のグラフから明らかなように点Ｐと点Ｑとを入れ替えても、２点Ｐ，Ｑに対する加算結果である点Ｒは変わらない（すなわち、Ｒ＝Ｐ＋Ｑ＝Ｑ＋Ｐ）。それゆえ、２点Ｐ，Ｑは加法演算に関して可換である。
【００５１】
固定点Ｑ（ｘ０，ｙ０）を二次双曲線Ｈｃ上の点Ｏ（ｂ，０）（ここで、ｂは、二次双曲線Ｈｃの曲線パラメータ）とし、二次双曲線Ｈｃ上の異なる座標の２点Ｐ（ｘ１，ｙ１）、Ｑ（ｘ２，ｙ２）を加算する場合には、当該加算結果である点Ｒ（ｘ３，ｙ３）の座標値ｘ３は、下記の式（４ａ）で与えられる。
【００５２】
【数６】
2008203548.tif 000008
【００５３】
上式（４ａ）は、２点Ｐ，Ｑのｘ座標の値ｘ１，ｙ２について対称である。言い換えれば、値ｘ１，ｙ２を入れ替えても点Ｒの座標値ｘ３は変わらない。それゆえ、加法演算について交換法則が成立し、二次双曲線群Ｈｃ（Ｒｐ），Ｈｇ（Ｒｐ）は可換群である。
【００５４】
二次双曲線上の同一座標の２点Ｐ（ｘ１，ｙ１）、Ｑ（ｘ１，ｙ１）を加算する場合には、当該加算結果である点Ｒ（ｘ３，ｙ３）の座標値ｘ３は、下記の式（４ｂ）で与えられる。
【００５５】
【数７】
2008203548.tif 000009
【００５６】
上式（４ｂ）は、上式（４ａ）において座標値ｘ２を座標値ｘ１に置き換えることで導出される式である。上式（４ａ），（４ｂ）に示されるように、座標値ｘ３は、座標値ｙ１，ｙ２とは無関係に算出される。このため、鍵設定部１１は、公開鍵Ｇのｘ座標の値のみを設定すればよく、鍵生成部１３は、ｘ座標の値のみを用いた加法演算を実行すればよい。以下、必要に応じて、二次双曲線上の点をＰ（ｘ１）の如くｘ座標値のみを用いて表現することとする。
【００５７】
二次双曲線群Ｈｃ（Ｒｐ）の単位元すなわちゼロ元は、前記固定点Ｏ（ｂ，０）である。また、二次双曲線群Ｈｃ（Ｒｐ）の元である点Ｐ（ｘ１，ｙ１）の逆元Ｔ（＜ｘ１＞，＜ｙ１＞）のｘ座標値＜ｘ１＞は、次式（５）で与えられる。
【００５８】
【数８】
2008203548.tif 000010
【００５９】
上式（４ａ）を用いることにより下記の等式が成立することが容易に証明される。
【００６０】
【数９】
2008203548.tif 000011
【００６１】
また、点Ｐに対する加法演算についての逆元Ｔを減算記号「−」を用いて−Ｐと表現するとき、ゼロ元Ｏに関して、Ｏ＝−Ｏ、の等式が成立することが容易に証明される。
【００６２】
なお、上式（５）の右辺の分母がゼロとなる点Ｈに対する逆元は存在しない。点Ｈ（ｘ＝ｅ）を「素元」と呼ぶとき、素元Ｈは、二次双曲線群Ｈｃ（Ｒｐ）から除外して考えることができる。また、ゼロ元Ｏと同様に、二次双曲線Ｈｃ上の点とその逆元とが一致する点Ｉ（ｘ＝（２ａ−ｂｃ）／（２ｂ＋ｃ））が存在する。以下、この点Ｉを「偶単位元」と呼ぶこととする。
【００６３】
たとえば、剰余環Ｚ／２３Ｚ上で定義される二次双曲線Ｈｃ（ａ＝７，ｂ＝２，ｃ＝０）のなす二次双曲線群Ｈｃ（Ｚ／２３Ｚ）のベースポイントとして１Ｐ＝Ｐ（０，２０）が選択された場合、図３に示されるように、２Ｐ（＝Ｐ＋Ｐ）、３Ｐ（＝２Ｐ＋Ｐ），…，１２Ｐ（＝１１Ｐ＋Ｐ）を算出することができる。しかしながら、１３Ｐ（＝１２Ｐ＋Ｐ）を算出することはできない。その理由は、点Ｐのｙ座標の値（＝２０）と点１２Ｐのｙ座標の値（＝２０）とが同じであるため、点Ｐと点１２Ｐとを結ぶ直線の傾きがゼロになり、加法演算を実行できないという問題（以下「同値対の問題」という。）があるからである。図３に示されるように、同値対をなす点６Ｐ＝（１４，７）と点７Ｐ＝（１９，７）の組を中心元として、点５Ｐと点８Ｐの対、点４Ｐと点９Ｐの対、点３Ｐと点１０Ｐの対、点２Ｐと点１１Ｐの対、および点Ｐと点１２Ｐの対がそれぞれ同値対を構成する。同値対は、中心元６Ｐ，７Ｐの組から伝播しているように見える。
【００６４】
一般に、二次双曲線群Ｈｃ（Ｚ／２３Ｚ）の生成群だけでなく、二次双曲線群Ｈｃ（Ｚ／ｐＺ），Ｈｇ（Ｚ／ｐＺ）の生成群でも同値対の問題は起こり得る。同値対の問題を回避する１つの方法は、生成群の元から、同値対をなす２点のうちの一方の点を排除することである。後に証明するように、二次双曲線Ｈｃ，Ｈｇの分母（ｘ２＋ｃｘ−ａ），（ａｘ２＋ｂｘ＋ｃ）が、それぞれ、ｐを法として平方非剰余であるとの条件を生成群の元が満たせば、同値対の問題を回避することができる。なお、整数Ｎとｐが互いに素であるとき、ｘ２≡Ｎ（ｍｏｄ ｐ）という合同式が整数解ｘを持てば、Ｎは「ｐを法として平方剰余」であるといい、当該合同式が整数解ｘを持たなければ、Ｎは「ｐを法として平方非剰余」であるという。
【００６５】
上記平方非剰余の条件を満たす二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋは、奇素数ｐの型に依らずに次式（６）で与えられる。
【００６６】
【数１０】
2008203548.tif 000012
【００６７】
上式（６）の証明は後述する（定理Ｔ９を参照）。図４の表に、４ｍ＋ｎ（ｍ，ｎは整数）の型を有する奇素数ｐについて、平方非剰余の条件を満たす二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋの計算結果を示す（ただし、ｂ＝２，ｃ＝０）。図４の表には、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元のうち平方剰余の条件を満たす元の総数Ｎｑと、平方非剰余の条件を満たす元の総数Ｎｎも示されている。図４の表に示される位数ｋの値は、いずれも、上式（６）を満たすことが分かる。
【００６８】
このように本実施例に係る二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋは、曲線パラメータに依らずに明示的に表現することができる。このため、曲線パラメータを変更したときに群の位数が変化し得る従来の楕円曲線暗号と比べて、本実施例に係る二次双曲線暗号の取り扱いは容易である。したがって、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋを極めて高速に計算し得、安全な二次双曲線群を短時間で得ることができる。よって、二次双曲線群を使用する現在の暗号システムに対する有効な攻撃法が発見されたとしても、曲線パラメータを変更して安全な構造を有する二次双曲線群を用いた暗号システムへ素早く変更することが可能である。
【００６９】
暗号処理では、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の所定の元をベースポイントとして定め、当該ベースポイントにスカラー倍演算を施して得られる点を平文データに対応させる。安全性の向上のため、また、暗号化されるべき平文データのビット数を多くするために、ベースポイントは、当該ベースポイントから得られる生成群の位数ができるだけ大きな素因数を含むように選択されることが望ましい。
【００７０】
二次双曲線群Ｈｃ（Ｚ／ｐＺ）を使用する暗号システムの安全性は、ベースポイントから生成される生成群の位数に依存している。この種の生成群の簡単な例について説明する。説明の便宜上、ｐ＝２３，ａ＝７，ｂ＝２，ｃ＝０の場合の二次双曲線群Ｈｃ（Ｚ／２３Ｚ）を例として挙げると、この二次双曲線群Ｈｃ（Ｚ／２３Ｚ）において前述の平方非剰余の条件を満たす元の集合は、Ｐ（２１）＝（２１，９），Ｐ（１），Ｐ（１４），Ｐ（１１），Ｐ（１６），Ｐ（１５），Ｐ（８），Ｐ（７），Ｐ（１２），Ｐ（９），Ｐ（２２）およびＰ（２）という１２個の点より構成される。平方非剰余の条件を満たさない点は、Ｐ（０），Ｐ（３），Ｐ（４），Ｐ（５），Ｐ（６），Ｐ（１０），Ｐ（１３），Ｐ（１７），Ｐ（１８），Ｐ（１９）およびＰ（２０）である。平方非剰余の条件を満たす点Ｐ（ｘ）を生成元として得られる生成群をＱ［ｘ］で表すとすると、図５に示されるような生成群を得ることができる。
【００７１】
図６は、図５に示した生成群Ｑ［ｘ］の包含関係を示す概念図である。生成群Ｑ［ｘ］の位数をｋｘと表現すれば、ｋ１＝６，ｋ２＝１，ｋ７＝３，ｋ８＝１２，ｋ９＝６，ｋ１１＝３，ｋ１２＝４，ｋ１４＝４，ｋ１５＝２，ｋ１６＝１２，ｋ２１＝１２，ｋ２２＝１２、である。また、位数ｋｘを持つ生成群の数をφ（ｋｘ）（φ（ｋｘ）：オイラーのφ関数）で表現すれば、φ（１２）＝４個，φ（６）＝２個，φ（４）＝２個，φ（３）＝２個，φ（２）＝１個，φ（１）＝１個、である。上記の包含関係は、位数の約数に対応している。前述の通り、生成群Ｑ［８］，Ｑ［１６］，Ｑ［２１］，Ｑ［２２］は、要素となる元の出現の順番が異なるだけであり、同じ位数を有し且つ同じ点集合からなるので等価である。以下、このような等価関係を「共役」と呼ぶ。生成群Ｑ［１］，Ｑ［９］は互いに共役であり、生成群Ｑ［１２］，Ｑ［１４］も互いに共役である。
【００７２】
後述するように、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋが奇素数ｑであれば、ゼロ元以外の点Ｐ（ｘ）（∈Ｈｃ（Ｚ／ｐＺ））をベースポイントして生成される生成群Ｑ［ｘ］は位数ｑを有する（定理Ｔ１６を参照）。すなわち、生成群Ｑ［ｘ］の位数ｑは二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋと一致するので、位数ｋを奇素数ｑに設定することで、安全なベースポイントを極めて容易に選択することが可能になる。
【００７３】
次に、上記二次双曲線群Ｈｃ（Ｒｐ）を利用した暗号システムについて説明する。図７は、暗号システム２の概略構成を示す機能ブロック図である。この暗号システム２は、鍵生成装置である暗号装置２０と復号装置３０とで構成される。暗号装置２０は、平文データＭｄを所定ビット長のブロック毎に暗号化して暗号文データＥｄを生成する機能を有し、復号装置３０は、当該暗号文データＥｄを復号して平文データＭｄを復元する機能を有する。
【００７４】
暗号装置２０と復号装置３０の機能の全部または一部は、ハードウェアの回路構成で実現されてもよいし、あるいは、不揮発性メモリや光ディスクなどの記録媒体に記録されたプログラムまたはプログラムコードで実現されてもよい。そのようなプログラムまたはプログラムコードは、ＣＰＵなどのプロセッサに暗号装置２０と復号装置３０の機能の全部または一部の処理を実行させるものである。
【００７５】
図７に示されるように、暗号装置２０は、メモリ２１、鍵生成部２２、係数設定部２３および暗号化部２４からなる。メモリ２１は、図１の鍵生成装置１で生成された公開鍵Ｇ，Ｙ（＝αＧ）と、二次双曲線Ｈｃを定めるパラメータ（曲線パラメータと有限環Ｒｐの位数ｐ）を示す設定データＰｄとを記憶している。設定データＰｄは、鍵生成部２２と暗号化部２４とに供給される。係数設定部２３は、乱数発生器（図示せず）を内蔵しており、この乱数発生器で生成された物理乱数または疑似乱数に基づいて整数値を生成する。そして、係数設定部２３は、当該整数値にスカラー係数ｒ（１＜ｒ＜ｋ；ｋは二次双曲線群の位数）を設定し、そのスカラー係数ｒを鍵生成部２２に供給する。
【００７６】
鍵生成部２２は、メモリ２１から読み出した公開鍵Ｇに対して、二次双曲線群Ｈｃ（Ｒｐ）で定義される加法演算を施すことにより、公開鍵Ｇをスカラー係数ｒでスカラー倍して作業鍵Ｃ１（＝ｒＧ）を生成する。また鍵生成部２２は、メモリ２１から読み出した公開鍵Ｙに対して加法演算を施すことにより、公開鍵Ｙをスカラー係数ｒでスカラー倍して作業鍵Ｃ２（＝ｒＹ）を生成する。これら作業鍵Ｃ１，Ｃ２は暗号化部２４に供給される。なお、鍵生成部２２は、上述の高速指数演算法を用いて加法演算を実行すればよい。
【００７７】
暗号化部２４は、平文データＭｄを所定ビット長のブロックに分割し、各ブロックに二次双曲線群Ｈｃ（Ｒｐ）の元である点Ｐｍを対応付ける。暗号化部２４は、作業鍵Ｃ１，Ｃ２を用いて、平文データＭｄを表す点Ｐｍに加法演算を施して暗号文データＥｄを生成する。
【００７８】
一方、復号装置３０は、メモリ３２および復号部３１からなる。メモリ３２は、図１の鍵生成装置１で生成された秘密鍵αと、暗号装置２０と共有されるデータＰｄとを記憶している。秘密鍵αとデータＰｄは復号部３１に供給される。復号部３１は、秘密鍵αを用いて、暗号文データＥｄに対して二次双曲線群Ｈｃ（Ｒｐ）で定義される加法演算を施すことにより、暗号文データＥｄを平文データＭｄに変換する。
【００７９】
上記暗号システム２の暗号方式は、上式（３）による離散対数問題を安全性の根拠とする方式であればよく、特に限定されるものではない。暗号システム２がたとえばエルガマル暗号方式（ElGamal encryption scheme）を用いる場合、暗号化部２４は、（Ｃ２＋Ｐｍ，Ｃ１）の組を暗号文データＥｄとして生成する。復号部３１は、暗号文データＥｄを受信すると、秘密鍵αを用いて対称鍵Ｙｓ＝αＣ１を算出する。そして、復号部３１は、（Ｃ２＋Ｐｍ）−Ｙｓを復号データＭｄとして算出する。作業鍵Ｃ２は対称鍵として使用されており、作業鍵Ｃ２（＝ｒＹ＝（ｒ・α）Ｇ）と対称鍵Ｙｓ（＝αＣ１＝（ｒ・α）Ｇ）とは同じ点を示すので、Ｃ２＋（−Ｙｓ）＝（−Ｃ２）＋Ｙｓ＝Ｏ（Ｏ：二次双曲線群のゼロ元）。故に、（Ｃ２＋Ｐｍ）＋（−Ｙｓ）＝（Ｃ２＋（−Ｙｓ））＋Ｐｍ＝Ｏ＋Ｐｍ＝Ｐｍ、が成立する。
【００８０】
次に、上記二次双曲線群Ｈｃ（Ｒｐ）を利用したデジタル署名システムについて説明する。インターネットなどのデジタル通信網においては、伝送経路上で送信データが改竄される恐れがある。デジタル署名システムは、送信者の身元や受信データの真否を確認する手段として使用される。デジタル署名を生成できるのは、秘密鍵を有する装置のみである。
【００８１】
図８は、デジタル署名システム３の概略構成を示す図である。このデジタル署名システム３は、鍵生成装置である署名生成装置４０および暗号装置２０からなる送信装置３Ａと、署名検証装置５０および復号装置３０からなる受信装置３Ｂとで構成される。署名生成装置４０は、平文データＭｄから、数十バイト程度の固定ビット長のビット列をメッセージダイジェストデータ（以下、「ダイジェストデータ」と呼ぶ。）ｈ（Ｍｄ）として生成し、秘密鍵αを用いて当該ダイジェストデータｈ（Ｍｄ）を暗号化してデジタル署名データＳｄを生成する機能を有する。署名検証装置５０は、デジタル署名データＳｄに対応する公開鍵（すなわち、検証鍵）を用いて、デジタル署名データＳｄの正当性（すなわち、デジタル署名データＳｄが正当な秘密鍵αを用いて平文データＭｄに対して生成されたものか否か）を検証する機能を有する。デジタル署名データＳｄあるいは平文データＭｄが伝送路上で改竄された場合、署名検証装置５０は当該検証結果によりその改竄を検出できる。
【００８２】
本実施例では、平文データＭｄは、図７に示した構成を持つ暗号装置２０で暗号化された後に伝送路を介して復号装置３０に送信されるが、これに限るものではない。平文データＭｄは、任意の暗号方式で暗号化された後に送信装置３Ａから受信装置３Ｂに送信されてもよいし、あるいは、暗号化されずに受信装置３Ｂに送信されてもよい。また、伝送路は、インターネットなどの広域ネットワークでもよいし、あるいは専用通信回線でもよい。伝送路の代わりに記録媒体を介して、デジタル署名データＳｄと平文データＭｄとを受信装置３Ｂに供給することも可能である。
【００８３】
図８に示されるように、署名生成装置４０は、メモリ４１、鍵生成部４２、係数設定部４３、ダイジェスト生成部４４および暗号化部４５からなる。メモリ４１は、図１の鍵生成装置１で生成された公開鍵Ｇと、秘密鍵αと、二次双曲線Ｈｃを定めるパラメータ（曲線パラメータと有限環Ｒｐの位数ｐ）を示す設定データＰｄとを記憶している。設定データＰｄは、鍵生成部４２と暗号化部４５とに供給される。係数設定部４３は、乱数発生器（図示せず）を内蔵しており、この乱数発生器で生成された物理乱数または疑似乱数に基づいて整数値を生成する。係数設定部４３は、当該整数値にスカラー係数ｒ（１＜ｒ＜ｋ；ｋは二次双曲線群の位数）を設定し、そのスカラー係数ｒを鍵生成部４２に供給する。
【００８４】
鍵生成部４２は、メモリ４１から読み出した公開鍵Ｇに対して、二次双曲線群Ｈｃ（Ｒｐ）で定義される加法演算を施すことにより、公開鍵Ｇをスカラー係数ｒでスカラー倍して作業鍵Ｒ（＝ｒＧ）を生成する。この作業鍵Ｒは、暗号化部４５に与えられる。
【００８５】
ダイジェスト生成部４４は、入力データのビット長を圧縮する圧縮関数に従って、平文データＭｄからダイジェストデータｈ（Ｍｄ）を生成しこれを暗号化部４５に与える。圧縮関数としては、平文データＭｄの入力に対して固定ビット長の出力を与えるハッシュ関数を使用するのが好ましい。
【００８６】
暗号化部４５は、作業鍵Ｒおよび秘密鍵αを用いて、ダイジェストデータｈ（Ｍｄ）に対して二次双曲線群Ｈｃ（Ｒｐ）で定義される加法演算を施すことによりダイジェストデータｈ（Ｍｄ）を暗号化してデジタル署名データＳｄを生成する。暗号化部４５で使用される暗号方式は、上式（３）による離散対数問題を安全性の根拠とする方式であればよく、特に限定されるものではない。たとえば、エルガマル暗号方式またはその改良方式の採用が可能である。
【００８７】
エルガマル暗号方式が採用される場合、暗号化部４５は、二次双曲線Ｈｃ上の点Ｒ（＝ｒＧ）と、次の合同式で与えられるスカラー量ｓとの組（Ｒ，ｓ）をデジタル署名データＳｄとして生成する。
【００８８】
【数１１】
2008203548.tif 000013
【００８９】
この式において、ｈは、ダイジェストデータｈ（Ｍｄ）の値、［Ｒ］ｘは、点Ｒのｘ座標値、ｑは、ベースポイントＧ（ｘ）より生成される生成群Ｑ［ｘ］の位数、である。
【００９０】
一方、署名検証装置５０は、メモリ５１と署名検証部５２とで構成される。メモリ５１は、署名生成装置４０と共有される公開鍵Ｇ，Ｙおよび設定データＰｄを記憶している。設定データＰｄは、鍵生成部４２と暗号化部４５とに供給される。ダイジェスト生成部５３は、署名生成装置４０のダイジェスト生成部４４で使用される圧縮関数と同一の圧縮関数に従って、復号装置３０から与えられた平文データＭｄを圧縮してダイジェストデータｈ（Ｍｄ）を生成する。
【００９１】
署名検証部５２は、メモリ５１から読み出された公開鍵Ｇ，Ｙを用いて、デジタル署名データＳｄに対し二次双曲線群Ｈｃ（Ｒｐ）で定義される加法演算を施して被検証データを生成する。署名検証部５２は、さらに、被検証データがダイジェストデータｈ（Ｍｄ）と整合するか否かを判定し、当該判定結果を示す判定データＶｓを出力する。判定データＶｓの値が「０」であれば、平文データＭｄあるいはデジタル署名データＳｄの改竄は行われていないと判定され、判定データＶｓの値が「１」であれば、改竄が行われたと判定される。
【００９２】
デジタル署名システム３がエルガマル暗号方式を用いる場合、署名検証部５２は、次式に従って被検証データを示す点Ｐｖを生成する。
【００９３】
【数１２】
2008203548.tif 000014
【００９４】
また、署名検証部５２は、ダイジェストデータｈ（Ｍｄ）を用いて公開鍵Ｇに加法演算を施すことにより、点Ｐｎ＝ｈＧを生成する。そして、署名検証部５２は、点Ｐｎが点Ｐｖと一致するか否かを判定し、当該判定結果すなわち検証結果を示す判定データＶｓを与える。平文データＭｄあるいはデジタル署名データＳｄが伝送路において改竄されていなければ、点Ｐｎは点Ｐｖと一致すべきである。
【００９５】
なお、上記の署名生成装置４０と署名検証装置５０の機能の全部または一部は、ハードウェアの回路構成で実現されてもよいし、あるいは、不揮発性メモリや光ディスクなどの記録媒体に記録されたプログラムまたはプログラムコードで実現されてもよい。そのようなプログラムまたはプログラムコードは、ＣＰＵなどのプロセッサに署名生成装置４０と署名検証装置５０の機能の全部または一部の処理を実行させるものである。
【００９６】
上記の通り、二次双曲線群Ｈｃ（Ｒｐ）（またはこれと等価なＨｇ（Ｒｐ））を用いて平文データの暗号化、暗号文データの復号、デジタル署名の生成およびデジタル署名の正当性の検証を実現することができる。この二次双曲線群Ｈｃ（Ｒｐ）（またはこれと等価なＨｃ（Ｒｐ））を用いた暗号技術は、楕円曲線暗号と同等の解読困難性を実現することが可能である。なお、二次双曲線群Ｈｃ（Ｒｐ）（またはこれと等価なＨｇ（Ｒｐ））は、たとえば、Diffe-Hellmanの鍵交換方式などの鍵交換方式に適用することも可能である。
【００９７】
また、上式（６）によれば、二次双曲線群Ｈｃ（Ｚ／ｐＺ）（またはこれと等価なＥｇ（Ｚ／ｐＺ））の位数ｋは曲線パラメータに依らないため、曲線パラメータを変更しても位数ｋを極めて短時間で算出することができる。このため、二次双曲線群Ｈｃ（Ｚ／ｐＺ）（またはこれと等価なＥｇ（Ｚ／ｐＺ））を用いた暗号に対する攻撃法が発見されても、曲線パラメータを変更して安全な二次双曲線群を短時間で得ることができる。したがって、既存の暗号システムを安全な暗号システムへ素早く変更することが可能である。
【００９８】
なお、上記二次双曲線群を使用する暗号システムは、量子暗号通信において送信側と受信側とで共有される量子鍵（すなわち秘密鍵）を簡易に供給することが可能である。
【００９９】
＜二次双曲線群の構造＞
以下、上記二次双曲線群の構造について、より厳密な数学的説明を与える。上述の通り、剰余環Ｚ／ｐＺ上で定義された二次双曲線Ｈｃは、次式で表現される。
【０１００】
【数１３】
2008203548.tif 000015
【０１０１】
ｘ２＋ｃｘ−ａ≠０という条件を満たすためには、判別式Ｄ＝ｃ２＋４ａがｐを法として平方非剰余であればよい。
【０１０２】
二次双曲線Ｈｃ上の異なる座標の２点Ｐ（ｘ１，ｙ１）、Ｑ（ｘ２，ｙ２）を結ぶ直線ＬＰＱ上の任意の点（Ｘ，Ｙ）について、Ｙ＝ｍ１２Ｘ＋Ｂ１２との１次方程式が成立する。
【０１０３】
傾きｍ１２と切片Ｂ１２は、次式（１０ａ），（１０ｂ）で与えられる。
【０１０４】
【数１４】
2008203548.tif 000016
【０１０５】
直線ＬＰＱと二次双曲線Ｈｃとの交点Ｓ（ｘ１２，ｙ１２）の座標値ｘ１２は、次式（１１）で与えられる。
【０１０６】
【数１５】
2008203548.tif 000017
【０１０７】
固定点Ｏ（ｂ，０）が定められたとき、交点Ｓと固定点Ｏとを結ぶ直線ＬＳＯと二次双曲線Ｈｃとの交点Ｒ（ｘ３，ｙ３）の座標値ｘ３は、上述した通り、次式（４）で与えられる。
【０１０８】
【数１６】
2008203548.tif 000018
【０１０９】
上式（４）は、Ｐ≠Ｑの場合とＰ＝Ｑの場合の双方で成立するものである。二次双曲線群Ｈｃ（Ｚ／ｐＺ）において定義される加法演算の記号を「＋」で表現するとき、上記の３点Ｐ，Ｑ，Ｒの間には次式（１２）の関係が成立する。
【０１１０】
【数１７】
2008203548.tif 000019
【０１１１】
二次双曲線Ｈｃ上の点Ｐのｎ倍（ｎは正整数のスカラー係数）の点Ｓは、次式（１３）に示されるように点Ｐに加法演算を施すことで得られる。
【０１１２】
【数１８】
2008203548.tif 000020
【０１１３】
上式（４ａ）によれば、Ｏ（ｂ，０）＋Ｐ（ｘ１，ｙ１）＝Ｐ（ｘ１，ｙ１）の等式が成立する。また、二次双曲線Ｈｃ上の点Ｐ（ｘ１，ｙ１），Ｑ（ｘ２，ｙ２）について、Ｐ＋Ｑ＝Ｏ（Ｏ：固定点）の等式が成立するとき、上式（４ａ）の座標値ｘ３はｂの値に等しい（すなわち、ｘ３＝ｂ）。これにより、点Ｑのｘ座標値＜ｘ１＞は、次式（５）で与えられる。
【０１１４】
【数１９】
2008203548.tif 000021
【０１１５】
よって、固定点Ｏ（ｂ，０）は、加法演算に関して二次双曲線Ｈｃのなす群のゼロ元とすることができる。また、上式（５）で与えられるｘ座標値を持つ点Ｑは、点Ｐの逆元−Ｐである。よって、Ｐ＋（−Ｐ）＝Ｏ、の等式が成立する。
【０１１６】
加法演算に関する結合法則の証明のための準備として下記定理Ｔ１を証明する。
【０１１７】
［定理Ｔ１］  二次双曲線群Ｈｃ（Ｚ／ｐＺ）の加法演算に関し、二次双曲線Ｈｃ上の任意の整数点Ｐ（ｘ１，ｙ１），Ｑ（ｘ２，ｙ２），Ｒ（ｘ３，ｙ３）について次の等式（１４）が成立する。
【０１１８】
【数２０】
2008203548.tif 000022
【０１１９】
［定理Ｔ１の証明］二次双曲線Ｈｃ上の任意の整数点Ｒのｘ座標値を[Ｒ]ｘと表すこととする。整数点Ｐ，Ｑ，Ｒについて下記の式（１４ａ），（１４ｂ），（１４ｃ）を導き出すことができる。
【０１２０】
【数２１】
2008203548.tif 000023
【０１２１】
【数２２】
2008203548.tif 000024
【０１２２】
このとき、下記式（１４ｄ）を導き出すことができる。
【０１２３】
【数２３】
2008203548.tif 000025
【０１２４】
上式（１４ｄ）を用いて下記の式（１４ｅ）を導き出すことができる。
【０１２５】
【数２４】
2008203548.tif 000026
【０１２６】
したがって、上式（４）を用いれば、上記の等式（１４）が導出される。［定理Ｔ１の証明終わり］
定理Ｔ１によれば、Ｒ＝Ｏ（Ｏ：ゼロ元）のときに、（−Ｐ＋Ｑ）＋Ｐ＝Ｑの等式が成立し、二次双曲線群Ｈｃ（Ｚ／ｐＺ）はその正規部分群と同型であることを示している。定理Ｔ１を使用して下記の定理Ｔ２（結合法則）を証明することができる。
【０１２７】
［定理Ｔ２（結合法則）］  二次双曲線群Ｈｃ（Ｚ／ｐＺ）の加法演算に関し、二次双曲線Ｈｃ上の任意の整数点Ｐ，Ｒ，Ｓについて、次の等式（１５）が成立する。
【０１２８】
【数２５】
2008203548.tif 000027
【０１２９】
［定理Ｔ２の証明］定理Ｔ１によれば、Ｒ＝Ｏ（Ｏ：ゼロ元）のときに、上式（１４）は、（（−Ｐ）＋Ｑ）＋Ｐ＝Ｑ、の等式（以下、式（１５ａ）と呼ぶ。）に変形される。Ｓ＝（−Ｐ）＋Ｑとすれば、式（１５ａ）は、Ｓ＋Ｐ＝（（−Ｐ）＋Ｑ）＋Ｐ＝Ｑ、の等式に変形される。この変形式の各辺に点Ｒを加算すれば、（Ｓ＋Ｐ）＋Ｒ＝Ｑ＋Ｒ、の等式（以下、式（１５ｂ）と呼ぶ。）を導出することができる。一方、Ｓ＝（−Ｐ）＋Ｑとすれば、上式（１４）は、Ｓ＋（Ｐ＋Ｒ）＝Ｑ＋Ｒ、の等式（以下、式（１５ｃ）と呼ぶ。）に変形される。この式（１５ｃ）の右辺と式（１５ｂ）の右辺とは同じであるから、Ｓ＋（Ｐ＋Ｒ）＝（Ｓ＋Ｐ）＋Ｒ。点Ｓは、独立した整数点Ｑを含むので、点Ｓも二次双曲線Ｈｃ上の任意の整数点である。したがって、上式（１５）が成立する。［定理Ｔ２の証明終わり］
次に「同値対の問題」について説明する。２点Ｐ（ｘ１，ｙ１），Ｑ（ｘ２，ｙ２）が同一のｙ座標値を持つ場合（すなわち、ｙ１＝ｙ２の場合）、これら２点Ｐ，Ｑを結ぶ直線の傾きはゼロである。このとき、上式（１０ａ）で示される傾きｍ１２はゼロであるから、次の等式（１６）が成立して上式（４）の分数式の分母をゼロにする。
【０１３０】
【数２６】
2008203548.tif 000028
【０１３１】
よって、次の等式（１７）が成立するとき、点Ｐ＋Ｑのｘ座標値ｘ３は不定になる。
【０１３２】
【数２７】
2008203548.tif 000029
【０１３３】
このとき、剰余環Ｚ／ｐＺにおいて「０」の逆元は存在しないことから、二次双曲線群Ｈｃ（Ｚ／ｐＺ）で定義される加法演算に従って同一のｙ座標値を持つ２点Ｐ（ｘ１，ｙ１），Ｑ（ｘ２，ｙ２）を加算することはできない。これが同値対の問題である。剰余環Ｚ／ｐＺ上で定義される二次双曲線Ｈｃ上の２点Ｑ（ｘ２，ｙ２），Ｒ（ｘ３，ｙ３）が同値対をなすとすれば、次式（１７ａ）が成立する。
【０１３４】
【数２８】
2008203548.tif 000030
【０１３５】
このとき、上式（１４ｄ）の右辺はゼロとなるので、上式（１４ｄ）から次式（１７ｂ）が導出される。
【０１３６】
【数２９】
2008203548.tif 000031
【０１３７】
定理Ｔ１より、この式（１７ｂ）は、点（−Ｐ）＋Ｑと点Ｐ＋Ｒとが同値対であることを示している。したがって、次の定理Ｔ３が成立する。
【０１３８】
［定理Ｔ３］  二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元である３点Ｐ，Ｑ，Ｒについて、２点Ｑ，Ｒが同値対であれば、点（−Ｐ）＋Ｑと点Ｐ＋Ｒとは同値対である。［定理Ｔ３終わり］
この定理Ｔ３から、任意のスカラー係数ｍにつき２点Ｑ，Ｒが同値対であれば、明らかに点（−ｍＰ）＋Ｑと点ｍＰ＋Ｒとは同値対である。したがって、図３に示したように複数の同値対の組が中心元から派生する。
【０１３９】
この定理Ｔ３を用いて以下の定理Ｔ４を証明することができる。
【０１４０】
［定理Ｔ４］  剰余環Ｚ／ｐＺ上で定義される二次双曲線Ｈｃ上の点Ｒ＝Ｐ＋Ｑと点Ｑとが同値対であり且つ中心元をなす条件は、点Ｐ（ｘ１，ｙ１）について、次の合同式（１８）が整数解ｘを持つこと、すなわち、次の合同式（１８）の右辺がｐを法として平方剰余であることである。
【０１４１】
【数３０】
2008203548.tif 000032
【０１４２】
［定理Ｔ４の証明］  Ｒ（ｘ３，ｙ３）＝Ｐ（ｘ１，ｙ１）＋Ｑ（ｘ２，ｙ２）とすれば、点Ｒの座標値ｘ３と点Ｑの座標値ｘ２との間に上式（１７ａ）の関係と同様に次式（１８ａ）が成立する。
【０１４３】
【数３１】
2008203548.tif 000033
【０１４４】
上式（１８ａ）から次式（１８ｂ）が得られる。
【０１４５】
【数３２】
2008203548.tif 000034
【０１４６】
一方、３点Ｒ，Ｐ，Ｑの座標値ｘ３，ｘ２，ｘ１の間に上式（４）の関係が成立する。よって、式（４），（１８ｂ）から次式（１８ｃ）が得られる。
【０１４７】
【数３３】
2008203548.tif 000035
【０１４８】
点Ｐ（ｘ１）の逆元−Ｐのｘ座標値は、上式（５）により与えられる。逆元−Ｐのｘ座表値を＜ｘ１＞で表すものとすれば、上式（１８ｃ）をｘ２に関する次の二次方程式（１８ｄ）に変形することができる。
【０１４９】
【数３４】
2008203548.tif 000036
【０１５０】
二次方程式（１８ｄ）が整数解ｘ２を持つには、二次方程式（１８ｄ）の判別式をＤで表すとき、Ｄ／４＝＜ｘ１＞２＋ｃ＜ｘ１＞−ａ、が平方剰余である必要がある。したがって、Ｄ／４が平方剰余であることが、中心元をなす点Ｑ，Ｒの同値対が存在する条件である。逆に判別式Ｄが平方非剰余であれば、点Ｑ，Ｒは同値対とならない。この条件は、座標値＜ｘ１＞とｘ１とが対称関係にあるので判別式Ｄにおいて座標値＜ｘ１＞をｘ１で置き換えても同様である。すなわち、
【０１５１】
【数３５】
2008203548.tif 000037
【０１５２】
との式（１８ｅ）が成立するので、ｘ１２＋ｃｘ１−ａが平方剰余であることが、中心元をなす点Ｑ，Ｒの同値対が存在する条件になる。逆に、ｘ１２＋ｃｘ１−ａが平方非剰余であれば、同値対の問題は発生しない。［定理Ｔ４の証明終わり］
［定理Ｔ５］  剰余環Ｚ／ｐＺ上で定義される二次双曲線Ｈｃ上の点の集合ＨＣ＝｛Ｐ（ｘ）｜ｘ∈Ｚ／ｐＺ，ｘ２＋ｃｘ−ａ≠０および（ｘ２＋ｃｘ−ａ）がｐを法として平方非剰余である。｝は、加法演算に関して閉じている。
【０１５３】
［定理Ｔ５の証明］  二次双曲線Ｈｃ上の２点Ｐ（ｘ１），Ｑ（ｘ２）を加算して点Ｒ（ｘ３）を得るときは上式（４）が成立する。よって、上式（４）を用いて以下の式（１９）が導出される。
【０１５４】
【数３６】
2008203548.tif 000038
【０１５５】
題意より、上式（１９）の右辺の２つの因子（ｘ１２＋ｃｘ１−ａ）と（ｘ２２＋ｃｘ２−ａ）はｐを法として平方非剰余であるから、上式（１９）の左辺（ｘ３２＋ｃｘ３−ａ）がｐを法として平方非剰余であるためには、上式（１９）の右辺の因子（ｂ（ｂ＋ｃ）−ａ）も平方非剰余でなければならない。然るに、点Ｐ（ｘ＝ｂ）はゼロ元を意味する。したがって、因子（ｘ１２＋ｃｘ１−ａ），（ｘ２２＋ｃｘ２−ａ）が平方非剰余である場合には、（ｂ（ｂ＋ｃ）−ａ）は必ず平方非剰余になる。［定理Ｔ５の証明終わり］
上述した通り、上式（５）の右辺の分母がゼロとなる点すなわち素元Ｈに対する逆元は存在しない。素元Ｈ（ｘ＝ｅ）に関しては、ｘ２＋ｃｘ−ａがｐを法として平方剰余であることが容易に確認できる。よって、定理Ｔ５により素元Ｈは二次双曲線群Ｈｃ（Ｚ／ｐＺ）に含まれない。
【０１５６】
以下、二次双曲線群Ｈｃ（Ｚ／ｐＺ）は、上記定理Ｔ５により定義される集合ＨＣとする。先ず、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数を導出する前にいくつかの定理を証明する。
【０１５７】
［定理Ｔ６］  奇素数ｐを法とする平方非剰余である整数ｘ（ｘ≠０）の個数は（ｐ−１）／２個である。
【０１５８】
［定理Ｔ６の証明］  集合Ａ＝｛１，２，…，ｐ−２，ｐ−１｝と、生成元ｔのベキ集合である位数ｐ−１の有限巡回群Ｂ＝｛ｔ０，ｔ１，…，ｔｐ−２｝とを導入し、集合Ａの元を集合Ｂの元に一対一で対応付ける。オイラーの基準（Euler's criterion）によれば、ｘが平方非剰余であるとき、ｘ（ｐ−１）／２≡−１（ｍｏｄ ｐ）であり、ｘが平方剰余であるときは、ｘ（ｐ−１）／２≡＋１（ｍｏｄ ｐ）である。
【０１５９】
偶数ｍについてｘ＝ｔｍ（ｔｍ∈Ｂおよびｘ∈Ａ）と対応付けすれば、フェルマーの小定理（Fermat's Little Theorem）により次式（２０ａ）が導出されるため、ｘは平方剰余である。
【０１６０】
【数３７】
2008203548.tif 000039
【０１６１】
一方、奇数ｍについてｘ＝ｔｍと対応付けすれば、次式（２０ｂ）が導出される。
【０１６２】
【数３８】
2008203548.tif 000040
【０１６３】
生成元ｔについてｔ（ｐ−１）／２≡＋１と仮定すれば、有限巡回群Ｂの位数が（ｐ−１）／２となり、その位数がｐ−１であるとした定義に反する。したがって、ｔ（ｐ−１）／２≡−１であり、ｍが奇数の場合にはｘは平方非剰余である。この結果、平方非剰余であるｘの個数は（ｐ−１）／２個であり、平方剰余であるｘの個数も（ｐ−１）／２個である。［定理Ｔ６の証明終わり］
「初等整数論構義（第２版），高木貞治著，共立出版（ISBN：4-320-01001-9）」の第７０〜７１頁には、ディレクレ（Dirichlet）の整数論講義によるオイラーの基準（Euler's criterion）の証明が記載されている。かかる記載に基づいて以下の定理Ｔ７が導出される。
【０１６４】
［定理Ｔ７］  ａをｐで割り切れない整数とすれば、集合Ａ＝｛１，２，…，ｐ−２，ｐ−１｝の中の任意の整数ｒに対して、ｒｓ≡ａ（ｍｏｄ ｐ）を満たす整数ｓが集合Ａの中にただ一つ存在する。当該整数ｓをｒの配偶と呼ぶとき、ｓの配偶はｒであり、同一の数の配偶はただ一つに限る。したがって、配偶の組み合わせは、原則として、（ｐ−１）／２個存在する。ただし、ａが平方剰余であるときは、ｒの配偶ｓがｒである場合並びにｐ−ｒの配偶ｓがｐ−ｒである場合が存在する。これらの２つの場合を例外として除外すれば、配偶の組み合わせは、（ｐ−３）／２個存在する。
【０１６５】
［定理Ｔ７の証明］  生成元ｔのベキ集合である有限巡回群Ｂ＝｛ｔ０，ｔ１，…，ｔｐ−２｝を導入し、集合Ａの元を集合Ｂの元に一対一で対応付ける。ａ＝ｔｈ（ｔｈ∈Ｂ）と対応付けしたとき、ａ＝ｔｋｔｈｔ−ｋ（ｋは整数）である。ここで、ｒ＝ｔｋおよびｓ＝ｔｈ−ｋと対応付けすれば、ａ≡ｒｓ（ｍｏｄ ｐ）が成立する。このとき、ｒ／ｓ＝ｔ２ｋ−ｈであるから、２ｋ−ｈ＝０の場合には、ｒ＝ｓである。したがって、配偶ｒ，ｓが一致するのはｈが偶数の場合に限る。逆に、ｈが奇数であれば、常にｒ≠ｓ（ｍｏｄ ｐ）である。然らば、配偶ｒ，ｓの組み合わせの数は（ｐ−１）／２個である。これは、ａが平方非剰余である場合には、配偶の組み合わせの数が（ｐ−１）／２個であることを意味する。
【０１６６】
次に、ｈが偶数の場合は、前述の通り、２ｋ−ｈ＝０より、ｒ＝ｔｈ／２およびｓ＝ｔｈ−ｈ／２＝ｔｈ／２であり、ｒ＝ｓである。然るに生成元ｔについて、フェルマーの小定理により、（ｔ（ｐ−１）／２）２≡１（ｍｏｄ ｐ）が成立するから、ｒ’＝ｔ（ｐ−１）／２＋ｈ／２およびｓ’＝ｔ（ｐ−１）／２＋ｈ／２と対応付けた場合もｒ’＝ｓ’であり、且つ、ｒ’ｓ’≡ａ（ｍｏｄ ｐ）である。上記定理Ｔ６の証明過程で、ｔ（ｐ−１）／２≡−１（ｍｏｄ ｐ）が示された。よって、配偶ｒ’，ｓ’につき、ｒ’≡−ｒ≡ｐ−ｒおよびｒ’＝ｓ’≡ｐ−ｒである。したがって、配偶の値が一致する２個を除いたｐ−３個の数につき、（ｐ−３）／２個の配偶を構成できる。この場合ｒ≠ｓ（ｍｏｄ ｐ）である。これは、ａが平方剰余である場合には、配偶の組み合わせの数は、配偶の値が一致する２個を除いて（ｐ−３）／２個であることを意味する。［定理Ｔ７の証明終わり］
［定理Ｔ８］  二次双曲線Ｈｃの「因子ｘ２＋ｃｘ−ａがｐを法とした平方非剰余である」との条件を満たす座標値ｘの個数（以下、「平方非剰余数」と呼ぶ。）は、判別式Ｄ＝ｃ２＋４ａ（≠０）がｐを法とした平方剰余である場合、Ｎｑ＝（ｐ−１）／２個であり、判別式Ｄがｐを法とした平方非剰余である場合には、Ｎｎ＝（ｐ＋１）／２個である。これら平方非剰余数Ｎｎ，Ｎｑは、いずれも奇素数ｐの型に依らない。
【０１６７】
［定理Ｔ８の証明］  因子ｘ２＋ｃｘ−ａがｐを法とした平方剰余であれば、ｚ２≡ｘ２＋ｃｘ−ａ（ｍｏｄ ｐ）との合同式を満たす整数解ｚが存在する。然らば、次式（２１ａ）が導出される。
【０１６８】
【数３９】
2008203548.tif 000041
【０１６９】
ここで、ｘ’＝ｘ＋ｃ・２−１およびａ’＝ａ＋ｃ２・４−１＝Ｄ・４−１としてｘ’，ａ’を定めれば、上式（２１ａ）から次式（２１ｂ）が導出される。
【０１７０】
【数４０】
2008203548.tif 000042
【０１７１】
定理Ｔ７より、ｘ’−ｚとｘ’＋ｚとは、ａ’（＝Ｄ・４−１）に関して互いに配偶になり得る。これらは互いに異なり、かつ、一対一で対応するからである。定理Ｔ７によれば、配偶ｘ’−ｚ，ｘ’＋ｚの組み合わせの数は、（ｐ−１）／２個である。配偶ｘ’−ｚ，ｘ’＋ｚの組み合わせに対応するｘの値だけが、「因子ｘ２＋ｃｘ−ａがｐを法とした平方剰余である」との条件を満たす。
【０１７２】
よって、「因子ｘ２＋ｃｘ−ａがｐを法とした平方剰余である」との条件を満たす座標値ｘの数は、判別式Ｄが平方非剰余であれば、Ｋｎ＝（ｐ−１）／２個であり、判別式Ｄが平方剰余であれば、Ｋｑ＝（ｐ＋１）／２個である。もっとも、判別式Ｄが平方剰余であっても、判別式Ｄ≡０（ｍｏｄ ｐ）であれば、判別式の性格から明らかに全てのｘに関して「因子ｘ２＋ｃｘ−ａがｐを法とした平方剰余である」との条件は満たされる。
【０１７３】
したがって、「因子ｘ２＋ｃｘ−ａがｐを法とした平方非剰余である」との条件を満たす座標値ｘの個数すなわち平方非剰余数は、判別式Ｄが平方非剰余であれば、Ｎｎ＝（ｐ−１）−Ｋｎ＝（ｐ＋１）／２であり、判別式Ｄが平方剰余であれば、Ｎｑ＝（ｐ−１）−Ｋｑ＝（ｐ−１）／２である。［定理Ｔ８の証明終わり］
定理Ｔ８の証明結果を図９の表に整理して示す。また、定理Ｔ８に関する簡単な計算例を図１０（Ａ），（Ｂ）に示す。図１０（Ａ）は、座標値ｘ，ｚ２が与えられた場合にｐ＝１１（＝４ｍ＋３）を法とするｘ２＋ｃｘ−ｚ２（ここで、ｃ＝１）の剰余値ａを示し、図１０（Ｂ）は、ａの値が与えられた場合にａ≡ｘ２＋ｃｘ−ｚ２（ｍｏｄ ｐ）の条件を満たす座標値ｘの計数結果を示すものである。図１０（Ａ）に示されるように、たとえば点（ｘ，ｚ２）＝（３，５）に対する剰余値は、ａ＝７である。図１０（Ｂ）に示されるように、この点（３，５）に対応するａ＝７の値が与えられたとき、判別式Ｄの剰余値は７であり平方非剰余であるから、定理Ｔ８によれば、ｘの個数は、（１１−１）／２＝５個であるべきである。また、図１０（Ａ）に示されるように、点（ｘ，ｚ２）＝（８，４）に対する剰余値は、ａ＝２である。図１０（Ｂ）に示されるように、ａ＝２の値が与えられたとき、判別式Ｄの剰余値は９であり平方剰余であるから、定理Ｔ８によれば、ｘの個数は、（１１＋１）／２＝６個であるべきである。
【０１７４】
なお、図１０（Ｂ）には、Ｄ（ｐ−１）／２の剰余の計算結果も示されている。この計算結果は、判別式Ｄが平方剰余であればＤ（ｐ−１）／２の剰余は「１」の値であり、判別式Ｄが平方非剰余であればＤ（ｐ−１）／２の剰余は「−１」の値であるとするオイラーの基準に合致する。
【０１７５】
また、定理Ｔ８に関する他の計算例を図１１（Ａ），（Ｂ）に示す。図１１（Ａ）は、座標値ｘ，ｚ２が与えられた場合にｐ＝１３（＝４ｍ＋１）を法とするｘ２＋ｃｘ−ｚ２（ここで、ｃ＝２）の剰余値ａを示し、図１１（Ｂ）は、ａの値が与えられた場合にａ≡ｘ２＋ｃｘ−ｚ２（ｍｏｄ ｐ）の条件を満たす座標値ｘの計数結果を示すものである。
【０１７６】
二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋを確定するための準備として、以下の補題Ｌ１を示す。
【０１７７】
［補題Ｌ１］  二次双曲線Ｈｃ上の点Ｐ（ｘ１）について因子ｘ１２＋ｃｘ１−ａがｐを法とした平方剰余であれば、点Ｐ（ｘ１）と同値対をなす点Ｑ（ｘ２）について因子ｘ２２＋ｃｘ２−ａはｐを法とした平方非剰余である。
【０１７８】
［補題Ｌ１の証明］  上式（１７）の合同式が成立するとき、二次双曲線Ｈｃ上の２点Ｐ，Ｑは同値対をなす。上式（１７）を用いて次式（２２）を導出できる。
【０１７９】
【数４１】
2008203548.tif 000043
【０１８０】
二次双曲線Ｈｃ上のｘ＝ｂの点はゼロ元であり、上式（２２）の右辺の因子である（ｂ（ｂ＋ｃ）−ａ）は常にｐを法として平方非剰余である。したがって、因子ｘ１２＋ｃｘ１−ａが平方剰余であれば、因子ｘ２２＋ｃｘ２−ａは平方非剰余であり、その逆も成立する。［補題Ｌ１の証明終わり］
［定理Ｔ９］  二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋは、次式（６）で与えられ、奇素数ｐの型に依らない。
【０１８１】
【数４２】
2008203548.tif 000044
【０１８２】
［定理Ｔ９の証明］  定理Ｔ８によれば、因子ｘ２＋ｃｘ−ａが平方非剰余であるとの条件を満たす座標値ｘの個数は、判別式Ｄ＝ｃ２＋４ａ（≠０）が平方剰余である場合、（ｐ−１）／２個であり、判別式Ｄが平方非剰余である場合には、（ｐ＋１）／２個である。ここで、「因子ｘ２＋ｃｘ−ａが平方非剰余である」との条件は、直接的にパラメータａ，ｃの値を制限するものではない。しかし、ｘ２＋ｃｘ−ａ＝（ｘ＋ｃ／２）２−Ｄ／４の判別式Ｄが平方非剰余であれば、ｘ２＋ｃｘ−ａ≠０（ｍｏｄ ｐ）である。それゆえ、「判別式Ｄが平方非剰余である」との条件は、「因子ｘ２＋ｃｘ−ａが平方非剰余である」との条件に含まれる。また、Ｄ／４≠（ｘ＋ｃ／２）２の形より、任意のｘ値に対して判別式Ｄが平方剰余となることはない。したがって、「判別式Ｄが平方剰余である」との条件は満たされず、「判別式Ｄが平方非剰余である」との条件のみが満たされる。然らば、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の有する異なる整数点ｘの個数は、ｋ＝（ｐ＋１）／２＝（ｐ−１）／２＋１、である。
【０１８３】
二次双曲線Ｈｃ上の点（ｘ，ｙ）についてｙ＝ｆ（ｘ）とするとき、二次双曲線Ｈｃ上の異なる２点Ｐ（ｘ１），Ｑ（ｘ２）について、ｆ（ｘ１）−ｆ（ｘ２）は、Δ＝ｘ１ｘ２−ｂ（ｘ１＋ｘ２＋ｃ）＋ａ、に比例することが容易に証明される。よって、ｘ１≠ｘ２であれば、Δ＝０が成立する場合にのみｆ（ｘ１）＝ｆ（ｘ２）が成立する。これは２点Ｐ，Ｑが同値対をなす場合である。二次関数の性質から、同値対は一対のみ存在し、一つの関数値ｆ（ｘ）について３つ以上の異なるｘ座標値は存在しない。二次双曲線群Ｈｃ（Ｚ／ｐＺ）において、補題Ｌ１より同値対の一方の点は排除される。それゆえ、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元である２点Ｐ（ｘ１），Ｑ（ｘ２）は、ｘ１≠ｘ２のとき、異なるｙ座標値を持つ。したがって、二次双曲線群Ｈｃ（Ｚ／ｐＺ）はｋ個の元を有する。［定理Ｔ９の証明終わり］
上記定理Ｔ９により、本発明に係る二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋは、二次双曲線Ｈｃのパラメータに依らずに明示的に表現でき、容易に取り扱うことができる。それゆえ、曲線パラメータを変えても位数ｋを極めて容易に算出することが可能である。二次双曲線Ｈｃを利用する暗号システムで最も実用的な方法は、後述するように位数ｋを素数ｑとする場合である。この場合、式（６）を満たす素数の組み合わせ（ｐ，ｑ）が多数存在し、特に素数ｐが大きな数である場合にもその組み合わせの選択を自由に行うことができる点が重要である。このような組み合わせの数が少ない場合には、二次双曲線群Ｈｃ（Ｒｐ）の利用価値は低下する。しかし、既存の素数表において式（６）を満たす素数の組み合わせを多数発見することができるため、素数ｐが大きな数である場合にも式（６）を満たす組み合わせ（ｐ，ｑ）が十分多数存在するものと予想される。
【０１８４】
上記の通り、剰余環Ｚ／ｐＺ上で定義される二次双曲線Ｈｃ上の点Ｐ（ｘ）の集合ＨＣは、因子（ｘ２＋ｃｘ−ａ）がｐを法として平方非剰余である場合に成立する。これに対し、因子（ｘ２＋ｃｘ−ａ）がｐを法として平方剰余である場合の点の集合ＨＣｎ＝｛Ｐ（ｘ）｜ｘ∈Ｚ／ｐＺ，ｘ２＋ｃｘ−ａ≠０および（ｘ２＋ｃｘ−ａ）がｐを法として平方剰余である。｝について考察する。集合ＨＣｎに属する点Ｐ（ｘ）は、因子ｘ２＋ｃｘ−ａ≠０という条件を満たすので、集合ＨＣｎに属する点Ｐ（ｘ）について、群演算を定義する上式（４）や、結合法則に関する上式（１４）などの式がそのまま成立する。しかしながら、群演算が閉じていることを示す上式（１９）においては、因子（ｘ１２＋ｃｘ１−ａ），（ｘ２２＋ｃｘ２−ａ）が平方剰余である場合であって、さらに、ゼロ元に対応する（ｂ（ｂ＋ｃ）−ａ）が平方剰余である場合に限り前記群演算が閉じるので、ゼロ元に関する群の構成が集合ＨＣと集合ＨＣｎとでは異なる。集合ＨＣと集合ＨＣｎの双方に関係する共通因子（ｂ（ｂ＋ｃ）−ａ）は、平方非剰余あるいは平方剰余のいずれか一方にしか定め得ないものであるから、計算式は同じでも集合間で群構造が異なったものとなる。
【０１８５】
集合ＨＣｎの位数に関しては、上記の定理Ｔ８およびｘ２＋ｃｘ−ａ≠０（ｍｏｄ ｐ）、さらにＤ／４≠（ｘ＋ｃ／２）２の形より、任意のｘ値に対して前記２次方程式の判別式Ｄが平方剰余とならないことから、集合ＨＣｎは、Ｋｎ＝（ｐ−１）／２個の異なる個数のｘ値を有する。しかしながら、かかる事実は、ｘ値とＰ（ｘ）との１対１の対応が確認されていないので、直ちに集合ＨＣｎの位数を示すことにはならない。
【０１８６】
ここで「同値対の問題」を再考すると、上式（２２）において、因子（ｂ（ｂ＋ｃ）−ａ）が平方剰余である場合には、同値対の双方が集合ＨＣｎに属する元となり、「同値対の問題」が残存し、その結果定義された群演算を実行できない場合が生じる。したがって、前記群演算に関し、集合ＨＣｎは群としての要件を満たさない。
【０１８７】
さらに素元Ｈについて考察する。上式（５）に基づいて次式（５ａ）を導出できる。
【０１８８】
【数４３】
2008203548.tif 000045
【０１８９】
したがって、ｘ＝ｅの場合に素元Ｈも集合ＨＣｎの元である。然るに素元Ｈについては逆元が存在しないので、この点についても、集合ＨＣｎは群としての要件を満たしていない。
【０１９０】
上述の通り、二次双曲線群Ｈｃ（Ｚ／ｐＺ）は、加法演算に関して結合法則を満たし、且つ交換法則を満たすのでアーベル群（可換群）である。二次双曲線群Ｈｃ（Ｚ／ｐＺ）は、加法演算およびスカラー倍演算に関して以下の定理Ｔ１０（分配法則）を満たす。
【０１９１】
［定理Ｔ１０（分配法則）］  二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元Ｐ，Ｑおよび整数ｍについて、位数ｋが素数ｑである場合に、以下の等式が成立する。
【０１９２】
【数４４】
2008203548.tif 000046
【０１９３】
［定理Ｔ１０の証明］  結合法則と交換法則を用いて分配法則を数学的帰納法により証明する。ｍ＝１のとき、等式は正しい。任意の自然数ｍについて等式が正しいとすれば、（ｍ＋１）（Ｐ＋Ｑ）＝ｍ（Ｐ＋Ｑ）＋（Ｐ＋Ｑ）＝（ｍＰ＋ｍＱ）＋（Ｐ＋Ｑ）＝（（ｍＰ＋ｍＱ）＋Ｐ）＋Ｑ＝（Ｐ＋（ｍＰ＋ｍＱ））＋Ｑ＝（（Ｐ＋ｍＰ）＋ｍＱ）＋Ｑ＝（（１＋ｍ）Ｐ＋ｍＱ）＋Ｑ＝（ｍ＋１）Ｐ＋（ｍＱ＋Ｑ）＝（ｍ＋１）Ｐ＋（ｍ＋１）Ｑ、である。故に、ｍ＋１についても等式は正しい。
【０１９４】
位数ｋが合成数である場合には、「自然数ｍについて等式が正しい」という仮定が成立しない。これは、位数ｋが合成数である場合に、ＰとＱとが、位数ｋの異なる約数を位数とする生成群の元である場合が生じ得るからである。位数ｋが素数ｑである場合には、かかる場合が起こらない。また、明らかにｍが負の整数値である場合にも上式は成立する。さらに、ｍ＝０の場合にも上式は成立すると考えることができる。この場合、ｍＰ＝０Ｐ＝Ｏ、である。したがって、整数ｍにつき上記等式が成立する。［定理Ｔ１０の証明終わり］
スカラー倍演算の表現は、群の加法演算を表す記号「＋」を省略表示するものであるから、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元同士の積（たとえば、Ｐ×Ｑ）およびその逆元を定義するものではない点に注意すべきである。スカラー倍演算についての単位元は「１」の係数である。ここで、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の任意の元である点Ｐおよび位数ｋについて、ｋＰ＝Ｏ、すなわち、Ｐ＋（ｋ−１）Ｐ＝Ｏ、が成立する（ここで、Ｏはゼロ元）。位数ｋは曲線パラメータに依存しない固定値（＝（ｐ−１）／２＋１）であるから、点Ｐの逆元として点（ｋ−１）Ｐ＝（（ｐ−１）／２）Ｐが常に存在する。  
【０１９５】
暗号処理では、所定の生成元Ｇをベースポイントとして定め、当該ベースポイントＧにスカラー倍演算を施して得られる点を平文データに対応させる。それゆえ、生成元Ｇに基づいた生成群の構造は重要である。以下、生成群の構造について詳説する。
【０１９６】
二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元である点Ｐ（ｘ）をベースポイントＧとし、点Ｐ（ｘ）に基づいて得られる生成群をＱ［ｘ］＝｛ｍＰ（ｘ）｜Ｐ（ｘ）∈Ｈｃ（Ｚ／ｐＺ），ｍ∈Ｚ／ｋｘＺ，ｋｘはｋｘＰ＝Ｏを満たす最小の正整数｝と定義する。生成群Ｑ［ｘ］は、スカラー倍演算および加法演算に関して群を構成する。事実、正整数ｍ，ｎに対し、（ｎ＋ｍ）Ｐ（ｘ）＝ｎＰ（ｘ）＋ｍＰ（ｘ）∈Ｈｃ（Ｚ／ｐＺ）であるから、集合Ｑ［ｘ］はスカラー倍演算および加法演算に関して閉じている。また、「０」のスカラー係数について０Ｐ＝Ｏ（Ｏはゼロ元）であり、点Ｐの逆元は（−１）Ｐ＝−Ｐである。
【０１９７】
さらに、生成群Ｑ［ｘ］は、スカラー積演算に関して「環」を構成する。これは、スカラー係数について位数ｑを法とする剰余値が同一になるので、剰余環Ｚ／ｑＺと同型になるからである。スカラー積演算は、スカラー係数ｍとスカラー係数ｎとの積を意味し、その演算記号は「・」で表すものとする。（ｍ・ｎ）Ｐ＝ｎ（ｍＰ）∈Ｈｃ（Ｚ／ｐＺ）であり、集合Ｑ［ｘ］はスカラー積演算に関して閉じている。また、「１」のスカラー係数について１Ｐ＝Ｐである。
【０１９８】
上述の通り、２つの生成群Ｑ［ｘ１］，Ｑ［ｘ２］が互いに異なる生成元Ｐ（ｘ１），Ｐ（ｘ２）から生成され、同じ位数ｑを有し且つ同じ点集合からなる場合、これら２つの生成群は互いに共役である。Ｐ（ｘ２）＝（−１）Ｐ（ｘ１）すなわちＰ（ｘ２）がＰ（ｘ１）の逆元であれば、（ｑ−ｍ）Ｐ（ｘ２）＝（ｑ−ｍ）（（−１）Ｐ（ｘ１））＝ｍＰ（ｘ１）、であるので、図５に示されるＱ［１］，Ｑ［９］のように、生成群Ｑ［ｘ２］と生成群Ｑ［ｘ１］とは互いに逆の順序で配列された点集合を有する。
【０１９９】
生成群Ｑ［ｘ］については、以下に説明する定理Ｔ１１〜定理Ｔ１７が成立する。
【０２００】
［定理Ｔ１１］  二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元である点Ｐ（ｘ）より生成群Ｑ［ｘ］が生成され、生成群Ｑ［ｘ］の元である点Ｐ（ｙ）＝ｍＰ（ｘ）（ここで、ｍ∈Ｚ／ｋｘＺ，ｍ≠１）よりさらに生成群Ｑ［ｙ］が生成されるとき、生成群Ｑ［ｘ］の位数ｋｘと生成群Ｑ［ｙ］の位数ｋｙについて、ｋｙ≦ｋｘ、との関係が成立する。
【０２０１】
［定理Ｔ１１の証明］  生成群Ｑ［ｙ］の任意の元として、Ｐ（ｚ）＝ｎＰ（ｙ）との式を満たす点Ｐ（ｚ）が存在し、この式から、Ｐ（ｚ）＝（ｎ・ｍ）Ｐ（ｘ）が導出されるので、点Ｐ（ｚ）は点Ｐ（ｘ）から生成され得る。Ｐ（ｚ）は生成群Ｑ［ｙ］の任意の元であるから、生成群Ｑ［ｙ］の全ての元が生成群Ｑ［ｘ］に含まれる。すなわち、Ｑ［ｘ］⊇Ｑ［ｙ］、との関係が成立する。したがって、常に、ｋｙ≦ｋｘ、との関係が成立する。［定理Ｔ１１の証明終わり］
［定理Ｔ１２］  二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元である点Ｐ（ｘ）より生成群Ｑ［ｘ］が生成され、生成群Ｑ［ｘ］の任意の元である点Ｐ（ｙ）＝ｍＰ（ｘ）よりさらに生成群Ｑ［ｙ］が生成されるとき、生成群Ｑ［ｘ］の位数ｋｘとＱ［ｙ］の位数ｋｙについて、ｍ・ｋｙは位数ｋｘの倍数である。
【０２０２】
［定理Ｔ１２の証明］  ｋｙＰ（ｙ）＝Ｏ（Ｏ：ゼロ元）であるから、（ｍ・ｋｙ）Ｐ（ｘ）＝Ｏである。したがって、少なくとも、ｍ・ｋｙは位数ｋｘの倍数である。［定理Ｔ１２の証明終わり］
［定理Ｔ１３］  二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元である点Ｐ（ｘ）より生成群Ｑ［ｘ］が生成され、生成群Ｑ［ｘ］の任意の元である点Ｐ（ｙ）＝ｍＰ（ｘ）よりさらに生成群Ｑ［ｙ］が生成されるとき、スカラー係数ｍと位数ｋｘが互いに素（すなわち、ＧＣＤ（ｍ，ｋｘ）＝１）であれば、生成群Ｑ［ｙ］の位数ｋｙは、生成群Ｑ［ｘ］の位数ｋｘと等しい。なお、ＧＣＤ（ｍ，ｋｘ）はｍとｋｘの最大公約数を意味する。
【０２０３】
［定理Ｔ１３の証明］  定理Ｔ１２により、ｍ・ｋｙ＝ｎ・ｋｘ、との式が成立し得る。ＧＣＤ（ｍ，ｋｘ）＝１であるから、スカラー係数ｍの素因数は全てｎに存在し、ｎはｍで割り切れる。故に、ｋｙ＝ｎ’・ｋｘ。然るに定理Ｔ１１により、ｋｙ≦ｋｘであるから、ｎ’＝１である。他方、ＧＣＤ（ｍ，ｋｘ）＝１であるから、位数ｋｘの素因数は全てｋｙに存在し、ｋｙはｋｘで割り切れる。故に、ｋｙ＝ｎ’・ｋｘ。然るに定理Ｔ１１により、ｋｙ≦ｋｘであるから、ｎ’＝１である。したがって、生成群Ｑ［ｙ］の位数ｋｙは生成群Ｑ［ｘ］の位数ｋｘに等しい。［定理Ｔ１３の証明終わり］
実際、二次双曲線群Ｈｃ（Ｚ／２３Ｚ）（ここで、ａ＝７，ｂ＝２，ｃ＝０）について、点Ｐ（８）（＝１Ｐ（８）），Ｐ（１６）（＝１１Ｐ（８）），Ｐ（２１）（＝７Ｐ（８）），Ｐ（２２）（＝５Ｐ（８））は、それぞれ、ｍ＝１，１１，７，５の位置に対応している。これらの点Ｐ（８），Ｐ（１６），Ｐ（２１），Ｐ（２２）はＧＣＤ（ｍ，ｋ８）＝１を満たし、図５に示されるようにこれらの点に基づいた生成群Ｑ［８］，Ｑ［１６］，Ｑ［２１］，Ｑ［２２］の位数ｋ８，ｋ１６，ｋ２１，ｋ２２は１２である。
【０２０４】
［定理Ｔ１４］  二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元である点Ｐ（ｘ）より生成群Ｑ［ｘ］が生成され、生成群Ｑ［ｘ］の任意の元である点Ｐ（ｙ）＝ｍＰ（ｘ）よりさらに生成群Ｑ［ｙ］が生成されるとき、スカラー係数ｍと位数ｋｘが互いに素（すなわち、ＧＣＤ（ｍ，ｋｘ）＝１）であれば、生成群Ｑ［ｘ］，Ｑ［ｙ］は互いに共役である。またこのような共役関係にある生成群の個数はφ（ｋｘ）である。ここで、φ（ｋｘ）は、１〜ｋｘまでの正整数のうちｋｘと互いに素なものの個数と定義され、オイラーのφ関数（Euler's Phi function）と呼ばれている。
【０２０５】
［定理Ｔ１４の証明］  生成群Ｑ［ｘ］，Ｑ［ｙ］が同じ点集合からなることを示したい。定理Ｔ１３により、生成群Ｑ［ｙ］の位数ｋｙは生成群Ｑ［ｘ］の位数ｋｘと等しい（すなわち、ｋｙ＝ｋｘ）。いま、Ｑ［ｙ］の元として、点Ｐ（ｚ１）＝ｎ１Ｐ（ｙ）と点Ｐ（ｚ２）＝ｎ２Ｐ（ｙ）（ここで、ｎ１≠ｎ２（ｍｏｄ ｋｘ））とが存在するものとする。題意よりＧＣＤ（ｍ，ｋｘ）＝１であるから、ｍ１≡ｍ・ｎ１（ｍｏｄ ｋｘ）、ｍ２≡ｍ・ｎ２（ｍｏｄ ｋｘ）およびｍ１≠ｍ２という関係を満たす正整数ｍ１，ｍ２が存在する。よって、生成群Ｑ［ｘ］の元としてｍ１Ｐ（ｘ）とｍ２Ｐ（ｘ）という２点が存在し、ｍ１Ｐ（ｘ）≠ｍ２Ｐ（ｘ）が成立する。したがって、生成群Ｑ［ｙ］の元である２点Ｐ（ｚ１），Ｐ（ｚ２）が異なれば、生成群Ｑ［ｘ］の元である２点ｍ１Ｐ（ｘ），ｍ２Ｐ（ｘ）も異なる。故に、生成群Ｑ［ｙ］の元と生成群Ｑ［ｘ］の元との間に一対一の対応が成立する。また、生成群Ｑ［ｙ］の任意の元である点Ｐ（ｙ）＝ｍＰ（ｘ）は生成群Ｑ［ｘ］に含まれる。したがって、生成群Ｑ［ｘ］，Ｑ［ｙ］は互いに共役である。また、ＧＣＤ（ｍ，ｋｘ）＝１を満たすｋｘの値以下のｍの個数は、オイラーのφ関数の定義により、φ（ｋｘ）である。［定理Ｔ１４の証明終わり］
［定理Ｔ１５］  二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元である点Ｐ（ｘ）より生成群Ｑ［ｘ］が生成され、生成群Ｑ［ｘ］の任意の元である点Ｐ（ｙ）＝ｍＰ（ｘ）よりさらに生成群Ｑ［ｙ］が生成されるとき、生成群Ｑ［ｙ］の位数ｋｙは、生成群Ｑ［ｘ］の位数ｋｘの約数である。特に、ＧＣＤ（ｍ，ｋｘ）＝ｇであれば、ｋｘ＝ｇ・ｋｙ、との関係が成立する。
【０２０６】
［定理Ｔ１５の証明］  定理Ｔ１２により、ｍ・ｋｙ＝ｎ・ｋｘ、との式が成立する。ＧＣＤ（ｍ，ｋｘ）＝ｇであれば、ｇ・ｍ’＝ｍ、且つ、ｇ・ｋｘ’＝ｋｘ、を満たすｍ’，ｋｘ’が存在する。故に、ｍ’・ｋｙ＝ｎ・ｋｘ’、且つ、ＧＣＤ（ｍ’，ｋｘ’）＝１。
【０２０７】
Ｐ（ｚ）＝ｇＰ（ｘ）より生成される生成群Ｑ（ｚ）の位数ｋｚについては、ｋｘＰ（ｘ）＝（ｇ・ｋｘ’）Ｐ（ｘ）＝ｋｘ’（ｇＰ（ｘ））＝ｋｘ’Ｐ（ｚ）。また、ｋｘＰ（ｘ）＝Ｏ（Ｏ：ゼロ元）であるから、ｋｘ’Ｐ（ｚ）＝Ｏ。したがって、ｋｘ’は位数ｋｚの倍数であり、ｋｚ≦ｋｘ’。
【０２０８】
ところが、Ｐ（ｙ）＝ｍ’（ｇＰ（ｘ））＝ｍ’Ｐ（ｚ）であり、且つ、Ｑ［ｙ］はＱ［ｚ］の元である点Ｐ（ｚ）から生成されるので、定理Ｔ１１より、ｋｙ≦ｋｚであり、上記ｋｚ≦ｋｘ’の関係から少なくともｋｙ≦ｋｘ’である。
【０２０９】
以上より、生成群Ｑ［ｘ］の元である点Ｐ（ｚ）＝ｇＰ（ｘ）につき、定理Ｔ１３を適用することができる。すなわち、ｍ’・ｋｙ＝ｎ・ｋｘ’、且つ、ＧＣＤ（ｍ’，ｋｘ’）＝１の関係において、ｎがｍ’で割り切れるならば、ｋｙ＝ｎ’・ｋｘ’であり、ｎ’＝１。したがって、ｋｘ＝ｇ・ｋｙ。逆に、ｋｙがｋｘ’で割り切れるならば、ｋｙ＝ｎ’・ｋｘ’であり、ｎ’＝１。したがって、ｋｘ＝ｇ・ｋｙ。［定理Ｔ１５の証明終わり］
実際、二次双曲線群Ｈｃ（Ｚ／２３Ｚ）（ここで、ａ＝７，ｂ＝２，ｃ＝０）において、点Ｐ（８）より生成された生成群Ｑ［８］の位数は、ｋ８＝１２。Ｑ［８］の元は、図５に示されるように、Ｐ（８）（＝１Ｐ（８）），Ｐ（１）（＝２Ｐ（８）），Ｐ（１２）（＝３Ｐ（８）），Ｐ（１１）（＝４Ｐ（８）），Ｐ（２２）（＝５Ｐ（８）），Ｐ（１５）（＝６Ｐ（８）），Ｐ（２１）（＝７Ｐ（８）），Ｐ（７）（＝８Ｐ（８）），Ｐ（１４）（＝９Ｐ（８）），Ｐ（９）（＝１０Ｐ（８）），Ｐ（１６）（＝１１Ｐ（８）），Ｐ（２）（＝１２Ｐ（８））、である。ｇｍ＝ＧＣＤ（ｍ，ｋ８＝１２）の値は、ｇ１＝１，ｇ２＝２，ｇ３＝３，ｇ４＝４，ｇ５＝１，ｇ６＝６，ｇ７＝１，ｇ８＝４，ｇ９＝３，ｇ１０＝２，ｇ１１＝１，ｇ１２＝１２。一方、Ｐ（ｙ）＝ｍＰ（８）（ｍ∈Ｚ／１２Ｚ，ｍ≠１）から生成される生成群Ｑ［ｙ］の位数ｋｙは、図５に示されるように、ｋ１＝６，ｋ１２＝４，ｋ１１＝３，ｋ２２＝１２，ｋ１５＝２，ｋ２１＝１２，ｋ７＝３，ｋ１４＝４，ｋ９＝６，ｋ１６＝１２，ｋ２＝１。したがって、常に、ｋ８＝ｇｍ・ｋｙ、の関係が成立している。
【０２１０】
二次双曲線群Ｈｃ（Ｚ／ｐＺ）が剰余環Ｚ／ｍＺと決定的に異なる事実がある。これは、剰余環Ｚ／ｍＺでは、φ（ｍ）は、その群である既約剰余類（Ｚ／ｍＺ）＊の「位数」を表すものに過ぎないが、二次双曲線群Ｈｃ（Ｚ／ｐＺ）では、位数ｋの約数ｋｘにつき、φ（ｋｘ）は、位数ｋｘを持つ「生成群の個数」を表す、という事実である。この事実は、二次双曲線群Ｈｃ（Ｚ／ｐＺ）が上式（３）による離散対数問題に基づいた加法演算を有し、そのうえで定義されるスカラー倍演算を有するのに対し、剰余環Ｚ／ｍＺが整数剰余についての単純な加法演算を有するに過ぎないことの違いを表している。二次双曲線群Ｈｃ（Ｚ／ｐＺ）の生成群の個数φ（ｋｘ）は剰余環Ｚ／ｋｘＺの位数φ（ｋｘ）と一対一に対応する。
【０２１１】
上述の如く、安全性の向上のため、また、暗号化されるべき平文データのビット数を多くするために、ベースポイントから得られる生成群の位数はできるだけ大きな素因数を含むように選択されることが望ましい。二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋが奇素数ｑであるときは、次の定理Ｔ１６が成立する。
【０２１２】
［定理Ｔ１６］  二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋが奇素数ｑであるとき、二次双曲線群Ｈｃ（Ｚ／ｐＺ）のゼロ元以外の任意の元である点Ｐ（ｘ）をベースポイントとして生成される生成群Ｑ［ｘ］は位数ｑを有し、当該生成された生成群は互いに共役である。
【０２１３】
［定理Ｔ１６の証明］  定理Ｔ１５により、生成群Ｑ［ｘ］の任意の元である点Ｐ（ｙ）＝ｍＰ（ｘ）により生成された生成群Ｑ［ｙ］につき、Ｑ［ｙ］の位数ｋｙはＱ［ｘ］の位数ｋｘの約数である。また、ＧＣＤ（ｍ，ｋｘ）＝ｇであれば、ｋｘ＝ｇ・ｋｙ。したがって、位数ｋ＝ｋｘが奇素数ｑであるとき、ｇは１またはｑの値を持つので、生成群Ｑ［ｙ］の位数ｋｙもｑまたは１の値を持たなければならない。故に、位数ｑの生成群Ｑ［ｘ］の個数は、φ（ｑ）＝ｑ−１個であり、１個のゼロ元が存在する。
【０２１４】
また、定理Ｔ１４において、ｑ以下の正整数ｍにつきＧＣＤ（ｍ，ｑ）＝１であるから、生成群Ｑ［ｘ］の元であるＰ（ｙ）（＝ｍＰ（ｘ））を生成元とする生成群Ｑ［ｙ］は、いずれも、生成群Ｑ［ｘ］と共役である。したがって、上記ｑ−１個の生成群は互いに共役である。［定理Ｔ１６の証明終わり］
定理Ｔ１６は、ベースポイントの選択の際に位数ｋを素数ｑに選択するための簡便な方法を提供する。たとえば、ｐ＝５４１の場合の位数は、上式（６）によりｋ＝２７１であり、これらｐ，ｋは奇素数である。また、次の定理Ｔ１６の２が成立する。
【０２１５】
［定理Ｔ１６の２］  二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋが奇素数ｑであるとき、二次双曲線群Ｈｃ（Ｚ／ｐＺ）のゼロ元以外の任意の元である点Ｐ（ｘ）に対し、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の任意の元である点Ｐ（ｙ）を、Ｐ（ｙ）＝ｍＰ（ｘ）（ｍは整数）の形により求めることができる。
【０２１６】
［定理Ｔ１６の２の証明］  仮に点Ｐ（ｙ）が、Ｐ（ｙ）＝ｍＰ（ｘ）（ｍは整数）との関係を満たさないとすれば、点Ｐ（ｘ）による生成群Ｑ［ｘ］の中に点Ｐ（ｙ）は含まれない。然るに定理Ｔ１６により、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋが奇素数ｑであるので、ゼロ元を除き、点Ｐ（ｙ）による生成群Ｑ［ｙ］と点Ｐ（ｘ）による生成群Ｑ［ｘ］とは共役である。したがって、生成群Ｑ［ｘ］の中に点Ｐ（ｙ）は含まれないとする仮定は矛盾する。なお、ｍ＝０とすれば、ゼロ元もＰ（ｙ）＝ｍＰ（ｘ）の形を有する。［定理Ｔ１６の２の証明終わり］
定理Ｔ１６の２は、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋが奇素数ｑであるときは、作業鍵Ｙを上式（３ａ）に従って高速指数計算する際に生じるｍＰ（ｘ）の形を有する点が、どの生成群の点であるか区別できないことを意味している。したがって、計算の過程で生じたｍＰ（ｘ）の形を有する点を他の目的で使う場合でも、点Ｐ（ｘ）との関係で支障が出る場合は殆どないと考えられる。
【０２１７】
二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋが奇素数ｑであれば、上式（６）により、ｑ＝（ｐ−１）／２＋１、であるから、ｐ＝２（ｑ−１）＋１。故に、奇素数ｐは、ｐ＝４ｍ＋１（ここで、ｍは正整数）、の型を有する素数でなければならない。また、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋが奇素数ｑであれば、二次双曲線群Ｈｃ（Ｚ／ｐＺ）は、上記の偶単位元Ｉを要素として含まない。なぜならば、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の任意の元ＲについてｋＲ＝Ｏが成立するのに対し、ｋ＝２ｎ＋１（ここで、ｎは正整数）とするとき、ｋＩ＝ｎ（２Ｉ）＋Ｉ＝Ｉとなり、これは矛盾を呈するからである。
【０２１８】
上記の通り、位数ｋが奇素数ｑである場合には、定理Ｔ１６により生成群Ｑ［ｘ］の位数ｋｘがパラメータに依らずに定まるので、ベースポイントを容易に選択することができる。上記した鍵生成装置１（図１）、暗号システム２（図７）およびデジタル署名システム３（図８）では、いずれも、二次双曲線群Ｈｃ（Ｒｐ）の元である公開鍵Ｇをベースポイントとして生成される生成群の元を用いた処理が実行されている。定理Ｔ１６によれば、安全な公開鍵を容易に選択することが可能である。一方、位数ｋが合成数である場合には、生成群の位数はパラメータに依存して変化し得るので、ベースポイントは、定理Ｔ１１〜Ｔ１５を用いて試行錯誤的に選択することができる。最大位数を持つ安全な生成群を探す手段として下記定理Ｔ１７を利用することも可能である。
【０２１９】
［定理Ｔ１７］  生成群Ｑ［ｘ］，Ｑ［ｙ］が互いに素であるとは、ゼロ元以外の共通の要素を持たないこと、すなわち、Ｑ［ｘ］∩Ｑ［ｙ］＝Ｏ（Ｏ：ゼロ元）であると定義する。生成群Ｑ［ｘ１］の生成元Ｐ（ｘ１）と生成群Ｑ［ｘ２］の生成元Ｐ（ｘ２）とが互いに素であるとき、Ｐ（ｘ３）＝Ｐ（ｘ１）＋Ｐ（ｘ２）は、生成群Ｑ［ｘ］，Ｑ［ｙ］のいずれにも含まれない。すなわち、Ｐ（ｘ１）∈Ｑ（ｘ１）およびＰ（ｘ２）∈Ｑ（ｘ２）に対して、Ｑ［ｘ１］∩Ｑ［ｘ２］＝Ｏ、であるとき、Ｐ（ｘ３）は、Ｑ［ｘ１］∪Ｑ［ｘ２］に含まれない。
【０２２０】
［定理Ｔ１７の証明］  点Ｐ（ｘ）を生成元として生成される最大位数の生成群Ｑ［ｘ］が存在する。定理Ｔ１１により、Ｐ（ｘ１）＝ｍＰ（ｘ）およびＰ（ｘ２）＝ｎＰ（ｘ）を満たす整数ｍ，ｎが存在する。このとき、Ｐ（ｘ３）＝Ｐ（ｘ１）＋Ｐ（ｘ２）＝（ｍＰ（ｘ））＋（ｎＰ（ｘ））＝（ｍ＋ｎ）Ｐ（ｘ）∈Ｑ［ｘ］。
【０２２１】
仮に、Ｐ（ｘ３）∈Ｑ［ｘ１］であり、Ｐ（ｘ３）＝ｈＰ（ｘ１）が成立するとすれば、Ｐ（ｘ３）＝ｈＰ（ｘ１）＝（ｈ・ｍ）Ｐ（ｘ）。Ｐ（ｘ３）＝（ｍ＋ｎ）Ｐ（ｘ）が成立するので、ｍ＋ｎ≡ｈ・ｍ（ｍｏｄ ｋｘ）。故に、Ｐ（ｘ２）＝ｎＰ（ｘ）＝（ｈ・ｍ−ｍ）Ｐ（ｘ）＝（ｈ−１）Ｐ（ｘ１）∈Ｑ［ｘ１］。これは、Ｑ［ｘ１］とＱ［ｘ２］とが互いに素であること（すなわち、Ｑ［ｘ１］∩Ｑ［ｘ２］＝Ｏ）に反する。したがって、Ｐ（ｘ３）はＱ［ｘ１］に含まれない。同様に、Ｐ（ｘ３）∈Ｑ［ｘ２］であり、Ｐ（ｘ３）＝ｈ’Ｐ（ｘ２）が成立するとの仮定は、Ｑ［ｘ１］とＱ［ｘ２］とが互いに素であることに反する。したがって、Ｐ（ｘ３）はＱ［ｘ２］に含まれない。［定理Ｔ１７の証明終わり］
定理Ｔ１７により、集合Ｑ［ｘ１］，Ｑ［ｘ２］が互いに素であるとき、Ｑ［ｘ１］の元とＱ［ｘ２］の元とを加算することで、集合Ｑ［ｘ１］，Ｑ［ｘ２］に含まれない元が生成され得る。たとえば、図５に示される生成群において、Ｑ［７］とＱ［１５］は互いに素である（すなわち、Ｑ［７］∩Ｑ［１５］＝Ｏ＝Ｐ（２））。このとき、Ｐ（７）＋Ｐ（１５）＝Ｐ（１）であり、点Ｐ（１）はＱ［７］，Ｑ［１５］のいずれにも含まれない。
【０２２２】
＜第２実施例＞
次に、本発明の第２実施例について説明する。図１２は、第２実施例に係る鍵ストリーム生成装置４の概略構成を示す機能ブロック図である。鍵ストリーム生成装置４は、群制御部６０、鍵設定部６１、作業鍵生成部６２、ストリーム生成部６３およびデータ攪拌部６９を有している。
【０２２３】
群制御部６０は、剰余環Ｚ／ｐＺ上で定義された二次双曲線Ｈｃの形を規定する曲線パラメータ｛ａ，ｂ，ｃ｝を設定し、当該設定された曲線パラメータをレジスタ６０ａに保持する。鍵ストリーム生成装置４の起動時には、群制御部６０は、外部から供給された初期値｛ａ０，ｂ０，ｃ０｝を曲線パラメータ｛ａ，ｂ，ｃ｝としてレジスタ６０ａに設定する。群制御部６０は、さらに、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元の１つであるベースポイントＰ（ｘ）を設定し、当該設定されたベースポイントＰ（ｘ）を表す値をレジスタ６０ａに保持する機能を有する。なお、本実施例では、鍵ストリーム生成装置４は、上述した二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元を用いて鍵ストリームを生成するが、これに限らず、上述の有限環Ｒｐ上で定義された二次双曲線群Ｈｃ（Ｒｐ）の元を用いて鍵ストリームを生成してもよい。
【０２２４】
鍵設定部６１は、スカラー係数である秘密鍵αを設定する機能を有する。鍵ストリーム生成装置４の起動時には、鍵設定部６１は、秘密鍵αを、外部から供給された初期値α０に設定する。作業鍵生成部６２は、群制御部６０から供給される曲線パラメータ｛ａ，ｂ，ｃ｝およびベースポイントＰ（ｘ）を用い、ベースポイントＰ（ｘ）を秘密鍵αでスカラー倍して作業鍵Ｙ（＝αＰ（ｘ））を生成する機能を有する。
【０２２５】
なお、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元であるベースポイントＰ（ｘ）と作業鍵Ｙは、従属変数ｙと独立変数ｘとの組を表す点（ｘ，ｙ）で特定されるものであるが、上述した通り、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の加法演算はｘ座標値のみを用いて実行できる。このため、ベースポイントＰ（ｘ）および作業鍵Ｙをそれぞれ表す値としてｘ座標値のみを生成すればよい。
【０２２６】
ストリーム生成部６３は、曲線パラメータｂ，ベースポイントＰ（ｘ），秘密鍵αおよび作業鍵Ｙのうち少なくとも作業鍵Ｙに基づいて疑似乱数系列からなる鍵ストリームＫｘを生成する。具体的には、ストリーム生成部６３は、曲線パラメータｂ，ベースポイントＰ（ｘ），秘密鍵αおよび作業鍵Ｙを独立変数とする所定の攪拌関数ＳＴ（ｂ，Ｐ，α，Ｙ）の出力を鍵ストリームＫｘとして与えるものである。作業鍵Ｙは、二次双曲線群上の離散対数問題に依る解読困難性を与えるものである。また、攪拌関数ＳＴ（ｂ，Ｐ，α，Ｙ）の機能は、作業鍵Ｙ，曲線パラメータｂ，ベースポイントＰ（ｘ）および秘密鍵αといった状態変数から鍵ストリームＫｘを生成することの他に、これら状態変数間の相関を低下させ或いは遮蔽することである。たとえば、作業鍵Ｙ（＝αＰ（ｘ））は、曲線パラメータ｛ａ，ｂ，ｃ｝を用いた群演算（すなわち加法演算）により秘密鍵αとベースポイントＰ（ｘ）から計算される。このとき、攪拌関数ＳＴは、ベースポイントＰ（ｘ），秘密鍵αおよび作業鍵Ｙの間の相関を低下させ或いは遮断する。
【０２２７】
攪拌関数ＳＴとしては、一方向関数などの非線形変換関数を使用すればよい。たとえば、単数または複数のＳボックス（S-box）や転置関数を用いて非線形変換関数を構成することができる。Ｓボックスは、米国の標準暗号規格であるＤＥＳ（Data Encryption Standard）で採用されているｎ行ｍ列（ｎ，ｍは２以上の正整数）の変換テーブルである。あるいは、公知のＲＣ４（ARCFOUR）やＳＨＡ（Secure Hash Algorithm）によるハッシュ関数を用いて非線形変換関数を構成してもよい。このような攪拌関数ＳＴは、作業鍵Ｙを秘密にする機能を有する。これは、状態変数間の依存関係を遮蔽することにより、短ビット長の作業鍵Ｙが明らかになったときに秘密鍵αが知られる危険性を低下させるためである。当該依存関係が明らかになれば、鍵ストリームの解読対象となる状態変数の有効ビット数が減少する。さらに、攪拌関数ＳＴは、新たに生成されたベースポイントＰｎと古いベースポイントとの間の相関を断つ機能をも有する。この機能を発揮するには、攪拌関数ＳＴの構造を第三者に知られないことが望ましい。
【０２２８】
鍵ストリーム生成装置４がストリーム暗号装置として動作する場合、データ攪拌部６９は、平文データ系列を入力データ系列Ｉｄとして、この入力データ系列Ｉｄと鍵ストリームＫｘである疑似乱数系列とに排他的論理和演算を施すことにより暗号データ系列である出力データ系列Ｏｄをリアルタイムに生成する。鍵ストリーム生成装置４Ａが復号装置として動作する場合には、暗号データ系列を入力データ系列Ｉｄとし、当該入力データ系列Ｉｄと鍵ストリームＫｘである疑似乱数系列とに排他的論理和演算を施すことにより復号データ系列である出力データ系列Ｏｄをリアルタイムに生成する。
【０２２９】
鍵ストリーム生成装置４はさらに群パラメータ生成部６４を有しており、この群パラメータ生成部６４には、作業鍵生成部６２およびストリーム生成部６３から、それぞれ、作業鍵Ｙおよび鍵ストリームＫｘが供給される。群パラメータ生成部６４は、作業鍵Ｙおよび鍵ストリームＫｘのうちの少なくとも一方に基づいて、曲線パラメータｂｎ、ベースポイントＰｎおよび秘密鍵αｎのうちの少なくとも１つを指定時刻毎（ラウンド毎）に新たに生成する機能を持つ。群制御部６０は、現在設定中のベースポイントＰ（ｘ）を新たに生成されたベースポイントＰｎで置換し、現在設定中の曲線パラメータｂを新たに生成された曲線パラメータｂｎで置換する。また、鍵設定部６１は、現在設定中の秘密鍵αを新たに生成された秘密鍵αｎで置換する。この結果、曲線パラメータｂ、ベースポイントＰ（ｘ）および秘密鍵αのうちの少なくとも１つの状態変数が指定時刻毎に更新される。
【０２３０】
したがって、鍵ストリーム生成装置４は、曲線パラメータｂ、ベースポイントＰ（ｘ）および秘密鍵αを状態変数とするステート・マシンとみなすことができる。鍵ストリーム生成装置４をステート・マシンとみた場合、鍵ストリーム生成装置４の内部状態は、曲線パラメータ｛ａ，ｂ，ｃ｝が指定され且つ秘密鍵αが与えられることで決定される。作業鍵Ｙを表す値は、秘密鍵αとベースポイントＰ（ｘ）とを入力変数とする関数値ではあるが、離散対数問題に依る解読困難性を考慮すれば、内部状態の１つを規定する変数して扱うことができる。この場合、鍵ストリーム生成装置４は、曲線パラメータｂ、ベースポイントＰ（ｘ）、秘密鍵αおよび作業鍵Ｙを状態変数とするステート・マシンとみなすことが可能である。このように、第２実施例に係る鍵ストリーム生成装置４は、曲線パラメータｂを変化させることで群構造を変化させるので、「演算変動型暗号（Hyper-Curve Fluctuational Operator Cypher）」あるいは「パラメータ変動型暗号（Hyper-Curve Fluctuational Parameter Cypher）」と呼ぶべき新しいタイプの暗号を実現するものである。本実施例に係る暗号を従来のストリーム暗号と比べた場合、状態変数の個数が多いので各状態変数のビット数を小さくすることができる。これは、鍵計算において、高速性を維持しつつストリーム暗号の安全性を向上させ得ることを意味している。なお、本実施例では作業鍵Ｙの個数は１個だけであるが、これに限らず、作業鍵の個数が複数個であってもよい。この場合、ストリーム暗号の安全性は若干低下することになるが、作業鍵の個数（たとえば、第１の作業鍵Ｙ１、第２の作業鍵Ｙ２、…、第Ｎの作業鍵ＹＮの個数Ｎ）を増加させることで見かけ上の状態変数のビット数を増やすことができる。
【０２３１】
上述した通り、従来の楕円曲線暗号における問題点は、従来の楕円曲線のなす群の位数が曲線パラメータに依存して変動するので、位数の計算に長時間を要することである。このため、従来の楕円曲線のなす群を用いて安全な鍵ストリームをリアルタイムに生成することは難しかった。一方、第２実施例で使用される二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋは、上式（６）に示される通り、曲線パラメータに依らずに明示的に表現することができる。このため、剰余環Ｚ／ｐＺの位数ｐが一定のもとで曲線パラメータやベースポイントを変動させても安全な位数ｋを維持しつつ群演算を実行することが可能である。また、上記定理Ｔ１６によれば、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋが奇素数ｑであれば、二次双曲線群Ｈｃ（Ｚ／ｐＺ）のゼロ元以外の任意の元である点Ｐ（ｘ）をベースポイントとして生成される生成群Ｑ［ｘ］も位数ｑを有する。よって、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋが安全な奇素数ｑに選択されていれば、ベースポイントＰ（ｘ）が更新されても、生成群Ｑ［ｘ］の位数を安全な位数ｑに維持しつつ群演算を実行することができる。したがって、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元を効率的に使用したストリーム暗号処理が可能である。
【０２３２】
図１２に示される通り、群パラメータ生成部６４は、ポイント生成部６５およびポイント検査部６６を有する。ポイント生成部６５は、作業鍵Ｙおよび鍵ストリームＫｘのうちの少なくとも一方に基づいて、ベースポイントＰｎと曲線パラメータｂｎとを指定時刻毎に新たに生成する。新たに生成されたベースポイントＰｎおよび曲線パラメータｂｎは、ポイント検査部６６を介して群制御部６０に供給される。ここで、曲線パラメータｂｎは、上述の通り、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の加法演算についての単位元（すなわち、ゼロ元）Ｏのｘ座標値を表すべき値である。
【０２３３】
ポイント検査部６６は、新たに生成されたベースポイントＰｎがゼロ元Ｏに一致するか否かを検査して当該検査結果を群制御部６０に供給する。具体的には、ポイント検査部６６は、新たに生成されたベースポイントＰｎのｘ座標値がゼロ元Ｏのｘ座標値ｂｎに一致するか否かを判定し、当該判定結果を検査結果として与えればよい。群制御部６０は、当該検査結果に基づき、ベースポイントＰｎがゼロ元Ｏに一致したときには、現在設定中のベースポイントＰ（ｘ）をＰｎで置換せず、現在設定中の曲線パラメータｂをｂｎで置換しない。
【０２３４】
ベースポイントＰｎがゼロ元Ｏに一致したとき、ポイント生成部６５は、ポイント検査部６６によりベースポイントＰｎがゼロ元Ｏに一致しないと判定されるまで、ベースポイントＰｎおよび曲線パラメータｂｎを繰り返し生成してもよい。あるいは、ポイント生成部６５は、以前に生成されたベースポイントＰｎおよび曲線パラメータｂｎを繰り返し出力してもよい。
【０２３５】
なお、本実施例では、指定時刻毎にベースポイントＰｎと曲線パラメータｂｎを同時に生成するが、これに限らず、ベースポイントＰｎを曲線パラメータｂｎとは異なる指定時刻に生成してもよい。ポイント生成部６５が或る指定時刻でベースポイントＰｎのみを生成した場合、ポイント検査部６６は、新たに生成されたベースポイントＰｎのｘ座標値が現在設定中の曲線パラメータｂと一致するか否かを検査すればよい。またポイント生成部６５が或る指定時刻で曲線パラメータｂｎのみを生成した場合には、ポイント検査部６６は、現在設定中のベースポイントＰ（ｘ）のｘ座標値が、新たに生成された曲線パラメータｂｎと一致するか否かを検査すればよい。
【０２３６】
図１３は、ポイント生成部６５の構成の一例を概略的に示すブロック図である。ポイント生成部６５は、置換テーブルメモリ６５０、読み出し制御部６５０Ｒおよびアドレス制御部６５０Ａを有する。置換テーブルメモリ６５０は、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の複数個の元を表すｘ座標値（スカラー値）を記憶している。置換テーブルメモリ６５０の記憶値ｚとしては、（ｚ２＋ｃｚ−ａ）が法ｐに関して平方非剰余であるとの条件を満たす値が選択される。
【０２３７】
読み出し制御部６５０Ｒは、作業鍵Ｙおよび鍵ストリームＫｘのうち少なくとも一方に基づいて置換テーブルメモリ６５０の記憶領域を指定する。読み出し制御部６５０Ｒは、当該指定記憶領域から読み出された記憶値ｚを、新たに生成されたベースポイントＰｎまたは曲線パラメータｂｎとして出力する。読み出し制御部６５０Ｒは、現在読み出されたｚの値が、１サイクル前に読み出されたｚの値と一致するか否かを検査する機能を有してもよい。現在読み出されたｚの値が１サイクル前に読み出されたｚの値と一致したとき、読み出し制御部６５０Ｒは、置換テーブルの記憶内容を整理させるために割り込み信号を群制御部６０に供給できる。
【０２３８】
置換テーブルメモリ６５０の記憶値ｚは、ゴム関数ｚ＝ｇｏｍ（ｘ）に従って与えることができ、変数ｘは置換テーブルメモリ６５０のアドレス値に対応する。図１４の表は、ｃ＝０，ａ＝７の場合のゴム関数ｚ＝ｇｏｍ（ｘ）の独立変数ｘと従属変数ｚを例示するものである。ゴム関数の関数値（従属変数）ｚは、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の定義域を規定する。また、関数値ｚの値は、必ず（ｚ２＋ｃｚ−ａ）が法ｐに関して平方非剰余であるとの条件を満たす。このゴム関数ｚ＝ｇｏｍ（ｘ）は、ｚ＝１，…，ｐ−１までの範囲内の各整数に対して、（ｚ２＋ｃｚ−ａ）が平方非剰余であるとの条件を満たすｚの値を１から順に数えて、変数ｘに対応させた関数である。したがって、１≦ｘ≦（ｐ−１）／２＋１に対して、１≦ｚ≦（ｐ−１）との関係が成立する。ｇｏｍ（ｘ）を「ゴム関数」と呼ぶ理由は、ｚ＝１およびｚ＝（ｐ−１）の両端の値が決まっており、その中間の値が曲線パラメータに依存して変動し得るからである。ｘの値を特定してｚ＝ｇｏｍ（ｘ）を正確に求めるには、１から昇順で、（ｚ２＋ｃｚ−ａ）につきオイラーの基準による値を計算しなければならない。この計算は大変な作業である。ｚ＝ｇｏｍ（ｘ）の中心値は、平方非剰余の条件を満たす値が１から（ｐ−１）まで均等に分布すると仮定すれば、ｚ≒２ｘである。置換テーブルメモリ６５０の容量には経済的あるいは物理的な限界があるので、そのメモリ容量に応じて、ゴム関数ｇｏｍ（ｘ）に従って計算され得るｚの値のうちの一部を置換テーブルメモリ６５０に記憶すればよい。
【０２３９】
置換テーブルメモリ６５０の機能はキャッシュメモリの機能と一見似ているように見えるが、そうではない。キャッシュメモリには、最近アクセスされたデータを優先して残す規則（たとえば、ＬＲＵ：Least Recently Used）が採用されている。しかしながら、置換テーブルメモリ６５０では、秘匿性の向上のために、最近アクセスされたベースポイントおよび曲線パラメータとは可能な限り異なるベースポイントおよび曲線パラメータが選択されるべきである。したがって、図２３のアドレス制御部６５０Ａは、置換テーブルメモリ６５０の記憶データをできるだけランダムに選択するのが好ましい。
【０２４０】
図１５は、ポイント検査部６６の概略構成の一例を示す回路図である。ポイント検査部６６は、比較器６６０、フラグレジスタ６６１および論理積ゲート６６２を有している。比較器６６０の端子Ｄ０には曲線パラメータｂｎが入力し、端子Ｄ１にはベースポイントＰｎのｘ座標値Ｐｘ＝［Ｐｎ］ｘが入力する。
【０２４１】
比較器６６０は、ベースポイントＰｎのｘ座標値Ｐｘが曲線パラメータｂｎと一致するときは、出力端子Ｑから論理値「１」に対応する高レベルの一致信号を出力する。一致信号は書込禁止信号ＩＮＨとして群制御部６０に供給される。群制御部６０は、ポイント検査部６６から書込禁止信号ＩＮＨが供給されるとき、現在設定中のベースポイントＰ（ｘ）の値と曲線パラメータｂを置換せず、そのまま使用する。一方、比較器６６０は、ベースポイントＰｎのｘ座標値Ｐｘが曲線パラメータｂｎと一致しないときは、端子Ｑから論理値「０」に対応する低レベル信号を出力する。比較器６６０の端子Ｑの出力は、フラグレジスタ６６１の入力端子Ｄと論理積ゲート６６２の一方の入力端子とに供給される。
【０２４２】
フラグレジスタ６６１は、タイミングジェネレータ（図示せず）より供給されるクロックＣＬＫに同期して動作し、クロックＣＬＫのパルスエッジ（立ち上がりエッジまたは立ち下がりエッジ）に応じて、入力端子Ｄに供給された信号をフラグ信号としてラッチする。フラグ信号は、出力端子Ｑから論理積ゲート６６２の他方の入力端子に供給される。なお、フラグレジスタ６６１は、端子ＲにリセットパルスＲｓが入力したときにはリセットされ、出力端子Ｑから低レベル信号を出力する。
【０２４３】
論理積ゲート６６２は、フラグレジスタ６６１の出力（フラグ信号）と比較器６６０の出力とに論理積演算を施して、両出力が高レベル信号のときに限り、高レベルの割り込み信号ＩＮＴを群制御部６０に供給する。両出力のうち少なくとも一方が低レベル信号のときには、論理積ゲート６６２は割り込み信号ＩＮＴを群制御部６０に供給しない。論理積ゲート６６２の一方の端子には、比較器６６０の現在の出力が供給されており、その他方の端子には、比較器６６０の１クロック周期前の出力であるフラグ信号がフラグレジスタ６６１から供給される。このため、論理積ゲート６６２は、２クロック周期に亘って比較器６６０が連続的に一致信号を出力したとき、言い換えれば、新たに生成されたベースポイントＰｎのｘ座標値Ｐｘと曲線パラメータｂｎとが２回続けて一致したときに限り、割り込み信号ＩＮＴを出力する。群制御部６０は、割り込み信号ＩＮＴが入力されると、たとえば、原因究明や置換テーブルメモリ６５０の記憶内容の整理などといった割り込みルーチンの処理を実行する。
【０２４４】
次に、図１６のフローチャートを参照しつつ秘密鍵αｎの生成手順の一例を説明する。図１２の秘密鍵生成部６７は、群制御部６０から更新命令を受けると（ステップＳ１０）、作業鍵Ｙおよび鍵ストリームＫｘを独立変数とする鍵関数ＳＫ（Ｙ，Ｋｘ）に従って鍵αｎを新たに生成する（ステップＳ２）。ここで、鍵αｎの値は、剰余環Ｚ／ｑＺの元となるように選択される（ここで、ｑは、ベースポイントから生成される生成群の位数）。鍵関数ＳＫ（Ｙ，Ｋｘ）は、疑似乱数に基づいて鍵αｎを出力する関数でもよいし、あるいは、ハッシュ関数などの一方向関数であればよい。
【０２４５】
続いて、図１２の鍵検査部６８は、生成された鍵αｎの値が閾値Ｋｔ以上であるか否かを検査する（ステップＳ１２）。鍵αｎの値が所定の閾値Ｋｔ以上であるとき、鍵αｎは秘密鍵として安全な有効ビット長を有すると判断し、鍵検査部６８は、αｎを秘密鍵として出力する（ステップＳ１４）。一方、鍵αｎが閾値Ｋｔ未満であるとき、鍵αｎは秘密鍵として安全な有効ビット長を有していないと判断し、鍵検査部６８は、鍵αｎの有効ビット長を増大して鍵αｎの値を増加させる（ステップＳ１３）。その後、ステップＳ１２以後の処理手順が実行される。閾値Ｋｔとしては、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋの半分程度の値が望ましい。
【０２４６】
図１７は、鍵検査部６８の構成の一例を概略的に示すブロック図である。この鍵検査部６８は、上位ビット検出部６８１、論理積ゲート６８２および鍵出力部６８３を有する。上位ビット検出部６８１には、秘密鍵生成部６７から鍵αｎが供給される。上位ビット検出部６８１は、鍵αｎの上位ｎビット（ｎは２以上の整数）の値が「０」であるか否かを判別することによって、鍵αｎの値が閾値Ｋｔ以上であるか否かを判定し、当該判定結果を示す判定信号を論理積ゲート６８２の一方の端子に供給する。ここで、鍵αｎの上位ｎビットの値が「０」であるとき、判定信号は高レベル信号であり、鍵αｎの上位ｎビットの値が「０」で無いときは、判定信号は低レベル信号である。
【０２４７】
秘密鍵αの更新命令が発せられているとき、論理積ゲート６８２の他方の端子には高レベルの更新信号Ｕｓが群制御部６０から供給される。よって、更新信号Ｕｓが供給されるときに限り、上位ビット検出部６８１から出力された高レベルの判定信号が論理積ゲート６８２を介して鍵出力部６８３に供給される。鍵出力部６８３は、高レベル信号が論理積ゲート６８２から供給されたとき、鍵αｎの上位ｎビットの全部または一部を所定ビットで置換することで鍵αｎの有効ビット長を増大する。この結果、安全な有効ビット長を持つ鍵αｎを鍵設定部６１に供給することができる。なお、位数ｋに対して値（ｋ―αｎ）が閾値Ｋｔ未満である場合を考慮することができ、この場合にも上位ビットの全部または一部を置換する処理方法を採用できる。
【０２４８】
上述の通り、ストリーム生成部６３（図１２）は、攪拌関数ＳＴ（ｂ，Ｙ）を用いて鍵ストリームＫｘを生成する。またアドレス制御部６５０Ａ（図１３）は、アドレス生成関数ＡＦ（ｂ，Ｙ）を用いて置換テーブルメモリ６５０の記憶領域を指定するアドレスを生成できる。図１８は、攪拌関数ＳＴ（Ｙｘ）とアドレス生成関数ＡＦ（Ｙｘ）の簡単な構成例を示す図である。攪拌関数ＳＴ（Ｙｘ）とアドレス生成関数ＡＦ（Ｙｘ）の独立変数Ｙｘは、作業鍵Ｙのｘ座標値である。
【０２４９】
図１８に示される通り、攪拌関数ＳＴ（Ｙｘ）は、排他的論理和演算子６３１と剰余演算子６３２を有しており、排他的論理和演算子６３１は、Ｋビット長（Ｋは２以上の偶整数；たとえば６４ビット）の鍵Ｋｄのうちの下位Ｋ／２ビットと作業鍵のｘ座標値Ｙｘとに排他的論理和演算を施す。剰余演算子６３２は、排他的論理和演算子６３１の出力に対してｐを法とする剰余演算を施して剰余値を算出する。この剰余値が鍵ストリームＫｘの値として出力される。
【０２５０】
一方、アドレス生成関数ＡＦ（Ｙｘ）は、排他的論理和演算子６５１と剰余演算子６５２とを有しており、排他的論理和演算子６５１は、Ｋビット長の鍵Ｋｄのうちの上位Ｋ／２ビットと鍵ストリームＹｘとに排他的論理和演算を施す。剰余演算子６５２は、排他的論理和演算子６５１の出力に対してｐを法とする剰余演算を施して剰余値ＴＡを算出する。そして、剰余値ＴＡのうちのｓビット（ｓは正整数）がベースポイント用の第１アドレスＴＡｘとして抽出され、剰余値ＴＡのうちのｒビット（ｒは正整数）がゼロ元用の第２アドレスＴＡｂとして抽出される。第１アドレスＴＡｘは、たとえば、剰余値ＴＡのうちの最下位ビット（第１番目ビット）から第ｓ番目ビットまでのｓビットで構成できる。また第２アドレスＴＡｂは、たとえば、剰余値ＴＡのうちの第（ｓ＋１）番目ビットから第（ｓ＋ｒ）番目ビットまでのｒビットで構成できる。
【０２５１】
次に、図１８に示した関数を用いて算出された数値例について説明する。図１９（Ａ）は、置換テーブルメモリ６５０に記憶されている置換テーブルの簡単な数値例を示す図である。この置換テーブルは、ベースポイント用記憶値とアドレスとの関係、並びにゼロ元用記憶値とアドレスとの関係を示すものである。図１９（Ｂ）は、図１９（Ａ）の置換テーブルを用いて各指定時刻で算出されたＰｘ，ｂ，Ｙｘ，Ｋｘの値を表す図である。ここで、Ｐｘはベースポイントのｘ座標値を、ｂはゼロ元のｘ座標値（あるいは曲線パラメータ）を、Ｙｘは作業鍵Ｙのｘ座標値を、Ｋｘは鍵ストリームを、それぞれ示している。また、第１アドレスＴＡｘおよび第２アドレスＴＡｂは、図１８のアドレス生成関数ＡＦ（Ｙｘ）を用いて計算され、鍵ストリームＫｘは、図１８の攪拌関数ＳＴ（Ｙｘ）を用いて計算された。鍵Ｋｄとしては固定値のＤＥＳ鍵（＝０ｘ１３３４５７７９９ｂｂｃｄｆｆ１；「０ｘ」は１６進表現を表すための接頭記号。）が使用された。第１アドレスＴＡｘは、剰余値ＴＡのうちの最下位ビット（第１番目ビット）から第３番目ビットまでの下位３ビットであり、第２ビットＴＡｂは、剰余値ＴＡのうちの第４番目ビットから第６番目ビットまでの３ビットである。
【０２５２】
図１９（Ｂ）を参照すると、時刻ｔ＝００のとき、ベースポイントのｘ座標値Ｐｘの初期値「５０４」と、曲線パラメータｂの初期値「１０１」とが与えられる。秘密鍵α、法ｐおよび曲線パラメータａ，ｃは一定であり、図１９（Ｂ）に示される値を持つ。ｑは、ベースポイントから生成される生成群の位数である。作業鍵生成部６２は、作業鍵Ｙのｘ座標値Ｙｘ（＝「８７２０４」）を算出する。ストリーム生成部６３は、Ｙｘの算出値「８７２０４」に基づき、図１８の攪拌関数ＳＴ（Ｙｘ）を用いて鍵ストリームＫｘ（＝「９２４５４」）を算出する。一方、図１３のアドレス制御部６５０Ａは、Ｙｘの算出値「８７２０４」に基づき、図１８のアドレス生成関数ＡＦ（Ｙｘ）を用いて第１アドレスＴＡｘ（＝「０１」）と第２アドレスＴＡｂ（＝「０１」）を算出する。第１アドレスＴＡｘの値「０１」に応じて、図１９（Ａ）のベースポイント用記憶値「５０６」が置換テーブルメモリ６５０から読み出され、次の時刻ｔ＝０１のとき、値Ｐｘはその値「５０６」に置換される。また、第２アドレスＴＡｂの値「０１」に応じて、図１９（Ａ）のゼロ元用記憶値「１０７」が置換テーブルメモリ６５０から読み出され、次の時刻ｔ＝０１のとき、値ｂはその値「１０７」に置換される。
【０２５３】
次の時刻ｔ＝０１のときは、作業鍵生成部６２は、Ｐｘとｂの値から作業鍵Ｙのｘ座標値Ｙｘ（＝「５８０９４」）を算出する。ストリーム生成部６３は、Ｙｘの算出値「５８０９４」に基づき、図１８の攪拌関数ＳＴ（Ｙｘ）を用いて鍵ストリームＫｘ（＝「６８９６」）を算出する。一方、図１３のアドレス制御部６５０Ａは、Ｋｘの算出値「６８９６」に基づき、図１８のアドレス生成関数ＡＦ（Ｙｘ）を用いて第１アドレスＴＡｘ（＝「０４」）と第２アドレスＴＡｂ（＝「０３」）を算出する。第１アドレスＴＡｘの値「０４」に応じて、図１９（Ａ）のベースポイント用記憶値「５１２」が置換テーブルメモリ６５０から読み出され、次の時刻ｔ＝０２のとき、値Ｐｘはその値「５１２」に置換される。また、第２アドレスＴＡｂの値「０３」に応じて、図１９（Ａ）のゼロ元用記憶値「１０９」が置換テーブルメモリ６５０から読み出され、次の時刻ｔ＝０２のとき、値ｂはその値「１０９」に置換される。時刻ｔ＝０２〜０９の各々についても、ｔ＝０１の場合と同様の手順が実行された。
【０２５４】
次に、鍵関数ＳＫ（Ｙｘ，ＴＡ）の構成例を図２０に示す。この鍵関数ＳＫ（Ｙｘ，ＴＡ）は、図１８に示した攪拌関数ＳＴ（Ｙｘ）およびアドレス生成関数ＡＦ（Ｙｘ）と共に使用されるものである。図２０に示される通り、鍵関数ＳＫ（Ｙｘ，ＴＡ）は、ビットシフト演算子６７１、鍵生成部６７２および剰余演算子６７３を有しており、ビットシフト演算子６７１は、剰余値ＴＡの下位ｍビット（ｍは２以上の整数）の値だけ、鍵ストリームＫｘをビットシフトして値ＤＩを生成する。剰余演算子６７２は、値ＤＩに対して位数ｑを法とした剰余演算を施して秘密鍵αｎを生成する。
【０２５５】
図２０の関数を用いて算出された数値例について説明する。図２１（Ｂ）は、図２１（Ａ）の置換テーブルを用いて各指定時刻で算出された値Ｐｘ，ｂ，α，Ｙｘ，Ｋｘを表す図である。図２１（Ａ）の置換テーブルは、図１８（Ａ）に示した置換テーブルと同じである。ここで、第１アドレスＴＡｘおよび第２アドレスＴＡｂは、図２０のアドレス生成関数ＡＦ（Ｙｘ）を用いて計算され、鍵ストリームＫｘは、図２０の攪拌関数ＳＴ（Ｙｘ）を用いて計算され、秘密鍵αは図２０の鍵関数ＳＫ（Ｙｘ，ＴＡ）を用いて計算される。鍵Ｋｄとしては固定値のＤＥＳ鍵（＝０ｘ１３３４５７７９９ｂｂｃｄｆｆ１）が使用される。第１アドレスＴＡｘは、剰余値ＴＡのうちの最下位ビット（第１番目ビット）から第３番目ビットまでの下位３ビットであり、第２アドレスＴＡｂは、剰余値ＴＡのうちの第４番目ビットから第６番目ビットまでの３ビットである。さらにビットシフト演算子６７１は、剰余値ＴＡの下位６ビットの値だけ、鍵ストリームＫｘを左ビットシフトして値ＤＩを生成する。
【０２５６】
図２１（Ａ）を参照すると、時刻ｔ＝００のとき、ベースポイントのｘ座標値Ｐｘの初期値「５０４」と、曲線パラメータｂの初期値「１０１」と、秘密鍵αの初期値「２３４５６」とが与えられる。法ｐおよび曲線パラメータａ，ｃは一定であり、図２１（Ｂ）に示される値を持つ。ｑは、ベースポイントから生成される生成群の位数である。作業鍵生成部６２は、作業鍵Ｙのｘ座標値Ｙｘ（＝「８７２０４」）を算出する。ストリーム生成部６３は、Ｙｘの算出値「８７２０４」に基づき、図２０の攪拌関数ＳＴ（Ｙｘ）を用いて鍵ストリームＫｘ（＝「９２４５４」）を算出する。一方、図１３のアドレス制御部６５０Ａは、Ｙｘの算出値「８７２０４」に基づき、図２０のアドレス生成関数ＡＦ（Ｙｘ）を用いて第１アドレスＴＡｘ（＝「０４」）と第２アドレスＴＡｂ（＝「０４」）を算出する。第１アドレスＴＡｘの値「０４」に応じて、図２１（Ａ）のベースポイント用記憶値「５１２」が置換テーブルメモリ６５０から読み出され、次の時刻ｔ＝０１のとき、値Ｐｘはその値「５１２」に置換される。また、第２アドレスＴＡｂの値「０４」に応じて、図２１（Ａ）のゼロ元用記憶値「１１３」が置換テーブルメモリ６５０から読み出され、次の時刻ｔ＝０１のとき、値ｂはその値「１１３」に置換される。さらに図１２の秘密鍵生成部６７は、図２０の鍵関数ＳＫ（Ｙｘ，ＴＡ）を用いて鍵αｎ（＝「２０５４２」）を算出する。次の時刻ｔ＝０１のとき、秘密鍵αは鍵αｎに置換される。さらに図１２の秘密鍵生成部６７は、図２０の鍵関数ＳＫ（Ｙｘ，ＴＡ）を用いて鍵αｎ（＝「１０７６２」）を算出する。次の時刻ｔ＝０１のとき、秘密鍵αは鍵αｎに置換される。
【０２５７】
次の時刻ｔ＝０１のときは、作業鍵生成部６２は、Ｐｘ，ｂおよびαの値を用いて作業鍵Ｙのｘ座標値Ｙｘ（＝「８１７５８」）を算出する。ストリーム生成部６３は、Ｙｘの算出値「８１７５８」に基づき、図２０の攪拌関数ＳＴ（Ｙｘ）を用いて鍵ストリームＫｘ（＝「１７１２７」）を算出する。一方、図１３のアドレス制御部６５０Ａは、Ｙｘの算出値「１７１２７」に基づき、図２０のアドレス生成関数ＡＦ（Ｙｘ）を用いて第１アドレスＴＡｘ（＝「０３」）と第２アドレスＴＡｂ（＝「０２」）を算出する。第１アドレスＴＡｘの値「０３」に応じて、図２１（Ａ）のベースポイント用記憶値「５０９」が置換テーブルメモリ６５０から読み出され、次の時刻ｔ＝０２のとき、値Ｐｘはその値「５０９」に置換される。また、第２アドレスＴＡｂの値「０２」に応じて、図２１（Ａ）のゼロ元用記憶値「１０８」が置換テーブルメモリ６５０から読み出され、次の時刻ｔ＝０２のとき、値ｂはその値「１０８」に置換される。時刻ｔ＝０２〜１３の各々についても、ｔ＝０１の場合と同様の手順が実行される。
【０２５８】
図２１（Ｂ）の秘密鍵αは指定時刻毎に変動するので、その秘密鍵αの値若しくは（ｑ―α）の値が小さいことがある。これらの値が閾値Ｋｔと比べて小さいと容易に作業鍵Ｙが計算できる可能性が高くなる。そこで、かかる可能性を低減するために、図１２の鍵検査部６８が使用される。
【０２５９】
図２２は、攪拌関数ＳＴ（Ｙｘ，Ｐｘ，α，ｂ）とアドレス生成関数ＡＦ（Ｙｘ）の他の構成例を示す図である。攪拌関数ＳＴ（Ｙｘ，Ｐｘ，α，ｂ）は、直列接続された排他的論理和演算子６３３，６３４，６３５と剰余演算子６３６とを有する。図２２に示される通り、演算子６３３は、Ｍビット長のベースポイントＰｘと作業鍵のｘ座標値Ｙｘとに排他的論理和演算を施し、演算子６３４は、演算子６３３の出力と秘密鍵αとに排他的論理和演算を施し、演算子６３５は、演算子６３４の出力と曲線パラメータｂとに排他的論理和演算を施す。剰余演算子６３６は、演算子６３５の出力に対して法ｐに関する剰余演算を施して鍵ストリームＫｘを生成する。
【０２６０】
一方、図２２のアドレス生成関数ＡＦ（Ｙｘ）は剰余演算子６５３を有しており、この剰余演算子６５３は、作業鍵Ｙのｘ座標値Ｙｘに対してｐを法とする剰余演算を施して剰余値ＴＡを算出する。そして、剰余値ＴＡのうちのｓビット（ｓは正整数）がベースポイント用の第１アドレスＴＡｘとして抽出され、剰余値ＴＡのうちのｒビット（ｒは正整数）がゼロ元用の第２アドレスＴＡｂとして抽出される。第１アドレスＴＡｘは、たとえば、剰余値ＴＡのうちの最下位ビット（第１番目ビット）から第ｓ番目ビットまでのｓビットで構成できる。また第２アドレスＴＡｂは、たとえば、剰余値ＴＡのうちの第（ｓ＋１）番目ビットから第（ｓ＋ｒ）番目ビットまでのｒビットで構成できる。
【０２６１】
次に、図２３は、ポイント生成部６５の構成の他の例を概略的に示すブロック図である。図２３に示される通り、ポイント生成部６５は、図１３に示した構成に加えてデータ更新部６５０Ｕを有する点に特徴がある。データ更新部６５０Ｕは、作業鍵Ｙおよび鍵ストリームＫｘのうちの少なくとも一方に基づいて二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元を生成し、置換テーブルメモリ６５０の記憶内容（置換テーブル）を当該生成された元で更新する機能を有している。
【０２６２】
置換テーブルメモリ６５０の記憶内容が固定されていると、曲線パラメータｂｎおよびベースポイントＰｎの組み合わせが同一の場合が繰り返し出現する可能性がある。このとき、秘密鍵αが一定であれば、同一の値を有する作業鍵Ｙが繰り返し出現する可能性が存在し、外部からの攻撃に対する弱点になる。データ更新部６５０Ｕは、そのような可能性を低減させるものである。
【０２６３】
図２４のフローチャートを参照しつつ、データ更新部６５０Ｕによるデータ生成手順の一例を説明する。先ず、データ更新部６５０Ｕは、群制御部６０から更新命令を受けると（ステップＳ３０）、作業鍵Ｙおよび鍵ストリームＫｘを入力変数とする関数Ｍ（Ｋｘ，Ｙ）に従ってｘの値を生成する（ステップＳ３１）。次のステップＳ３２において、データ更新部６５０Ｕは、当該生成されたｘの値が適当であるか否かを判定する。具体的には、データ更新部６５０Ｕは、当該ｘの値が現時刻のゼロ元Ｏのｘ座標値ｂと一致するか否かを判定し、当該ｘの値が現時刻のゼロ元Ｏのｘ座標値ｂと一致する場合に当該ｘの値を適当ではないと判定できる。また、上記した「素元Ｈ」のｘ座標値あるいは「偶単位元Ｉ」のｘ座標値と一致する場合に当該ｘの値を適当ではないと判定してもよい。当該ｘの値が適当でなければステップＳ３１に処理が戻り、当該ｘの値が適当であれば、ステップＳ３３に処理が移行する。
【０２６４】
ステップＳ３３では、データ更新部６５０Ｕは、オイラーの基準に従って判定値ｒを算出する。データ更新部６５０Ｕは、さらに判定値ｒに基づいて、二次双曲線関数Ｈｃの分母の２次多項式（＝ｘ２＋ｃｘ−ａ）がｐを法として平方非剰余であるか否かを判定する（ステップＳ３４）。判定値ｒが「−１」であれば、その２次多項式は平方非剰余であり、判定値ｒが「−１」でなければ、その２次多項式は平方剰余である。判定値ｒが「−１」であるとき、データ更新部６５０Ｕは当該ｘの値を出力する（ステップＳ３７）。
【０２６５】
前記ステップＳ３４で判定値ｒが「−１」ではないと判定したとき、データ更新部６５０Ｕは、当該ｘに対する同値対の値ｘｉを算出する（ステップＳ３５）。上記補題Ｌ１によれば、ｘの値について２次多項式（＝ｘ２＋ｃｘ−ａ）が平方剰余であれば、ｘｉの値について２次多項式（＝ｘｉ２＋ｃｘｉ−ａ）は必ず平方非剰余となる。さらに、データ更新部６５０Ｕは、上記ステップＳ２３と同様に、この同値対の値ｘｉが適当であるか否かを判定する（ステップＳ３６）。当該ｘｉの値が適当でなければステップＳ３１に処理が戻る。一方、当該ｘｉの値が適当であれば、ステップＳ３７に処理が移行して当該ｘｉの値が出力される（ステップＳ３７）。
【０２６６】
なお、上記のステップＳ３１〜Ｓ３６の処理は、鍵ストリームの高速生成のために作業鍵Ｙの計算と並行して行うことが望ましい。この並行計算を実現するために、鍵ストリーム生成装置４は、数値計算専用プロセッサまたはデュアルプロセッサを搭載すればよい。
【０２６７】
上記のようにデータ更新部６５０Ｕ自身が、置換テーブルメモリ６５０に記憶されるべき値を生成する処理に加えて、作業鍵生成部６２での作業鍵Ｙの計算過程で発生した値を置換テーブルメモリ６５０に記憶されるべき値として使用する処理を採用することができる。たとえば、上式（３ａ）に関して説明した通り、Ｙ＝αＰの計算には高速指数演算法を適用できる。この高速指数演算法によれば、最終的に作業鍵Ｙの計算が完了するまでに、二次双曲線群Ｈｃ（Ｚ／ｐＺ）の元を表す値が算出されるので、これらを流用することができる。作業鍵Ｙの計算過程で発生した値は、全て、二次双曲線関数Ｅｃの分母の２次多項式が法ｐに関して平方非剰余であるとの条件を満たすので、図２４のフローチャートに示したステップＳ３３，Ｓ３４の処理手順が不要であり、計算負荷が軽減するというメリットがある。
【０２６８】
データ更新部６５０Ｕは、鍵ストリーム生成装置４の起動直後の初期設定時に、置換テーブルメモリ６５０に記憶すべき値を一定個数以上生成し、当該生成された値を置換テーブルメモリ６５０に追加する、あるいは、当該生成された値で置換テーブルメモリ６５０に記憶されている初期値を置換することが望ましい。これは、置換テーブルメモリ６５０の記憶値の個数が多ければ多い程、鍵ストリームＫｘの解読困難性が高くなるからである。さらには初期設定の際に、秘密鍵αの秘匿性を高めるために、鍵ストリーム生成装置４は、所定サイクル以上の回数動作した後に、鍵ストリームＫｘを出力することが望ましい。このような初期設定時の動作は、置換テーブルメモリ６５０の記憶値の個数が少ない場合に安全な鍵ストリームＫｘを提供できるため、重要なものである。
【０２６９】
次に、置換テーブルメモリ６５０の置換テーブルの更新方法について説明する。更新方法としては、以下に説明するように、（１）ＬＵＥ（Latest Used Exchange）方式と、（２）ＬＵＡＥ（Limited Use And Exchange）方式と、がある。
【０２７０】
（１）ＬＵＥ（Latest Used Exchange）方式：  ＬＵＥ方式は、置換テーブルメモリ６５０において最近アクセスされ且つ読み出された値を優先的に置換する方式である。このＬＵＥ方式を採用することで同一アドレスの記憶データを繰り返し読み出すことが防止され、置換テーブルメモリ６５０の記憶データ量が少なくても鍵ストリームＫｘの解読困難性を向上することが可能になる。図２５は、ＬＵＥ方式による構成を概略的に示すブロック図である。図２５に示されるデータ更新部６５０Ｕは、データ生成部６５５、カレントアドレスレジスタ６５７、前アドレスレジスタ６５８およびセレクタ（マルチプレクサ：ＭＵＸ）６５９を有する。データ生成部６５５は、作業鍵Ｙおよび鍵ストリームＫｘのうちの少なくとも一方に基づいて、置換テーブルメモリ６５０に記憶されるべきデータを生成する機能を持つ。
【０２７１】
カレントアドレスレジスタ６５７と前アドレスレジスタ６５８とは直列接続されており、実質的にシフトレジストを構成している。カレントアドレスレジスタ６５７は、アドレス制御部６５０Ａから供給された読出アドレス（カレントアドレス）を保持する。置換テーブルメモリ６５０は読出アドレスで指定される記憶領域のデータを読み出し、読み出し制御部６５０Ｒは、当該読み出されたデータｂｎ，Ｐｎを出力する。前アドレスレジスタ６５８は、１サイクル前または数サイクル前にカレントアドレスレジスタ６５７から供給された読出アドレス（前アドレス）を保持する。セレクタ６５９は、カレントアドレスレジスタ６５７の出力（すなわちカレントアドレス）と、前アドレスレジスタ６５８の出力（すなわち前アドレス）とのいずれか一方を、群制御部６０から供給された選択制御信号ＳＥに応じて選択し、当該選択されたアドレスを書込アドレスとして置換テーブルメモリ６５０に供給する。置換テーブルメモリ６５０は、セレクタ６５９から供給された書込アドレスで指定される記憶領域に、データ生成部６５５から供給されたデータを書き込むこととなる。セレクタ６５９がカレントアドレスレジスタ６５７の出力を選択した場合、置換テーブルメモリ６５０から直近に読み出された記憶データを置換することができ、セレクタ６５９が前アドレスレジスタ６５８の出力を選択した場合は、置換テーブルメモリ６５０から比較的最近に読み出された記憶データを置換することができる。
【０２７２】
（２）ＬＵＡＥ（Limited Use And Exchange）方式：  ＬＵＡＥ方式は、置換テーブルメモリ６５０において所定回数読み出され使用された記憶データを優先的に置換する方式である。具体的には、データ更新部６５０Ｕは、アドレス制御部６５０Ａから供給される読出アドレスに基づいて記憶値が読み出された回数または頻度を更新し、当該回数または頻度が閾値に達した順番に当該記憶値を新たなデータに置換する機能を持つことができる。
【０２７３】
上記ＬＵＥ方式またはＬＵＡＥ方式に従って置換テーブルの内容を更新しつつ、データ更新部６５０Ｕは、一定規則に従って、置換テーブルメモリ６５０の記憶値のアドレスを定期的に変更して記憶値を配置変更することが望ましい。これにより、置換テーブルの内容の秘匿性を高めて鍵ストリームＫｘの解読困難性を向上させることが可能になる。
【０２７４】
上記ＬＵＥ方式に従って算出された数値例を説明する。図２６（Ａ），（Ｂ）は、ＬＵＥ方式に従って置換テーブルが更新される様子を示す図である。図２６（Ａ）の置換テーブルは、時刻ｔ＝００の初期設定時の記憶内容を示すものであり、図２６（Ｂ）の置換テーブルは、１１サイクル経過後の時刻ｔ＝１１の置換テーブルメモリ６５０の記憶内容を示すものである。図２６に示されるように、複数回更新されたベースポイント用記憶値もあれば、１回も使用されなかった値（たとえば、第１アドレスＴＡｘ＝「０４」に対応する値「５１２」）もある。置換テーブルの記憶値の個数は少ないため、若干、第１アドレスＴＡｘの出現値に若干の偏りが確認された。
【０２７５】
図２７は、図２６（Ａ），（Ｂ）に示されるが如く記憶内容が更新される置換テーブルを用いて各指定時刻で算出されたＰｘ，ｂ，Ｙｘ，Ｋｘの値を表す図である。これらＰｘ，ｂ，Ｙｘ，Ｋｘの値は、図１８に示した関数を用いて算出された。ここで、第１アドレスＴＡｘおよび第２アドレスＴＡｂは、図１８のアドレス生成関数ＡＦ（Ｙｘ）を用いて計算され、鍵ストリームＫｘは、図１８の攪拌関数ＳＴ（Ｙｘ）を用いて計算された。鍵Ｋｄとしては固定値のＤＥＳ鍵（＝０ｘ１３３４５７７９９ｂｂｃｄｆｆ１）が使用された。第１アドレスＴＡｘは、剰余値ＴＡのうちの最下位ビット（第１番目ビット）から第３番目ビットまでの下位３ビットであり、第２アドレスＴＡｂは、剰余値ＴＡのうちの第４番目ビットから第６番目ビットまでの３ビットである。図２７に示される通り、時刻ｔ＝００のとき、ベースポイントのｘ座標値Ｐｘの初期値「５０４」と、曲線パラメータｂの初期値「１０１」とが与えられる。秘密鍵α、法ｐおよび曲線パラメータａ，ｃは一定であり、図２７に示される値を持つ。鍵ストリームＫｘは図１２のデータ攪拌部６９に供給され、入力データ系列Ｉｄから出力データ系列Ｏｄがリアルタイムに生成される。
【０２７６】
図２８（Ａ），（Ｂ）は、ＬＵＥ方式に従って置換テーブルが更新される様子を示す図である。図２８（Ａ）の置換テーブルは、時刻ｔ＝００の初期設定時の記憶内容を示すものであり、図２８（Ｂ）の置換テーブルは、１１サイクル経過後の時刻ｔ＝１１のときの記憶内容を示すものである。図２８（Ｂ）に示されるように、複数回更新されたベースポイント用記憶値もあれば、１回も使用されなかった値（たとえば、第１アドレスＴＡｘ＝「００」に対応する値「５０４」および第１アドレスＴＡｘ＝「０６」に対応する値「５１５」）もある。ここでも置換テーブルの記憶値の個数は少ないため、若干、第１アドレスＴＡｘの出現値に若干の偏りが確認された。
【０２７７】
図２９は、図２８（Ａ），（Ｂ）に示されるが如く記憶内容が更新される置換テーブルを用いて各指定時刻で算出されたＰｘ，ｂ，α，Ｙｘ，Ｋｘの値を表す図である。これらＰｘ，ｂ，α，Ｙｘ，Ｋｘの値は、図２０に示した関数を用いて算出された。ここで、第１アドレスＴＡｘおよび第２アドレスＴＡｂは、図２０のアドレス生成関数ＡＦ（Ｙｘ）を用いて計算され、鍵ストリームＫｘは、図２０の攪拌関数ＳＴ（Ｙｘ）を用いて計算され、秘密鍵αは図２０の鍵関数ＳＫ（Ｙｘ，ＴＡ）を用いて計算される。鍵Ｋｄとしては固定値のＤＥＳ鍵（＝０ｘ１３３４５７７９９ｂｂｃｄｆｆ１）が使用される。第１アドレスＴＡｘは、剰余値ＴＡのうちの最下位ビット（第１番目ビット）から第３番目ビットまでの下位３ビットであり、第２アドレスＴＡｂは、剰余値ＴＡのうちの第４番目ビットから第６番目ビットまでの３ビットである。さらにビットシフト演算子６７１は、剰余値ＴＡの下位６ビットの値だけ、鍵ストリームＫｘをビットシフトして値ＤＩを生成する。図２９に示される通り、時刻ｔ＝００のとき、ベースポイントのｘ座標値Ｐｘの初期値「５０４」と、曲線パラメータｂの初期値「１０１」とが与えられる。法ｐおよび曲線パラメータａ，ｃは一定であり、図２９に示される値を持つ。ｑは、ベースポイントから生成される生成群の位数である。鍵ストリームＫｘは図１２のデータ攪拌部６９に供給され、入力データ系列Ｉｄから出力データ系列Ｏｄがリアルタイムに生成される。
【０２７８】
図３０は、置換テーブルに対するアクセス状況を表す図である。図３０に示される表には、図２７に示したように秘密鍵αが変動しない一定である場合と、図２９に示したように秘密鍵αが変動する場合とにおいて、各アドレスで指定される記憶領域の値の利用状況が、時刻ｔ＝１００における第１アドレスＴＡｘの使用回数により示されている。この表によれば、秘密鍵の変動が有る場合の方が若干テーブルアドレスの使用回数に偏りが認められるが、秘密鍵の変動がない場合と秘密鍵の変動がある場合との双方で置換テーブルの各テーブル値は１０回前後使用されており、置換テーブルの利用が均一化されている状況が理解できる。それ故、置換テーブルの大きさが制限されている場合でも、比較的急速に置換テーブルの値の乱数化が進行するので、擬似乱数に近い性質の鍵ストリームを生成することができる。したがって、初期設定の際に、秘密鍵αの秘匿性を高めるために、鍵ストリーム生成装置４は、所定サイクル以上の回数動作した後に、鍵ストリームＫｘを出力することが望ましい。
【図面の簡単な説明】
【０２７９】
【図１】本発明の第１実施例に係る鍵生成装置の概略構成を示す機能ブロック図である。
【図２】二次双曲線の一例を概略的に示すグラフである。
【図３】二次双曲線群Ｈｃ（Ｚ／２３Ｚ）の元を例示する図である。
【図４】平方非剰余の条件を満たす二次双曲線群Ｈｃ（Ｚ／ｐＺ）の位数ｋの計算結果を示す図である。
【図５】生成群Ｑ［ｘ］を例示する図である。
【図６】図５に示した生成群Ｑ［ｘ］の包含関係を示す概念図である。
【図７】第１実施例に係る暗号システムの概略構成を示す機能ブロック図である。
【図８】第１実施例に係るデジタル署名システムの概略構成を示す図である。
【図９】定理Ｔ８の証明結果を示す図である。
【図１０】定理Ｔ８に関する簡単な計算結果の一例を示す図である。
【図１１】定理Ｔ８に関する簡単な計算結果の他の例を示す図である。
【図１２】本発明の第２実施例に係る鍵ストリーム生成装置の概略構成を示す機能ブロック図である。
【図１３】第２実施例に係るポイント生成部の概略構成を示すブロック図である。
【図１４】ゴム関数の出力例を例示する図である。
【図１５】第２実施例に係るポイント検査部の構成の一例を概略的に示す回路図である。
【図１６】秘密鍵の生成手順の一例を示すフローチャートである。
【図１７】第２実施例に係る鍵検査部の構成の一例を概略的に示すブロック図である。
【図１８】各種関数の構成の一例を示す図である。
【図１９】置換テーブルの簡単な数値例を示す図である。
【図２０】各種関数の構成の他の例を示す図である。
【図２１】図２０に示される関数を用いて算出された数値例を示す図である。
【図２２】各種関数の構成のさらに他の例を示す図である。
【図２３】ポイント生成部の構成の他の例を概略的に示すブロック図である。
【図２４】データ生成手順の一例を示すフローチャートである。
【図２５】ＬＵＥ方式によるデータ更新部の構成の一例を概略的に示す図である。
【図２６】置換テーブルの内容が更新される様子を示す図である。
【図２７】数値例を示す図である。
【図２８】置換テーブルの内容が更新される様子を示す図である。
【図２９】数値例を示す図である。
【図３０】置換テーブルに対するアクセス状況を表す図である。
【符号の説明】
【０２８０】
１  鍵生成装置
２  暗号システム
３  デジタル署名システム
４  鍵ストリーム生成装置
１０  乱数発生器
１１  鍵設定部
１２  曲線パラメータ設定部
１３  鍵生成部
２０  暗号装置
２２  鍵生成部
２３  係数設定部
２４  暗号化部
３０  復号装置
３１  復号部
４０  署名生成装置
４２  鍵生成部
４３  係数設定部
４４  ダイジェスト生成部
４５  暗号化部
５０  署名検証装置
５２  署名検証部
５３  ダイジェスト生成部
６０  群制御部
６１  鍵設定部
６２  作業鍵生成部
６３  ストリーム生成部
６４  群パラメータ生成部
６５  ポイント生成部
６６  ポイント検査部
６７  秘密鍵生成部
６８  鍵検査部
６９  データ攪拌部
【図１】
2008203548.tif 000049
【図２】
2008203548.tif 000050
【図３】
2008203548.tif 000051
【図４】
2008203548.tif 000052
【図５】
2008203548.tif 000053
【図６】
2008203548.tif 000054
【図７】
2008203548.tif 000055
【図８】
2008203548.tif 000056
【図９】
2008203548.tif 000057
【図１０】
2008203548.tif 000058
【図１１】
2008203548.tif 000059
【図１２】
2008203548.tif 000060
【図１３】
2008203548.tif 000061
【図１４】
2008203548.tif 000062
【図１５】
2008203548.tif 000063
【図１６】
2008203548.tif 000064
【図１７】
2008203548.tif 000065
【図１８】
2008203548.tif 000066
【図１９】
2008203548.tif 000067
【図２０】
2008203548.tif 000068
【図２１】
2008203548.tif 000069
【図２２】
2008203548.tif 000070
【図２３】
2008203548.tif 000071
【図２４】
2008203548.tif 000072
【図２５】
2008203548.tif 000073
【図２６】
2008203548.tif 000074
【図２７】
2008203548.tif 000075
【図２８】
2008203548.tif 000076
【図２９】
2008203548.tif 000077
【図３０】
2008203548.tif 000078
【手続補正書】
【提出日】平成20年1月17日(2008.1.17)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０１７３
【補正方法】変更
【補正の内容】
【０１７３】
法ｐの下ではｘ値としてはｐ個の値を採用できる。したがって、「因子ｘ２＋ｃｘ−ａがｐを法とした平方非剰余である」との条件を満たす座標値ｘの個数すなわち平方非剰余数は、判別式Ｄが平方非剰余であれば、Ｎｎ＝ｐ−Ｋｎ＝（ｐ＋１）／２であり、判別式Ｄが平方剰余であれば、Ｎｑ＝ｐ−Ｋｑ＝（ｐ−１）／２である。［定理Ｔ８の証明終わり］
定理Ｔ８の証明結果を図９の表に整理して示す。また、定理Ｔ８に関する簡単な計算例を図１０（Ａ），（Ｂ）に示す。図１０（Ａ）は、座標値ｘ，ｚ２が与えられた場合にｐ＝１１（＝４ｍ＋３）を法とするｘ２＋ｃｘ−ｚ２（ここで、ｃ＝１）の剰余値ａを示し、図１０（Ｂ）は、ａの値が与えられた場合にａ≡ｘ２＋ｃｘ−ｚ２（ｍｏｄ ｐ）の条件を満たす座標値ｘの計数結果を示すものである。図１０（Ａ）に示されるように、たとえば点（ｘ，ｚ２）＝（３，５）に対する剰余値は、ａ＝７である。図１０（Ｂ）に示されるように、この点（３，５）に対応するａ＝７の値が与えられたとき、判別式Ｄの剰余値は７であり平方非剰余であるから、定理Ｔ８によれば、ｘの個数は、（１１−１）／２＝５個であるべきである。また、図１０（Ａ）に示されるように、点（ｘ，ｚ２）＝（８，４）に対する剰余値は、ａ＝２である。図１０（Ｂ）に示されるように、ａ＝２の値が与えられたとき、判別式Ｄの剰余値は９であり平方剰余であるから、定理Ｔ８によれば、ｘの個数は、（１１＋１）／２＝６個であるべきである。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2008203548.tif 000079