JP2005331656A - 暗号装置、復号装置、鍵生成装置、プログラム及び方法 - Google Patents
暗号装置、復号装置、鍵生成装置、プログラム及び方法 Download PDFInfo
- Publication number
- JP2005331656A JP2005331656A JP2004149052A JP2004149052A JP2005331656A JP 2005331656 A JP2005331656 A JP 2005331656A JP 2004149052 A JP2004149052 A JP 2004149052A JP 2004149052 A JP2004149052 A JP 2004149052A JP 2005331656 A JP2005331656 A JP 2005331656A
- Authority
- JP
- Japan
- Prior art keywords
- polynomial
- variable
- plaintext
- generating
- message
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3026—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
【解決手段】 代数曲面XのファイブレーションX(x,y,t)上の代数曲線(因子)のうちのセクションDを秘密鍵に用いた構成により、現代の数学で未解決の難問である代数曲面上の因子を求める求因子問題に安全性の根拠をおく公開鍵暗号方式の暗号装置、復号装置又は鍵生成装置を実現した。これにより、上記課題を解決する。
【選択図】 図1
Description
T.岡本、K.田中、S.内山(T.Okamoto and K.Tanaka and S.Uchiyama)著:"量子公開鍵暗号システム(Quantum Public-Key Cryptosystems)",アドバンセズ・イン・クリプトロジー・クリプト2000(Advances in Cryptology - CRYPTO2000), レクチャー・ノーツ・イン・コンピュータ・サイエンス(Lecture Notes in Computer Science), 1880巻, pp.147-165, シュプリンガーフェアラーク(Springer-Verlag), 2000年. 松坂和夫著、「代数系入門」、岩波書店、1976年、p.140の定理8 D.コックス 他 著、「グレブナ基底と代数多様体入門(上)」、シュプリンガーフェアラーク(Springer-Verlag)
第1乃至第6の各発明は、代数曲面XのファイブレーションX(x,y,t)上の代数曲線(因子)のうちのセクションを秘密鍵に用いており、現代の数学で未解決の難問である代数曲面上の因子を求める求因子問題に安全性の根拠をおく公開鍵暗号方式の暗号装置、復号装置又は鍵生成装置を実現したので、量子計算機が出現しても安全性が確保でき、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある公開鍵暗号方式を構成することができる。
本発明で述べる代数曲面は体K上定義された連立(代数)方程式の解の集合のうち2次元の自由度を持ったものと定義される。例えば、次の式(1)に示す体K上の連立方程式は変数5つに対し、それらを束縛する3つの方程式があるので2次元の自由度を持っているので、代数曲面となる。
f2(x,y,z,v,w)=0
f3(x,y,z,v,w)=0 …(1)
特に、式(2)に示す如き、3変数のK上代数方程式の解の集合として定義される空間もK上の代数曲面となる。
なお、式(1)、式(2)に示した代数曲面の定義式はアフィン空間におけるものであって、射影空間におけるそれは(式(2)の場合)、f(x,y,z,w)=0である。
本実施形態においては式(2)のように1つの式で書ける代数曲面のみを扱うので、以下では式(2)を代数曲面の定義方程式のごとく扱う。
gt(x,y):=f(x,y,t)
とおく。これをK上の1変数代数関数体K(t)の元を係数とする多項式としてみたとき、gt(x,y)=0がK(t)上の代数曲線を定義するとき、Xはtをパラメータとするアフィン直線A1 上のファイブレーションを持つといい、f(x,y,t)=0を代数曲面Xのファイブレーションと呼び、Xtなどと表す(尚、以下では簡単のためファイブレーションであることが明らかであるときには単なるXと表す)。ファイブレーションを持つ代数曲面には、セクションと呼ばれる
(x,y,t)=(ux(t),uy(t),t)
のように、tでパラメタライズされたX上の代数曲線が存在する。
本実施形態の公開鍵は以下の4つである。
2.Fp上の代数曲面Xのファイブレーション:X(x,y,t)=0
3.Fp上の1変数既約多項式f(t)の最小次数r(但しrはX(x,y,t)におけるtの最大次数より大きく取る)。
秘密鍵は以下の2つの異なるセクションD1,D2である。
2.Fp上の代数曲面Xのセクション:D2:(x,y,t)=(vx(t),vy(t),t)
これらは後述する方法(鍵生成方法)で容易に求めることができる。
m=m0‖m1‖・・・‖mr-1のようにし、平文多項式m(t)に
m(t)=mr-1tr-1+・・・+m1+m0
に埋め込む(平文埋め込み処理)。ここでm(t)をFp上の多項式とするために、各mi(0≦i≦r−1)はFpの元となるように取る必要がある。即ち、平文はpのビット長に基づいて
0≦mi≦p−1
となるように平文を分割する。
(ex+ey)d+et<r …(3)
となる範囲内で取る。これは後述する復号処理において平文を一意に決定するための条件である。また、degx,degy,degtによって、それぞれ多項式のx,y,tに関する次数を表すとし
dx:=degx X(x,y,t)、
dy:=degy X(x,y,t)
とおくと、後述する安全性からの要請により、
r>degt X(x,y,t) …(5)
を満たすように取らなくてはならない。
F(x,y,t)=m(t)+f(t)p(x,y,t)+X(x,y,t)q(x,y,t) …(6)
によって暗号文F(x,y,t)を計算する。後で<安全性の検討>として述べる通り、これらランダムな多項式p(x,y,t),q(x,y,t),f(t)はそのどの1つが欠けても安全性に問題が生ずる。即ち、暗号化の計算式は必然性のある式となっている。
X(ux(t),uy(t),t)=0、X(vx(t),vy(t),t)=0
なる関係があることに注意すると
h1(t)=F(ux(t),uy(t),t)=m(t)+f(t)p(ux(t),uy(t),t)
h2(t)=F(vx(t),vy(t),t)=m(t)+f(t)p(vx(t),vy(t),t)
という関係を持つ2つの式h1(t)h2(t)が求まることが分かる。次に、2式を辺々引き算して
h1(t)−h2(t)=f(t){p(ux(t),uy(t),t)−p(vx(t),vy(t),t)}
…(7)
を計算する。次にh1(t)−h2(t)を因数分解して、最大次数を持つ因数をf(t)と定める。ここで最大次数の因子がf(t)であるためには、f(t)の次数をrとした時、
deg(p(ux(t),uy(t),t)−p(vx(t),vy(t),t))<r …(8)
となるようなp(x,y,t)を選択すれば十分であり、このためには
deg(p(ux(t),uy(t),t))<r
deg(p(vx(t),vy(t),t))<r …(9)
の両方が成り立つように選択する必要がある。しかし、送信者にはセクションが秘匿されているのでrを十分大きく取るとともに、セクションの各要素となっている多項式ux(t),uy(t),vx(t),vy(t)における次数の最大値dを公開鍵として公開している。即ち、p(x,y,t)を決定するときは式(9)を満たすために、その各項cxexyeytetの指数ex,ey,etが条件式(3)を満たしていることが必要となる。尚、h1(t)−h2(t)の因数分解は1変数多項式の因数分解が容易であることから十分有効な時間内に処理可能である。得られたf(t)でh1(t)を除すると(m(t)の次数がf(t)の次数r未満であることに注意すると)
h1(t)=m(t)+f(t)p(ux(t),uy(t),t)
の関係が得られ、平文多項式m(t)が得られる。得られた平文多項式m(t)から平文埋め込み処理と逆の処理で平文mを求めることができる。ここで、m(t)が剰余として一意的であることは特筆すべきことである。一意的でないと平文多項式m(t)の候補が複数存在してしまい、真の平文多項式を特定することが困難になる。m(t)が一意的である理由はh1(t)が含まれる一変数多項式環F[t]においては整数と同様に除法の定理が成立するため、一変数多項式を一変数多項式で割った商と剰余は一意的となるからである。多項式環における除法の定理の証明は非特許文献2にある。
Et:y2+y=x3+a(t)x+b(t)
というファイブレーションを持つ代数曲面であると定義することができる。ここでa(t),b(t)は1変数多項式である。まず、素体の標数pを決める。このときpは小さくても安全性に問題は生じない。さて、セクションD1,D2を
D1:(x,y,t)=(ux(t),uy(t),t)、
D2:(x,y,t)=(vx(t),vy(t),t)
とおいて楕円曲面Etに代入し、
uy(t)2+uy(t)=ux(t)3+a(t)ux(t)+b(t)
vy(t)2+vy(t)=vx(t)3+a(t)vx(t)+b(t)
を得る。これらを辺々引くとb(t)が消え、
uy(t)2−vy(t)2−(uy(t)−vy(t))−(ux(t)3−vx(t)3)=a(t)(ux(t)−vx(t))
となり、a(t)を多項式とするには、たとえば
ux(t)−vx(t)|uy(t)−vy(t)
であれば十分である。このことを利用して以下に示すアルゴリズムで鍵生成を行うことができる。ここで、k1(t)|k2(t)は、多項式k1(t)が多項式k2(t)を割り切ることを意味している。まず、λx(t)|λy(t)となる2つの多項式をランダムに選択する。具体的にこのような多項式の組を求めるには、例えばλx(t)をランダムに与えて、同じくランダムな多項式c(t)によってλy(t)=c(t)λx(t)を計算することによってλy(t)を求めることで実現できる。次に多項式vx(t)をランダムに選択し、
ux(t)−vx(t)=λx(t)
によってux(t)を計算する。同様に多項式vy(t)をランダムに選択し
uy(t)−vy(t)=λy(t)
によってuy(t)を計算する。以上の手段で計算されたux(t),vx(t),uy(t),vy(t)を利用して
a(t)={uy(t)2−vy(t)2−(uy(t)−vy(t))−(ux(t)3−vx(t)3)}/(ux(t)−vx(t))
…(10)
を計算することにより多項式a(t)が計算できる。更にb(t)はa(t)を利用して
b(t)=uy(t)2+uy(t)−ux(t)3−a(t)ux(t) …(11)
によって得られる。
従って、本発明の鍵生成処理においては代数曲面としてこの条件Xを満たすものを想定している。尚、本実施形態で例として述べる代数曲面は全てこの条件Xを満たしている。
r=(dx+1+dy+1)d+dt
のように選択する方法もある。
以下では、上述のように構成した本発明の公開鍵暗号の安全性に関して考察する。本発明の公開鍵暗号は代数曲面のファイブレーションXtが与えられたとき、そのセクションを求める問題の難しさを安全性の根拠としている。一方でセクションは代数曲面を1変数代数関数体K(t)上の代数曲面と考えたとき、代数曲線上のK(t)有理点と捉えることができる。楕円曲面y2+y=x3+a(t)+b(t)を例に取り、このことを詳しく説明する。1変数代数関数体とは
K(t) = { f(t)/g(t)|f(t) ∈ K[t],g(t) ∈ K[t]−{0} }
で定義され、K係数の多項式を分母分子とする集合であり、体になる。即ち、体K上定義された楕円曲線y2+y=x3+ax+bを1変数代数関数体K(t)上定義すると楕円曲面になるという関係を持っている。そこで逆に、楕円曲面をK(t)上定義された楕円曲線と考えると、セクションの各要素x,y,tが1変数代数関数体K(t)の元からなることから、セクション自体をK(t)上定義された点と捉えることができる。このようにK(t)上の点で、当該代数曲面(この例では楕円曲面)の式を満たすものをK(t)有理点という。従って、主張の通り、セクションは代数曲面を1変数代数関数体K(t)上の代数曲面と考えたとき、代数曲線上のK(t)有理点と捉えることができる。尚、K上の点で当該代数曲面(この例では楕円曲面)の式を満たすものをK有理点という。
x=ux(s),y=uy(s),t=ut(s) …(12)
のようにパラメータ表示することになる。ここで、x,y,tのいずれかを定数に固定する因子(hyperplane section)及びその既約成分は容易に求めることができるので、本発明における代数曲面Xに関する求因子問題は「x,y,tのいずれも定数とならない1変数パラメータ表示(12)で表される因子は求めることは非常に困難である。」ということができる。ここでは、この求因子問題の難しさを仮定して、代数曲線暗号の安全性を検証する。
F(x,y,t)=m(t)+f(t)p(x,y,t)+X(x,y,t)q(x,y,t)
が与えられたとき、復号処理はtの多項式m(t)を特定することである。前述した復号方式では、F(x,y,t)にX(x,y,t)のセクション(ux(t),uy(t),t)及び(vx(t),vy(t),t)を代入し、多項式の因数分解により
f(t){p(ux(t),uy(t),t)−p(vx(t),vy(t),t)}
を導き出す操作がポイントとなる。以下では、次の3通りの攻撃方法[攻撃1]〜[攻撃3]に分類し、上記の操作以外に復号ができないことを検証する。
[攻撃2]変数x,y,tに何かを代入又はリダクションを行ってm(t)を取り出す。
[攻撃3]変数x,y,tに関する微分、偏微分を用いてm(t)を求める。
m(t)はtのみに関する多項式であり、もしF(x,y,t)の中にtのみの多項式がこれ以外になければ、F(x,y,t)の形状からm(t)が特定できる。しかし、
F(x,y,t)
={m(t)+cf(t)}+f(t){p(x,y,t)−c}+X(x,y,t)q(x,y,t)
と変形すれば明らかなように、F(x,y,t)の中のtの多項式はm(t)とは限らない。また、たとえm(t)+cf(t)が分かったとしても、f(t)が未知である限りm(t)を求めることはできない。
f(x,y,t)をg(x,y,t)でリダクションするとはf(x,y,t)をg(x,y,t)で割った余りを求めることである。
いま公開されている情報は曲面の定義式X(x,y,t)だけなので、F(x,y,t)に対し利用して意味のある2次元多様体はX(x,y,t)自身である。これについては、グレブナー基底等を用いて暗号文F(x,y,t)をX(x,y,t)でリダクションすることが考えられる。しかし、3変数多項式では、一般に除法の定理が成り立たないので、F(x,y,t)からm(t)+f(t)p(x,y,t)が得られる確証はない。また、たとえ得られたとしても、[攻撃1]で述べたように、f(t)が未知であるのでm(t)の特定には至らない。
1次元多様体とは曲線のことである。一般の曲線は連立方程式によって定義される。その連立方程式がF(x,y,t)やX(x,y,t)と関係していない場合は、使える方法は多項式によるリダクションのみである。しかし、これは前述の2次元多様体の代入による攻撃で説明したようにm(t)の特定にはつながらない。
(ii)x,y,tのいずれも定数にせず、パラメータ表示(12)を持つ曲線
そして、曲線には次の2通りがある。
(b)曲面X上にない曲線
これらの分類により4つの場合が考えられるが、(ii)かつ(a)の場合は求因子問題の仮定により一般には求めることができないので、攻撃には使えない。よって、残りの3つの場合を検討する。
これはX上にあるファイバーとハイパープレーン・セクションとを用いた攻撃である。
F(x0,y,t)=m(t)+f(t)p(x0,y,t)+X(x0,y,t)q(x0,y,t)となる。
F(x,y,t0)=m(0)+f(0)p(x,y,t0)+X(x,y,t0)q(x,y,t0)
となる。このときも、F(x,y,t0)をX(x,y,t0)で割ることを考えるが、条件(5)と(4)によって、xについてもyについてもm(0)+f(0)p(x,y,t0)の次数はX(x,y,t0)の次数よりも大きい。よって、(x=x0もしくはy=y0と固定する場合と同様に)m(0)+f(0)p(x,y,t0)を特定することはできない。また、たとえ特定できたとしても、f(0)p(x,y,t0)にも定数が含まれるので、どの部分が定数m(0)であるのか分からない。よって、この場合もm(t)を求めることはできない。
これは、x,y,tのいずれかを固定するが、X(x,y,t)=0を満たさない式を用いる場合である。この場合は、例えば
X(x0,y,t)=X(x1,y,t)
となるx=x0,x1を見つけ、F(x0,y,t)及びF(x1,y,t)をX(x0,y,t)でリダクションすることにより、(i)かつ(a)の場合と同様の方法でm(t)を求められる可能性がある。しかしこの場合も、次数に関する条件(5)と(4)があるので、(i)かつ(a)の場合と同様の理由により、m(t)を得ることはできない。
これは、Xのセクションではないが、1変数sでx=ux(s),y=uy(s),t=ut(s)のようにパラメータ表示された曲線を用いる攻撃である。この場合、X(x,y,t)=0は満たさないが、
X(ux(s),uy(s),ut(s))=X(vx(s),vy(s),vt(s))
となる(ux(s),uy(s),ut(s))、(vx(s),vy(s),vt(s))を見つけることは可能である。そして、F(x,y,t)に代入すると
deg X(ux(s),uy(s),ut(s)) < deg f(ut(s)){p(ux(s),uy(s),ut(s))−p(vx(s),vy(s),ut(s))}
を導くためには、差を取ることにより{p(ux(s),uy(s),ut(s))−p(vx(s),vy(s),ut(s))}の最高次の係数を含む高次の項が消えないようにする必要がある。このように最高次の項を残す目的で、条件Xが必要となる。実際、p(x,y,t)のx,yに関する最高次の項をxαyβとすると、
p(ux(s),uy(s),ut(s))−p(vx(s),vy(s),ut(s)) …([2−2]−1)
において最高次の項が消えるのは
ux(s)αuy(s)β=vx(s)αvy(s)β
となるときである。(ux(s)/vx(s))α(uy(s)/vy(s))β=1と変形すると分かるように、これは
ux(s)=ζvx(s),uy(s)=ηvy(s)
を意味する。但し、ζ,ηは1の冪根である。一方、本攻撃においては、ux(s)≠vx(s)もしくはuy(s)≠vy(s)が成立する下で
X(ux(s),uy(s),ut(s))=X(vx(s),vy(s),ut(s))
であることが必要なので、
X(ux(s),uy(s),ut(s))=X(ζvx(s),ηvy(s),ut(s))
でなくてはならない。しかし、条件XによればX(x,y,t)にxのみの項、yのみの項が含まれるため、
ζ=η=1
を導くことができ、ux(s)=vx(s),uy(s)=vy(s)となるので、攻撃法の前提に反することになる。従って、代数曲面の定義式に条件Xを付すことにより、式([2−2]−1)に示す差により最高次の項が消えないように暗号文を構成することができる。
平文多項式をa0,a1,・・・,ar-1を未知数として
m(t)=ar-1xr-1+・・・+a1+a0
とおく。(公開鍵である)代数曲面X(x,y,t)=0の有理点(xi,yi,ti)は(どのような代数曲面でも)比較的簡単かつ大量に求まることが知られているため、これらの有理点を暗号文F(x,y,t)に代入して、
F(xi,yi,ti)=m(ti)+f(ti)p(xi,yi,ti)
という関係式が大量に求まる。これらを連立させるとm(t)が解けそうである。しかし、f(t)とq(x,y,t)はランダムな多項式であり、特にq(x,y,t)にあっては3変数多項式であるので係数の種類が次数nに関してO(n2)以上のオーダで増大する。これらの係数を変数と考えると膨大な数の変数を持つ連立方程式の解を求める必要に迫られ、(3変数多項式の次数を上げることによって)現実的には解が求まらないレベルまで到達するのは容易である。従ってこの攻撃は現実的でない。
F(xi,yi,ti)=m(ti)+f(ti)
となり
deg m(t)<r≦deg f(t)
であるのでdeg f(t),rがそれほど大きくなければ比較的簡単に係数が求まると言える。これ故に因子p(x,y,z)の存在意義がある。同様に、暗号文から既約多項式f(t)とp(x,y,t)の少なくとも一方を削除すると、本攻撃により
F(xi,yi,ti)=m(ti)
となり、更に簡単に平文多項式m(t)が求まってしまう。この理由で因子f(t),p(x,y,t)が存在する。
定義式X(x,y,t)の微分や偏微分を用いて多項式を分析することが一般に可能である。しかし、セクションを求める手立てを与えるわけではない。また、上で考察した攻撃法より効率的な方法を与えるものでもない。よって、暗号文F(x,y,t)の解読に微分、偏微分を用いても問題の難しさに変化はない。
最後に本実施形態におけるいくつかのバリエーションを述べる。第1のバリエーションは、公開鍵の中にあるp,r,dを固定パラメータとすることで公開鍵のサイズを減らすことができることを特徴とするバリエーションである。勿論これらの一部だけを固定にする利用方法も考えられる。このバリエーションを用いると、パラメータの一部が固定されているので鍵生成時に制約が課せられることになるが、十分大きいr,dが取られていれば何回かの試行で所望の公開鍵X(x,y,t)が求まる。
F(x,y,t)=m(t)−f(t)p(x,y,t)−X(x,y,t)q(x,y,t)
のように変形しても同様に暗号化/復号が可能であり、同様の安全性がある。このように本発明の趣旨に反しない範囲で暗号化の式を変形し、それに伴い復号処理を変更することは十分可能である。
m’=m‖h(m) …(vari 6)
などとする。このようにすることによって、復号処理において出力された復号文m’に対して当該ハッシュ関数hを利用して式(vari 6)を満たしていることを確かめることにより、出力された復号文m’の真正性を確かめることができる。このような処理の必要性は、第5のバリエーションでも述べたような不正な暗号文を防ぐ効果を持っている。即ち、平文mに対応する正当な暗号文からmと何らかの関係を持ったm1に対応する不正な暗号文を作成しようとする場合、改竄するものは(元の暗号文を復号できないので平文mを知らないため)平文m1を求めることができない。一方、ハッシュ関数hは、一方向性を持っており、入力に対してランダムな値を取ることから、改竄された暗号文に、
m1’=m1‖h(m1)
のような構造を持たせることは極めて困難である。言い換えれば、本バリエーションは第2のバリエーションで述べた平文に付けるチェックビットをより具体的な形で述べたものということもできる。しかし、それ以上にこのような平文mの変換を含む公開鍵暗号の構成は一般に改竄に対する安全性や、(適当な暗号文を作成し、それを復号装置に復号させ、そこから情報を得ることによって暗号文を解読する)アクティブな攻撃にも対抗できる強い安全性を持つ暗号を構成できることが知られている。このようなことは本発明の代数曲線暗号についても同様に成り立ち、同様の効果を期待できる。
次にこのような公開鍵暗号における鍵生成装置、暗号装置、復号装置の具体的な構成とそのアルゴリズムを示す。
本実施形態の鍵生成装置の構成と処理の流れを図3に示すフローチャートに沿って図2に示す全体構成図を参照しながら示す。尚、理解の助けとして具体的な数値や式を示すが、これはあくまでも理解を助けるための例であって、実際に使われる十分な安全性を持つ暗号化とは(特に多項式の次数などの点で)必ずしも一致していない。
…(13)
D1:(ux(t),uy(t),t)=(t+1,t2+1,t)
D2:(vx(t),vy(t),t)=(t2+1,t3+1,t) …(14)
そこで、これらセクションに含まれる一変数多項式における次数の最大値をdとする(ST12)。
r=(dx+1+dy+1)d+dt=(4+3)*3+4=25
のように選択する(ST13)。本実施形態では簡単のためr=22とする。
次に、第1のバリエーションとして述べた公開鍵p,r,dを予め定めておく場合の鍵生成装置の処理の流れを図5に示すフローチャートに沿って図4に示す全体構成図を参照しながら示す。ほとんど実施形態と同じであるので異なるところのみを説明するに留める。まず本バリエーションによる実施形態では素数pが固定であるため、素数生成部12の代わりに固定パラメータ格納部18が設けられ、その中に入っているpを読み込む処理(ST2’)が素数生成処理と置き換わる。
次に本実施形態の暗号装置の構成と処理の流れを図7に示すフローチャートに沿って図6に示す全体構成図を参照しながら示す。本実施形態の暗号装置20は、平文入力部21、公開鍵入力部22、平文埋め込み部23、暗号化部24、1変数既約多項式生成部25、多項式生成部26及び暗号文出力部27を備えており、全体として図7に示す動作を実行するように、暗号化部24により他の各部21〜23,25〜27が制御されるものである。以下、具体的に説明する。
1.p=17
2.F17上の代数曲面Xのファイブレーション:
Et(x,y,t):y2+y−x3−(−t3+11t2−3t−3)x−2t4−6t3−9t2−3t−4=0
3.Fp上の1変数既約多項式f(t)の最小次数r=22
4.(秘密鍵である)セクションにおける多項式ux(t),uy(t),vx(t),vy(t)の最大次数d=3
を利用する。
以上の処理で得られたm(t),f(t),p(x,y,t),q(x,y,t)と公開鍵である代数曲面X(x,y,t)を利用し、暗号化部24は、式(6)に従って暗号文F(x,y,t)を計算し展開する(ST28)。本実施形態の例であると、暗号文F(x,y,t)は次のようになる。
最後に本実施形態の復号装置の構成と処理の流れを図9に示すフローチャートに沿って図8に示す全体構成図を参照しながら示す。本実施形態の復号装置30は、暗号文入力部31、鍵入力部32、復号部33、セクション代入部34、1変数多項式演算部35、1変数多項式因数分解部36、多項式抽出部37、1変数多項式剰余演算部38、平文展開部39及び平文出力部40を備えており、全体として図9に示す動作を実行するように、復号部33により他の各部31,32,34〜40が制御されるものである。以下、具体的に説明する。
次に、本発明の第2の実施形態について説明する。
2.Fp上の代数曲面Xのファイブレーション:X(x,y,t)=0
3.Fp上の1変数既約多項式f(t)の最小次数r
4.(秘密鍵である)セクションにおける多項式ux(t),uy(t)の最大次数d
秘密鍵は以下のセクションDである。
第2の実施形態は、第1の実施形態と比較すると、秘密鍵であるセクションが1つであることが大きく異なる。第2の実施形態は、このため秘密鍵のサイズが小さくなることは言うまでもなく、後述するように鍵生成の自由度が増えるという効果がある。
本実施形態における暗号化処理の概要を述べる。暗号処理は第1の実施形態とほぼ同じであるが、1つの暗号文F(x,y,t)を生成した第1の実施形態とは異なり、第2の実施形態では2つの暗号文F1(x,y,t),F2(x,y,t)を生成する。
F2(x,y,t)=m(t)+f(t)p2(x,y,t)+X(x,y,t)q2(x,y,t)
受信者は、暗号文F1(x,y,t),F2(x,y,t)を受けると、所有する秘密鍵Dを利用して次のように復号を行う。まず、セクションDを暗号文F1(x,y,t),F2(x,y,t)に代入することにより第1の実施形態と同様の考え方で次の2式h1(t),h2(t)を求める。
h2(t)=F2(ux(t),uy(t),t)=m(t)+f(t)p2(ux(t),uy(t),t)
そして、2式を辺々引き算して次式h1(t)−h2(t)を計算する。
しかる後、h1(t)−h2(t)を因数分解して、最大次数を持つ因数をf(t)と定める。この後の処理は第1の実施形態と同じであるので説明を省略する。
最後に本実施形態における鍵生成方法を説明する。本実施形態の鍵生成は第1の実施形態と同様にセクションDをランダムに選び、それに対応したファイブレーションを計算することによって行う。
ここでξ1(t),ξ2(t),ξ3(t),ξ4(t)は1変数多項式である。まず、素体の標数pを決める。このときpは小さくても安全性に問題は生じない。さて、セクションDを
D:(x,y,t)=(ux(t),uy(t),t)
とおき、定数項以外の1変数多項式ξ1(t),ξ2(t),ξ3(t)をランダムに定め、これらξ1(t),ξ2(t),ξ3(t)とセクションDを代数曲面Xに代入することで
ξ4(t)=uy(t)2−ux(t)3−ξ1(t)ux(t)2uy(t)−ξ2(t)ux(t)−ξ3(t)uy(t) …(16)
によりξ4(t)を得る。
r=(dx+1+dy+1)d+dt
によって定めても良い。
以下ではこのように構成した本実施形態の公開鍵暗号の安全性に関して考察する。基本的に第1の実施形態における安全性の検討がそのまま本実施形態の安全性の検討となる。第1の実施形態と異なるのは暗号文が2つあることであり、この部分の安全性に関して考察を行う。暗号文F1(x,y,t),F2(x,y,t)の引き算を行うと以下のようになる。
この式では、平文多項式m(t)が消去されるもののq1(x,y,t)≠q2(x,y,t)であり、3変数多項式では一般に除法の定理が成り立たないことから、3変数多項式X(x,y,t)で当該式を除しても、その剰余等からほとんど情報が得られない。
次に本実施形態の公開鍵暗号における鍵生成装置、暗号装置、復号装置の具体的な構成とそのアルゴリズムを示す。
本実施形態の鍵生成装置の構成と処理の流れを図12に示すフローチャートに沿って図2に示す全体構成図を参照しながら示す。また本実施形態では前述した代数曲面
X:y2=x3+ξ1(t)x2y+ξ2(t)x+ξ3(t)y+ξ4(t)
を前提とした構成例を示している。また、理解の助けとして具体的な数値や式を示すが、これはあくまでも理解を助ける簡明な例であって、実際に使われる十分な安全性を持つ暗号化とは(特に多項式の次数などの点で)必ずしも一致していない。
代数曲面生成部16は、得られたξ4(t)を制御部11に送信する。以上の操作で、公開鍵である代数曲面XのファイブレーションX(x,y,t)と、秘密鍵であるセクションDとが以下の式(17)及び式(18)に示すように得られる(ST45)。
ここでは簡単のためr=15とする。
次に、第1の実施形態と同様に成り立つとした第1のバリエーションを実施する鍵生成装置の処理の流れを図13に示すフローチャートに沿って図4に示す全体構成図を参照しながら示す。ここではp,r,dを固定するとし、ほとんど実施形態と同じであるので異なるところのみを説明するに留める。まず本バリエーションによる実施形態では素数pが固定であるため、素数生成部12の代わりに固定パラメータ格納部18が設けられ、その中に入っているpを読み込む処理(ST42”)が素数生成処理と置き換わる。
次に本実施形態の暗号装置の構成と処理の流れを図14に示すフローチャートに沿って図6に示す全体構成図を参照しながら示す。本実施形態の暗号装置20は平文入力部21から平文mを取得し、公開鍵入力部22から公開鍵X(x,y,t)p,r,dを取得することから処理を開始する。ここで、公開鍵を鍵生成処理の例として生成された
1.p=17
2.F17上の代数曲面Xのファイブレーション:
4.(秘密鍵である)セクションにおける多項式ux(t),uy(t)の最大次数d=2
を利用する。
平文埋め込み部23では平文多項式m(t)を暗号化部24に送信する。一方で、公開鍵入力部22も暗号化部24に入力された公開鍵を送信する。
暗号化部24は、1変数既約多項式f(t)を得ると、多項式生成部26にpを送信する。多項式生成部26は、3変数多項式の各項が次数に関する関係式(3)を満たし、条件(4)を満たすような項が存在するよう2つの相異なるランダムな3変数多項式p1(x,y,t),p2(x,y,t)を生成する(ST26”)。ここでは簡単のためランダムな多項式p1(x,y,t),p2(x,y,t)を次のものとする。
q2(x,y,t)=t3xy+tx2+4t3+11t2+7
以上の処理で得られたm(t),f(t),p1(x,y,t),q1(x,y,t)と公開鍵である代数曲面X(x,y,t)を利用し、式(6)に従って暗号文F1(x,y,t)を計算し展開する(ST28”−1)。なお、ここでは式(6)はp(x,y,t)をp1(x,y,t)に、q(x,y,t)をq1(x,y,t)にそれぞれ読み替えて適用する。本実施形態の例であるとF1(x,y,t)は次のようになる。
最後に本実施形態の復号装置の構成と処理の流れを図15に示すフローチャートに沿って図8に示す全体構成図を参照しながら示す。本実施形態の復号装置30は暗号文入力部31から暗号文F(x,y,t)を取得し(ST31)、鍵入力部32から公開鍵X(x,y,t)p,r,dと秘密鍵を取得することから(ST32)、処理を開始する。ここで秘密鍵とは1つのセクションであり、鍵生成で示した式(18)で定義されるセクションDを利用する。取得された暗号文と鍵情報は復号部33に送られ、復号処理が開始される。
Claims (33)
- 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、
メッセージmを1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込む平文埋め込み手段と、
3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、
次数r以上のランダムな1変数既約多項式f(t)を生成する1変数既約多項式生成手段と、
前記平文多項式m(t)に対し、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記定義式X(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化手段と
を備えたことを特徴とした暗号装置。 - 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、
メッセージmを、1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み手段と、
3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、
前記1変数既約多項式f(t)の候補の各係数のうち、前記メッセージmが埋め込まれていない係数をランダムな値に設定し、前記1変数既約多項式f(t)を生成する1変数既約多項式生成手段と、
前記平文多項式m(t)に対し、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記定義式X(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化手段と
を備えたことを特徴とした暗号装置。 - 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、
メッセージmを1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込む平文埋め込み手段と、
3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、
次数r以上のランダムな1変数既約多項式f(t)を生成する1変数既約多項式生成手段と、
前記平文多項式m(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q1(x,y,t),q2(x,y,t)とp1(x,y,t),p2(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から複数の暗号文F1=Epk(m,p1,q1,f,X)及びF2=Epk(m,p2,q2,f,X)を生成する暗号化手段と
を備えたことを特徴とする暗号装置。 - 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置であって、
メッセージmを、1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み手段と、
3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段と、
前記1変数既約多項式f(t)の候補の各係数のうち、前記メッセージmが埋め込まれていない係数をランダムな値に設定し、前記1変数既約多項式f(t)を生成する1変数既約多項式生成手段と、
前記平文多項式m(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q1(x,y,t),q2(x,y,t)とp1(x,y,t),p2(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から複数の暗号文F1=Epk(m,p1,q1,f,X)及びF2=Epk(m,p2,q2,f,X)を生成する暗号化手段と
を備えたことを特徴とする暗号装置。 - メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込まれた平文多項式m(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数r以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2に基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置であって、
前記入力された暗号文Fに対し、前記各セクションD1,D2を代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段と、
前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段と、
前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段と、
因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段と、
前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段と
を備えたことを特徴とする復号装置。 - メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の一部の係数とに分担して埋め込まれてなる当該平文多項式m(t)及び1変数既約多項式f(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、前記1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2に基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置であって、
前記入力された暗号文Fに対し、前記各セクションD1,D2を代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段と、
前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段と、
前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段と、
因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段と、
前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段と、
この平文多項式m(t)及び前記抽出した既約多項式f(t)を展開し、メッセージmを得る平文展開手段と
を備えたことを特徴とする復号装置。 - メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込まれた平文多項式m(t)に対し、次数r以上のランダムな1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q1(x,y,t),q2(x,y,t)とp1(x,y,t),p2(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から生成された複数の暗号文F1=Epk(m,p1,q1,f,X)及びF2=Epk(m,p2,q2,f,X)が入力されたとき、
予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDに基づいて、前記暗号文F1,F2から前記メッセージmを復号するための復号装置であって、
前記入力された2つの暗号文F1,F2に対し、前記セクションDを代入することにより、2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段と、
前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段と、
前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段と、
因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段と、
前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段と
を備えたことを特徴とする復号装置。 - メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の一部の係数とに分担して埋め込まれてなる当該平文多項式m(t)及び1変数既約多項式f(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q1(x,y,t),q2(x,y,t)とp1(x,y,t),p2(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から生成された複数の暗号文F1=Epk(m,p1,q1,f,X)及びF2=Epk(m,p2,q2,f,X)が入力されたとき、
予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDに基づいて、前記暗号文F1,F2から前記メッセージmを復号するための復号装置であって、
前記入力された2つの暗号文F1,F2に対し、前記セクションDを代入することにより、2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段と、
前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段と、
前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段と、
因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段と、
前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段と、
この平文多項式m(t)及び前記抽出した既約多項式f(t)を展開し、メッセージmを得る平文展開手段と
を備えたことを特徴とする復号装置。 - 請求項5乃至請求項8のいずれか1項に記載の復号装置において、
前記1変数多項式h2(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る第2の剰余演算手段と、
前記各剰余演算手段により得られた2つの平文多項式m(t)を互いに比較し、両者が一致することを検証する検証手段と
を備えたことを特徴とする復号装置。 - メッセージmを暗号化するための公開鍵である代数曲面XのファイブレーションX(x,y,t)と、前記暗号化されたメッセージmを復号するための秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2とを生成するための鍵生成装置であって、
ランダムな1変数多項式λx(t)を生成する第1の1変数多項式生成手段と、
前記1変数多項式λx(t)で割り切れる1変数多項式λy(t)を生成する第2の1変数多項式手段と、
前記1変数多項式λx(t)に基づいて、互いの差分{ux(t)−vx(t)}がλx(t)となるように、変数xをパラメータtで表示する2つの1変数多項式ux(t),vx(t)を生成する手段と、
前記1変数多項式λy(t)に基づいて、互いの差分{uy(t)−vy(t)}がλy(t)となるように、変数yをパラメータtで表示する2つの1変数多項式uy(t),vy(t)を生成する手段と、
前記各1変数多項式ux(t),vx(t),uy(t),vy(t)に基づいて、前記2つのセクションD1:(x,y,t)=(ux(t),uy(t),t)及びD2:(x,y,t)=(vx(t),vy(t),t)を生成するセクション生成手段と、
前記各セクションD1,D2を持つ代数曲面XのファイブレーションX(x,y,t)を生成する代数曲面生成手段と
を備えたことを特徴とする鍵生成装置。 - メッセージmを暗号化するための公開鍵である代数曲面XのファイブレーションX(x,y,t)と、前記暗号化されたメッセージmを復号するための秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDとを生成するための鍵生成装置であって、
ランダムな1変数多項式群ξi(t)(但し、iは自然数)を生成する第1の1変数多項式生成手段と、
前記代数曲面の変数x,yをパラメータtで表示する2つの1変数多項式ux(t),uy(t)を生成する第2の1変数多項式生成手段と、
前記各1変数多項式ux(t),uy(t)に基づいて、前記セクションD:(x,y,t)=(ux(t),uy(t),t)を生成するセクション生成手段と、
前記1変数多項式群ξi(t)及び前記セクションDに基づいて、前記セクションDを持つ代数曲面XのファイブレーションX(x,y,t)を生成する代数曲面生成手段と
を備えたことを特徴とする鍵生成装置。 - 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置に用いられるプログラムであって、
前記暗号装置のコンピュータを、
メッセージmを1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込む平文埋め込み手段、
3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段、
次数r以上のランダムな1変数既約多項式f(t)を生成する1変数既約多項式生成手段、
前記平文多項式m(t)に対し、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記定義式X(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化手段、
として機能させるためのプログラム。 - 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置に用いられるプログラムであって、
前記暗号装置のコンピュータを、
メッセージmを、1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み手段、
3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段、
前記1変数既約多項式f(t)の候補の各係数のうち、前記メッセージmが埋め込まれていない係数をランダムな値に設定し、前記1変数既約多項式f(t)を生成する1変数既約多項式生成手段、
前記平文多項式m(t)に対し、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記定義式X(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化手段、
として機能させるためのプログラム。 - 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置に用いられるプログラムであって、
前記暗号装置のコンピュータを、
メッセージmを1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込む平文埋め込み手段、
3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段、
次数r以上のランダムな1変数既約多項式f(t)を生成する1変数既約多項式生成手段、
前記平文多項式m(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q1(x,y,t),q2(x,y,t)とp1(x,y,t),p2(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から複数の暗号文F1=Epk(m,p1,q1,f,X)及びF2=Epk(m,p2,q2,f,X)を生成する暗号化手段、
として機能させるためのプログラム。 - 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置に用いられるプログラムであって、
前記暗号装置のコンピュータを、
メッセージmを、1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み手段、
3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成手段、
前記1変数既約多項式f(t)の候補の各係数のうち、前記メッセージmが埋め込まれていない係数をランダムな値に設定し、前記1変数既約多項式f(t)を生成する1変数既約多項式生成手段、
前記平文多項式m(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q1(x,y,t),q2(x,y,t)とp1(x,y,t),p2(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から複数の暗号文F1=Epk(m,p1,q1,f,X)及びF2=Epk(m,p2,q2,f,X)を生成する暗号化手段、
として機能させるためのプログラム。 - メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込まれた平文多項式m(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数r以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2に基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置に用いられるプログラムであって、
前記復号装置のコンピュータを、
前記入力された暗号文Fに対し、前記各セクションD1,D2を代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段、
前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段、
前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段、
因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段、
前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段、
として機能させるためのプログラム。 - メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の一部の係数とに分担して埋め込まれてなる当該平文多項式m(t)及び1変数既約多項式f(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、前記1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2に基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置に用いられるプログラムであって、
前記復号装置のコンピュータを、
前記入力された暗号文Fに対し、前記各セクションD1,D2を代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段、
前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段、
前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段、
因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段、
前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段、
この平文多項式m(t)及び前記抽出した既約多項式f(t)を展開し、メッセージmを得る平文展開手段、
として機能させるためのプログラム。 - メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込まれた平文多項式m(t)に対し、次数r以上のランダムな1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q1(x,y,t),q2(x,y,t)とp1(x,y,t),p2(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から生成された複数の暗号文F1=Epk(m,p1,q1,f,X)及びF2=Epk(m,p2,q2,f,X)が入力されたとき、
予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDに基づいて、前記暗号文F1,F2から前記メッセージmを復号するための復号装置に用いられるプログラムであって、
前記復号装置のコンピュータを、
前記入力された2つの暗号文F1,F2に対し、前記セクションDを代入することにより、2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段、
前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段、
前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段、
因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段、
前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段、
として機能させるためのプログラム。 - メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の一部の係数とに分担して埋め込まれてなる当該平文多項式m(t)及び1変数既約多項式f(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q1(x,y,t),q2(x,y,t)とp1(x,y,t),p2(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から生成された複数の暗号文F1=Epk(m,p1,q1,f,X)及びF2=Epk(m,p2,q2,f,X)が入力されたとき、
予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDに基づいて、前記暗号文F1,F2から前記メッセージmを復号するための復号装置に用いられるプログラムであって、
前記復号装置のコンピュータを、
前記入力された2つの暗号文F1,F2に対し、前記セクションDを代入することにより、2つの1変数多項式h1(t),h2(t)を生成するセクション代入手段、
前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算手段、
前記減算結果{h1(t)−h2(t)}を因数分解する因数分解手段、
因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出手段、
前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算手段、
この平文多項式m(t)及び前記抽出した既約多項式f(t)を展開し、メッセージmを得る平文展開手段、
として機能させるためのプログラム。 - 請求項16乃至請求項19のいずれか1項に記載のプログラムにおいて、
前記復号装置のコンピュータを、
前記1変数多項式h2(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る第2の剰余演算手段、
前記各剰余演算手段により得られた2つの平文多項式m(t)を互いに比較し、両者が一致することを検証する検証手段、
として機能させるためのプログラム。 - メッセージmを暗号化するための公開鍵である代数曲面XのファイブレーションX(x,y,t)と、前記暗号化されたメッセージmを復号するための秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2とを生成するための鍵生成装置に用いられるプログラムであって、
前記鍵生成装置のコンピュータを、
ランダムな1変数多項式λx(t)を生成する第1の1変数多項式生成手段、
前記1変数多項式λx(t)で割り切れる1変数多項式λy(t)を生成する第2の1変数多項式手段、
前記1変数多項式λx(t)に基づいて、互いの差分{ux(t)−vx(t)}がλx(t)となるように、変数xをパラメータtで表示する2つの1変数多項式ux(t),vx(t)を生成する手段、
前記1変数多項式λy(t)に基づいて、互いの差分{uy(t)−vy(t)}がλy(t)となるように、変数yをパラメータtで表示する2つの1変数多項式uy(t),vy(t)を生成する手段、
前記各1変数多項式ux(t),vx(t),uy(t),vy(t)に基づいて、前記2つのセクションD1:(x,y,t)=(ux(t),uy(t),t)及びD2:(x,y,t)=(vx(t),vy(t),t)を生成するセクション生成手段、
前記各セクションD1,D2を持つ代数曲面XのファイブレーションX(x,y,t)を生成する代数曲面生成手段、
として機能させるためのプログラム。 - メッセージmを暗号化するための公開鍵である代数曲面XのファイブレーションX(x,y,t)と、前記暗号化されたメッセージmを復号するための秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDとを生成するための鍵生成装置に用いられるプログラムであって、
前記鍵生成装置のコンピュータを、
ランダムな1変数多項式群ξi(t)(但し、iは自然数)を生成する第1の1変数多項式生成手段、
前記代数曲面の変数x,yをパラメータtで表示する2つの1変数多項式ux(t),uy(t)を生成する第2の1変数多項式生成手段、
前記各1変数多項式ux(t),uy(t)に基づいて、前記セクションD:(x,y,t)=(ux(t),uy(t),t)を生成するセクション生成手段、
前記1変数多項式群ξi(t)及び前記セクションDに基づいて、前記セクションDを持つ代数曲面XのファイブレーションX(x,y,t)を生成する代数曲面生成手段、
として機能させるためのプログラム。 - 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置が実行する暗号方法であって、
メッセージmを1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込む平文埋め込み工程と、
3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成工程と、
次数r以上のランダムな1変数既約多項式f(t)を生成する1変数既約多項式生成工程と、
前記平文多項式m(t)に対し、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記定義式X(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化工程と
を備えたことを特徴とした暗号方法。 - 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する2つ以上のセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置が実行する暗号方法であって、
メッセージmを、1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み工程と、
3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成工程と、
前記1変数既約多項式f(t)の候補の各係数のうち、前記メッセージmが埋め込まれていない係数をランダムな値に設定し、前記1変数既約多項式f(t)を生成する1変数既約多項式生成工程と、
前記平文多項式m(t)に対し、前記各多項式p(x,y,t),q(x,y,t),f(t)と前記定義式X(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から暗号文F=Epk(m,p,q,f,X)を生成する暗号化工程と
を備えたことを特徴とした暗号方法。 - 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置が実行する暗号方法であって、
メッセージmを1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込む平文埋め込み工程と、
3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成工程と、
次数r以上のランダムな1変数既約多項式f(t)を生成する1変数既約多項式生成工程と、
前記平文多項式m(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q1(x,y,t),q2(x,y,t)とp1(x,y,t),p2(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から複数の暗号文F1=Epk(m,p1,q1,f,X)及びF2=Epk(m,p2,q2,f,X)を生成する暗号化工程と
を備えたことを特徴とする暗号方法。 - 復号用の秘密鍵が代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションのとき、公開鍵である代数曲面XのファイブレーションX(x,y,t)に基づいて、メッセージmを暗号化するための暗号装置が実行する暗号方法であって、
メッセージmを、1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の候補の一部の係数とに分担して埋め込む平文埋め込み工程と、
3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)を生成する多項式生成工程と、
前記1変数既約多項式f(t)の候補の各係数のうち、前記メッセージmが埋め込まれていない係数をランダムな値に設定し、前記1変数既約多項式f(t)を生成する1変数既約多項式生成工程と、
前記平文多項式m(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q1(x,y,t),q2(x,y,t)とp1(x,y,t),p2(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から複数の暗号文F1=Epk(m,p1,q1,f,X)及びF2=Epk(m,p2,q2,f,X)を生成する暗号化工程と
を備えたことを特徴とする暗号方法。 - メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込まれた平文多項式m(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、次数r以上のランダムな1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2に基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置が実行する復号方法であって、
前記入力された暗号文Fに対し、前記各セクションD1,D2を代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入工程と、
前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算工程と、
前記減算結果{h1(t)−h2(t)}を因数分解する因数分解工程と、
因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出工程と、
前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算工程と
を備えたことを特徴とする復号方法。 - メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の一部の係数とに分担して埋め込まれてなる当該平文多項式m(t)及び1変数既約多項式f(t)に対し、3変数x,y,tのランダムな多項式p(x,y,t),q(x,y,t)と、前記1変数既約多項式f(t)と、公開鍵である代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により前記平文多項式m(t)から生成された暗号文F=Epk(m,p,q,f,X)が入力されたとき、
予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2に基づいて、前記暗号文Fから前記メッセージmを復号するための復号装置が実行する復号方法であって、
前記入力された暗号文Fに対し、前記各セクションD1,D2を代入して2つの1変数多項式h1(t),h2(t)を生成するセクション代入工程と、
前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算工程と、
前記減算結果{h1(t)−h2(t)}を因数分解する因数分解工程と、
因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出工程と、
前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算工程と、
この平文多項式m(t)及び前記抽出した既約多項式f(t)を展開し、メッセージmを得る平文展開工程と
を備えたことを特徴とする復号方法。 - メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数として埋め込まれた平文多項式m(t)に対し、次数r以上のランダムな1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q1(x,y,t),q2(x,y,t)とp1(x,y,t),p2(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から生成された複数の暗号文F1=Epk(m,p1,q1,f,X)及びF2=Epk(m,p2,q2,f,X)が入力されたとき、
予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDに基づいて、前記暗号文F1,F2から前記メッセージmを復号するための復号装置が実行する復号方法であって、
前記入力された2つの暗号文F1,F2に対し、前記セクションDを代入することにより、2つの1変数多項式h1(t),h2(t)を生成するセクション代入工程と、
前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算工程と、
前記減算結果{h1(t)−h2(t)}を因数分解する因数分解工程と、
因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出工程と、
前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算工程と
を備えたことを特徴とする復号方法。 - メッセージmが1変数tで次数(r−1)以下の平文多項式m(t)の係数と次数r以上の1変数既約多項式f(t)の一部の係数とに分担して埋め込まれてなる当該平文多項式m(t)及び1変数既約多項式f(t)に対し、前記1変数既約多項式f(t)と、少なくとも一方が相異なる2つのランダムな多項式の組q1(x,y,t),q2(x,y,t)とp1(x,y,t),p2(x,y,t)と、公開された代数曲面XのファイブレーションX(x,y,t)とを加算、減算及び乗算のうち少なくとも一つを含む演算を行う暗号化処理により、前記平文多項式m(t)から生成された複数の暗号文F1=Epk(m,p1,q1,f,X)及びF2=Epk(m,p2,q2,f,X)が入力されたとき、
予め保持する秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDに基づいて、前記暗号文F1,F2から前記メッセージmを復号するための復号装置が実行する復号方法であって、
前記入力された2つの暗号文F1,F2に対し、前記セクションDを代入することにより、2つの1変数多項式h1(t),h2(t)を生成するセクション代入工程と、
前記各1変数多項式h1(t),h2(t)を互いに減算し、減算結果{h1(t)−h2(t)}を得る多項式減算工程と、
前記減算結果{h1(t)−h2(t)}を因数分解する因数分解工程と、
因数分解結果から最も大きな次数を持つ既約多項式f(t)を抽出する多項式抽出工程と、
前記1変数多項式h1(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る剰余演算工程と、
この平文多項式m(t)及び前記抽出した既約多項式f(t)を展開し、メッセージmを得る平文展開工程と
を備えたことを特徴とする復号方法。 - 請求項27乃至請求項30のいずれか1項に記載の復号方法において、
前記1変数多項式h2(t)を前記既約多項式f(t)で除算し、剰余として平文多項式m(t)を得る第2の剰余演算工程と、
前記各剰余演算工程により得られた2つの平文多項式m(t)を互いに比較し、両者が一致することを検証する検証工程と
を備えたことを特徴とする復号方法。 - メッセージmを暗号化するための公開鍵である代数曲面XのファイブレーションX(x,y,t)と、前記暗号化されたメッセージmを復号するための秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する2つのセクションD1,D2とを生成するための鍵生成装置が実行する鍵生成方法であって、
ランダムな1変数多項式λx(t)を生成する第1の1変数多項式生成工程と、
前記1変数多項式λx(t)で割り切れる1変数多項式λy(t)を生成する第2の1変数多項式工程と、
前記1変数多項式λx(t)に基づいて、互いの差分{ux(t)−vx(t)}がλx(t)となるように、変数xをパラメータtで表示する2つの1変数多項式ux(t),vx(t)を生成する工程と、
前記1変数多項式λy(t)に基づいて、互いの差分{uy(t)−vy(t)}がλy(t)となるように、変数yをパラメータtで表示する2つの1変数多項式uy(t),vy(t)を生成する工程と、
前記各1変数多項式ux(t),vx(t),uy(t),vy(t)に基づいて、前記2つのセクションD1:(x,y,t)=(ux(t),uy(t),t)及びD2:(x,y,t)=(vx(t),vy(t),t)を生成するセクション生成工程と、
前記各セクションD1,D2を持つ代数曲面XのファイブレーションX(x,y,t)を生成する代数曲面生成工程と
を備えたことを特徴とする鍵生成方法。 - メッセージmを暗号化するための公開鍵である代数曲面XのファイブレーションX(x,y,t)と、前記暗号化されたメッセージmを復号するための秘密鍵である代数曲面XのファイブレーションX(x,y,t)=0に対応する1つのセクションDとを生成するための鍵生成装置が実行する鍵生成方法であって、
ランダムな1変数多項式群ξi(t)(但し、iは自然数)を生成する第1の1変数多項式生成工程と、
前記代数曲面の変数x,yをパラメータtで表示する2つの1変数多項式ux(t),uy(t)を生成する第2の1変数多項式生成工程と、
前記各1変数多項式ux(t),uy(t)に基づいて、前記セクションD:(x,y,t)=(ux(t),uy(t),t)を生成するセクション生成工程と、
前記1変数多項式群ξi(t)及び前記セクションDに基づいて、前記セクションDを持つ代数曲面XのファイブレーションX(x,y,t)を生成する代数曲面生成工程と
を備えたことを特徴とする鍵生成方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004149052A JP4282546B2 (ja) | 2004-05-19 | 2004-05-19 | 暗号装置、復号装置、鍵生成装置、プログラム及び方法 |
US11/128,283 US7688973B2 (en) | 2004-05-19 | 2005-05-13 | Encryption apparatus, decryption apparatus, key generation apparatus, program, and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004149052A JP4282546B2 (ja) | 2004-05-19 | 2004-05-19 | 暗号装置、復号装置、鍵生成装置、プログラム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005331656A true JP2005331656A (ja) | 2005-12-02 |
JP4282546B2 JP4282546B2 (ja) | 2009-06-24 |
Family
ID=35448947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004149052A Expired - Fee Related JP4282546B2 (ja) | 2004-05-19 | 2004-05-19 | 暗号装置、復号装置、鍵生成装置、プログラム及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7688973B2 (ja) |
JP (1) | JP4282546B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007139895A (ja) * | 2005-11-15 | 2007-06-07 | Toshiba Corp | 暗号装置、復号装置、プログラム及び方法 |
JP2007271715A (ja) * | 2006-03-30 | 2007-10-18 | Toshiba Corp | 鍵生成装置、プログラム及び方法 |
JP2008046295A (ja) * | 2006-08-14 | 2008-02-28 | Sony Corp | 公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラム |
JP2009543498A (ja) * | 2006-07-12 | 2009-12-03 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | デジタルデータ処理装置の耐改竄性 |
JP2010204466A (ja) * | 2009-03-04 | 2010-09-16 | Toshiba Corp | 暗号装置、復号装置、鍵生成装置及びプログラム |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4575251B2 (ja) * | 2005-07-25 | 2010-11-04 | 株式会社東芝 | デジタル署名生成装置、デジタル署名検証装置、デジタル署名生成方法、デジタル署名検証方法、デジタル署名生成プログラム及びデジタル署名検証プログラム |
WO2007096566A1 (fr) * | 2006-02-23 | 2007-08-30 | France Telecom | Dispositif et procede de hachage cryptographique |
JP4197710B2 (ja) * | 2006-07-19 | 2008-12-17 | 株式会社東芝 | 暗号装置、復号装置、プログラム及び方法 |
US7987367B2 (en) * | 2006-08-30 | 2011-07-26 | Samsung Electronics Co., Ltd. | Method and apparatus for key agreement between devices using polynomial ring |
KR101367101B1 (ko) | 2006-08-30 | 2014-02-25 | 삼성전자주식회사 | 다항식환을 이용한 키 합의 방법 및 이를 위한 장치 |
JP2009116183A (ja) * | 2007-11-08 | 2009-05-28 | Toshiba Corp | 暗号装置、復号装置、鍵生成装置及びプログラム |
FI20075931L (fi) * | 2007-12-18 | 2009-06-19 | Abb Oy | Menetelmä ja laite signaalidatan siirtämiseksi |
US8037327B2 (en) * | 2008-03-31 | 2011-10-11 | Agilent Technologies, Inc. | System and method for improving dynamic response in a power supply |
JP2010164904A (ja) * | 2009-01-19 | 2010-07-29 | Fujitsu Ltd | 楕円曲線演算処理装置、楕円曲線演算処理プログラム及び方法 |
US8683225B2 (en) * | 2010-05-25 | 2014-03-25 | Via Technologies, Inc. | Microprocessor that facilitates task switching between encrypted and unencrypted programs |
JP5594034B2 (ja) * | 2010-07-30 | 2014-09-24 | ソニー株式会社 | 認証装置、認証方法、及びプログラム |
JP6069852B2 (ja) * | 2011-08-29 | 2017-02-01 | ソニー株式会社 | 情報処理装置、情報処理方法、及びプログラム |
KR101301609B1 (ko) * | 2012-05-31 | 2013-08-29 | 서울대학교산학협력단 | 비밀키 생성 장치 및 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체 |
US10574461B2 (en) * | 2013-09-30 | 2020-02-25 | Triad National Security, Llc | Streaming authentication and multi-level security for communications networks using quantum cryptography |
US9425952B2 (en) | 2014-03-27 | 2016-08-23 | Samsung Israel Research Corporation | Algebraic manipulation detection codes from algebraic curves |
CN109792383B (zh) * | 2016-08-02 | 2022-11-18 | 阿尔几何有限责任公司 | 用于使用几何代数的增强的以数据为中心的加密系统的方法和系统 |
KR20220012851A (ko) | 2019-05-30 | 2022-02-04 | 김봉만 | 대칭 키 암호화/교환을 위한 양자 내성 암호화 및 진보된 암호화 및 키 교환(aeke) 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2170834C (en) * | 1996-03-01 | 2006-11-21 | Calin A. Sandru | Apparatus and method for enhancing the security of negotiable documents |
JP2001255814A (ja) * | 2000-03-10 | 2001-09-21 | Murata Mach Ltd | 復号方法、復号装置、及び復号プログラムの記録媒体 |
US20040151309A1 (en) * | 2002-05-03 | 2004-08-05 | Gentry Craig B | Ring-based signature scheme |
-
2004
- 2004-05-19 JP JP2004149052A patent/JP4282546B2/ja not_active Expired - Fee Related
-
2005
- 2005-05-13 US US11/128,283 patent/US7688973B2/en not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007139895A (ja) * | 2005-11-15 | 2007-06-07 | Toshiba Corp | 暗号装置、復号装置、プログラム及び方法 |
US7773747B2 (en) | 2005-11-15 | 2010-08-10 | Kabushiki Kaisha Toshiba | Encryption apparatus, decryption apparatus, and method |
JP4575283B2 (ja) * | 2005-11-15 | 2010-11-04 | 株式会社東芝 | 暗号装置、復号装置、プログラム及び方法 |
JP2007271715A (ja) * | 2006-03-30 | 2007-10-18 | Toshiba Corp | 鍵生成装置、プログラム及び方法 |
JP4664850B2 (ja) * | 2006-03-30 | 2011-04-06 | 株式会社東芝 | 鍵生成装置、プログラム及び方法 |
JP2009543498A (ja) * | 2006-07-12 | 2009-12-03 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | デジタルデータ処理装置の耐改竄性 |
US8543835B2 (en) | 2006-07-12 | 2013-09-24 | Irdeto B.V. | Tamper resistance of a digital data processing unit |
JP2008046295A (ja) * | 2006-08-14 | 2008-02-28 | Sony Corp | 公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラム |
JP2010204466A (ja) * | 2009-03-04 | 2010-09-16 | Toshiba Corp | 暗号装置、復号装置、鍵生成装置及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20050271203A1 (en) | 2005-12-08 |
US7688973B2 (en) | 2010-03-30 |
JP4282546B2 (ja) | 2009-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4282546B2 (ja) | 暗号装置、復号装置、鍵生成装置、プログラム及び方法 | |
JP4384056B2 (ja) | 暗号装置、復号装置、鍵生成装置、プログラム及び方法 | |
JP4575283B2 (ja) | 暗号装置、復号装置、プログラム及び方法 | |
JP4197710B2 (ja) | 暗号装置、復号装置、プログラム及び方法 | |
US7711113B2 (en) | ID-based signature, encryption system and encryption method | |
US7469048B2 (en) | Methods for point compression for jacobians of hyperelliptic curves | |
JP4664850B2 (ja) | 鍵生成装置、プログラム及び方法 | |
Bosselaers et al. | Integrity Primitives for Secure Information Systems: Final Ripe Report of Race Integrity Primitives Evaluation | |
JP2008203548A (ja) | 二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。 | |
JP2010204466A (ja) | 暗号装置、復号装置、鍵生成装置及びプログラム | |
JP4869824B2 (ja) | 受信者装置及び送信者装置及び暗号通信システム及びプログラム | |
JP2009175197A (ja) | 暗号装置、復号装置、鍵生成装置及びプログラム | |
US20100329447A1 (en) | Encryption apparatus, decryption apparatus, key generation apparatus, and program | |
JP2014002230A (ja) | 認証暗号化装置、認証復号装置、およびプログラム | |
JP2021072593A (ja) | 暗号処理システム及び暗号処理方法 | |
JP7273742B2 (ja) | 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム | |
JP2011040932A (ja) | 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体 | |
JP7443217B2 (ja) | 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム | |
JP4685621B2 (ja) | 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム | |
JP2006184831A (ja) | 鍵生成装置、暗号化装置、検査装置、復号化装置並びに鍵生成プログラム、暗号化プログラム、検査プログラム、復号化プログラム | |
JP2002023626A (ja) | 公開鍵暗号方法および公開鍵暗号を用いた通信システム | |
CN113259094B (zh) | 一种通用的层级签名加密系统与构建方法 | |
JPH1155244A (ja) | 鍵回復方法および装置 | |
JP2010002662A (ja) | リカバリ署名システム、署名生成装置、署名検証装置、それらの方法、及びプログラム | |
JPH1039751A (ja) | 公開鍵暗号による通信および認証方法、ならびにそれらの装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050907 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090204 |
|
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: 20090303 |
|
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: 20090317 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120327 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130327 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130327 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140327 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |