JP2000081841A - 暗号管理装置及び暗号化方法 - Google Patents

暗号管理装置及び暗号化方法

Info

Publication number
JP2000081841A
JP2000081841A JP10249722A JP24972298A JP2000081841A JP 2000081841 A JP2000081841 A JP 2000081841A JP 10249722 A JP10249722 A JP 10249722A JP 24972298 A JP24972298 A JP 24972298A JP 2000081841 A JP2000081841 A JP 2000081841A
Authority
JP
Japan
Prior art keywords
hyperelliptic curve
genus
finite field
integer
elements
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.)
Granted
Application number
JP10249722A
Other languages
English (en)
Other versions
JP4243874B2 (ja
Inventor
Yasuyuki Sakai
康行 酒井
Koichi Sakurai
幸一 櫻井
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP24972298A priority Critical patent/JP4243874B2/ja
Publication of JP2000081841A publication Critical patent/JP2000081841A/ja
Application granted granted Critical
Publication of JP4243874B2 publication Critical patent/JP4243874B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 高速な超楕円曲線公開鍵暗号化方法を得る。 【解決手段】 超楕円曲線Cに付随する、有限体Fq
のヤコビ多様体をJ(C,Fq )とする時、上記ヤコビ
多様体J(C,Fq )の要素の数#J(C,Fq)が大
きな素数で割り切れるように、CPUビット幅Nに基づ
いて、超楕円曲線C生成部30が上記超楕円曲線Cを生
成する。上記ヤコビ多様体J(C,Fq )における演算
が、多倍長精度演算を必要としない通常の整数演算で行
うことができる。また、上記ヤコビ多様体J(C,
q )上定義される離散対数問題の困難さを安全性の根
拠に持つ。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ディジタル情報を
暗号化して安全に暗号通信する技術に関する。
【0002】
【従来の技術】従来の超楕円曲線を用いた暗号化方法に
ついて説明する。従来の超楕円曲線を用いた暗号化方法
には、Neal Koblitz著,“Hyperel
liptic Cryptosystems”,J.C
ryptology Vol.1,(1989),pp
139−150がある。また、公開鍵暗号及び離散対数
問題については、岡本龍明、太田和夫著、“暗号ゼロ知
識証明数論”、共立出版(1995)に記載されてい
る。
【0003】まず、本発明の技術的背景である公開鍵暗
号、離散対数問題、超楕円曲線及びヤコビ多様体につい
て簡単に説明する。公開鍵暗号通信においては、利用者
毎に秘密鍵xと公開鍵Yの組が用意され、秘密鍵xは、
各利用者が秘密に保持しておく。公開鍵Yは、利用者自
身以外の一般に公開する。利用者Bが利用者Aに秘密に
データを送りたい時は、利用者Bは、利用者Aに対応す
る公開鍵Yを用いてデータを暗号化する。この暗号文
は、秘密鍵xを知る利用者Aにしか復号できない。離散
対数問題とは群Gの2つの要素g1 ,g2 に対して、g
1 =mg2 (mは整数)を満たすようなmを求める問題
である。群Gの要素の数が大きい場合、離散対数問題を
解くことは、計算量的に非常に困難になることが知られ
ている。この事実を利用して公開鍵暗号を設計すること
ができ、本発明においても離散対数問題を解く困難さを
暗号の安全性の根拠にして暗号化を行う。超楕円曲線C
とは、v2 +h(u)v=f(u)と表される方程式
で、曲線の種数をgとすると、f(u)は次数2g+1
のモニック多項式、h(u)は次数が高々gの多項式で
ある。種数gとは、曲線の特徴を表すパラメータであ
る。例えば、種数g=3の場合の超楕円曲線は、次数が
2g+1=2・3+1=7となり、例えば、v2 +v=
7 となる。超楕円曲線Cと有限体Fq を決めると、超
楕円曲線Cに付随する有限体Fq 上のヤコビ多様体J
(C,Fq )(以下、単にJともいう)が構成される。
ヤコビ多様体J(C,Fq )の要素数#J(C,Fq
(以下、単に#Jともいう)は、およそ#J=qg にな
ることが知られている。即ち、ヤコビ多様体の要素数#
Jが同じならば、種数gが大きくなるほど有限体Fq
要素数qは小さくなる。
【0004】ここで、現在の暗号処理に用いられている
楕円曲線について説明する。楕円曲線とは、例えば、y
2 +xy=x3 +a12 +a2 と表される3次式の方
程式で、種数gは1であり、次数は3(2g+1=2+
1=3)である。超楕円曲線は、種数が1以上の値をと
るのに対し、楕円曲線は、種数gは必ず1である。そし
て、超楕円曲線の種数g=1の場合は、楕円曲線とな
る。また、実際の計算は有限体(Fq )上で行われる
が、楕円曲線の群の要素は点(x,y)で表されるのに
対し、超楕円曲線に付随する有限体Fq 上のヤコビ多様
体J(C,Fq )の要素は、有限体Fq 係数の2つ多項
式a(u),b(u)により表現される。ここで、a
(u)の次数はg以下、b(u)の次数はa(u)の次
数未満である。また、有限体Fq の要素は、q=2n
ときnビットの整数で表される。従って、超楕円曲線の
計算は、楕円曲線に比べて複雑となる。
【0005】図8,図9,図10は、従来の超楕円曲線
を用いた暗号化方法を示すフローチャートである。図8
は、暗号鍵生成方法を示すフローチャートである。図9
は、暗号化方法を示すフローチャートである。図10
は、復号化方法を示すフローチャートである。図におい
て、S401は超楕円曲線C:v2 +h(u)v=f
(u)と、q個の要素を持つ有限体Fq と、ヤコビ多様
体Jの要素Dを選択するステップである。超楕円曲線C
の種数gは、この従来例ではg=2が選ばれている。S
402は整数xを選択し、整数xを秘密鍵とするステッ
プ、S403はヤコビ多様体J上でY=xDを計算し、
Yを公開鍵とするステップ、S501は平文mと整数r
を選択するステップ、S502はヤコビ多様体J上でC
1 =rDとC2 =rY+mを計算するステップ、S50
3は(C1 ,C2 )を平文mを暗号化した暗号文とする
ステップ、S601は暗号文(C1 ,C2 )と秘密鍵x
とからヤコビ多様体J上でm=C2 −xC1 を計算する
ステップ、S602はmを平文とするステップである。
【0006】次に、動作を説明する。まず、暗号鍵生成
方法を図8に基づいて説明する。暗号通信の利用者は、
まず、S401において、q個の要素を持つ有限体Fq
と、超楕円曲線C:v2 +h(u)v=f(u)を選択
する。この際、ヤコビ多様体の要素数#Jが大きな素数
で割り切れるように、超楕円曲線C及び有限体Fq を選
択しなければならない。これは、超楕円曲線を用いた公
開鍵暗号の解読を困難にするための条件である。次に、
ヤコビ多様体Jの要素Dを選択する。次に、S402に
おいて、整数xを選択する。整数xを秘密鍵として秘密
に保存しておく。S403において、公開鍵Yを計算す
る。公開鍵Yは、Y=xDとして計算される。次に、暗
号化方法を図9に基づいて説明する。まず、S501に
おいて、暗号化したいデータm(これを平文と呼ぶ)と
整数rを選択する。次に、S502において、ヤコビ多
様体J(C,Fq )上で、C1 =rDと、C2 =rY+
mを計算する。次に、S503において、C1 とC2
組(C1 ,C2 )を暗号文とする。
【0007】次に、復号化方法を図10に基づいて説明
する。まず、S601において、暗号文(C1 ,C2
と秘密鍵xとから、有限体Fq 上でm=C2 −xC1
(m=C2 −rY=C2 −rxD=C2 −xC1 )を計
算する。S602において、mを平文とする。
【0008】超楕円曲線を用いた暗号化方法では、一般
に、演算は全て有限体Fq 上で行われる。有限体Fq
要素は、q=2n とすると、計算機上ではnビットの整
数として表現される。また、暗号が安全であるために
は、ヤコビ多様体J(C,Fq)の要素数#Jの大きさ
は、2160 程度なければならない。#Jは、曲線の種数
をgとすると、qg 程度であることから、従来のように
g=2の場合、十分安全な暗号化方法を得るためには、
有限体Fq の要素数qは、qg =2160 =(2802
なり、q=280程度の大きさが必要であった。つまり、
従来の有限体Fqの要素は、計算機上では80ビット程
度の大きさの整数として表現されていた。従って、パー
ソナルコンピュータ等の32ビットCPU(セントラル
・プロセッシング・ユニット)を持つ計算機や、IC
(インテグレーテッド・サーキット)カード等の16ビ
ットCPUを持つ計算機では、有限体Fq の演算を行う
ためには、“多倍長演算”と呼ばれる技術が必要であっ
た。多倍長演算は、通常の整数演算よりも、演算速度が
遅くなるという問題がある。
【0009】
【発明が解決しようとする課題】従来の超楕円曲線を用
いた暗号化方法は、以上のように構成されているため、
安全な暗号化方法を得るためには、有限体上の演算を多
倍長演算を用いて行わなければならず、暗号化及び復号
化の速度が遅くなるという課題があった。この暗号化及
び復号化の速度が遅くなるという課題があるため、超楕
円曲線を用いた暗号化方法は、研究レベルの段階であ
り、現在のところ実用化されていないという課題があっ
た。
【0010】本発明の目的は、係る課題を解決するため
になされたもので、ヤコビ多様体J(C,Fq )の有限
体Fq の要素数qを小さくし、多倍長演算を必要としな
い通常の整数演算で高速に暗号化及び復号化を行うこと
ができ、かつ、安全な暗号を得ることにある。即ち、本
発明の目的は、超楕円曲線を用いた暗号処理の実用的速
度の達成を目的とする。
【0011】
【課題を解決するための手段】この発明に係る暗号管理
装置は、超楕円曲線Cに付随する有限体Fq 上のヤコビ
多様体をJ(C,Fq )とするとき、CPUビット幅N
に基づいて超楕円曲線Cを生成する超楕円曲線C生成部
を備えたことを特徴とする。
【0012】上記超楕円曲線C生成部は、CPUビット
幅Nに基づいて種数gを計算する種数g計算部と、CP
Uビット幅N以下の素数を拡大次数nとして選択する拡
大次数n選択部と、種数gから次数を決定して超楕円曲
線Cを順次生成するとともに、選択された拡大次数nに
基づく有限体Fq と上記超楕円曲線Cとからヤコビ多様
体J(C,Fq )の要素数#J(C,Fq )を計算し、
最大の素因数を求め、最大の素因数が暗号の安全性の目
安となる目安整数K以上となるような超楕円曲線Cを選
択する超楕円曲線C決定部とを備えたことを特徴とす
る。
【0013】上記種数g計算部は、更に、暗号の安全性
の目安となる目安整数Kを入力し、CPUビット幅Nと
目安整数Kから種数gを計算することを特徴とする。
【0014】上記種数g計算部は、超楕円曲線C決定部
が目安整数Kより大きな値を持つ最大の素因数を求めら
れないとき、種数gの値を大きくすることを特徴とす
る。
【0015】上記ヤコビ多様体J(C,Fq )の要素数
#J(C,Fq )が大きな素数で割り切れるように上記
超楕円曲線Cと上記有限体Fq をとり、上記ヤコビ多様
体J(C,Fq )における演算が、多倍長精度演算を必
要としない通常の整数演算で行うことができることを特
徴とするとともに、上記ヤコビ多様体J(C,Fq )上
定義される離散対数問題の困難さを安全性の根拠に持つ
ことを特徴とする。
【0016】上記種数gは、6以上であることを特徴と
する。
【0017】上記有限体Fq の要素の数qは、232以下
であることを特徴とする。
【0018】上記有限体Fq の要素の数qは、216以下
であることを特徴とする。
【0019】上記超楕円曲線Cは、v2 +v=u13+u
11+u7 +u3 +1であり、上記有限体Fq は、F2 29
であることを特徴とする。
【0020】上記超楕円曲線Cは、v2 +v=u13+u
11+u9 +u5 +1であり、上記有限体Fq は、F2 29
であることを特徴とする。
【0021】上記超楕円曲線Cは、v2 +v=u31であ
り、上記有限体Fq は、F2 13 であることを特徴とす
る。
【0022】この発明に係る暗号化方法は、CPUビッ
ト幅Nをメモリから取得する工程と、ヤコビ多様体Jの
目安整数Kをメモリから取得する工程と、CPUビット
幅Nと目安整数Kから種数gを計算する工程と、CPU
ビット幅Nから素数を拡大次数として選択する工程と、
種数gから次数を計算し、計算した次数に基づく超楕円
曲線Cを生成し、選択した拡大次数に基づく有限体Fq
と生成した超楕円曲線Cとから要素数#Jを計算し、最
大の素因数を検出し、メモリに記憶する工程と、メモリ
に記憶された最大の素因数が目安整数Kより大きい場合
に、メモリに記憶された最大の素因数を生成した超楕円
曲線Cを暗号に用い入る超楕円曲線Cとして決定する工
程とを備えたことを特徴とする。
【0023】
【発明の実施の形態】実施の形態1.本発明による暗号
化方法の一実施の形態を図1,図2,図3,図4に基づ
いて説明する。図1は、本実施の形態による暗号化方法
における鍵生成の方法を説明したフローチャートであ
る。図において、S101は本発明の特徴となる超楕円
曲線Cと有限体Fq とヤコビ多様体Jの要素Dを選択す
るステップ、S102は整数xを選択し、整数xを秘密
鍵とするステップ、S103はヤコビ多様体J上でY=
xDを計算し、Yを公開鍵とするステップである。
【0024】図2は、本実施の形態による暗号化方法を
説明したフローチャートである。図において、S201
はデータmと整数rを選択するステップで、データmは
平文mとも呼ばれる。S202はヤコビ多様体J上で、
1 =rDとC2 =rY+mを計算するステップ、S2
03はC1 とC2 の組(C1 ,C2 )を平文mを暗号化
した結果である暗号文とするステップである。
【0025】図3は、本実施の形態による復号化方法を
説明したフローチャートである。図において、S301
は暗号文(C1 ,C2 )と秘密鍵xとから、ヤコビ多様
体J上でm=C2 −xC1 を計算するステップで、S3
02は計算されたmを平文とするステップである。
【0026】図4は、本実施の形態による暗号化方法を
用いた公開鍵暗号通信を説明した図である。図におい
て、701はデータ受信装置、702は整数x生成手
段、703はY=xD計算手段、704は公開鍵Y出力
手段、705は秘密鍵x記憶手段、706は暗号文入力
手段、707はデータm=C2 −xC1 計算手段、70
8はデータ送信装置、709はデータ入力手段、710
は公開鍵入力手段、711は整数r生成手段、712は
1 =rDとC2 =rY+mを計算する計算手段、71
3は暗号文(C1 ,C2 )生成手段、714は暗号文出
力手段、715は暗号処理を管理する暗号管理装置、7
16は超楕円曲線及び有限体及びヤコビ多様体の要素D
を生成する生成手段、717は公開鍵記憶手段である。
【0027】次に、動作を説明する。まず、暗号鍵生成
方法を説明する。まず、S101において、超楕円曲線
Cと有限体Fq とヤコビ多様体J(C,Fq )の要素D
を選択する。超楕円曲線Cは、v2 +h(u)v=f
(u)と表される方程式で、曲線の種数をgとすると、
f(u)は次数2g+1のモニック多項式、h(u)は
次数が高々gの多項式である。gは、超楕円曲線Cの性
質を特徴付けるパラメータで種数と呼ばれる。超楕円曲
線Cと有限体Fq を決めると、それに付随するヤコビ多
様体J(C,Fq )が構成される。ヤコビ多様体Jの要
素において、加法を定義することができ、この加法に関
してヤコビ多様体は群をなす。ヤコビ多様体及び加法の
演算方法に関しては、前述の文献、Koblitz著、
“Hyperelliptic Cryptosyst
ems”,Journal of Cryptolog
y,(1988)に詳しく記載されている。有限体Fq
の要素は、q=2n の場合、nビットの整数として計算
機上で表現される。nが計算機のCPUのレジスタの大
きさを超える場合、有限体上の演算のために、多倍長演
算と呼ばれる技術が必要になり、演算が遅くなる。従っ
て、多倍長演算を必要とせず、通常の整数演算だけです
むように、有限体Fq を選択する。また、暗号通信の安
全性のために、ヤコビ多様体Jの要素の数#Jが大きな
素数で割り切れるように、ヤコビ多様体Jを構成する必
要がある。つまり、この条件を満たすように、超楕円曲
線Cと有限体Fq を選択しなければならない。超楕円曲
線Cと有限体Fq の選択については、後述する。次に、
S102において、整数xを選択する。この整数xは、
公開鍵暗号通信における秘密鍵として使用され、公開鍵
暗号通信の利用者各自に秘密に保持される。次に、S1
03において、ヤコビ多様体J上で、Y=xDを計算す
る。計算されたYは、公開鍵暗号通信において公開鍵と
して使用され、公開鍵Yは秘密に保持する必要はなく、
一般に公開される。
【0028】次に、データの暗号化方法を説明する。ま
ず、S201において、暗号化したいデータmと整数r
を選択する。次に、S202において、S101におい
て選択されたヤコビ多様体J上で、Jの要素Dと公開鍵
Yを用いて、C1 =rDとC2 =rY+mを計算する。
S203において、C1 とC2 の組(C1 ,C2 )を暗
号文とした生成する。このように、暗号文は公開鍵Yを
用いて生成される。
【0029】次に、データの復号化方法を説明する。ま
ず、S301において、暗号文(C1 ,C2 )と、秘密
に保持された秘密鍵xとから、S101において、生成
されたヤコビ多様体J上でm=C2 −xC1を計算す
る。S302において、これを平文mとする。
【0030】次に、以上で説明した、鍵生成方法、暗号
化方法、復号化方法を用いて実際に公開鍵暗号通信を行
う方法を図4に基づいて説明する。データ送信装置70
8からデータ受信装置701へデータが送信される。ま
た、暗号管理装置715では暗号通信に使用されるシス
テム全体の共通パラメータである超楕円曲線C及び有限
体Fq 及びヤコビ多様体Jの要素Dが生成され、更に、
データ暗号化に使用される公開鍵Yの管理が行われる。
公開鍵Yは、システムの利用者全員が利用できるように
公開される。但し、秘密鍵xは、利用者各自が秘密に保
持しておかなくてはならない。
【0031】まず、暗号管理装置715でシステム全体
のパラメータを生成する。生成手段716において、超
楕円曲線Cと有限体Fq とヤコビ多様体JとJの要素D
を生成する。これらのパラメータは、前述のように、ヤ
コビ多様体Jの要素の数が大きな素数で割り切れるよう
に設定する。
【0032】図5は、生成手段716の構成図である。
生成手段716は、メモリ10と回路部20から構成さ
れている。メモリ10は、CPUビット幅Nレジスタ1
1と目安整数Kレジスタ12と最大素因数レジスタ13
から構成されている。回路部20は、超楕円曲線C生成
部30とヤコビ多様体Jの要素D生成部25から構成さ
れている。超楕円曲線C生成部30は、種数g計算部2
1と拡大次数n選択部22と超楕円曲線C決定部23と
から構成されている。
【0033】CPUビット幅Nレジスタ11は、実際に
暗号演算処理を行うデータ送信装置708とデータ受信
装置701のCPUビット幅Nを記憶するレジスタであ
る。目安整数Kレジスタ12は、安全性の目安となるヤ
コビ多様体Jの要素数#Jの最大素因数の大きさを記憶
するレジスタである。最大素因数レジスタ13は、最大
素因数を記憶するレジスタである。CPUビット幅Nレ
ジスタ11に記憶されるCPUビット幅Nは、予めN=
32という値が設定されているものとする。目安整数K
レジスタ12に記憶される整数も予めK=2160 という
値が設定されているものとする。
【0034】まず、回路部20の動作の概略を説明す
る。安全な暗号通信を行うためのヤコビ多様体J(C,
q )は、ヤコビ多様体の要素数#Jを素因数分解した
際の最大素因数の大きさが、大きくなければならない。
本実施の形態では、2160 以上であればよいとしてい
る。ヤコビ多様体は、超楕円曲線Cの方程式と、有限体
q を決めれば一意に決まり、要素数#Jも一意に決ま
る。つまり、超楕円曲線Cと有限体Fq を適切に(ヤコ
ビ多様体の要素数#Jの最大素因数が大きくなるよう
に)決めることが必要である。本実施の形態では、qは
2のべき乗2n に設定し、かつ、nをCPUビット幅以
下にとることがFq を決める上での制約条件である(な
お、F2 nのnのことを数学では“拡大次数”と呼ぶ)。
ヤコビ多様体の要素数#Jは、だいたいqg (=2ng
の大きさとなる。つまり、有限体F2 nの拡大次数nと、
超楕円曲線Cの種数g(超楕円曲線の次数は2g+1と
なる)を決めれば、ヤコビ多様体の要素数#Jの大きさ
はだいたい決まる。ここで重要なのは、ヤコビ多様体の
要素数#Jの大きさがだいたい決まる(だいたい2ng
なる)ということで、正確なヤコビ多様体の要素数#J
の値は、2ng前後の値をとるということである。結果と
して、拡大次数nと種数gが同じでも超楕円曲線Cの方
程式を変えると、ヤコビ多様体の要素数#Jの大きさは
だいたい同じであっても、ヤコビ多様体の要素数#Jの
最大素因数の大きさは全く異なる。例えば、仮に、2ng
=100になったとすると、超楕円曲線Cのとり方によ
ってヤコビ多様体の要素数#Jは、102になったり、
99になったりする。102=2×51,99=3×3
×11であるから、ヤコビ多様体の要素数#Jの最大素
因数は、それぞれ51,11となり、暗号として好まし
いのはヤコビ多様体の要素数#J=102になる超楕円
曲線Cの方ということになる。従って、ヤコビ多様体J
の生成手順は、まず、種数gと拡大次数nを決めておい
て、超楕円曲線Cの方程式をいろいろ変えてヤコビ多様
体の要素数#Jとその最大素因数を計算し、最大素因数
が安全性を決めるパラメータ(目安整数K、K=
160 )よりも大きくなる超楕円曲線Cが得られたら終
了とする。種数gと拡大次数nは、ヤコビ多様体の要素
数#Jの大きさはだいたい2ng前後なので、2ng>K
(=2160 )になるようにしておけばよい。なぜなら、
ヤコビ多様体の要素数#Jの最大素因数の大きさは、必
ずヤコビ多様体の要素数#Jより小さくなり、ヤコビ多
様体の要素数#Jがヤコビ多様体の要素数#Jに近い大
きさの最大素因数を持つようなヤコビ多様体Jを得るこ
とを期待するからである。拡大次数nは、CPUのレジ
スタ幅以下にする。種数gは、小さい方が暗号化速度が
速いので、2ng>K(=2160 )を満たす最小の整数g
を選ぶ。
【0035】次に、回路部20の動作を図5,図6を用
いて詳細に説明する。図6は、図1に示したS101の
詳細なフローチャート図である。種数g計算部21は、
S11において、CPUビット幅Nレジスタ11からC
PUビット幅Nを取得する。例えば、ここでは、CPU
ビット幅N=32が取得されたものとする。次に、種数
g計算部21は、目安整数Kレジスタ12から目安整数
Kを取得する。ここでは、目安整数K=2160 とする。
次に、種数g計算部21は、S13において、種数gを
計算する。種数gは、K<2N(g)を満足する最小の整数
である種数gを選択する。この例においては、2160
(232g =232g であるから、g>160/32=5
となり、g=6となる。即ち、種数g=6が求められ
る。種数g計算部21は、種数g=6を超楕円曲線C決
定部23に出力する。次に、拡大次数n選択部22は、
S14において、CPUビット幅N以下の最大素数を選
択する。この例においては、Nが32であるから、3
1,29,23,19,17,・・・という素数の中で
最大素数31が選択される。この素数31が拡大次数n
となる。また、こうして有限体Fq =F2 nが決定する。
超楕円曲線C決定部23は、S15において、種数gか
ら次数を計算する。次数は、2g+1である。超楕円曲
線C決定部23は、この次数を持つ超楕円曲線Cを1つ
生成する。超楕円曲線C決定部23は、超楕円曲線の方
程式を満足し、かつ、種数gから計算された次数を満足
する超楕円曲線Cを生成する。この際、いろいろな超楕
円曲線Cが考えられるが、とりあえず、ある1つの超楕
円曲線Cを生成するものとする。次に、超楕円曲線C決
定部23は、超楕円曲線Cと有限体F2 nとから要素数#
Jを計算する。この要素数#Jの計算は、既に知られて
いる計算方法を用いることにより、ある1つの要素数#
Jが計算される。次に、超楕円曲線C決定部23は、要
素数#Jを素因数分解し、素因数分解された素因数の
内、最大の素因数を最大素因数レジスタ13に記憶す
る。この時点で、素数31を用いた場合の要素数#Jの
最大の素因数が最大素因数レジスタ13に記憶される。
もし、この最大素因数の値が目安整数Kよりも大きな値
なら、生成した超楕円曲線Cを求めたかった超楕円曲線
Cとして決定する。もし、この最大素因数の値が目安整
数Kよりも小さな値なら、S15に戻り別な超楕円曲線
Cを生成して、S16,S17を繰り返す。最大素因数
レジスタ13は、これらの繰り返し処理の中で生じる最
大素因数の最大の値を保持するものとする。もし、超楕
円曲線Cを変えても、最大素因数の値が目安整数Kより
も大きな値をとらない場合は、S13に戻り種数gを大
きくして(例えば、g=g+1として)S14からS1
7を実行する。もし、それでも、この最大素因数の値が
目安整数Kよりも大きな値をとらない場合は、S13に
おいて、更に大きな値の種数gを生成してS14からS
17を繰り返す。最大素因数レジスタ13は、これらの
繰り返し処理の中で生じる最大素因数の最大の値を保持
するものとする。もし、これらの繰り返し処理により最
大素因数の値が目安整数Kよりも大きな値をとらない場
合は、超楕円曲線Cの生成の失敗を報告する。又は、安
全性は満たさないという警告を発しながら、最大素因数
レジスタ13に記憶された最大素因数の中の最大の値を
生成した超楕円曲線Cを取り敢えず選択する。超楕円曲
線Cが決定したら、次に、ヤコビ多様体Jの要素D生成
部25は、S18において、最大素因数レジスタ13に
記憶された最大素因数を位数として持つ、ヤコビ多様体
Jの要素Dを選択して出力する。また、有限体Fq と超
楕円曲線Cを出力する。以上が、生成手段716の動作
である。
【0036】次に、データ受信装置701における整数
x生成手段702で整数xが生成される。このxが、デ
ータ復号の際に使用される秘密鍵xとなる。秘密鍵x
は、秘密鍵x記憶手段705において秘密に保持し、他
の暗号通信利用者に知られないようにしておく。次に、
703において、秘密鍵xに対応する公開鍵Y=xDを
計算する。ヤコビ多様体の要素Dは、暗号管理装置71
5から受け取ったものを使用する。計算された公開鍵Y
は、公開鍵Y出力手段704から暗号管理装置715へ
送信され、公開鍵Yを暗号管理装置715が管理してお
く。以上で、データ送信装置708がデータ受信装置7
01へデータを送信するための前準備が終了する。
【0037】次に、データ送信装置708でデータを暗
号化する処理を行う。まず、データ入力手段709に暗
号化したいデータmが入力される。次に、公開鍵入力手
段710に、暗号管理装置715の公開鍵記憶手段71
7から公開鍵Yを入力する。次に、整数r生成手段71
1において、整数rを生成する。次に、計算手段712
において、データmの暗号化処理を行う。計算手段71
2では、C1 =rDとC2 =rY+mが計算される。計
算されたC1 とC2 の組を、暗号文(C1 ,C2 )生成
手段713において(C1 ,C2 )として暗号文とす
る。生成された暗号文を暗号文出力手段714からデー
タ受信装置701へ出力する。
【0038】次に、データ送信装置708から送信され
た暗号文をデータ受信装置701で復号する処理を説明
する。まず、暗号文(C1 ,C2 )が暗号文入力手段7
06へ入力される。入力された暗号文(C1 ,C2
は、予め保持されていた秘密鍵xを用いて、707にお
いて、m=C2 −xC1 を計算することにより、もとの
平文mに復号される。
【0039】以上のように、データを公開鍵暗号通信に
よって送信すれば、秘密鍵xを知っているデータ受信者
のみが暗号文を平文mに復号できるため、安全な秘密通
信を行うことができる。また、超楕円曲線Cに付随する
ヤコビ多様体Jの群で構成される離散対数問題を解く難
しさに安全性の根拠をおいているので、安全な秘密通信
を行うことができ、かつ、有限体Fq 上の演算を多倍長
演算によらない通常の整数演算で行うことができるの
で、高速な暗号化復号化処理を行うことができる。
【0040】本実施の形態1では、公開鍵Yは管理装置
を介してデータ送信装置に送られたが、データ受信装置
から直接データ送信装置へ送ってもよい。
【0041】暗号の安全性は、#Jの最大素因数によっ
て決まる。また、有限体Fq の要素は、q=2n のとき
nビットの整数で表現することができる。もし、暗号の
安全性を一定値とするならば、即ち、qg を一定の値
(例えば、2160 )とするならば、図7に示すように、
種数gが大きくなれば要素数qは小さな値となる。即
ち、nの値は小さくなり、結果として、CPUビット幅
を小さくすることができる。例えば、図7に示すよう
に、種数g=5とすれば、要素数q=232となる。この
ように、有限体Fq の要素数q=2n をn≦32とすれ
ば、有限体の要素を32ビット以下の整数として計算機
上で表現でき、パーソナルコンピュータ等の32ビット
CPUを持つ計算機では通常の整数演算だけで、暗号化
演算行うことができる。
【0042】また、図7に示すように、種数g=10と
すれば、要素数q=216となる。このように、有限体F
q の要素数q=2n をn≦16とすれば、有限体の要素
を16ビット以下の整数として計算機上で表現でき、I
Cカード等の16ビットCPUを持つ計算機では通常の
整数演算だけで、暗号化演算行うことができる。
【0043】この実施の形態の大きな特徴は、ある一定
の暗号の安全性を確保する場合に、即ち、qg を一定と
する場合に、種数gを大きくすれば、要素数qが小さく
て済むという超楕円曲線Cの特性に着目したものであ
る。種数gが大きくなればなるほど、要素数qは小さく
て済み、ビット幅が少ない演算で暗号化を行うことがで
きる。現在のCPUビット幅Nは、16ビット、32ビ
ット、64ビットのように16の倍数、或いは、32の
倍数で増加している。要素数q=2n のnがこのCPU
ビット幅N(16の倍数、或いは、32の倍数)に限り
なく近い大きな値をとることにより、多倍長演算を全く
用いない通常の整数演算だけで暗号化演算を行うことが
できる。図7に示すように、種数g=5又は種数g=1
0を選択する場合に、32ビット、或いは、16ビット
のCPUで多倍長演算を用いない通常の整数演算だけで
暗号化演算を行うことが可能となる。
【0044】また、上記図6のS15においては、超楕
円曲線Cを1つだけ選択したが、複数の超楕円曲線Cを
選択して、選択した複数の超楕円曲線Cに対して並列的
にS15からS17までの演算を行っても構わない。ま
た、上記図6のS14において、最大の素数をしたが、
上位3つの素数を選択しても構わない。或いは、全ての
素数を用いても構わない。
【0045】また、図5に示したCPUビット幅Nレジ
スタ11には、1つのCPUビット幅を記憶するように
していたが、複数種類のデータ送信装置及びデータ受信
装置に対応して複数のCPUビット幅を記憶できるよう
にしても構わない。同様に、目安整数Kレジスタ12に
も暗号通信に要求される安全性に対応して、複数の目安
整数Kを記憶できるようにしても構わない。このよう
に、複数のCPUビット幅と複数の要素数を記憶してお
くことにより、データ送信装置及びデータ受信装置が使
用しているCPUビット幅にマッチした暗号演算を行う
ことができる。なお、データ送信装置及びデータ受信装
置のCPUビット幅が異なる場合は、CPUビット幅の
最大値、最小値又は最大公約数のいずれかをCPUビッ
ト幅Nレジスタ11に設定すればよい。
【0046】また、多倍長演算を用いない通常の整数演
算だけで暗号化演算を行う場合に限らず、多倍長演算の
回数を減少させるためにも本思想を利用することができ
る。例えば、16ビットCPUにおいて、q=240の場
合の計算を行うと、3回の多倍長演算が必要となるが、
q=32以下ならば2回の多倍長演算で済む。従って、図
7に示す16ビットCPUに対して、最大素因数が小さ
くなってしまう等の理由によりq=216を選択できない
場合、217≦q≦232の範囲で種数を選択すれば、240
以上を選択するより多倍長演算が少なくて済む。
【0047】実施例1.CPUビット幅Nレジスタ11
に記憶するCPUビット幅Nを32とし、目安整数Kレ
ジスタ12に記憶する整数の大きさを2160 とし、超楕
円曲線Cが、種数6のv2 +v=u13+u11+u7 +u
3 +1という曲線で、有限体Fq がF2 2 9 である場合を
説明する。この場合、ヤコビ多様体J(C,F2 29 )の
要素の数#Jは、次の値となる。 #J=2394273090206828340277
0955928504778901744426001
835009 また、#Jを素因数分解すると、 #J=23×1040988300089925365
3378676490654251696410620
00079783 となる。#J(C,F2 29 )の最大素因数は、170ビ
ットであり十分大きい。従って、このヤコビ多様体J
(C,F2 29 )上の離散対数問題を解くことは困難で、
このヤコビ多様体を用いれば、安全な暗号通信を行うこ
とができる。また、有限体F2 29 の要素は、29ビット
の整数として計算機上で表現でき、パーソナルコンピュ
ータ等の32ビットCPUを持つ計算機上では、多倍長
演算を用いない通常の整数演算だけで暗号化演算を行う
ことができるので、高速に暗号化復号化が行える。
【0048】実施例2.CPUビット幅Nレジスタ11
に記憶するCPUビット幅Nを32とし、目安整数Kレ
ジスタ12に記憶する整数の大きさを2160 とし、超楕
円曲線Cが、種数6のv2 +v=u13+u11+u9 +u
5 +1という曲線で、有限体Fq がF2 2 9 である場合を
説明する。この場合、ヤコビ多様体J(C,F2 29 )の
要素の数#Jは、次の値となる。 #J=2394140667133746827470
2665025654849476018243620
483073 また、#Jを素因数分解すると、 #J=13×1841646667025959098
0540511558196038058475572
01575621 となる。#J(C,F2 29 )の最大素因数は、171ビ
ットであり十分大きい。従って、このヤコビ多様体J
(C,F2 29 )上の離散対数問題を解くことは困難で、
このヤコビ多様体を用いれば、安全な暗号通信を行うこ
とができる。また、有限体F2 29 の要素は、29ビット
の整数として計算機上で表現でき、パーソナルコンピュ
ータ等の32ビットCPUを持つ計算機上では、多倍長
演算を用いない通常の整数演算だけで暗号化演算を行う
ことができるので、高速に暗号化復号化が行える。
【0049】実施例3.CPUビット幅Nレジスタ11
に記憶するCPUビット幅Nを32とし、目安整数Kレ
ジスタ12に記憶する整数の大きさを2160 とし、超楕
円曲線Cが、種数15のv2 +v=u31いう曲線で、有
限体Fq がF2 13 である場合を説明する。この場合は、
種数gの値を大きくしていった場合である。この場合、
ヤコビ多様体J(C,F2 13 )の要素の数#Jは、次の
値となる。 #J=5021681384921108766426
0612220617357860044193750
157493641217 また、#Jを素因数分解すると、 #J=31×853×189905887566505
6448370480362312043181940
180529824811619 となる。#J(C,F2 13 )の最大素因数は、181ビ
ットであり十分大きい。従って、このヤコビ多様体J
(C,F2 13 )上の離散対数問題を解くことは困難で、
このヤコビ多様体を用いれば、安全な暗号通信を行うこ
とができる。また、有限体F(213)の要素は、13ビ
ットの整数として計算機上で表現でき、ICカード等の
16ビットCPUを持つ計算機上では、多倍長演算を用
いない通常の整数演算だけで暗号化演算を行うことがで
きるので、高速に暗号化復号化が行える。
【0050】
【発明の効果】以上のように、本発明によれば、離散対
数問題を構成するヤコビ多様体Jの要素数#Jの最大素
因数が大きいので、安全な暗号通信を行うことができ
る。また、本発明によれば、ヤコビ多様体Jにおける有
限体Fq 上の演算を、多倍長演算を必要としない通常の
整数演算で行えるため、高速に暗号化復号化できる。
【図面の簡単な説明】
【図1】 本発明の暗号化方法を説明するフローチャー
ト図である。
【図2】 本発明の暗号化方法を説明するフローチャー
ト図である。
【図3】 本発明の暗号化方法を説明するフローチャー
ト図である。
【図4】 本発明の暗号化方式を説明する図である。
【図5】 本発明の生成手段716の構成図である。
【図6】 本発明の生成手段716の動作フローチャー
ト図である。
【図7】 本発明の種数gと要素数qの関係を示す図で
ある。
【図8】 従来の暗号化方法を説明するフローチャート
図である。
【図9】 従来の暗号化方法を説明するフローチャート
図である。
【図10】 従来の暗号化方法を説明するフローチャー
ト図である。
【符号の説明】
10 メモリ、11 CPUビット幅Nレジスタ、12
目安整数Kレジスタ、13 最大素因数レジスタ、2
0 回路部、21 種数g計算部、22 拡大次数n選
択部、23 超楕円曲線C決定部、25 ヤコビ多様体
Jの要素D生成部、30 超楕円曲線C生成部。

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 超楕円曲線Cに付随する有限体Fq 上の
    ヤコビ多様体をJ(C,Fq )とするとき、 CPUビット幅Nに基づいて超楕円曲線Cを生成する超
    楕円曲線C生成部を備えたことを特徴とする暗号管理装
    置。
  2. 【請求項2】 上記超楕円曲線C生成部は、CPUビッ
    ト幅Nに基づいて種数gを計算する種数g計算部と、 CPUビット幅N以下の素数を拡大次数nとして選択す
    る拡大次数n選択部と、 種数gから次数を決定して超楕円曲線Cを順次生成する
    とともに、選択された拡大次数nに基づく有限体Fq
    上記超楕円曲線Cとからヤコビ多様体J(C,Fq )の
    要素数#J(C,Fq )を計算し、最大の素因数を求
    め、最大の素因数が暗号の安全性の目安となる目安整数
    K以上となるような超楕円曲線Cを選択する超楕円曲線
    C決定部とを備えたことを特徴とする請求項1記載の暗
    号管理装置。
  3. 【請求項3】 上記種数g計算部は、更に、暗号の安全
    性の目安となる目安整数Kを入力し、CPUビット幅N
    と目安整数Kから種数gを計算することを特徴とする請
    求項2記載の暗号管理装置。
  4. 【請求項4】 上記種数g計算部は、超楕円曲線C決定
    部が目安整数Kより大きな値を持つ最大の素因数を求め
    られないとき、種数gの値を大きくすることを特徴とす
    る請求項3記載の暗号管理装置。
  5. 【請求項5】 上記ヤコビ多様体J(C,Fq )の要素
    数#J(C,Fq )が大きな素数で割り切れるように上
    記超楕円曲線Cと上記有限体Fq をとり、 上記ヤコビ多様体J(C,Fq )における演算が、多倍
    長精度演算を必要としない通常の整数演算で行うことが
    できることを特徴とするとともに、上記ヤコビ多様体J
    (C,Fq )上定義される離散対数問題の困難さを安全
    性の根拠に持つことを特徴とする超楕円曲線を用いた請
    求項1記載の暗号管理装置。
  6. 【請求項6】 上記種数gは、6以上であることを特徴
    とする請求項1記載の暗号管理装置。
  7. 【請求項7】 上記有限体Fq の要素の数qは、232
    下であることを特徴とする請求項1記載の暗号管理装
    置。
  8. 【請求項8】 上記有限体Fq の要素の数qは、216
    下であることを特徴とする請求項1記載の暗号管理装
    置。
  9. 【請求項9】 上記超楕円曲線Cは、v2 +v=u13
    11+u7 +u3 +1であり、上記有限体Fq は、F2
    29 であることを特徴とする請求項7記載の暗号管理装
    置。
  10. 【請求項10】 上記超楕円曲線Cは、v2 +v=u13
    +u11+u9 +u5+1であり、上記有限体Fq は、F2
    29 であることを特徴とする請求項7記載の暗号管理装
    置。
  11. 【請求項11】 上記超楕円曲線Cは、v2 +v=u31
    であり、上記有限体Fq は、F2 13 であることを特徴と
    する請求項8記載の暗号管理装置。
  12. 【請求項12】 CPUビット幅Nをメモリから取得す
    る工程と、 ヤコビ多様体Jの目安整数Kをメモリから取得する工程
    と、 CPUビット幅Nと目安整数Kから種数gを計算する工
    程と、 CPUビット幅Nから素数を拡大次数として選択する工
    程と、 種数gから次数を計算し、計算した次数に基づく超楕円
    曲線Cを生成し、選択した拡大次数に基づく有限体Fq
    と生成した超楕円曲線Cとから要素数#Jを計算し、最
    大の素因数を検出し、メモリに記憶する工程と、 メモリに記憶された最大の素因数が目安整数Kより大き
    い場合に、メモリに記憶された最大の素因数を生成した
    超楕円曲線Cを暗号に用いる超楕円曲線Cとして決定す
    る工程とを備えたことを特徴とする暗号化方法。
JP24972298A 1998-09-03 1998-09-03 暗号管理装置 Expired - Lifetime JP4243874B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24972298A JP4243874B2 (ja) 1998-09-03 1998-09-03 暗号管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24972298A JP4243874B2 (ja) 1998-09-03 1998-09-03 暗号管理装置

Publications (2)

Publication Number Publication Date
JP2000081841A true JP2000081841A (ja) 2000-03-21
JP4243874B2 JP4243874B2 (ja) 2009-03-25

Family

ID=17197234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24972298A Expired - Lifetime JP4243874B2 (ja) 1998-09-03 1998-09-03 暗号管理装置

Country Status (1)

Country Link
JP (1) JP4243874B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008053980A1 (en) * 2006-10-27 2008-05-08 Panasonic Corporation Cryptographic method and apparatus for enhancing computation performance of a central processing unit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008053980A1 (en) * 2006-10-27 2008-05-08 Panasonic Corporation Cryptographic method and apparatus for enhancing computation performance of a central processing unit
US8204219B2 (en) 2006-10-27 2012-06-19 Panasonic Corporation Cryptographic method and apparatus for enhancing computation performance of a central processing unit

Also Published As

Publication number Publication date
JP4243874B2 (ja) 2009-03-25

Similar Documents

Publication Publication Date Title
EP0997016B1 (en) Method and apparatus for fast elliptical encryption with direct embedding
US6751318B2 (en) Method and apparatus for digital signature authentication
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
US20100020964A1 (en) Key generation method using quadratic-hyperbolic curve group
US8184808B2 (en) Chaotic asymmetric encryption process for data security
EP2460310B1 (en) Symmetric-key encryption method and cryptographic system employing the method
WO1993006672A1 (en) Method and apparatus for public key exchange in a cryptographic system
EP1330702B1 (en) Method and system of using an insecure crypto-accelerator
US6480606B1 (en) Elliptic curve encryption method and system
US6175850B1 (en) Scheme for carrying out modular calculations based on redundant binary calculation
US20040228484A1 (en) Public key generation apparatus, shared key generation apparatus, key exchange apparatus, and key exchanging method
JP4690819B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
CA2298995C (en) Apparatus and method for generating expression data for finite field operation
JP2001051832A (ja) 乗算剰余演算方法および乗算剰余回路
CN116488806A (zh) 一种密钥封装方法、装置、设备及存储介质
JP4243874B2 (ja) 暗号管理装置
JP3615405B2 (ja) 素体上楕円曲線上の点の演算方法およびその装置
JP2000132096A (ja) スカラー倍算方法およびその装置
Zhang et al. High-Speed and High-Security Hybrid AES-ECC Cryptosystem Based on FPGA
Shams et al. Cryptosystem an Implementation of RSA using Verilog
JP4237306B2 (ja) 超楕円曲線c生成装置、暗号管理装置、データ送信装置及びデータ受信装置
JP3278790B2 (ja) 公開鍵暗号方法及び公開鍵暗号システム
US7480380B2 (en) Method for efficient generation of modulo inverse for public key cryptosystems
JP4676071B2 (ja) べき乗剰余演算方法、逆数演算方法およびそれらの装置
JP2011254385A (ja) 共通鍵生成システム及び共通鍵生成方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050818

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080722

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080825

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080924

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081120

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081224

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120116

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term