CN101911582B - 密码参数设定装置、密钥生成装置、密码系统、密码参数设定方法和密钥生成方法 - Google Patents

密码参数设定装置、密钥生成装置、密码系统、密码参数设定方法和密钥生成方法 Download PDF

Info

Publication number
CN101911582B
CN101911582B CN2008801249620A CN200880124962A CN101911582B CN 101911582 B CN101911582 B CN 101911582B CN 2008801249620 A CN2008801249620 A CN 2008801249620A CN 200880124962 A CN200880124962 A CN 200880124962A CN 101911582 B CN101911582 B CN 101911582B
Authority
CN
China
Prior art keywords
mentioned
factor
equal
random number
key
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.)
Expired - Fee Related
Application number
CN2008801249620A
Other languages
English (en)
Other versions
CN101911582A (zh
Inventor
高岛克幸
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
Publication of CN101911582A publication Critical patent/CN101911582A/zh
Application granted granted Critical
Publication of CN101911582B publication Critical patent/CN101911582B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/606Traitor tracing

Landscapes

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

Abstract

不使用合数阶数的配对运算而实现高功能的密码系统。随机矩阵选择部142根据密码参数设定装置100所算出的多个配对对数系数ηi,从满足规定条件的多个矩阵中随机地选择随机矩阵V。输出基底算出部143根据密码参数设定装置100所算出的多个基底因子D j和随机矩阵选择部142所选择的随机矩阵V,算出多个输出基底gk

Description

密码参数设定装置、密钥生成装置、密码系统、密码参数设定方法和密钥生成方法
技术领域
本发明涉及一种设定在密码系统中使用的密码参数的密码参数设定装置以及生成密钥的密钥生成装置。 
背景技术
提出了一种使用合数阶数的配对运算(pairing operation)来实现高功能密码、签名的密码系统。 
非专利文献1:D.Boneh、A.Sahai、B.Waters“Fully Collusion Resistant Traitor Tracing With Short Ciphertexts and Private Keys”Eurocrypt 2006、2006年。 
非专利文献2:D.Boneh、B.Waters“A Fully Resistant Broadcast,Trace,and Revoke System”ACM CCS 2006、2006年。 
非专利文献3:D.Boneh、E.Goh、K.Nissim“Evaluating 2-DNFFormulas on Ciphertexts”TCC 2005、2005年。 
非专利文献4:X.Boyen、B.Waters“Full-Domain Subgroup Hiding and Constant-Size Group Signatures”PKC 2007、2007年。 
非专利文献5:D.Boneh、B.Waters“Conjunctive,Subset,and Range Queries on Encrypted Data”TCC 2007、2007年。 
非专利文献6:S.D.Galbraith、J.Pujolas、C.Ritzenthaler、B.Smith“Distortion Maps For Genus Two Curves”arXiv:math.NT/0611471、2006年。 
非专利文献7:S.D.Galbraith、F.Hess、F.Vercauteren“Hyperelliptic pairings”Pairing 2007、LNCS 4575、108~131页、2007年。 
非专利文献8:D.Freeman“Constructing Pairing-Friendly Genus2 Curves with Ordinary Jacobians”Pairing 2007、LNCS 4575、152~176页、2007年。 
发明内容
(发明要解决的问题) 
使用合数阶数的配对运算的密码系统的安全性以进行合数阶数的素因素分解困难为依据。 
在以素因素分解困难为安全性的依据的密码系统中,一般进行加密所需的数据大小变大,密码运算中花费时间。 
本发明是例如为了解决如上所述的问题而完成的,其目的在于使用代替合数阶数的配对运算的其它运算来构成与使用合数阶数的配对运算而构成的密码系统同等或其以上的高功能的密码系统。 
(用于解决问题的方案) 
本发明所涉及的密码参数设定装置的特征在于,具有:处理数据的处理装置、随机因子选择部、基底因子生成部、配对对数算出部以及参数设定部, 
上述随机因子选择部使用上述处理装置,从循环群G’的多个要素中选择要素来作为随机因子D, 
上述基底因子生成部使用上述处理装置,根据上述随机因子选择部所选择的随机因子D,利用多个映射Gj对上述随机因子D进行映射,算出多个基底因子D j,其中,上述多个映射Gj是从上述循环群G’向多个循环群G’j中的各个循环群的同态型映射, 
上述配对对数算出部使用上述处理装置,算出群G中的上述多个基底因子D j间的配对值的对数来作为多个配对对数系数ηi,其中,上述群G是上述多个循环群G’j的直积,能够计算通过包含在上述群G中的两个要素间的双线性配对运算的配对值, 
上述参数设定部使用上述处理装置,将上述基底因子生成部所算出的多个基底因子D j和上述配对对数算出部所算出的多个配对对数 系数ηi设为用于密码运算的密码参数。 
本发明所涉及的密码参数设定装置具有以下特征。 
上述随机因子选择部使用上述处理装置,从作为有限域Fp上的代数曲线C的雅可比簇JacC的因子所形成的群的部分群的循环群G’的多个要素中选择要素来作为随机因子D, 
上述基底因子生成部使用上述处理装置,将扩张域K上的代数曲线C的雅可比簇JacC的因子所形成的群中的多个自同态型映射作为上述多个映射Gj来算出上述多个基底因子D j,其中,上述扩张域K是将上述有限域Fp进行有限代数扩张得到的。 
本发明所涉及的密码参数设定装置的特征在于,具有:处理数据的处理装置、随机因子选择部、基底因子生成部、离散对数算出部、配对对数算出部以及参数设定部, 
上述随机因子选择部使用上述处理装置,从有限域Fp上的亏格d的代数曲线C的雅可比簇JacC的多个因子中选择随机因子D,其中,上述有限域Fp的阶数p是素数,上述亏格d是大于等于2的整数, 
上述基底因子生成部使用上述处理装置,根据上述随机因子选择部所选择的随机因子D,算出多个基底因子D j, 
上述离散对数算出部使用上述处理装置,算出多个离散对数lκ, 
上述配对对数算出部使用上述处理装置,根据上述离散对数算出部所算出的多个离散对数lκ,算出多个配对对数系数ηi, 
上述参数设定部使用上述处理装置,根据上述基底因子生成部所算出的多个基底因子D j和上述配对对数算出部所算出的多个配对对数系数ηi,设定用于密码运算的密码参数。 
本发明所涉及的密码参数设定装置具有以下特征。 
上述随机因子选择部使用上述处理装置,从有限域Fp上的超椭圆曲线C:Y2=Xw+1的雅可比簇JacC的多个因子中选择随机因子D,其中,w是素数,w=2d+1,将上述阶数p除以上述素数w得到的余数a是阶数为w的有限域Fw的乘法群Fw 的生成元, 
上述基底因子生成部使用上述处理装置,根据上述随机因子选择 部所选择的随机因子D,使高斯和算子Gj作用于上述随机因子D,算出上述扩张域K上的雅可比簇JacC的多个基底因子D j=Gj(D),其中,j是大于等于0且小于等于2d-1的整数,上述高斯和算子Gj是式1所示的扩张域K上的雅可比簇JacC上的作用,上述扩张域K是将上述有限域Fp扩张2d阶得到的代数扩张域, 
上述离散对数算出部使用上述处理装置,根据上述余数a,算出满足式2的多个离散对数lκ,其中,κ是大于等于1且小于等于2d-1的整数,上述多个离散对数lκ是大于等于0且小于等于2d-1的整数, 
上述配对对数算出部使用上述处理装置,根据上述离散对数算出部所算出的多个离散对数lκ,计算出式3所示的计算式,算出多个配对对数系数ηi,其中,i是大于等于0且小于等于2d-1的整数,上述多个配对对数系数ηi是大于等于0且小于等于r-1的整数,r是上述随机因子D的阶数, 
[式1] 
G j = Σ i = 0 2 d - 1 { p i · j · ρ a i }
其中,ρ是与上述扩张域K上的超椭圆曲线C上的作用(x,y)→(ζx,y)对应的上述雅可比簇JacC上的作用,ζ是1的w次方根, 
[式2] 
a κ - 1 ≡ a l κ mod w
[式3] 
η i = ( Σ κ = 1 2 d - 1 p l κ + i · κ ) mod r .
本发明所涉及的密钥生成装置的特征在于,具有:处理数据的处理装置、存储数据的存储装置、基底因子存储部、配对对数存储部、输出基底算出部以及密钥算出部, 
上述基底因子存储部使用上述存储装置,将群G的多个要素作为多个基底因子D j来进行存储,其中,上述群G是阶数相同的多个循环群的直积,能够计算通过包含在上述群G中的两个要素间的双线 性配对运算的配对值,上述多个基底因子D j相互线性独立, 
上述配对对数存储部使用上述存储装置,将上述多个基底因子D j间的配对值的对数作为多个配对对数系数ηi来进行存储, 
上述输出基底算出部使用上述处理装置,根据上述基底因子存储部所存储的多个基底因子D j以及上述配对对数存储部所存储的多个配对对数系数ηi,算出作为上述群G的要素的多个输出基底gk,其中,上述多个输出基底gk中的至少某两个输出基底gk间的配对值为1, 
上述密钥算出部使用上述处理装置,根据上述输出基底算出部所算出的多个输出基底gk,算出用于密码运算的密钥。 
本发明所涉及的密钥生成装置的特征在于,上述密钥生成装置还具有随机矩阵选择部, 
上述随机矩阵选择部使用上述处理装置,根据上述配对对数存储部所存储的多个配对对数系数ηi,从在关系式M’=V·M·VT中成为m’uv=0的多个矩阵V中随机地选择随机矩阵V,其中,M’是以m’μv为μ行v列成分的b阶方矩阵,b是由上述输出基底算出部算出的多个输出基底gk的数量,V是以取大于等于0且小于等于r-1的整数值的变量cμv为μ行v列成分的b行f列矩阵,r是上述多个循环群的阶数,f是上述基底因子存储部所存储的多个基底因子D j的数量,M是以上述配对对数存储部所存储的配对对数系数ηi中的基底因子D μ与基底因子D v间的配对对数系数ηi为μ行v列成分的f阶方矩阵,VT是将上述矩阵V转置得到的f行b列矩阵,u和v是大于等于1且小于等于b的规定的整数, 
上述输出基底算出部使用上述处理装置,根据上述基底因子存储部所存储的多个基底因子D j和上述随机矩阵选择部所选择的随机矩阵V,算出上述多个输出基底gk=vk·D,其中,k是大于等于1且小于等于b的整数,vk是上述随机矩阵V的第k行向量,D是以上述多个基底因子D j为第j+1行成分的f阶列向量。 
本发明所涉及的密钥生成装置具有以下特征。 
上述基底因子存储部使用上述存储装置,作为上述多个基底因子 D j,存储群G的多个要素,该群G是对有限域Fp进行有限代数扩张得到的扩张域K上的代数曲线C的雅可比簇JacC的多个因子所形成的群的部分群。 
本发明所涉及的密钥生成装置的特征在于,具有:处理数据的处理装置、存储数据的存储装置、基底因子存储部、配对对数存储部、随机矩阵选择部、输出基底算出部以及密钥算出部, 
上述基底因子存储部使用上述存储装置,存储上述权利要求4所述的密码参数设定装置所算出的多个基底因子D j, 
上述配对对数存储部使用上述存储装置,存储上述密码参数设定装置所算出的多个配对对数系数ηi, 
上述随机矩阵选择部使用上述处理装置,根据多个整数m’μv要满足的规定的条件,从满足关系式M’=V·M·VT的多个矩阵V中随机地选择随机矩阵V,其中,μ和v是大于等于1且小于等于b的整数,b是大于等于2且小于等于2d的整数,M’是以整数m’μv为μ行v列成分的b阶方矩阵,V是以取大于等于0且小于等于r-1的某一个整数值的变量cμv为μ行v列成分的b行2d列的矩阵,VT是将上述矩阵V转置得到的2d行b列的方矩阵,M是以整数mμv为μ行v列成分的2d阶的方矩阵,在μ+v=2d+1时上述整数mμv为ηv+1,在μ+v≠2d+1时上述整数mμv为0, 
上述输出基底算出部使用上述处理装置,根据上述基底因子存储部所存储的多个基底因子D j和上述随机矩阵选择部所选择的随机矩阵V,算出多个输出基底gk=vk·D,其中,k是大于等于1且小于等于b的整数,gk是上述扩张域K上的雅可比簇JacC的因子,vk是上述随机矩阵V的第k行向量,D是以上述多个基底因子D j为第j+1行成分的2d阶列向量, 
上述参数算出部使用上述处理装置,根据上述输出基底算出部所算出的多个输出基底gk和上述随机矩阵选择部所选择的随机矩阵V,算出用于密码运算的密钥。 
本发明所涉及的密钥生成装置的特征在于,上述密钥生成装置还 具有一致条件输入部, 
上述一致条件输入部使用上述处理装置,输入表示上述多个输出基底gk中的、输出基底gμ与输出基底gv的配对值e(gμ,gv)要成为1的输出基底的组的整数组(μ,v), 
上述随机矩阵选择部使用上述处理装置,根据上述一致条件输入部所输入的整数组(μ,v),选择满足条件m’μv=0的随机矩阵V。 
本发明所涉及的密钥生成装置的特征在于,上述密钥生成装置还具有不一致条件输入部, 
上述不一致条件输入部使用上述处理装置,输入表示上述多个输出基底gk中的、输出基底gμ与输出基底gv的配对值e(gμ,gv)不会成为1的输出基底的组的整数组(μ,v), 
上述随机矩阵选择部使用上述处理装置,根据上述不一致条件输入部所输入的整数组(μ,v),选择满足条件m’μv≠0的随机矩阵V。 
本发明所涉及的密码系统的特征在于,具有密码参数设定装置和密钥生成装置, 
上述基底因子存储部使用上述存储装置,存储上述密码参数设定装置所算出的多个基底因子D j, 
上述配对对数存储部使用上述存储装置,存储上述密码参数设定装置所算出的多个配对对数系数ηi。 
本发明所涉及的密码系统的特征在于,上述密码系统还具有密文生成装置和密文解密装置, 
上述密文生成装置根据上述密码参数设定装置所设定的密码参数和上述密钥生成装置所生成的密钥,生成密文, 
上述密文解密装置根据上述密码参数设定装置所设定的密码参数和上述密钥生成装置所生成的密钥,对上述密文生成装置所生成的密文进行解密。 
本发明所涉及的密码系统的特征在于,上述密码系统具有多个密文解密装置,还具有非法者追踪装置, 
上述密钥生成装置还具有公开密钥设定部、私人密钥设定部以及 追踪密钥设定部, 
上述公开密钥设定部设定为了由上述密文生成装置生成密文而使用的公开密钥, 
上述私人密钥设定部设定多个私人密钥,该多个私人密钥用于由上述多个密文解密装置中的各个密文解密装置对上述密文生成装置所生成的密文进行解密, 
上述追踪密钥设定部设定追踪密钥,该追踪密钥用于由上述非法者追踪装置判别私人密钥的泄漏源, 
上述密文生成装置根据上述密钥生成装置所设定的公开密钥,生成密文, 
上述多个密文解密装置分别根据上述密钥生成装置所设定的多个私人密钥中的、与上述密文解密装置的用户对应的私人密钥,对上述密文生成装置所生成的密文进行解密, 
上述非法者追踪装置根据上述密钥生成装置所设定的追踪密钥,生成密文,对使盗版解密装置解密所生成的密文而得到的结果进行解析,判别上述盗版解密装置在解密密文时使用的私人密钥,其中,上述盗版解密装置是对上述密文生成装置所生成的密文进行解密的盗版解密装置。 
本发明所涉及的密码系统具有以下特征。 
上述随机因子选择部使用上述处理装置,从有限域Fp上的超椭圆曲线C:Y2=X5+1的雅可比簇JacC的多个因子中选择随机因子D,其中,将素数p除以5得到的余数a是2或3, 
上述随机矩阵选择部使用上述处理装置,选择满足条件m’12=m’21=m’34=m’43=m’14=m’41=m’23=m’32=0,m’11≠0,m’22≠0,m’33≠0,m’44≠0的4行4列的随机矩阵V, 
上述输出基底算出部使用上述处理装置,根据上述基底因子存储部所存储的多个基底因子D j和上述随机矩阵选择部所算出的随机矩阵V,算出四个输出基底gk=vk·D,其中,k是大于等于1且小于等于4的整数, 
上述密钥算出部具有:用户人数输入部、公开行基底算出部、公开列基底算出部、行随机数生成部、列随机数生成部、配对随机数生成部、共用随机数生成部、公开共用因子算出部、公开行第一因子算出部、公开行第二因子算出部、公开配对值算出部、公开列因子算出部、公开密钥设定部、私人因子算出部以及私人密钥设定部, 
上述用户人数输入部使用上述处理装置,输入表示用户数量n的整数n1和整数n2,其中,n=n1n2, 
上述公开行基底算出部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g1和输出基底g2,算出上述雅可比簇JacC的因子g=g1+g2, 
上述公开列基底算出部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g3和输出基底g4,算出上述雅可比簇JacC的因子h=g3+g4, 
上述行随机数生成部使用上述处理装置,根据上述用户人数输入部所输入的整数n1,随机地生成n1个随机数rx,其中,x是大于等于1且小于等于n1的整数,随机数rx是大于等于1且小于等于r-1的整数, 
上述列随机数生成部使用上述处理装置,根据上述用户人数输入部所输入的整数n2,随机地生成n2个随机数cy,其中,y是大于等于1且小于等于n2的整数,随机数cy是大于等于1且小于等于r-1的整数, 
上述配对随机数生成部使用上述处理装置,根据上述用户人数输入部所输入的整数n1,随机地生成n1个随机数αx,其中,x是大于等于1且小于等于n1的整数,随机数αx是大于等于1且小于等于r-1的整数, 
上述共用随机数生成部使用上述处理装置,随机地生成随机数β,其中,随机数β是大于等于1且小于等于r-1的整数, 
上述公开共用因子算出部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g2和上述共用随机数生成部所生成的随机数 β,算出上述雅可比簇JacC的因子E=β·g2, 
上述公开行第一因子算出部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g2、上述行随机数生成部所生成的n1个随机数rx以及上述共用随机数生成部所生成的随机数β,算出上述雅可比簇JacC的n1个因子Ex=β·rx·g2,其中,x是大于等于1且小于等于n1的整数, 
上述公开行第二因子算出部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g4、上述行随机数生成部所生成的n1个随机数rx以及上述共用随机数生成部所生成的随机数β,算出上述雅可比簇JacC的n1个因子Fx=β·rx·g4,其中,x是大于等于1且小于等于n1的整数, 
上述公开配对值算出部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g2、上述配对随机数生成部所生成的n1个随机数αx以及上述共用随机数生成部所生成的随机数β,算出n1个配对值Gx=e(g4,g4)β·α x,其中,配对e是e(D,D’)=ew(D,φ(D’)),ew是韦伊配对,φ是上述雅可比簇JacC上的能够计算的同态型映射, 
上述公开列因子算出部使用上述处理装置,根据上述公开行基底算出部所算出的因子g和上述列随机数生成部所生成的随机数cy,算出上述雅可比簇JacC的n2个因子Hy=cy·g,其中,y是大于等于1且小于等于n2的整数, 
上述公开密钥设定部使用上述处理装置,根据上述公开行基底算出部所算出的因子g、上述公开列基底算出部所算出的因子h、上述公开共用因子算出部所算出的因子E、上述公开行第一因子算出部所算出的n1个因子Ex、上述公开行第二因子算出部所算出的n1个因子Fx、上述公开配对值算出部所算出的n1个配对值Gx以及上述公开列因子算出部所算出的n2个因子Hy,设定公开密钥PK=(g,h,E,Ex,Fx,Gx,Hy),其中,x是大于等于1且小于等于n1的整数,y是大于等于1且小于等于n2的整数, 
上述私人因子算出部使用上述处理装置,根据上述公开行基底算 出部所算出的因子g、上述行随机数生成部所生成的n1个随机数rx、上述列随机数生成部所生成的n2个随机数cy以及上述配对随机数生成部所生成的n1个随机数αx,算出n个因子Kx,y=αx·g+rxcy·g,其中,x是大于等于1且小于等于n1的整数,y是大于等于1且小于等于n2的整数, 
上述私人密钥设定部使用上述处理装置,根据上述私人因子算出部所算出的n个因子Kx,y,设定与n名用户分别对应的n个私人密钥SKx,y=(Kx,y), 
上述密文生成装置具有:处理数据的处理装置、公开密钥输入部、明文输入部、密码共用随机数生成部、密码列随机数生成部、密码行随机数生成部、密码行第一因子算出部、密码行第二因子算出部、密码行第三因子算出部、加密密钥算出部、明文加密部、行密文设定部、密码列第一因子算出部、密码列第二因子算出部以及列密文设定部, 
上述公开密钥输入部使用上述处理装置,输入上述密钥生成装置所设定的公开密钥PK=(g,h,E,Ex,Fx,Gx,Hy), 
上述明文输入部使用上述处理装置,输入要加密的明文M, 
上述密码共用随机数生成部使用上述处理装置,随机地生成随机数t,其中,随机数t是大于等于1且小于等于r-1的整数, 
上述密码列随机数生成部使用上述处理装置,生成n2个以下的随机数wy,其中,y是大于等于1且小于等于n2的整数,随机数wy是大于等于1且小于等于r-1的整数, 
上述密码行随机数生成部使用上述处理装置,生成n1个以下的随机数sx,其中,x是大于等于1且小于等于n1的整数,随机数sx是大于等于1且小于等于r-1的整数, 
上述密码行第一因子算出部使用上述处理装置,根据包含在上述公开密钥输入部所输入的公开密钥PK中的n1个因子Ex和上述密码行随机数生成部所生成的n1个以下的随机数sx,算出雅可比簇JacC的n1个以下的因子Rx=sx·Ex,其中,x是大于等于1且小于等于n1的整数, 
上述密码行第二因子算出部使用上述处理装置,根据包含在上述公开密钥输入部所输入的公开密钥PK中的n1个因子Fx和上述密码行随机数生成部所生成的n1个以下的随机数sx,算出雅可比簇JacC的n1个以下的因子R x=sx·Fx,其中,x是大于等于1且小于等于n1的整数, 
上述密码行第三因子算出部使用上述处理装置,根据包含在上述公开密钥输入部所输入的公开密钥PK中的因子E、上述密码共用随机数生成部所生成的随机数t以及上述密码行随机数生成部所生成的n1个以下的随机数sx,算出雅可比簇JacC的n1个以下的因子Ax=sxt·E,其中,x是大于等于1且小于等于n1的整数, 
上述加密密钥算出部使用上述处理装置,根据包含在上述公开密钥输入部所输入的公开密钥PK中的n1个配对值Gx、上述密码共用随机数生成部所生成的随机数t以及上述密码行随机数生成部所生成的n1个以下的随机数sx,算出n1个以下的配对值CKx=Gx s x t,其中,x是大于等于1且小于等于n1的整数, 
上述明文加密部使用上述处理装置,根据上述明文输入部所输入的明文M和上述加密密钥算出部所算出的n1个以下的配对值CKx,将上述n1个以下的配对值CKx分别用作加密密钥来对上述明文M进行加密,生成n1个以下的密文Bx,其中,x是大于等于1且小于等于n1的整数, 
上述行密文设定部使用上述处理装置,根据上述密码行第一因子算出部所算出的n1个以下的因子Rx、上述密码行第二因子算出部所算出的n1个以下的因子R x、上述密码行第三因子算出部所算出的n1个以下的因子Ax以及上述明文加密部所生成的n1个以下的密文Bx,设定n1个以下的行密文CTx=(Rx,R x,Ax,Bx),其中,x是大于等于1且小于等于n1的整数, 
上述密码列第一因子算出部使用上述处理装置,根据包含在上述公开密钥输入部所输入的公开密钥PK中的因子h和因子Hy、上述密码共用随机数生成部所生成的随机数t以及上述密码列随机数生成部 所生成的随机数wy,算出雅可比簇JacC的n2个以下的因子Cy=t·Hy+wy·h,其中,y是大于等于1且小于等于n2的整数, 
上述密码列第二因子算出部使用上述处理装置,根据包含在上述公开密钥输入部所输入的公开密钥PK中的因子g和上述密码列随机数生成部所生成的随机数wy,算出雅可比簇JacC的n2个以下的因子C y=wy·g,其中,y是大于等于1且小于等于n2的整数, 
上述列密文设定部使用上述处理装置,根据上述密码列第一因子算出部所算出的n2个以下的因子Cy和上述密码列第二因子算出部所算出的n2个以下的因子C y,设定n2个以下的列密文CTy=(Cy,C y),其中,y是大于等于1且小于等于n2的整数, 
上述密文解密装置具有:存储数据的存储装置、处理数据的处理装置、私人密钥存储部、行密文输入部、列密文输入部、解密密钥算出部以及密文解密部, 
上述私人密钥存储部使用上述存储装置,存储上述密钥生成装置所设定的n个私人密钥SKx,y中的、与对应于上述密文解密装置的用户的规定的索引X和Y所对应的私人密钥SKX,Y=(KX,Y),其中,X是大于等于1且小于等于n1的整数,Y是大于等于1且小于等于n2的整数, 
上述行密文输入部使用上述处理装置,输入上述密文生成装置所设定的n1个以下的行密文CTx中的、与上述索引X对应的行密文CTX=(RX,R X,AX,BX), 
上述列密文输入部使用上述处理装置,输入上述密文生成装置所设定的n2个以下的列密文CTy中的、与上述索引Y对应的列密文CTY=(CY,C Y), 
上述解密密钥算出部使用上述处理装置,根据上述私人密钥存储部所存储的私人密钥SKX,Y、包含在上述行密文输入部所输入的行密文CTX中的因子RX、因子R X及因子AX、包含在上述列密文输入部所输入的列密文CTY中的因子CY和因子C Y,算出配对值CK’=e(KX,Y,AX)·e(R X,C Y)/e(CY,RX), 
上述密文解密部使用上述处理装置,根据包含在上述行密文输入部所输入的行密文CTX中的密文BX以及上述解密密钥算出部所算出的配对值CK’,将上述配对值CK’用作解密密钥来对上述密文BX进行解密,生成解密文M’。 
本发明所涉及的密码系统的特征在于,上述密码系统具有多个密文解密装置,还具有非法者追踪装置, 
上述密钥算出部还具有追踪密钥设定部, 
上述追踪密钥设定部使用上述处理装置,根据上述输出基底算出部所算出的四个输出基底gk、上述行随机数生成部所生成的n1个随机数rx、上述配对随机数生成部所生成的n1个随机数αx以及上述列随机数生成部所生成的n2个随机数cy,设定追踪密钥TK=(gk,rx,αx,cy),其中,k是大于等于1且小于等于4的整数,x是大于等于1且小于等于n1的整数,y是大于等于1且小于等于n2的整数, 
上述非法者追踪装置具有:存储数据的存储装置、处理数据的处理装置、追踪密钥存储部、目标决定部、追踪明文生成部、追踪共用随机数生成部、追踪列随机数生成部、追踪行随机数生成部、干扰行随机数生成部、干扰列随机数生成部、追踪行第一因子算出部、追踪行第二因子算出部、追踪行第三因子算出部、追踪加密密钥算出部、追踪明文加密部、追踪行密文设定部、追踪列第一因子算出部、追踪列第二因子算出部、追踪列密文设定部、解密文输入部以及泄漏源判别部, 
上述追踪密钥存储部使用上述存储装置,存储密钥生成装置所设定的追踪密钥TK=(gk,rx,αx,cy), 
上述目标决定部使用上述处理装置,将上述索引x分类为三个组,使用上述处理装置,将上述索引y分类为两个组, 
上述追踪明文生成部使用上述处理装置,生成明文M, 
上述追踪共用随机数生成部使用上述处理装置,随机地生成随机数t,其中,随机数t是大于等于1且小于等于r的整数, 
上述追踪列随机数生成部使用上述处理装置,随机地生成n2个 以下的随机数wy,其中,y是大于等于1且小于等于n2的整数,随机数wy是大于等于1且小于等于r-1的整数, 
上述追踪行随机数生成部使用上述处理装置,随机地生成n1个以下的随机数sx,其中,x是大于等于1且小于等于n1的整数,随机数sx是大于等于1且小于等于r-1的整数, 
上述干扰行随机数生成部使用上述处理装置,随机地生成:n1个以下的随机数vx,1,其中,x是大于等于1且小于等于n1的整数,随机数vx,1是大于等于1且小于等于r-1的整数;n1个以下的随机数vx,2,其中,x是大于等于1且小于等于n1的整数,随机数vx,2是大于等于1且小于等于r-1的整数;以及n1个以下的随机数vx,3,其中,x是大于等于1且小于等于n1的整数,随机数vx,3是大于等于1且小于等于r-1的整数, 
上述干扰列随机数生成部使用上述处理装置,随机地生成n2个以下的随机数zp,y,其中,y是大于等于1且小于等于n2的整数,随机数zp,y是大于等于1且小于等于r-1的整数, 
上述追踪行第一因子算出部使用上述处理装置,根据包含在上述追踪密钥存储部所存储的追踪密钥TK中的因子g1、因子g2及n1个随机数rx、上述目标决定部对索引x进行分类得到的三个组、上述追踪行随机数生成部所生成的n1个以下的随机数sx以及上述干扰行随机数生成部所生成的n1个以下的随机数vx,1,关于属于上述三个组中的第一组的索引x,算出因子Rx=sxrx·g2,其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第二组的索引x,算出因子Rx=sxrx·(g1+g2),其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第三组的索引x,算出因子Rx=vx,1·(g1+g2),其中,x是大于等于1且小于等于n1的整数, 
上述追踪行第二因子算出部使用上述处理装置,根据包含在上述追踪密钥存储部所存储的追踪密钥TK中的因子g3、因子g4及n1个随机数rx、上述目标决定部对索引x进行分类得到的三个组、上述追踪行随机数生成部所生成的n1个以下的随机数sx以及上述干扰行随机数 生成部所生成的n1个以下的随机数vx,1,关于属于上述三个组中的第一组的索引x,算出因子R x=sxrx·g4,其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第二组的索引x,算出因子R x=sxrx·(g3+g4),其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第三组的索引x,算出因子R x=vx,1·(g3+g4),其中,x是大于等于1且小于等于n1的整数, 
上述追踪行第三因子算出部使用上述处理装置,根据包含在上述追踪密钥存储部所存储的追踪密钥TK中的因子g1及因子g2、上述目标决定部对索引x进行分类得到的三个组、上述追踪共用随机数生成部所生成的随机数t、上述追踪行随机数生成部所生成的n1个以下的随机数sx以及上述干扰行随机数生成部所生成的n1个以下的随机数vx,2,关于属于上述三个组中的第一组的索引x,算出因子Ax=sxt·g2,其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第二组的索引x,算出因子Ax=sxt·(g1+g2),其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第三组的索引x,算出因子Ax=vx,2·(g1+g2),其中,x是大于等于1且小于等于n1的整数, 
上述追踪加密密钥算出部使用上述处理装置,根据包含在上述追踪密钥存储部所存储的追踪密钥TK中的因子g1、因子g2及n1个随机数αx、上述目标决定部对索引x进行分类得到的三个组、上述追踪行随机数生成部所生成的n1个以下的随机数sx以及上述干扰行随机数生成部所生成的n1个以下的随机数vx,3,关于属于上述三个组中的第一组的索引x,算出配对值CKx=e(g2,g2)α x s x t,其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第二组的索引x,算出配对值CKx=e(g1+g2,g1+g2)α x s x t,其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第三组的索引x,算出配对值CKx=e(g1+g2,g1+g2)v x,2,其中,x是大于等于1且小于等于n1的整数, 
上述追踪明文加密部使用上述处理装置,根据上述追踪加密密钥算出部所算出的n1个以下的配对值CKx和上述追踪明文生成部所生成的明文M,将上述n1个以下的配对值CKx分别用作加密密钥来对 上述明文M进行加密,生成n1个以下的密文Bx,其中,x是大于等于1且小于等于n1的整数, 
上述追踪行密文设定部使用上述处理装置,根据上述追踪行第一因子算出部所算出的n1个以下的因子Rx、上述追踪行第二因子算出部所算出的n1个以下的因子R x、上述追踪行第三因子算出部所算出的n1个以下的因子Ax以及上述追踪明文加密部所生成的n1个以下的密文Bx,设定n1个以下的行密文CTx=(Rx,R x,Ax,Bx),其中,x是大于等于1且小于等于n1的整数, 
上述追踪列第一因子算出部使用上述处理装置,根据包含在上述追踪密钥存储部所存储的追踪密钥TK中的因子g1、因子g2、因子g3、因子g4及n2个随机数cy、上述目标决定部对索引y进行分类得到的两个组、上述追踪共用随机数生成部所生成的随机数t、上述追踪列随机数生成部所生成的n2个以下的随机数wy以及上述干扰列随机数生成部所生成的n2个以下的随机数zp,y,关于属于上述两个组中的第一组的索引y,算出因子Cy=tcy·(g1+g2)+wy·(g3+g4),其中,y是大于等于1且小于等于n2的整数,关于属于上述两个组中的第二组的索引y,算出因子Cy=tcy·(g3+g4)+zp,y·g1+wy·(g3+g4),其中,y是大于等于1且小于等于n2的整数, 
上述追踪列第二因子算出部使用上述处理装置,根据包含在追踪密钥存储部所存储的追踪密钥TK中的因子g1及因子g2、上述追踪列随机数生成部所生成的n2个以下的随机数wy,算出n2个以下的因子C y=wy·(g1+g2),其中,y是大于等于1且小于等于n2的整数, 
上述追踪列密文设定部使用上述处理装置,根据上述追踪列第一因子算出部所算出的n2个以下的因子Cy以及上述追踪列第二因子算出部所算出的n2个以下的因子C y,设定n2个以下的列密文CTy=(Cy,C y),其中,y是大于等于1且小于等于n2的整数, 
上述解密文输入部使用上述处理装置,输入由盗版解密装置对包含上述追踪行密文设定部所设定的n1个以下的行密文CTx和上述追踪列密文设定部所设定的n2个以下的列密文CTy的密文进行解密而生成 的解密文M’,其中,上述盗版解密装置是对由上述密文生成装置所生成的密文进行解密的盗版解密装置, 
上述泄漏源判别部使用上述处理装置,将上述追踪明文生成部所生成的明文M与上述解密文输入部所输入的解密文M’进行比较,来判别上述盗版解密装置在解密中使用的私人密钥Kx,y。 
本发明所涉及的密码系统的特征在于,上述密码系统还具有:签名密钥发行装置、多个签名装置、签名验证装置以及签名者追踪装置, 
上述签名密钥发行装置根据密码参数设定装置所设定的密码参数和上述密钥生成装置所生成的密钥,生成分别与上述多个签名装置对应的多个签名密钥, 
上述多个签名装置中的至少某一个签名装置使用上述签名密钥发行装置所生成的多个签名密钥中的、与上述签名装置对应的签名密钥,生成签名, 
上述签名验证装置使用上述密码参数设定装置所设定的密码参数和上述密钥生成装置所生成的密钥,验证上述签名装置所生成的签名, 
上述签名者追踪装置使用上述密码参数设定装置所设定的密码参数和上述密钥生成装置所生成的密钥,解析上述签名装置所生成的签名,判别生成了上述签名的签名装置。 
本发明所涉及的密码系统具有以下特征。 
上述随机因子选择部使用上述处理装置,从有限域Fp上的超椭圆曲线C:Y2=X5+1的雅可比簇JacC的多个因子中选择随机因子D,其中,将素数p除以5得到的余数a是2或3, 
上述随机矩阵选择部使用上述处理装置,选择满足条件m’12=m’21=0,m’11≠0,m’22≠0的2行2列的随机矩阵V, 
上述输出基底算出部使用上述处理装置,根据上述基底因子存储部所存储的多个基底因子D j和上述随机矩阵选择部所算出的随机矩阵V,算出两个输出基底gk=vk·D,其中,k是大于等于1且小于等于2的整数, 
上述密钥算出部具有:比特长度输入部、基底随机数生成部、配对随机数生成部、主随机数生成部、公开基底算出部、公开第一因子算出部、公开配对值算出部、公开第二因子生成部、公开第三因子生成部、公开比特因子生成部、主因子算出部、公开密钥设定部、主密钥设定部以及追踪密钥设定部, 
上述比特长度输入部使用上述处理装置,输入进行签名的消息的比特长度m, 
上述基底随机数生成部使用上述处理装置,随机地生成随机数β,其中,随机数β是大于等于1且小于等于r-1的整数, 
上述配对随机数生成部使用上述处理装置,随机地生成随机数α,其中,随机数α是大于等于1且小于等于r-1的整数, 
上述主随机数生成部使用上述处理装置,随机地生成随机数ω,其中,随机数ω是大于等于1且小于等于r-1的整数, 
上述公开基底算出部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g1和输出基底g2、上述基底随机数生成部所生成的随机数β,算出上述雅可比簇JacC的因子g=g2+β·g1, 
上述公开第一因子算出部使用上述处理装置,根据上述主随机数生成部所生成的随机数ω和上述公开基底算出部所算出的因子g,算出上述雅可比簇JacC的因子Ω=ω·g, 
上述公开配对值算出部使用上述处理装置,根据上述配对随机数生成部所生成的随机数α和上述公开基底算出部所算出的因子g,算出配对值A=e(g,g)α, 
上述公开第二因子生成部使用上述处理装置,随机地生成上述雅可比簇JacC的因子u, 
上述公开第三因子生成部使用上述处理装置,随机地生成上述雅可比簇JacC的因子v’, 
上述公开比特因子生成部使用上述处理装置,根据上述比特长度输入部所输入的比特长度m,随机地生成上述雅可比簇JacC的m个因子vi,其中,i是大于等于1且小于等于m的整数, 
上述主因子算出部使用上述处理装置,根据上述配对随机数生成部所生成的随机数α和上述公开基底算出部所算出的因子g,算出上述雅可比簇JacC的因子g’=α·g, 
上述公开密钥设定部使用上述处理装置,根据上述输出基底算出部所算出的因子g1、上述公开基底算出部所算出的因子g、上述公开第一因子算出部所算出的因子Ω、上述公开配对值算出部所算出的配对值A、上述公开第二因子生成部所生成的因子u、上述公开第三因子生成部所生成的因子v’以及上述公开比特因子生成部所生成的m个因子vi,设定公开密钥PK=(g1,g,Ω,A,u,v’,vi),其中,i是大于等于1且小于等于m的整数, 
上述主密钥设定部使用上述处理装置,根据上述主随机数生成部所生成的随机数ω和上述主因子算出部所算出的因子g’,设定主密钥MK=(ω,g’), 
上述追踪密钥设定部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g2,设定追踪密钥TK=(g2), 
上述签名密钥发行装置具有:存储数据的存储装置、处理数据的处理装置、主密钥存储部、发行公开密钥输入部、标识符生成部、签名第一密钥算出部、签名第二密钥算出部、签名第三密钥算出部、签名密钥设定部以及标识符设定部, 
上述主密钥存储部使用上述存储装置,存储上述密钥生成装置所设定的主密钥MK=(ω,g’), 
上述发行公开密钥输入部使用上述处理装置,输入上述密钥生成装置所设定的公开密钥PK=(g1,g,Ω,A,u,v’,vi), 
上述标识符生成部使用上述处理装置,随机地生成标识符sID,其中,标识符sID是大于等于1且小于等于r-1的整数, 
上述签名第一密钥算出部使用上述处理装置,根据包含在上述主密钥存储部所存储的主密钥MK中的随机数ω和因子g’、上述标识符生成部所生成的标识符sID,算出上述雅可比簇JacC的因子K1={1/(ω+sID)}·g’, 
上述签名第二密钥算出部使用上述处理装置,根据包含在上述发行公开密钥输入部所存储的公开密钥PK中的因子g和上述标识符生成部所生成的标识符sID,算出上述雅可比簇JacC的因子K2=sID·g, 
上述签名第三密钥算出部使用上述处理装置,根据包含在上述发行公开密钥输入部所存储的公开密钥PK中的因子u和上述标识符生成部所生成的标识符sID,算出上述雅可比簇JacC的因子K3=sID·u, 
上述签名密钥设定部使用上述处理装置,根据上述签名第一密钥算出部所算出的因子K1、上述签名第二密钥算出部所算出的因子K2以及上述签名第三密钥算出部所算出的因子K3,设定签名密钥SK=(K1,K2,K3), 
上述标识符设定部使用上述处理装置,将上述标识符生成部所生成的标识符sID设定为用于识别上述签名密钥设定部所设定的签名密钥SK的标识符, 
上述签名装置具有:存储数据的存储装置、处理数据的处理装置、签名密钥存储部、签名公开密钥输入部、签名消息输入部、签名消息因子算出部、签名第一随机数生成部、签名第二随机数生成部、签名第一因子算出部、签名第二因子算出部、签名第三因子算出部、签名第四因子算出部、签名第五因子算出部、签名第六因子算出部以及签名输出部, 
上述签名密钥存储部使用上述存储装置,存储上述密钥生成装置所设定的签名密钥SK=(K1,K2,K3), 
上述签名公开密钥输入部使用上述处理装置,输入上述密钥生成装置所设定的公开密钥PK=(g1,g,Ω,A,u,v’,vi), 
上述签名消息输入部使用上述处理装置,输入进行签名的消息M, 
上述签名消息因子算出部使用上述处理装置,根据包含在上述签名公开密钥输入部所输入的公开密钥PK中的因子v’和m个因子vi、上述签名消息输入部所输入的消息M,算出上述雅可比簇JacC的因子v=v’+∑(μi·vi),其中,i是大于等于1且小于等于m的整数,μi是表 示上述消息M的第i个比特的0或1的整数, 
上述签名第一随机数生成部使用上述处理装置,生成随机数s,其中,随机数s是大于等于且小于等于r-1的整数, 
上述签名第二随机数生成部使用上述处理装置,随机地生成四个随机数tj,其中,j是大于等于1且小于等于4的整数,随机数tj是大于等于1且小于等于r-1的整数, 
上述签名第一因子算出部使用上述处理装置,根据包含在上述签名公开密钥输入部所输入的公开密钥PK中的因子g1、包含在上述签名密钥存储部所存储的签名密钥SK中的因子K1以及上述签名第二随机数生成部所生成的随机数t1,算出上述雅可比簇JacC的因子σ1=K1+t1·g1, 
上述签名第二因子算出部使用上述处理装置,根据包含在上述签名公开密钥输入部所输入的公开密钥PK中的因子g1、包含在上述签名密钥存储部所存储的签名密钥SK中的因子K2以及上述签名第二随机数生成部所生成的随机数t2,算出上述雅可比簇JacC的因子σ2=K2+t2·g1, 
上述签名第三因子算出部使用上述处理装置,根据包含在上述签名公开密钥输入部所输入的公开密钥PK中的因子g1、包含在上述签名密钥存储部所存储的签名密钥SK中的因子K3、上述签名消息因子算出部所算出的因子v、上述签名第一随机数生成部所生成的随机数s以及上述签名第二随机数生成部所生成的随机数t3,算出上述雅可比簇JacC的因子σ3=K3+s·v+t3·g1, 
上述签名第四因子算出部使用上述处理装置,根据包含在上述签名公开密钥输入部所输入的公开密钥PK中的因子g和因子g1、上述签名第一随机数生成部所生成的随机数s以及上述签名第二随机数生成部所生成的随机数t4,算出上述雅可比簇JacC的因子σ4=-s·g+t4·g1, 
上述签名第五因子算出部使用上述处理装置,根据包含在上述签名公开密钥输入部所输入的公开密钥PK中的因子g1和因子Ω、包含 在上述签名密钥存储部所存储的签名密钥SK中的因子K1和因子K2以及上述签名第二随机数生成部所生成的随机数t1和随机数t2,算出上述雅可比簇JacC的因子π1=t1t2·g1+t2·K1+t1·(K2+Ω), 
上述签名第六因子算出部使用上述处理装置,根据包含在上述签名公开密钥输入部所输入的公开密钥PK中的因子g和因子u、上述签名消息因子算出部所算出的因子v以及上述签名第二随机数生成部所生成的随机数t2、随机数t3和随机数t4,算出上述雅可比簇JacC的因子π2=t2·u-t3·g-t4·v, 
上述签名输出部使用上述处理装置,根据上述签名第一因子算出部所算出的因子σ1、上述签名第二因子算出部所算出的因子σ2、上述签名第三因子算出部所算出的因子σ3、上述签名第四因子算出部所算出的因子σ4、上述签名第五因子算出部所算出的因子π1以及上述签名第六因子算出部所算出的因子π2,输出签名σ=(σ1,σ2,σ3,σ4,π1,π2), 
上述签名验证装置具有:处理数据的处理装置、验证公开密钥输入部、验证签名输入部、验证消息输入部、验证消息因子算出部、签名第一验证值算出部、签名第二验证值算出部、签名第三验证值算出部、签名第四验证值算出部以及签名验证判断部, 
上述验证公开密钥输入部使用上述处理装置,输入上述密钥生成装置所设定的公开密钥PK=(g1,g,Ω,A,u,v’,vi), 
上述验证签名输入部使用上述处理装置,输入上述签名装置所输出的签名σ=(σ1,σ2,σ3,σ4,π1,π2), 
上述验证消息输入部使用上述处理装置,输入通过上述签名σ进行签名的消息M, 
上述验证消息因子算出部使用上述处理装置,根据包含在上述验证公开密钥输入部所输入的公开密钥PK中的因子v’和m个因子vi、上述验证消息输入部所输入的消息M,算出上述雅可比簇JacC的因子v=v’+∑(μi·vi),其中,i是大于等于1且小于等于m的整数,μi是表示上述消息M的第i个比特的0或1的整数, 
上述签名第一验证值算出部使用上述处理装置,根据包含在上述 验证公开密钥输入部所输入的公开密钥PK中的因子g1和包含在上述验证签名输入部所输入的签名σ中的因子π1,算出配对值C=e(g1,π1), 
上述签名第二验证值算出部使用上述处理装置,根据包含在上述验证公开密钥输入部所输入的公开密钥PK中的因子Ω和配对值A以及包含在上述验证签名输入部所输入的签名σ中的因子σ1和因子σ2,算出配对值C’=e(σ1,σ2+Ω)/A, 
上述签名第三验证值算出部使用上述处理装置,根据包含在上述验证公开密钥输入部所输入的公开密钥PK中的因子g1和包含在上述验证签名输入部所输入的签名σ中的因子π2,算出配对值D=e(g1,π2), 
上述签名第四验证值算出部使用上述处理装置,根据包含在上述验证公开密钥输入部所输入的公开密钥PK中的因子u和因子g、包含在上述验证签名输入部所输入的签名σ中的因子σ2、因子σ3和因子σ4以及上述验证消息因子算出部所算出的因子v,算出配对值D’=e(σ2,u)/{e(g,σ3)·e(σ4,v)}, 
上述签名验证判断部使用上述处理装置,根据上述签名第一验证值算出部所算出的配对值C、上述签名第二验证值算出部所算出的配对值C’、上述签名第三验证值算出部所算出的配对值D以及上述签名第四验证值算出部所算出的配对值D’,判断上述配对值C与上述配对值C’是否相等以及上述配对值D与上述配对值D’是否相等,在判断为上述配对值C与上述配对值C’相等并且上述配对值D与上述配对值D’相等的情况下,判断为上述验证签名输入部所输入的签名σ有效, 
上述签名者追踪装置具有:存储数据的存储装置、处理数据的处理装置、追踪密钥存储部、标识符存储部、追踪签名输入部、签名配对值算出部、标识符配对值算出部以及签名者判别部, 
上述追踪密钥存储部使用上述存储装置,存储上述密钥生成装置所设定的追踪密钥TK=(g2), 
上述标识符存储部使用上述存储装置,存储用于识别上述签名密钥发行装置所发行的签名密钥SK的标识符sID, 
上述追踪签名输入部使用上述处理装置,输入上述签名装置所输 出的签名σ, 
上述签名配对值算出部使用上述处理装置,根据包含在上述追踪密钥存储部所存储的追踪密钥TK中的因子g2和包含在上述追踪签名输入部所输入的签名σ中的因子σ2,算出配对值E=e(g2,σ2), 
上述标识符配对值算出部使用上述处理装置,根据包含在上述追踪密钥存储部所存储的追踪密钥TK中的因子g2和上述标识符存储部所存储的标识符sID,算出配对值EID=e(g2,g2)s ID, 
上述签名者判别部使用上述处理装置,从上述标识符配对值算出部所算出的配对值EID中查找与上述签名配对值算出部所算出的配对值E一致的配对值,由此判别生成了上述追踪签名输入部所输入的签名σ的签名密钥SK的标识符。 
本发明所涉及的计算机程序的特征在于,使具有处理数据的处理装置的计算机作为上述密码参数设定装置而发挥功能。 
本发明所涉及的计算机程序的特征在于,使具有处理数据的处理装置的计算机作为上述密钥生成装置而发挥功能。 
本发明所涉及的密码参数设定方法是由具有对数据进行处理的处理装置的密码参数设定装置设定用于密码运算的密码参数的密码参数设定方法,该密码参数设定方法的特征在于, 
上述处理装置从循环群G’的多个要素中选择要素来作为随机因子D, 
上述处理装置根据所选择的随机因子D,利用多个映射Gj对上述随机因子D进行映射,算出多个基底因子D j,其中,上述多个映射Gj是从上述循环群G’向多个循环群G’j中的各个循环群的同态型映射, 
上述处理装置算出群G中的上述多个基底因子D j间的配对值的对数来作为多个配对对数系数ηi,其中,上述群G是上述多个循环群G’j的直积,能够计算通过包含在上述群G中的两个要素间的双线性配对运算的配对值, 
上述处理装置将算出的多个基底因子D j和算出的多个配对对数 系数ηi设为上述密码参数。 
本发明所涉及的密码参数设定方法是由具有对数据进行处理的处理装置的密码参数设定装置设定用于密码运算的密码参数的密码参数设定方法,该密码参数设定方法的特征在于, 
上述处理装置从有限域Fp上的亏格d的超椭圆曲线C的雅可比簇JacC的多个因子中随机地选择随机因子D,其中,上述有限域Fp的阶数p是素数,上述亏格d是大于等于2的整数, 
上述处理装置根据所选择的随机因子D,算出多个基底因子D j, 
上述处理装置算出多个离散对数lκ,其中,κ是大于等于1且小于等于2d-1的整数,离散对数lκ是大于等于0且小于等于2d-1的整数, 
上述处理装置根据所算出的多个离散对数lκ,算出多个配对对数系数ηi,其中,i是大于等于0且小于等于2d-1的整数,配对对数系数ηi是大于等于0且小于等于r-1的整数,r是上述雅可比簇JacC的多个因子的阶数, 
上述处理装置根据算出的多个基底因子D j和算出的多个配对对数系数ηi,设定上述密码参数。 
本发明所涉及的密钥生成方法是由具有对数据进行处理的处理装置和存储数据的存储装置的密钥生成装置生成用于密码运算的密钥的密钥生成方法,该密钥生成方法的特征在于, 
上述存储装置将群G的多个要素作为多个基底因子D j来进行存储,其中,上述群G是阶数相同的多个循环群的直积,能够计算通过包含在上述群G中的两个要素间的双线性配对运算的配对值,上述多个基底因子D j相互线性独立, 
上述存储装置将上述多个基底因子D j间的配对值的对数作为多个配对对数系数ηi来进行存储, 
上述处理装置根据上述存储装置所存储的多个基底因子D j和上述存储装置所存储的多个配对对数系数ηi,算出作为上述群G的要素的多个输出基底gk,其中,上述多个输出基底gk中的至少某两个输出 基底gk间的配对值为1, 
上述处理装置根据所算出的多个输出基底,算出上述密钥。 
本发明所涉及的密钥生成方法是由具有对数据进行处理的处理装置和存储数据的存储装置的密钥生成装置生成用于密码运算的密钥的密钥生成方法,该密钥生成方法的特征在于, 
上述存储装置存储对有限域Fp进行有限代数扩张得到的扩张域K上的亏格d的代数曲线C的雅可比簇JacC的多个基底因子D j以及表示上述多个基底因子间的配对值的关系的多个配对对数系数ηi,其中,上述有限域Fp的阶数p是素数,上述亏格d是大于等于2的整数,w是素数,w=2d+1, 
上述处理装置根据上述存储装置所存储的多个配对对数系数ηi,随机地选择满足规定条件的随机矩阵V, 
上述处理装置根据上述存储装置所存储的多个基底因子D j和所选择的随机矩阵V,算出多个输出基底gk, 
上述处理装置根据所算出的多个输出基底gk,算出上述密钥。 
(发明效果) 
根据本发明所涉及的密码参数设定装置,起到如下效果:能够在多项式时间内算出为了构成群G而所需的具体的密码参数,该群G具有为了实现高级密码方式而能够利用的群结构。 
附图说明
图1是表示实施方式1中的密码系统800的整体结构的一例的系统结构图。 
图2是表示实施方式1中的密码参数设定装置100、密钥生成装置500、密文生成装置200、密文解密装置300、非法者追踪装置400的外观的一例的图。 
图3是表示实施方式1中的密码参数设定装置100、密钥生成装置500、密文生成装置200、密文解密装置300、非法者追踪装置400的硬件资源的一例的图。 
图4是表示实施方式1中的密码参数设定装置100的功能模块的结构的一例的模块结构图。 
图5是表示实施方式1中的密码参数设定装置100算出密码参数的密码参数算出处理的流程的一例的流程图。 
图6是表示实施方式1中的密钥生成装置500的功能模块的结构的一例的模块结构图。 
图7是表示实施方式1中的密钥生成装置500算出输出基底gi的输出基底算出处理流程的一例的流程图。 
图8是表示实施方式1中的密钥算出部150的内部模块的结构的一例的详细框图。 
图9是表示实施方式1中的密文生成部装置200的功能模块的结构的一例的模块结构图。 
图10是表示实施方式1中的(合法的)密文解密装置300的功能模块的结构的一例的模块结构图。 
图11是表示实施方式1中的非法者追踪装置400的功能模块的结构的一例的模块结构图。 
图12是表示实施方式1中的非法者追踪装置400中的追踪随机数生成部430、追踪行密文生成部440、追踪列密文生成部450的内部模块的一例的详细框图。 
图13是表示实施方式2中的密码系统800B的整体结构的一例的系统结构图。 
图14是表示实施方式2中的密钥生成装置500B的功能模块的结构的一例的模块结构图。 
图15是表示实施方式2中的密钥算出部150B的内部模块的结构的一例的详细框图。 
图16是表示实施方式2中的签名密钥发行装置600的功能模块的结构的一例的模块结构图。 
图17是表示实施方式2中的签名装置200B的功能模块的结构的一例的模块结构图。 
图18是表示实施方式2中的签名验证装置300B的功能模块的结构的一例的模块结构图。 
图19是表示实施方式2中的签名者追踪装置400B的功能模块的结构的一例的模块结构图。 
(附图标记说明) 
100、100B:密码参数设定装置;110:安全性指数输入部;120:因子群生成部;121:阶数决定部;122:随机因子选择部;123:基底因子生成部;124:离散对数算出部;125:配对对数算出部;130:条件存储部;140:参数设定部;141:条件输入部;142:随机矩阵选择部;143:输出基底算出部;150:密钥算出部;151:利用者人数输入部;160:随机数生成部;161:行随机数生成部;162:配对随机数生成部;163:列随机数生成部;164:共用随机数生成部;170:公开密钥算出部;171:公开行基底算出部;172:公开列基底算出部;173:公开共用因子算出部;174:公开行第一因子算出部;175:公开行第二因子算出部;176:公开配对值算出部;177:公开列因子算出部;180:私人密钥算出部;181:私人因子算出部;191:公开密钥设定部;192:私人密钥设定部;193:追踪密钥设定部;200:密文生成装置;211:公开密钥输入部;221:明文输入部;230:密码随机数生成部;231:密码共用随机数生成部;232:密码行随机数生成部;233:密码列随机数生成部;240:行密文生成部;241:密码行第一因子算出部;242:密码行第二因子算出部;243:密码行第三因子算出部;244:密码密钥算出部;245:明文加密部;250:列密文生成部;251:密码列第一因子算出部;252:密码列第二因子算出部;261:行密文设定部;262:列密文设定部;300:密文解密装置;311:密文输入部;321:索引存储部;322:行密文输入部;323:列密文输入部;331:私人密钥存储部;340:解密文生成部;341:解密密钥算出部;342:密文解密部;400:非法者追踪装置;411:追踪密钥存储部;421:目标决定部;422:追踪明文生成部;430:追踪随机数生成部;431:追踪共用随机数生成部;432:追踪行随机数生成部;433:追踪列随机数生成 部;434:干扰行随机数生成部;435:干扰列随机数生成部;440:追踪行密文生成部;441:追踪行第一因子算出部;442:追踪行第二因子算出部;443:追踪行第三因子算出部;444:追踪密码密钥算出部;445:追踪明文加密部;450:追踪列密文生成部;451:追踪列第一因子算出部;452:追踪列第二因子算出部;461:行密文设定部;462:列密文设定部;463:密文输出部;471:解密文输入部;472:泄漏源判别部;500:密钥生成装置;511:基底因子存储部;512:配对对数存储部;150B:密钥算出部;151B:比特长度输入部;160B:随机数生成部;161B:配对随机数生成部;162B:主随机数生成部;163B:基底随机数生成部;170B:公开密钥算出部;171B:公开基底算出部;172B:公开第一因子算出部;173B:公开配对值算出部;174B:公开第二因子生成部;175B:公开第三因子生成部;176B:公开比特因子生成部;180B:主密钥算出部;181B:主因子算出部;191B:公开密钥设定部;192B:主密钥设定部;193B:追踪密钥设定部;600:签名密钥发行装置;154C:发行请求输入部;155C:已发行标识符存储部;156C:主密钥存储部;157C:公开密钥输入部;160C:标识符生成部;180C:签名密钥算出部;184C:签名第一密钥算出部;185C:签名第二密钥算出部;186C:签名第三密钥算出部;194C:标识符设定部;195C:签名密钥设定部;200B:签名装置;211B:公开密钥输入部;212B:签名密钥输入部;213B:消息输入部;220B:签名密钥验证部;221B:签名密钥第一验证值算出部;222B:签名密钥第二验证值算出部;223B:签名密钥第三验证值算出部;224B:签名密钥验证判定部;225B:签名密钥存储部;230B:签名随机数生成部;231B:签名第一随机数生成部;232B:签名第二随机数生成部;240B:消息因子算出部;250B:签名算出部;251B:签名第一因子算出部;252B:签名第二因子算出部;253B:签名第三因子算出部;254B:签名第四因子算出部;255B:签名第五因子算出部;256B:签名第六因子算出部;261B:签名输出部;300B:签名验证装置;311B:公开密钥输入部;312B:签名输入部;313B:消息输入部;340B:消息因子算出部; 350B:签名验证部;351B:签名第一验证值算出部;352B:签名第二验证值算出部;353B:签名第三验证值算出部;354B:签名第四验证值算出部;355B:签名验证判定部;400B:签名者追踪装置;412B:签名输入部;414B:追踪密钥存储部;415B:标识符存储部;451B:签名配对值算出部;452B:标识符配对值算出部;453B:签名者判别部;800、800B:密码系统;901:显示装置;902:键盘;903:鼠标;904:FDD;905:CDD;906:打印机装置;907:扫描仪装置;910:系统单元;911:CPU;912:总线;913:ROM;914:RAM;915:通信装置;920:磁盘装置;921:OS;922:窗口系统;923:程序群;924:文件群;931:电话机;932:传真机;940:因特网;941:网关;942:LAN。 
具体实施方式
(实施方式1) 
使用图1~图12来说明实施方式1。 
图1是表示本实施方式中的密码系统800的整体结构的一例的系统结构图。 
密码系统800具有密码参数设定装置100和广播型密码通信系统810。 
密码参数设定装置100对在广播型密码通信系统810中使用的密码参数(系统参数)进行设定。 
在由密码参数设定装置100设定的密码参数中例如包含用于密码运算的群的定义等。用于密码运算的群的定义例如是指有限域的阶数、代数曲线的系数、配对运算的定义等。 
密码参数设定装置100所设定的密码参数被公开,例如由构成广播型密码通信系统810的装置的制造者制造嵌入有被公开的密码参数的装置。制造者有时制造通过专门化为被公开的密码参数来使处理高速化的装置,在这种情况下,密码参数设定装置100一旦设定密码参数,则无法容易地变更密码参数。或者,制造者也可以制造能够应对 被公开的密码参数的变更的装置,随着安全性要求基准的变更,密码参数设定装置100设定安全性更高的密码参数。 
广播型密码通信系统810具有密钥生成装置500、密文生成装置200、多个密文解密装置300以及非法者追踪装置400。广播型密码通信系统810是如下的广播型密码通信系统:使用密码参数设定装置100所设定的密码参数,由密钥生成装置500生成用于密码运算的密钥,由密文生成装置200对一个明文M进行加密并分发,密文解密装置300分别使用所保持的私人密钥SK来获取解密文M’。 
在多个密文解密装置300中,密文解密装置300a~300c是合法的密文解密装置300,是广播型密码通信系统810的一部分。与此相对,密文解密装置300z是非法的密文解密装置300,不是广播型密码通信系统810的一部分。 
密钥生成装置500根据密码参数设定装置100所设定的密码参数,生成在广播型密码通信系统810中使用的密钥。由密码参数设定装置100生成的密钥中有:公开密钥PK(public key)、私人密钥SK(privatekey)、追踪密钥TK(tracer’s key)等。 
密钥生成装置500所生成的公开密钥PK被广播型密码通信系统810的用户所公开。 
对合法的密文解密装置300a~300c中的每一个装置分别分配密钥生成装置500所设定的一个私人密钥SK。合法的密文解密装置300a~300c以保密状态保持被分配的私人密钥SK。 
非法者追踪装置400以保密状态保持密钥生成装置500所生成的追踪密钥TK。 
密文生成装置200被输入明文M,使用公开密钥PK对被输入的明文M进行加密而生成密文CT。 
密文生成装置200所生成的密文CT例如通过通信或广播等而被传递到多个密文解密装置300。 
多个密文解密装置300被输入被传递的密文CT,使用已公开的公开密钥PK和所保持的私人密钥SK对被输入的密文CT进行解密,生成 解密文M’。如果密文解密装置300所保持的私人密钥SK是正确的密钥,则由密文解密装置300生成的解密文M’与密文生成装置200被输入的明文M相同。 
明文M例如是用于解密加扰广播(scrambled broadcast)的共用密钥。合法的用户使用密文解密装置300所生成的解密文M’来解密并视听加扰广播。 
设非法的密文解密装置300z(盗版解密装置:pirate decorder)保持从合法的密文解密装置300a~300c中的某一个非法获得的私人密钥SK。由于非法的密文解密装置300z保持正确的私人密钥SK,因此能够正确地解密密文CT。因而,非法的密文解密装置300z的用户例如能够解密并视听加扰广播。 
设目前发现了在黑市中贩卖非法的密文解密装置300z。广播型密码通信系统810的管理员会想要购买非法的密文解密装置300z并进行解析来查清谁的私人密钥SK被泄露。 
非法者追踪装置400使用已公开的公开密钥PK和所保持的追踪密钥TK,来生成非法者追踪用的密文CT。非法者追踪装置400所生成的密文CT被设为无法与普通的密文CT区分。当将非法者追踪装置400所生成的密文CT输入到非法的密文解密装置300z时,非法的密文解密装置300z使用所保持的私人密钥SK来对密文CT进行解密,来生成解密文M’。非法者追踪装置400被输入非法的密文解密装置300z所生成的解密文M’,对该解密文M’进行解析。非法者追踪装置400所生成的追踪用的密文CT被构成为在将该密文CT解密得到的解密文M’中包含与用于解密的私人密钥SK有关的信息。非法者追踪装置400通过解析解密文M’,获取与用于解密的私人密钥SK有关的信息,判别非法的密文解密装置300z所保持的私人密钥SK是从何处被泄露的。 
图2是表示本实施方式中的密码参数设定装置100、密钥生成装置500、密文生成装置200、密文解密装置300、非法者追踪装置400的外观的一例的图。 
密码参数设定装置100、密钥生成装置500、密文生成装置200、 密文解密装置300、非法者追踪装置400具备:系统单元910、具有CRT(Cathode·Ray·Tube:阴极射线管)、LCD(液晶)的显示画面的显示装置901、键盘902(Key·Board:K/B)、鼠标903、FDD904(Flexible·Disk·Drive:软盘驱动器)、高密度磁盘(compact disk)装置905(CDD)、打印机装置906、扫描仪装置907等硬件资源,这些部件通过线缆、信号线相连接。 
系统单元910是计算机,通过线缆与传真机932、电话机931相连接,还通过局域网942(LAN)、网关941与因特网940相连接。 
图3是表示本实施方式中的密码参数设定装置100、密钥生成装置500、密文生成装置200、密文解密装置300、非法者追踪装置400的硬件资源的一例的图。 
密码参数设定装置100、密钥生成装置500、密文生成装置200、密文解密装置300、非法者追踪装置400具备执行程序的CPU911(Central·Processing·Unit,还称为中央处理装置、处理装置、运算装置、微处理器、微计算机、处理器)。CPU911通过总线912与ROM913、RAM914、通信装置915、显示装置901、键盘902、鼠标903、FDD904、CDD905、打印机装置906、扫描仪装置907、磁盘装置920相连接,控制这些硬件设备。代替磁盘装置920而也可以是光盘装置、存储卡读写装置等存储装置。 
ROM914是易失性存储器的一例。ROM913、FDD904、CDD905、磁盘装置920的存储介质是非易失性存储器的一例。这些部件是存储装置或存储部的一例。 
通信装置915、键盘902、扫描仪装置907、FDD904等是输入部、输入装置的一例。 
另外,通信装置915、显示装置901、打印机装置906等是输出部、输出装置的一例。 
通信装置915与传真机932、电话机931、LAN942等相连接。通信装置915不限于与LAN942连接,也可以与因特网940、ISDN等WAN(Wide Area Network:广域网)等相连接。在与因特网940或ISDN 等WAN相连接的情况下,不使用网关941。 
在磁盘装置920中存储有操作系统921(OS)、窗口系统922、程序群923、文件群924。由CPU911、操作系统921、窗口系统922执行程序群923的程序。 
在上述程序群923中存储有执行在以下叙述的实施方式的说明中作为“~部”说明的功能的程序。由CPU911读出并执行程序。 
在文件群924中,作为“~文件”、“~数据库”的各项目存储有在以下叙述的实施方式的说明中作为“~的判断结果”、“~的计算结果”、“~的处理结果”说明的信息、数据、信号值、变量值、参数。“~文件”、“~数据库”被存储在盘、存储器等存储介质中。存储在盘、存储器等存储介质中的信息、数据、信号值、变量值、参数通过CPU911经由读写电路而读出到主存储器、高速缓冲存储器中,并被用于提取、检索、参照、比较、运算、计算、处理、输出、打印、显示等CPU的动作中。在提取、检索、参照、比较、运算、计算、处理、输出、打印、显示的CPU的动作期间,信息、数据、信号值、变量值、参数被暂时存储到主存储器、高速缓冲存储器、缓冲存储器中。 
另外,在以下叙述的实施方式的说明中说明的流程图的箭头部分主要表示数据、信号的输入输出,数据、信号值被记录在RAM914的存储器、FDD904的软盘、CDD905的高密度磁盘、磁盘装置920的磁盘、其它光盘、迷你盘、DVD(Digital·Versatile·Disk:数字通用光盘)等记录介质中。另外,数据、信号通过总线912、信号线、线缆、其它传输介质而被联机传输。 
另外,在以下叙述的实施方式的说明中作为“~部”说明的部分既可以是“~电路”、“~装置”、“~设备”,而且也可以是“~步骤”、“~过程”、“~处理”。即,作为“~部”说明的部分也可以由存储在ROM913中的固件来实现。或者,也可以仅由软件实施,或者仅由元件、器件、基板、布线等硬件实施,或者由软件和硬件的组合实施,进而以与固件的组合来实施。固件和软件作为程序而存储在磁盘、软盘、光盘、高密度磁盘、迷你盘、DVD等记录介质中。由CPU911读出并由CPU911执行 程序。即,程序使计算机作为以下叙述的“~部”来发挥功能。或者,使计算机执行以下叙述的“~部”的过程、方法。 
图4是表示本实施方式中的密码参数设定装置100的功能模块的结构的一例的模块结构图。 
密码参数设定装置100具有安全性指数输入部110、因子群生成部120以及参数设定部140。 
安全性指数输入部110使用CPU911输入安全性指数(security parameter)。安全性指数是指决定广播型密码通信系统810的安全性的参数,例如是由因子群生成部120所生成的基底因子(base divisor)等构成的因子群的阶数的比特数等。 
安全性指数输入部110使用RAM914存储表示所输入的安全性指数的数据。 
因子群生成部120具有阶数决定部121、随机因子选择部122、基底因子生成部123、离散对数算出部124以及配对对数算出部125。 
阶数决定部121使用CPU911被输入安全性指数输入部110所存储的表示安全性指数的数据。阶数决定部121使用CPU911,根据所输入的数据所表示的安全性指数,决定有限域Fp(Finite Field)的阶数p。例如,阶数决定部121使用CPU911来决定有限域Fp的阶数p使得有限域Fp上的代数曲线C(algebraic curve)的雅可比簇JacC(Jacobian variety)的因子D(divisor)的阶数成为由安全性指数确定的比特数。此外,一般,有限域的阶数是素数或素数的幂,阶数决定部121决定阶数p使得有限域Fp的阶数p成为素数。 
在此,由一个以上的素数的积来表示有限域Fp上的雅可比簇JacC的因子所形成的群的阶数#JacC(Fp)。当考虑从有限域Fp上的雅可比簇JacC的因子中选择任意的因子并将所选择的因子作为生成元(generator)的挠子群(torsion subgroup)时,该挠子群的阶数(即,所选择的因子的阶数)是有限域Fp上的雅可比簇JacC的因子所形成的群的阶数#JacC(Fp)的约数。 
如以下所叙述的那样,密码参数设定装置100设定密码参数使得 能够由密钥生成装置500构成作为阶数r足够大的素数的因子群。因此,阶数决定部121决定阶数p使得在有限域Fp上的雅可比簇JacC的因子所形成的群的阶数#JacC(Fp)的素因数中存在足够大的素数。 
在以下的例子中,说明将具有两个挠点(torsion point)的超奇异(supersingular)超椭圆(hyperelliptic)曲线C:Y2=Xw+1用作代数曲线C的情况。在此,设w是大于等于5的素数。此时,超椭圆曲线C的亏格d(genus)是w=2d+1。例如,在w=5的情况下,超椭圆曲线C的亏格d为2。 
在上述例子中,阶数决定部121使用CPU911决定阶数p使得将有限域Fp的阶数p除以素数w而得到的余数a(=p mod w)成为阶数w的有限域的乘法群Fw 的生成元。例如,在w=5的情况下,阶数决定部121决定阶数p使得将阶数p除以5而得到的余数a为2或3。 
阶数决定部121使用CPU911来选择阶数p,根据所选择的阶数p算出有限域Fp上的雅可比簇JacC的因子所形成的群的阶数#JacC(Fp)。阶数决定部121使用CPU911算出已算出的阶数#JacC(Fp)的素因数r。阶数决定部121使用CPU911判断在所算出的素因数r中是否存在由安全性指数确定的比特数以上的素因数,如果素因数r不足由安全性指数确定的比特数,则重新选择阶数p。 
阶数决定部121使用CPU911将由安全性指数确定的比特数以上的素因数r作为有限域Fp上的雅可比簇JacC的因子D的阶数,使用RAM914存储表示所决定的有限域Fp的阶数p的数据以及表示所算出的雅可比簇JacC的因子D的阶数r的数据。 
随机因子选择部122使用CPU911被输入阶数决定部121所存储的表示有限域Fp的阶数p的数据以及表示雅可比簇JacC的因子D的阶数r的数据。随机因子选择部122根据所输入的数据所表示的阶数p和阶数r,从有限域Fp上的雅可比簇JacC的多个因子D之中的阶数为r的因子D中随机地选择非平凡(non-trivial)的因子来作为随机因子D。 
随机因子选择部122使用RAM914存储表示所选择的随机因子D的数据。此外,表示雅可比簇JacC的因子的数据是指例如表示因子 的芒福德(Mumford)表现中的多项式的系数的数据等。在有限域Fp上的雅可比簇JacC的因子的情况下,芒福德表现中的多项式的系数是大于等于0且小于p的整数。 
基底因子生成部123使用CPU911被输入随机因子选择部122所存储的表示随机因子D的数据。 
基底因子生成部123使用CPU911根据所输入的数据所表示的随机因子D,来算出多个基底因子D j(其中,j是大于等于0且小于等于2d-1的整数。)。例如,在w=5的情况下,基底因子生成部123使用CPU911算出四个基底因子D 0、D 1、D 2、D 3。 
基底因子生成部123使用CPU911使规定的多个算子Gj(operator)(其中,j是大于等于0且小于等于2d-1的整数。)分别作用于随机因子D来算出基底因子D j。 
在以下的例子中,设算子Gj是由式4表示的高斯和(Gauss Sum)算子。 
[式4] 
G j = Σ i = 0 2 d - 1 { p i · j · ρ a i }
其中,ρ是与超椭圆曲线C上的作用(x,y)→(ζx,y)对应的雅可比簇JacC上的作用。即,雅可比簇JacC的因子是由超椭圆曲线C上的点的形式和来表示,因此使用将构成因子的超椭圆曲线C上的点(x,y)映射到超椭圆曲线C上的点(ζx,y)的作用,能够构成将雅可比簇JacC的因子映射到雅可比簇JacC的因子的作用ρ。此外,ζ是1的w次方根。即,是ζw=1且ζ≠1。由于(ζx)w=ζwxw=xw,因此作用(x,y)→(ζx,y)将超椭圆曲线C:Y2=Xw+1上的点映射到超椭圆曲线C上的点。 
另外,i是大于等于0且小于等于2d-1的整数。p是阶数决定部121所决定的有限域Fp的阶数。A是将有限域Fp的阶数p除以素数w而得到的余数。 
根据由阶数决定部121决定有限域Fp的阶数p时的条件,余数a是阶数w的有限域Fw的生成元。因而,余数a不是1。即,w不是p-1的约 数,因此ζ不存在于有限域Fp中。因此,考虑扩张有限域Fp以包括ζ的扩张域K(extension field)。由于ζw=1且ζ≠1,因此∑(ζi)=0(其中,i是大于等于0且小于等于2d的整数。)。因而,扩张域K是将2d阶的多项式∑(xi)作为生成多项式(generator polynomial)来对有限域Fp进行代数扩张(algebraic extension)得到的域,扩张次数(order of extension)是2d。 
扩张域K的元素由将有限域Fp的元素作为系数的2d-1阶多项式来表示。即,扩张域K是有限域Fp上的2d维向量空间,能够由表示大于等于0且小于等于p-1的2d个整数的数据组来表示扩张域K的元素。密码参数设定装置100计算该数据组所表示的多项式的加法运算、乘法运算,计算除以生成多项式而得到的余数,由此能够计算扩张域K的元素的加法运算、乘法运算。 
另外,在例如使用芒福德表现来表示的情况下,通过将扩张域K的元素设为芒福德表现中的多项式的系数,来能够表示扩张域K上的雅可比簇JacC的因子。 
基底因子生成部123使用CPU911来计算扩张域K上的运算,由此算出作为扩张域K上的雅可比簇JacC的因子的基底因子D j。 
例如,在w=5、a=2的情况下,基底因子生成部123使用CPU911计算出式5所示的计算式,来算出基底因子D 0、D 1、D 2、D 3。 
[式5] 
D ~ 0 = D 0 + D 1 + D 2 + D 3
D ~ 1 = D 0 + p · D 1 + p 2 · D 2 + p 3 · D 3
D ~ 2 = D 0 + p 2 · D 1 + p 4 · D 2 + p 6 · D 3
D ~ 3 = D 0 + p 3 · D 1 + p 6 · D 2 + p 9 · D 3
在此,D0、D1、D2、D3是扩张域K上的雅可比簇JacC的因子,是D0=ρ(D)、D1=ρ2(D)、D2=ρ4(D)、D3=ρ8(D)。此外,根据ζ5=1,D=ρ5(D),因此D3=ρ3(D)。因而,能够通过式6所示的过程来计算因子D0、D1、D2、D3。 
[式6] 
D * → ρ D 0 , D 0 → ρ D 1 , D 1 → ρ D 3 , D 3 → ρ D 2
此外,在多项式时间内计算雅可比簇JacC的因子的加法运算的算法中,已知使用中国人剩余定理(Chinese remainder theorem)的方式等,因此密码参数设定装置100能够在多项式时间内计算雅可比簇JacC的因子的加法运算。 
基底因子生成部123使用RAM914存储表示所算出的多个基底因子D j的数据。 
基底因子生成部123算出2d个基底因子。基底因子生成部123所算出的基底因子D j具有以下性质。 
2d个基底因子D j是扩张次数2d的扩张域K上的雅可比簇JacC的因子,是相互线性独立(linearly independent)。 
另外,高斯和算子Gj是同态型(homomorphic),因此基底因子D j的阶数与随机因子D同样是r。 
因而,从2d个基底因子D j有限生成的群G(以下称为“有限生成因子群”。)是阶数为r的2d个循环群的直积(direct product)。 
离散对数算出部124使用CPU911被输入阶数决定部121所存储的表示有限域Fp的阶数p的数据以及表示有限域Fp上的雅可比簇JacC的因子D的阶数r的数据。离散对数算出部124根据所输入的数据所表示的阶数p和阶数r,算出多个离散对数lκ(其中,κ是大于等于1且小于等于2d-1的整数。离散对数lκ是大于等于0且小于等于2d-1的整数。)。例如,在w=5的情况下,离散对数算出部124使用CPU911算出三个离散对数l1、l2、l3。 
在以下的例子中,设离散对数算出部124使用CPU911算出满足式7的离散对数lκ。 
[式7] 
a κ - 1 ≡ a l κ mod w
其中,a是将有限域Fp的阶数p除以素数w而得到的余数。根据由阶数决定部121决定阶数p时的条件,余数a是阶数为w的有限域的乘法群Fw 的生成元,因此当1≤κ≤2d-1(=w-2)时,aκ≠1(mod w),必然存在 满足式7的lκ。 
离散对数算出部124例如使用CPU911算出2d-1个aκ(除以素数w而得到的余数)的全部,使用RAM914存储所算出的2d-1个aκ。接着,离散对数算出部124使用CPU911,根据所算出的aκ,算出aκ-1(除以素数w而得到的余数),将算出的aκ-1与所存储的2d-1个aκ进行比较来找出相等的值,由此算出离散对数lκ。 
例如,在w=5、a=2的情况下,离散对数算出部124使用CPU911算出21=2(mod 4。以下相同。)、22=4、23=3,判断为2-1=1=20、4-1=3=23、3-1=2=21,算出l1=0、l2=3、l3=1。 
此外,也可以预先算出根据素数w和余数a确定的多个离散对数lκ(w,a),离散对数算出部124使用磁盘装置920事先存储表示多个离散对数lκ的数据。离散对数算出部124也可以使用CPU911,根据所输入的数据所表示的有限域Fp的阶数p和素数w,算出余数a,从预先存储的离散对数lκ(w,a)中获取与素数w和余数a对应的多个离散对数lκ。 
离散对数算出部124使用RAM914存储表示所算出的多个离散对数lκ的数据。 
配对对数算出部125使用CPU911被输入离散对数算出部124所存储的表示多个离散对数lκ的数据。配对对数算出部125使用CPU911,根据所输入的数据所表示的多个离散对数lκ算出多个配对对数系数ηi(其中,i是大于等于0且小于等于2d-1的整数。配对对数系数ηi是大于等于0且小于等于r-1的整数。r是雅可比簇JacC的因子D的阶数。)。例如,在w=5的情况下,配对对数算出部125使用CPU911算出四个配对对数系数η0、η1、η2、η3。 
在以下的例子中,设配对对数算出部125使用CPU911计算出式8所示的计算式,算出多个配对对数系数ηi。 
[式8] 
η i = ( Σ κ = 1 2 d - 1 p l κ + i · κ ) mod r
其中,i是大于等于0且小于等于2d-1的整数。κ是大于等于1且小 于等于2d-1的整数。p是阶数决定部121所决定的有限域Fp的阶数。r是阶数决定部121所算出的有限域Fp上的雅可比簇JacC的因子D所形成的群的阶数。 
例如,在w=5的情况下,配对对数算出部125使用CPU911计算出式9所示的计算式,算出四个配对对数系数η0、η1、η2、η3。 
[式9] 
η 0 = ( p l 1 + p l 2 + p l 3 ) mod r
η 1 = ( p l 1 + 1 + p l 2 + 2 + p l 3 + 3 ) mod r
η 2 = ( p l 1 + 2 + p l 2 + 4 + p l 3 + 6 ) mod r
η 3 = ( p l 1 + 3 + p l 2 + 6 + p l 3 + 9 ) mod r
配对对数算出部125使用RAM914存储表示所算出的多个配对对数系数ηi的数据。 
参数设定部140使用CPU911被输入阶数决定部121所存储的表示有限域Fp的阶数p的数据、表示有限域Fp上的雅可比簇JacC的因子D所形成的群的阶数r的数据、基底因子生成部123所存储的表示多个基底因子D j的数据以及配对对数算出部125所存储的表示多个配对对数系数ηi的数据。参数设定部140使用CPU911将所输入的数据所表示的阶数p、阶数r、多个基底因子D j以及多个配对对数系数ηi设定在密码参数中。 
图5是表示本实施方式中的密码参数设定装置100算出密码参数的密码参数算出处理的流程的一例的流程图。 
在安全性指数输入工序S711中,安全性指数输入部110使用CPU911输入安全性指数。 
在阶数决定工序S712中,阶数决定部121使用CPU911,根据在安全性指数输入工序S711中由安全性指数输入部110输入的安全性指数,决定有限域Fp的阶数p。阶数决定部121使用CPU911,根据所决定的有限域Fp的阶数p来算出有限域Fp上的雅可比簇JacC的因子D的阶数r。 
在随机因子选择工序S713中,随机因子选择部122使用CPU911, 从有限域Fp上的雅可比簇JacC的因子之中的阶数为r的因子中随机地选择随机因子D。 
在基底因子算出工序S714中,基底因子生成部123使用CPU911,根据通过随机因子选择工序S713选择的随机因子D来算出扩张域K上的雅可比簇JacC的多个基底因子D j。 
在离散对数算出工序S715中,离散对数算出部124使用CPU911算出多个离散对数lk。 
在配对对数系数算出工序S716中,配对对数算出部125使用CPU911,根据在离散对数算出工序S715中由离散对数算出部124算出的离散对数lk来算出多个配对对数系数ηi。 
在此,将雅可比簇JacC的因子之间的配对运算e定义为e(D,D’)=ew(D,φ(D’))。此外,ew是韦伊(Weil)配对。另外,φ是扩张域K上的雅可比簇JacC的因子所形成的群中的、能够在多项式时间内计算的自同态型映射。例如,φ是与超椭圆曲线C上的p次方弗罗宾尼斯(Frobenius)映射πp:(x,y)→(xp,yp)对应的雅可比簇JacC上的映射。 
已知在多项式时间内计算韦伊配对的值的算法,因此密码参数设定装置100能够在多项式时间内计算作为配对运算e的运算结果的配对值。 
这样定义的配对运算e具有以下性质。 
只要因子D的阶数不是1,作为相同的因子之间的配对运算e的运算结果的配对值e(D,D)就不是1(e(D,D)≠1)。 
韦伊配对ew是双线性配对,因此配对运算e也是双线性配对。即,关于雅可比簇JacC的所有的因子D和D’,成立式10。 
[式10] 
e(a·D,b·D′)=e(D,D′)ab
在此,a和b是任意整数。a·D表示将雅可比簇JacC的因子D相加a次的结果所得到的因子。 
另外,在作为配对运算e的自变量(argument)而取从阶数为r的2d个基底因子D j有限生成的有限生成因子群G中所包含的因子的 情况下,配对值整体所形成的群与有限生成因子群G相同,成为阶数为r的2d个循环群的直积。 
并且,当设为u=e(D,D0)、u i,j=e(D i,D j)(其中,i和j是大于等于0且小于等于2d-1的整数。)时,成立式11。 
[式11] 
其中,ηv是配对对数算出部125所算出的配对对数系数。 
密钥生成装置500利用该性质设定在密码系统800中使用的密钥。 
图6是表示本实施方式中的密钥生成装置500的功能模块的结构的一例的模块结构图。 
密钥生成装置500具有基底因子存储部511、配对对数存储部512、条件存储部130、条件输入部141、随机矩阵选择部142、输出基底算出部143以及密钥算出部150。 
基底因子存储部511使用ROM913存储表示密码参数设定装置100所设定的密码参数中的多个基底因子D j的数据。 
配对对数存储部512使用ROM913存储表示密码参数设定装置100所设定的密码参数中的多个配对对数系数ηi的数据。 
此外,基底因子存储部511和配对对数存储部512也可以使用磁盘装置920等以被嵌入到磁盘装置920等所存储的程序中的形式来存储密码参数。 
条件存储部130使用磁盘装置920存储表示后述的输出基底算出部143所算出的多个输出基底gi(其中,i是大于等于1且小于等于b的整数。b是大于等于d且小于等于2d的整数)要满足的条件的数据。 
条件存储部130所存储的数据所表示的条件表示由输出基底算出部143算出的b个输出基底gi中的两个输出基底的配对值要成为1、还是要成为1以外的值、还是可以取任意值。 
条件存储部130所存储的数据例如由一致条件数据和不一致条件数据这两种数据构成。一致条件数据是表示如下的两个整数的组 (μ,v)(其中,μ和v是大于等于1且小于等于b的整数。)的数据的集合,上述两个整数的组(μ,v)表示输出基底gμ和输出基底gv的配对值要成为1的输出基底的组。不一致条件数据也与一致条件数据同样地是表示两个整数的组(μ,v)(其中,μ和v是大于等于1且小于等于b的整数。)的数据的集合,但是不一致条件数据所表示的整数的组(μ,v)表示输出基底gμ和输出基底gv的配对值要成为1以外的值的输出基底的组。表示整数的组(μ,v)的数据不包含在一致条件数据中也不包含在不一致条件数据中的情况下,表示输出基底gμ和输出基底gv的配对值可以取任意值,其中,上述整数的组(μ,v)表示输出基底gμ和输出基底gv的组。 
条件输入部141使用CPU911输入条件存储部130所存储的表示输出基底要满足的条件的数据。条件输入部141(一致条件输入部和不一致条件输入部的一例)例如输入条件存储部130所存储的一致条件数据和不一致条件数据。 
条件输入部141使用RAM914存储表示所输入的输出基底要满足的条件的数据。 
随机矩阵选择部142使用CPU911输入条件输入部141所存储的表示输出基底要满足的条件的数据以及配对对数存储部512所存储的表示多个配对对数系数ηi的数据。随机矩阵选择部142根据所输入的数据所表示的条件,从满足条件的矩阵V中随机地选择矩阵V并设为随机矩阵V。 
在此,矩阵V是b行2d列的矩阵。例如,在w=5、b=2的情况下,矩阵V是2行4列的矩阵。当将矩阵V的μ行v列成分设为cμ,v(μ是大于等于1且小于等于b的整数。v是大于等于1且小于等于2d的整数。)时,cμ,v是取大于等于0且小于等于r-1的整数值的变量。随机矩阵选择部142使用CPU911根据所输入的数据所表示的条件来决定变量cμ,v的值。 
随机矩阵选择部142使用CPU911查找满足关系式:M’=V·M·VT的矩阵V。在此,矩阵VT是将矩阵V转置得到的2d行b列的矩阵。转置矩阵VT的v行μ列成分(μ是大于等于1且小于等于b的整 数。v是大于等于1且小于等于2d的整数。)是变量cμ,v。 
矩阵M是2d阶的方矩阵。例如在w=5的情况下,矩阵M是4阶的方矩阵。如果将矩阵M的μ行v列成分设为mμ,v(μ和v是大于等于1且小于等于2d的整数。),则当μ+v=2d+1时,mμ,v=ηv-1,当μ+v≠2d+1时mμ,v=0。 
矩阵M’是b阶的方矩阵。例如在b=2的情况下,矩阵M’是2阶的方矩阵。当将矩阵M’的μ行v列成分设为m’μ,v(μ和v是大于等于1且小于等于b的整数。)时,成立式12。 
[式12] 
m μ , v ′ = Σ i = 0 2 d - 1 η i · c μ , 2 d - i · c v , i + 1
其中,i是大于等于0且小于等于2d-1的整数。ηi是密码参数设定装置100的配对对数算出部125所算出的配对对数系数。 
随机矩阵选择部142例如使用CPU911,关于所输入的一致条件数据所表示的整数的组(μ,v),算出cμ,v使得m’μ,v=0。另外,随机矩阵选择部142使用CPU911,关于所输入的不一致条件数据所表示的整数的组(μ,v),算出cμ,v使得m’μ,v≠0。 
例如,随机矩阵选择部142使用CPU911,从变量cμ,v的数(=2d·b)减去所输入的一致条件数据所表示的整数组的数,来算出自由度。随机矩阵选择部142使用CPU911,根据所算出的自由度来从变量cμ,v中随机地选择与自由度相同数量的变量cμ,v。随机矩阵选择部142使用CPU911,随机地决定所选择的变量cμ,v的值。例如在w=5、b=2的情况下,变量cμ,v的数量是4·2=8个。当设一致条件数据所表示的整数组有两个时,自由度是8-2=6,因此随机矩阵选择部142从8个变量cμ,v中选择6个,并随机地决定值。 
接着,随机矩阵选择部142使用CPU911,求解根据一致条件数据确定的方程式,决定剩余的变量cμ,v的值。随机矩阵选择部142使用CPU911将决定的变量cμ,v的值代入根据不一致条件数据确定的方程式中,确认是否为m’μ,v≠0。在存在成为m’μ,v=0的变量的情况下, 随机矩阵选择部142使用CPU911,从随机地选择变量cμ,v的步骤起重新进行。在根据不一致条件数据确定的方程式全部都满足的情况下,随机矩阵选择部142使用RAM914存储表示所决定的变量cμ,v的值的数据。 
随机矩阵选择部142使用CPU911将以所决定的变量cμ,v的值为μ行v列成分的矩阵设为随机矩阵V,使用RAM914存储表示随机矩阵V的数据。 
输出基底算出部143使用CPU911输入基底因子存储部511所存储的表示多个基底因子D j的数据以及随机矩阵选择部142所存储的表示随机矩阵V的数据。 
输出基底算出部143使用CPU911,根据所输入的数据所表示的多个基底因子D j和随机矩阵V,算出多个输出基底gi(其中,i是大于等于1且小于等于b的整数。b是大于等于d且小于等于2d的整数。)。 
输出基底算出部143使用CPU911算出多个输出基底gi=vi·D(其中,i是大于等于1且小于等于b的整数。vi是随机矩阵V的第i行向量。D是以基底因子生成部123所算出的基底因子D j为第j+1行的成分的2d阶的列向量。)。即,输出基底算出部143使用CPU911计算出式13所示的计算式,算出b个输出基底gi。 
[式13] 
g i = Σ j = 0 2 d - 1 c i , j + 1 · D ~ j
其中,i是大于等于1且小于等于b的整数。j是大于等于0且小于等于2d-1的整数。ci,j+1是随机矩阵选择部142所选择的随机矩阵V的i行j+1列成分。D j是密码参数设定装置100的基底因子生成部123所算出的基底因子。 
输出基底算出部143使用RAM914存储表示所算出的多个输出基底gi的数据。 
输出基底算出部143所算出的多个输出基底gi被包含在有限生成因子群G中。 
基底因子生成部123所算出的多个基底因子D j之间存在配对值成为上述值的关系(参照式11)。因此,输出基底算出部143所算出的多个输出基底之间成立如下关系:如果m’i,j=0,则输出基底gi与输出基底gj的配对值为1。 
密钥算出部150使用CPU911,输入由输出基底算出部143所存储的表示输出基底gi的数据。 
密钥算出部150使用CPU911,根据所输入的数据所表示的输出基底gi来算出公开密钥PK、私人密钥SK、追踪密钥TK等密钥。 
图7是表示本实施方式中的密钥生成装置500算出输出基底gi的输出基底算出处理流程的一例的流程图。 
在条件输入工序S721中,条件输入部141使用CPU911输入输出基底gi要满足的条件。 
在随机矩阵选择工序S722中,随机矩阵选择部142使用CPU911,根据配对对数存储部512所存储的数据所表示的多个配对对数系数ηi,从满足条件输入部141所输入的条件的矩阵V中随机地选择随机矩阵V。 
在输出基底算出工序S718中,输出基底算出部143使用CPU911,根据基底因子存储部511所存储的数据所表示的多个基底因子D j和通过随机矩阵选择工序S717选择的随机矩阵V,来算出多个输出基底gi。 
接着,说明根据这样算出的输出基底gi来算出的密钥。 
此外,在以下的例子中,设将亏格为2的超椭圆曲线C:Y2=X5+1(即,d=2、w=5)用作超椭圆曲线,输出基底算出部143算出四个输出基底g1、g2、g3、g4(即,b=4),条件存储部130将表示八个整数组(1,2)、(1,4)、(2,1)、(2,3)、(3,2)、(3,4)、(4,1)、(4,3)的数据作为一致条件数据来进行存储,将表示四个整数组(1,1)、(2,2)、(3,3)、(4,4)的数据作为不一致条件数据来进行存储。即,成立如下关系:输出基底算出部143所算出的四个输出基底g1、g2、g3、g4之间的配对值为e(g1,g2)=e(g1,g4)=e(g2,g1)=e(g2,g3)=e(g3,g2)=e(g3,g4)=e(g4,g1)=e(g4,g3)=1、e(g1,g1)≠1、e(g2,g2)≠1、e(g3,g3)≠1、e(g4,g4)≠1。 
图8是表示本实施方式中的密钥算出部150的内部模块的结构的一例的详细框图。 
密钥算出部150具有用户人数输入部150、随机数生成部160、公开密钥算出部170、私人密钥算出部180、公开密钥设定部191、私人密钥设定部192以及追踪密钥设定部193。 
用户人数输入部151使用CPU911,输入表示密码系统800的用户人数(合法的密文解密装置300的数量)的最大值的两个整数n1、n2。在此,密码系统800的用户人数的最大值n是n=n1·n2。根据索引x(其中,x是大于等于1且小于等于n1的整数。)和索引y(其中,y是大于等于1且小于等于n2的整数。)的组(x,y)来唯一地识别密码系统800的用户。 
此外,n1与n2也可以相等。在这种情况下,用户人数输入部151也可以使用CPU911输入表示密码系统800的用户人数的最大值n=n1 2的一个整数n1。或者,用户人数输入部151也可以使用CPU911输入表示密码系统800的用户人数的最大值n的一个整数n,并算出不低于所输入的整数n的平方根的最小整数n1。 
用户人数输入部151使用RAM914存储表示所输入的两个整数n1、n2的数据。 
随机数生成部160具有行随机数生成部161、配对随机数生成部162、列随机数生成部163以及共用随机数生成部164。 
行随机数生成部161使用CPU911,输入阶数决定部121所存储的表示雅可比簇JacC因子的阶数r的数据以及用户人数输入部151所存储的表示整数n1的数据。行随机数生成部161使用CPU911,根据所输入的数据所表示的阶数r和整数n1,随机地选择n1个大于等于1且小于等于r-1的整数,并设为n1个随机数rx(其中,x是大于等于1且小于等于n1的整数。)。行随机数生成部161使用RAM914存储表示所选择的n1个随机数rx的数据。 
配对随机数生成部162使用CPU911,输入阶数决定部121所存储的表示雅可比簇JacC因子的阶数r的数据以及用户人数输入部151所存储的表示整数n1的数据。配对随机数生成部162使用CPU911,根据所 输入的数据所表示的阶数r和整数n1来随机地选择n1个大于等于1且小于等于r-1的整数,并设为n1个随机数αx(其中,x是大于等于1且小于等于n1的整数。)。配对随机数生成部162使用RAM914,存储表示所选择的n1个随机数αx的数据。 
列随机数生成部163使用CPU911,输入阶数决定部121所存储的表示雅可比簇JacC因子的阶数r的数据以及用户人数输入部151所存储的表示整数n2的数据。列随机数生成部163使用CPU911,根据所输入的数据所表示的阶数r和整数n2,来随机地选择n2个大于等于1且小于等于r-1的整数,并设为n2个随机数cy(其中,y是大于等于1且小于等于n2的整数。)。列随机数生成部163使用RAM914,存储表示所选择的n2个随机数cy的数据。 
共用随机数生成部164使用CPU911,输入阶数决定部121所存储的表示雅可比簇JacC因子的阶数r的数据。共用随机数生成部164使用CPU911,根据所输入的数据所表示的阶数来随机地选择大于等于1且小于等于r-1的整数,并设为随机数β。共用随机数生成部164使用RAM914存储表示所选择的随机数β的数据。 
公开密钥算出部170具有公开行基底算出部171、公开列基底算出部172、公开共用因子算出部173、公开行第一因子算出部174、公开行第二因子算出部175、公开配对值算出部176以及公开列因子算出部177。 
公开行基底算出部171使用CPU911,输入由输出基底算出部143所存储的表示输出基底g1、g2的数据。公开行基底算出部171使用CPU911,根据所输入的数据所表示的输出基底g1、g2,算出扩张域K上的雅可比簇JacC的因子g=g1+g2。即,公开行基底算出部171使用CPU911,算出将因子g1和因子g2相加得到的因子来设为因子g。公开行基底算出部171使用RAM914存储表示所算出的因子g的数据。此外,输出基底g1、g2被包含在有限生成因子群G中,因此公开行基底算出部171所算出的因子g也被包含在有限生成因子群G中。 
公开列基底算出部172使用CPU911,输入由输出基底算出部143 所存储的表示输出基底g3、g4的数据。公开列基底算出部172使用CPU911,根据所输入的数据所表示的输出基底g3、g4来算出扩张域K上的雅可比簇JacC的因子h=g3+g4。即,公开列基底算出部172使用CPU911算出将因子g3和因子g4相加得到的因子来设为因子h。因子h被包含在有限生成因子群G中。公开列基底算出部172使用RAM914存储表示所算出的因子h的数据。 
公开共用因子算出部173使用CPU911,输入由输出基底算出部143所存储的表示输出基底g2的数据以及共用随机数生成部164所存储的表示随机数β的数据。公开共用因子算出部173使用CPU911,根据所输入的数据所表示的输出基底g2和随机数β来算出扩张域K上的雅可比簇JacC的因子E=β·g2。即,公开列基底算出部172使用CPU911,算出将因子g2相加β次得到的因子来设为因子E。因子E被包含在有限生成因子群G中。公开共用因子算出部173使用RAM914存储表示所算出的因子E的数据。 
公开行第一因子算出部174使用CPU911,输入由输出基底算出部143所存储的表示输出基底g2的数据、行随机数生成部161所存储的表示n1个随机数rx的数据以及共用随机数生成部164所存储的表示随机数β的数据。公开行第一因子算出部174使用CPU911,根据所输入的数据所表示的输出基底g2、n1个随机数rx以及随机数β来算出扩张域K上的雅可比簇JacC的n1个因子Ex=βrx·g2(其中,x是大于等于1且小于等于n1的整数。)。即,公开行第一因子算出部174使用CPU911,算出将因子g2相加β×rx次得到的因子来设为因子Ex。因子Ex被包含在有限生成因子群G中。公开行第一因子算出部174使用RAM914存储表示所算出的n1个因子Ex的数据。 
此外,由于E=β·g2,因此公开行第一因子算出部174也可以使用CPU911,输入公开共用因子算出部173所存储的表示因子E的数据以及行随机数生成部161所存储的表示n1个随机数rx的数据,使用CPU911算出n1个因子Ex=rx·E(其中,x是大于等于1且小于等于n1的整数。)。即,公开行第一因子算出部174也可以使用CPU911, 算出将因子E相加rx次得到的因子来设为因子Ex。 
公开行第二因子算出部175使用CPU911,输入由输出基底算出部143所存储的表示输出基底g4的数据、行随机数生成部161所存储的表示n1个随机数rx的数据以及共用随机数生成部164所存储的表示随机数β的数据。公开行第二因子算出部175使用CPU911,根据所输入的数据所表示的输出基底g4、n1个随机数rx以及随机数β来算出扩张域K上的雅可比簇JacC的n1个因子Fx=βrx·g4(其中,x是大于等于1且小于等于n1的整数。)。即,公开行第二因子算出部175使用CPU911,算出将因子g4相加β×rx次得到的因子来设为因子Fx。因子Fx被包含在有限生成因子群G中。公开行第二因子算出部175使用RAM914存储表示所算出的n1个因子Fx的数据。 
公开配对值算出部176使用CPU911,输入由输出基底算出部143所存储的表示输出基底g2的数据、配对随机数生成部162所存储的表示n1个随机数αx的数据以及共用随机数生成部164所存储的表示随机数β的数据。公开配对值算出部176使用CPU911,根据所输入的数据所表示的输出基底g2、n1个随机数αx以及随机数β来算出配对值Gx=e(g2,g2)βα x(其中,x是大于等于1且小于等于n1的整数。)。即,公开配对值算出部176使用CPU911,算出将因子g2与因子g2的配对值相乘β×αx次得到的配对值来设为配对值Gx。公开配对值算出部176使用RAM914存储表示所算出的n1个因子Gx的数据。 
公开列因子算出部177使用CPU911,输入公开行基底算出部171所存储的表示因子g的数据以及共用随机数生成部164所存储的表示n2个随机数cy的数据。公开列因子算出部177使用CPU911,根据所输入的数据所表示的因子g和n2个随机数cy算出扩张域K上的雅可比簇JacC的n2个因子Hy=cy·g(其中,y是大于等于1且小于等于n2的整数。)。即,公开列因子算出部177使用CPU911,算出将因子g相加cy次得到的因子来设为因子Hy。因子Hy被包含在有限生成因子群G中。公开列因子算出部177使用RAM914存储表示所算出的n2个因子Hy的数据。 
私人密钥算出部180具有私人因子算出部181。 
私人因子算出部181使用CPU911,输入行随机数生成部161所存储的表示n1个随机数rx的数据、配对随机数生成部162所存储的表示n1个随机数αx的数据、列随机数生成部163所存储的表示n2个随机数cy的数据以及公开行基底算出部171所存储的表示因子g的数据。私人因子算出部181使用CPU911,根据所输入的数据所表示的n1个随机数rx、n1个随机数αx、n2个随机数cy以及因子g来算出扩张域K上的雅可比簇JacC的n个因子Kx,y=(αx+rxcy)·g(其中,x是大于等于1且小于等于n1的整数。y是大于等于1且小于等于n2的整数。)。即,私人因子算出部181算出将如下因子相加得到的因子来设为因子Kx,y:将因子g相加αx次得到的因子;将因子g相加rx×cy次得到的因子。因子Kx,y被包含在有限生成因子群G中。私人因子算出部181使用RAM914存储表示所算出的n个因子Kx,y的数据。 
公开密钥设定部191使用CPU911,输入公开行基底算出部171所存储的表示因子g的数据、公开列基底算出部172所存储的表示因子h的数据、公开共用因子算出部173所存储的表示因子E的数据、公开行第一因子算出部174所存储的表示n1个因子Ex的数据、公开行第二因子算出部175所存储的表示n1个因子Fx的数据、公开配对值算出部176所存储的表示n1个配对值Gx的数据以及公开列因子算出部177所存储的表示n2个因子Hy的数据。公开密钥设定部191使用CPU911,根据所输入的数据所表示的因子g、因子h、因子E、n1个因子Ex、n1个因子Fx、n1个配对值Gx以及n2个因子Hy,将(2n1+n2+3)个因子和n1个配对值Gx的组(g,h,E,E1,E2,...,En1,F1,F2,...,Fn1,G1,G2,...,Gn1,H1,H2,...,Hn2)设定为公开密钥PK。 
私人密钥设定部192使用CPU911,输入私人因子算出部181所存储的表示n个因子Kx,y的数据。私人密钥设定部192使用CPU911,根据所输入的数据所表示的n个因子Kx,y,对于根据索引x和索引y的组(x,y)识别的各个用户,将一个因子Kx,y设定为私人密钥SK。 
追踪密钥设定部193使用CPU911,输入由输出基底算出部143所存储的表示输出基底g1、g2、g3、g4的数据、行随机数生成部161所存 储的表示n1个随机数rx的数据、配对随机数生成部162所存储的表示n1个随机数αx的数据、列随机数生成部163所存储的表示n2个随机数cy的数据以及共用随机数生成部164所存储的表示随机数β的数据。追踪密钥设定部193使用CPU911,根据所输入的数据所表示的输出基底g1、g2、g3、g4、n1个随机数rx、n1个随机数αx、n2个随机数cy以及随机数β,将四个因子和(2n1+n2+1)个整数的组(g1,g2,g3,g4,r1,r2,...,rn1,α1,α2,...,αn1,c1,c2,...cn2,β)设定为追踪密钥TK。 
接着,说明利用如上所述生成的密钥来进行加密·解密的密文生成装置200和密文解密装置300。 
图9是表示本实施方式中的密文生成装置200的功能模块的结构的一例的模块结构图。 
密文生成装置200对明文M进行加密,来生成密文CT。密文CT包含n1个行密文CTx(其中,x是大于等于1且小于等于n1的整数。)和n2个列密文CTy(其中,y是大于等于1且小于等于n2的整数。)。行密文CTx是针对根据两个索引的组(x,y)识别的最多n名用户中的、根据相同的索引x识别的最多n2名用户的共用密文。列密文CTy是针对根据两个索引的组(x,y)识别的最多n名用户中的、根据相同的索引y识别的最多n1名用户的共用密文。因而,对于所有的用户,分别不同的行密文CTx和列密文CTy的组(CTx,CTy)成为针对该用户的密文。 
此外,在对根据某个索引x识别的所有的用户不发送密文的情况下,密文生成装置200也可以不生成针对该索引x的行密文CTx。另外,在对根据某个索引y识别的所有的用户不发送密文的情况下,密文生成装置200也可以不生成与该索引y对应的列密文CTy。即,由密文生成装置200生成的行密文CTx的数量也可以是n1个以下,由密文生成装置200生成的列密文CTy的数量也可以是n2个以下。 
在以下的说明中,设生成与所有的索引对应的行密文CTx和列密文CTy。 
密文生成装置200具有公开密钥输入部211、明文输入部221、密码随机数生成部230、行密文生成部240、列密文生成部250、行密文设 定部261以及列密文设定部262。 
公开密钥输入部211使用CPU911,输入密钥生成装置500所设定的公开密钥PK。公开密钥输入部211使用磁盘装置920,存储表示包含在所输入的公开密钥PK中的以下因子的数据:因子g、因子h、因子E、n1个因子Ex、n1个因子Fx、n1个配对值Gx以及n2个因子Hy。 
明文输入部221使用CPU911输入想要加密的明文M。明文输入部221使用RAM914存储表示所输入的明文M的数据。 
密码随机数生成部230具有密码共用随机数生成部231、密码行随机数生成部232以及密码列随机数生成部233。 
密码共用随机数生成部231使用CPU911,根据雅可比簇JacC的因子的阶数r来随机地选择大于等于1且小于等于r-1的整数并设为随机数t。共用随机数生成部164使用RAM914存储表示所选择的随机数t的数据。 
密码行随机数生成部232使用CPU911,根据雅可比簇JacC的因子的阶数r以及表示密码系统800的用户人数的最大值n的两个整数n1、n2中的整数n1,来随机地选择大于等于1且小于等于r-1的n1个整数并设为n1个随机数sx(其中,x是大于等于1且小于等于n1的整数。)。密码行随机数生成部232使用RAM914存储表示所选择的n1个随机数sx的数据。 
密码列随机数生成部233使用CPU911,根据雅可比簇JacC的因子的阶数r以及表示密码系统800的用户人数的最大值n的两个整数n1、n2中的整数n2,来随机地选择大于等于1且小于等于r-1的n2个整数并设为n2个随机数wy(其中,y是大于等于1且小于等于n2的整数。)。密码行随机数生成部232使用RAM914存储表示所选择的n1个随机数sx的数据。 
行密文生成部240具有密码行第一因子算出部241、密码行第二因子算出部242、密码行第三因子算出部243、加密密钥算出部244以及明文加密部245。 
密码行第一因子算出部241使用CPU911,输入公开密钥输入部211所存储的表示n1个因子Ex的数据以及密码行随机数生成部232所存储的表示n1个随机数sx的数据。密码行第一因子算出部241使用 CPU911,根据所输入的数据所表示的n1个因子Ex和n1个随机数sx来算出扩张域K上的雅可比簇JacC的n1个因子Rx=sx·Ex(其中,x是大于等于1且小于等于n1的整数。)。即,密码行第一因子算出部241使用CPU911,算出将因子Ex相加sx次得到的因子来设为因子Rx。因子Rx被包含在有限生成因子群G中。密码行第一因子算出部241使用RAM914存储表示所算出的n1个因子Rx的数据。 
密码行第二因子算出部242使用CPU911,输入公开密钥输入部211所存储的表示n1个因子Fx的数据以及密码行随机数生成部232所存储的表示n1个随机数sx的数据。密码行第二因子算出部242使用CPU911,根据所输入的数据所表示的n1个因子Fx和n1个随机数sx来算出扩张域K上的雅可比簇JacC的n1个因子R x=sx·Fx(其中,x是大于等于1且小于等于n1的整数。)。即,密码行第二因子算出部242使用CPU911,算出将因子Fx相加sx次得到的因子来设为因子R x。因子R x被包含在有限生成因子群G中。密码行第二因子算出部242使用RAM914存储表示所算出的n1个因子R x的数据。 
密码行第三因子算出部243使用CPU911,输入公开密钥输入部211所存储的表示因子E的数据、密码共用随机数生成部231所存储的表示随机数t的数据以及密码行随机数生成部232所存储的表示n1个随机数sx的数据。密码行第三因子算出部243使用CPU911,根据所输入的数据所表示的因子E、随机数t以及n1个随机数sx来算出扩张域K上的雅可比簇JacC的n1个因子Ax=sxt·E(其中,x是大于等于1且小于等于n1的整数。)。即,密码行第三因子算出部243使用CPU911,算出将因子E相加sx×t次得到的因子来设为因子Ax。因子Ax被包含在有限生成因子群G中。密码行第三因子算出部243使用RAM914存储表示所算出的n1个因子Ax的数据。 
加密密钥算出部244使用CPU911,输入公开密钥输入部211所存储的表示n1个配对值Gx的数据、密码共用随机数生成部231所存储的表示随机数t的数据以及密码行随机数生成部232所存储的表示n1个随机数sx的数据。加密密钥算出部244使用CPU911,根据所输入的数据所 表示的n1个配对值Gx、随机数t以及n1个随机数sx来算出n1个配对值CKx=Gx s x t(其中,x是大于等于1且小于等于n1的整数。)。即,加密密钥算出部244算出将配对值Gx相乘sx×t次得到的配对值来设为配对值CKx。加密密钥算出部244使用RAM914存储表示所算出的n1个配对值CKx的数据。 
明文加密部245使用CPU911,输入明文输入部221所存储的表示明文M的数据和加密密钥算出部244所存储的表示n1个配对值CKx的数据。明文加密部245使用CPU911,根据所输入的数据所表示的明文M和n1个配对值CKx,将n1个配对值CKx分别用作加密密钥来对明文M进行加密,来生成n1个密文Bx(其中,x是大于等于1且小于等于n1的整数。)。例如,明文加密部245使用CPU911,将明文M视为配对值,算出将配对值M与配对值CKx相乘得到的配对值M·CKx来设为密文Bx。明文加密部245使用RAM914存储所生成的n1个密文Bx。 
列密文生成部250具有密码列第一因子算出部251和密码列第二因子算出部252。 
密码列第一因子算出部251使用CPU911,输入公开密钥输入部211所存储的表示因子h和n2个因子Hy的数据、密码共用随机数生成部231所存储的表示随机数t的数据以及密码列随机数生成部233所存储的表示n2个随机数wy的数据。密码列第一因子算出部251使用CPU911,根据所输入的数据所表示的因子h、n2个因子Hy、随机数t以及n2个随机数wy来算出扩张域K上的雅可比簇JacC的n2个因子Cy=t·Hy+wy·h(其中,y是大于等于1且小于等于n2的整数。)。即,密码列第一因子算出部251使用CPU911,算出将如下因子相加得到的因子来设为因子Cy:将因子Hy相加t次得到的因子;将因子h相加wy次得到的因子。因子Cy被包含在有限生成因子群G中。密码列第一因子算出部251使用RAM914存储表示所算出的n2个因子Cy的数据。 
密码列第二因子算出部252使用CPU911,输入公开密钥输入部211所存储的表示因子g的数据以及密码列随机数生成部233所存储的表示n2个随机数wy的数据。密码列第二因子算出部252使用CPU911, 根据所输入的数据所表示的因子g和n2个随机数wy来算出扩张域K上的雅可比簇JacC的n2个因子C y=wy·g(其中,y是大于等于1且小于等于n2的整数。)。即,密码列第二因子算出部252使用CPU911,算出将因子g相加wy次得到的因子来设为因子C y。因子C y被包含在有限生成因子群G中。密码列第二因子算出部252使用RAM914存储表示所算出的n2个因子C y的数据。 
行密文设定部261使用CPU911,输入密码行第一因子算出部241所存储的表示n1个因子Rx的数据、密码行第二因子算出部242所存储的表示n1个因子R x的数据、密码行第三因子算出部243所存储的表示n1个因子Ax的数据以及明文加密部245所存储的表示n1个密文Bx的数据。行密文设定部261使用CPU911,根据所输入的数据所表示的n1个因子Rx、n1个因子R x、n1个因子Ax以及n1个密文Bx,生成n1个的三个因子与一个密文的组(Rx,R x,Ax,Bx)(其中,x是大于等于1且小于等于n1的整数。),并设为n1个行密文CTx。 
列密文设定部262使用CPU911,输入密码列第一因子算出部251所存储的表示n2个因子Cy的数据和密码列第二因子算出部252所存储的表示n2个因子C y的数据。列密文设定部262使用CPU911,根据所输入的数据所表示的n2个因子Cy和n2个因子C y,生成n2个的两个因子的组(Cy,C y)(其中,y是大于等于1且小于等于n2的整数。),并设为n2个列密文CTy。 
图10是表示本实施方式中的(合法的)密文解密装置300的功能模块的结构的一例的模块结构图。 
合法的密文解密装置300输入密文生成装置200所生成的密文CT,从密文CT中取出与自己的用户对应的行密文CTx和列密文CTy,并进行解密。 
合法的密文解密装置300具有密文输入部311、索引存储部321、行密文输入部322、列密文输入部323、私人密钥存储部331以及解密文生成部340。 
密文输入部311使用CPU911输入密文生成装置200所生成的密文 CT。密文输入部311使用RAM914存储表示所输入的密文CT的数据。 
索引存储部321预先使用ROM913来存储表示与自己的用户对应的两个索引X、Y的数据。 
行密文输入部322使用CPU911,输入密文输入部311所存储的表示密文CT的数据以及索引存储部321所存储的表示索引X的数据。行密文输入部322使用CPU911,根据所输入的数据所表示的密文CT和索引X,从密文CT中获取针对具有索引X的用户的一个行密文CTX。行密文输入部322使用RAM914,存储表示所获取的行密文CTX中所包含的因子RX、因子R X、因子AX以及密文BX的数据。 
列密文输入部323使用CPU911,输入密文输入部311所存储的表示密文CT的数据和索引存储部321所存储的表示索引Y的数据。列密文输入部323使用CPU911,根据所输入的数据所表示的密文CT和索引Y,从密文CT中获取针对具有索引Y的用户的一个列密文CTY。列密文输入部323使用RAM914,存储表示所获取的列密文CTY中所包含的因子CY和因子C Y的数据。 
私人密钥存储部331预先使用具有防篡改性(tamper resistance)的存储装置,存储表示密钥生成装置500所设定的私人密钥KX,Y的数据。 
解密文生成部340具有解密密钥算出部341和密文解密部342。 
解密密钥算出部341使用CPU911,输入行密文输入部322所存储的表示因子RX、因子R X以及因子AX的数据、列密文输入部323所存储的表示因子CY和因子C Y的数据以及私人密钥存储部331所存储的表示私人密钥KX,Y的数据。解密密钥算出部341使用CPU911,根据所输入的数据所表示的因子RX、因子R X、因子AX、因子CY、因子C Y、以及私人密钥KX,Y来算出配对值CK’=e(KX,Y,AX)·e(R X,C Y)/e(CY,RX)。即,解密密钥算出部341使用CPU911,算出将如下配对值除以因子CY和RX的配对值而得到的配对值来设为配对值CK’,上述配对值为将因子KX,Y和因子AX的配对值与因子R X和因子C Y的配对值相乘得到的配对值。解密密钥算出部341使用RAM914,存储表示所算出的配对值 CK’的数据。 
密文解密部342使用CPU911,输入行密文输入部322所存储的表示密文BX的数据以及解密密钥算出部341所存储的表示配对值CK,的数据。密文解密部342使用CPU911,根据所输入的数据所表示的密文BX和配对值CK’,将配对值CK’用作解密密钥来对密文BX进行解密,来生成解密文M’。例如,密文解密部342使用CPU911,将密文BX视为配对值,算出作为配对值BX与配对值CK’的倒数的积的配对值BX/CK’,来设为解密文M’。密文解密部342使用RAM914,存储所生成的解密文M’。 
在此,当使用未公开的参数来表示密文生成装置200的加密密钥算出部244所生成的配对值CKX时,成为式14。 
[式14] 
CK X = G X s X t = e ( g 2 , g 2 ) β α X s X t
另外,当使用未公开的参数来表示密文解密装置300的解密密钥算出部341所生成的配对值CK’时,成为式15。 
[式15] 
CK ′ = e ( K X , Y , A X ) e ( R ~ X , C ~ Y ) e ( C Y , R X )
= e ( ( α X + r X c Y ) · ( g 1 + g 2 ) , s X tβ · g 2 ) e ( s X β r X · g 4 , w Y · ( g 1 + g 2 ) ) e ( t c Y · ( g 1 + g 2 ) + w Y · ( g 3 + g 4 ) , s X β r X · g 2 )
= e ( g 1 + g 2 , g 2 ) α X s X tβ e ( g 4 , g 1 + g 2 ) s X β r X w Y e ( g 3 + g 4 , g 2 ) s X β r X w Y
在此,根据输出基底算出部143所算出的输出基底g1、g2、g3、g4之间的关系,e(g1,g2)=e(g1,g4)=e(g2,g1)=e(g2,g3)=e(g3,g2)=e(g3,g4)=e(g4,g1)=e(g4,g3)=1、e(g1,g1)≠1、e(g2,g2)≠1、e(g3,g3)≠1、e(g4,g4)≠1,因此配对值CK’如式16所示。 
[式16] 
CK ′ = e ( g 2 , g 2 ) α X s X tβ e ( g 4 , g 2 ) s X β r X w Y e ( g 4 , g 2 ) s X β r X w Y = e ( g 2 , g 2 ) α X s X tβ
即,密文生成装置200的加密密钥算出部244所算出的配对值CKX与密文解密装置300的解密密钥算出部341所算出的配对值CK’相等。由此,密文生成装置200和密文解密装置300能够共享共用的加密密钥和解密密钥。 
接着,说明在如上所述的密码系统800中解析非法的密文解密装置300z来判别私人密钥的泄漏源的非法者追踪装置400。 
图11是表示本实施方式中的非法者追踪装置400的功能模块的结构的一例的模块结构图。 
非法者追踪装置400生成追踪用的密文CT,并输入到非法的密文解密装置300z。非法者追踪装置400输入由非法的密文解密装置300z对密文CT进行解密得到的解密文M’并进行解析,由此确定密文解密装置300z所利用的私人密钥KX,Y。 
非法者追踪装置400具有追踪密钥存储部411、目标决定部421、追踪明文生成部422、追踪随机数生成部430、追踪行密文生成部440、追踪列密文生成部450、行密文设定部461、列密文设定部462、密文输出部463、解密文输入部471以及泄漏源判别部472。 
追踪密钥存储部411预先使用具有防篡改性的存储装置,存储表示密钥生成装置500所设定的追踪密钥TK的数据。 
目标决定部421使用CPU911,根据索引x、索引y,将密码系统800的n名用户分类为多个组。目标决定部421使用RAM914存储表示分类得到的组的数据。 
追踪明文生成部422使用CPU911,随机地生成要在追踪用的密文CT中加密的明文M。追踪明文生成部422使用RAM914,存储表示所生成的明文M的数据。 
追踪随机数生成部430使用CPU911,生成多个随机数,该多个随机数用于生成追踪用的密文CT。追踪随机数生成部430使用RAM914,存储表示所生成的多个随机数的数据。 
追踪行密文生成部440使用CPU911,输入追踪密钥存储部411所存储的表示追踪密钥TK的数据、目标决定部421所存储的表示组的数 据、追踪随机数生成部430所存储的表示多个随机数的数据以及追踪明文生成部422所存储的表示明文M的数据。追踪行密文生成部440使用CPU911,根据所输入的数据所表示的追踪密钥TK、组、多个随机数以及明文M,生成为了生成n1个追踪用的行密文CTx而所需的多个因子等。追踪行密文生成部440使用RAM914,存储表示所生成的多个因子等的数据。 
追踪列密文生成部450使用CPU911,输入追踪密钥存储部411所存储的表示追踪密钥TK的数据、目标决定部421所存储的表示组的数据以及追踪随机数生成部430所存储的表示多个随机数的数据。追踪列密文生成部450使用CPU911,根据所输入的数据所表示的追踪密钥TK、组以及多个随机数,生成为了生成n2个追踪用的列密文CTy而所需的多个因子等。追踪列密文生成部450使用RAM914,存储表示所生成的多个因子等的数据。 
行密文设定部461(追踪行密文设定部)使用CPU911,输入追踪行密文生成部440所存储的表示多个因子等的数据。行密文设定部461使用CPU911,根据所输入的数据所表示的多个因子等来设定n1个追踪用的行密文CTx。行密文设定部461使用RAM914,存储表示所设定的n1个追踪用的行密文CTx的数据。 
列密文设定部462(追踪列密文设定部)使用CPU911,输入追踪列密文生成部450所存储的表示多个因子等的数据。列密文设定部462使用CPU911,根据所输入的数据所表示的多个因子等来设定n2个追踪用的列密文CTy。列密文设定部462使用RAM914,存储表示所设定的n2个追踪用的列密文CTy的数据。 
密文输出部463使用CPU911,输入行密文设定部461所存储的表示n1个追踪用的行密文CTx的数据以及列密文设定部462所存储的表示n2个追踪用的列密文CTy的数据。密文输出部463使用CPU911,根据所输入的数据所表示的n1个追踪用的行密文CTx和n2个追踪用的列密文CTy,来生成追踪用的密文CT。密文输出部463使用CPU911,对非法的密文解密装置300z输出所生成的追踪用的密文CT。 
解密文输入部471使用CPU911,输入由密文解密装置300z对密文输出部463所输出的追踪用的密文CT进行解密而得到的解密文M’。解密文输入部471存储表示所输入的解密文M’的数据。 
泄漏源判别部472使用CPU911,输入目标决定部421所存储的表示组的数据、追踪明文生成部422所存储的表示明文M的数据以及解密文输入部471所存储的表示解密文M’的数据。泄漏源判别部472使用CPU911,根据所输入的数据所表示的明文M和解密文M’,判断密文解密装置300z是否能够正确地对追踪用的密文CT进行解密。 
非法者追踪装置400所生成的追踪用的密文CT构成为:在使用属于目标决定部421所分类得到的多个组中的规定的组的用户的私人密钥Kx,y的情况下,能够正确地进行解密,但是在使用属于除此以外的组的用户的私人密钥Kx,y的情况下,无法正确地进行解密。 
因而,一边改变组的分类、一边使密文解密装置300z对追踪用的密文CT进行解密,判断是否能够正确地进行解密,由此能够确定非法的密文解密装置300z所使用的私人密钥Kx,y的索引x和y。 
泄漏源判别部472在能够确定出非法的密文解密装置300z所使用的私人密钥Kx,y的索引x和y的情况下,使用CPU911输出所确定的索引x、y。 
泄漏源判别部472在还未能够确定出非法的密文解密装置300z所使用的私人密钥Kx,y的索引x和y的情况下,使用RAM914存储表示判断结果的数据。 
目标决定部421使用CPU911,输入泄漏源判别部472所存储的表示判断结果的数据,根据所输入的数据所表示的判断结果来变更组分类。 
非法者追踪装置400将根据已变更的组分类而新生成的追踪用的密文CT再次输入到密文解密装置300z,对解密文M’进行解析。通过重复该处理,非法者追踪装置400确定非法的密文解密装置300z所使用的私人密钥Kx,y的索引x和y。 
图12是表示本实施方式中的非法者追踪装置400中的追踪随机数 生成部430、追踪行密文生成部440、追踪列密文生成部450的内部模块的一例的详细框图。 
此外,在该例子中,设目标决定部421使用CPU911,根据索引x将密码系统800的用户分为三个组,根据索引y将密码系统800的用户分为两个组,合计而分类为6个组。目标决定部421使用CPU911,决定两个整数i、j(其中,i是大于等于1且小于等于n1的整数。j是大于等于1且小于等于n2的整数。),使用RAM914存储表示所决定的整数i、j的数据。在此,整数i将密码系统800的用户分类为索引x大于i的第一组、索引x与i相等的第二组以及索引x小于i的第三组。另外,整数j将密码系统800的用户分类为索引y大于等于j的第一组以及索引y小于j的第二组。通过该两种分类的组合,密码系统800的用户被分类为6个组。 
追踪随机数生成部430具有追踪共用随机数生成部431、追踪行随机数生成部432、追踪列随机数生成部433、干扰行随机数生成部434以及干扰列随机数生成部435。 
追踪共用随机数生成部431、追踪行随机数生成部432、追踪列随机数生成部433分别与密文生成装置200的密码共用随机数生成部231、密码行随机数生成部232、密码列随机数生成部233相同,因此在此省略说明。 
干扰行随机数生成部434使用CPU911,根据目标决定部421所决定的整数i和雅可比簇JacC因子的阶数r,随机地选择大于等于1且小于等于r-1的3(i-1)个整数,并设为随机数vx,1、vx,2、vx,3(其中,x是大于等于1且小于i的整数。)。干扰行随机数生成部434使用RAM914,存储表示所选择的随机数vx,1、vx,2、vx,3的数据。 
干扰列随机数生成部435使用CPU911,根据目标决定部421所决定的整数j和雅可比簇JacC因子的阶数r,随机地选择大于等于1且小于等于r-1的j-1个整数,并设为随机数zp,y(其中,y是大于等于1且小于j的整数。)。干扰列随机数生成部435使用RAM914,存储表示所选择的随机数zp,y的数据。 
追踪行密文生成部440具有追踪行第一因子算出部441、追踪行第二因子算出部442、追踪行第三因子算出部443、追踪加密密钥算出部444以及追踪明文加密部445。 
追踪行第一因子算出部441与密文生成装置200的密码行第一因子算出部241相当。追踪行第一因子算出部441使用CPU911,根据目标决定部421所决定的整数i、包含在追踪密钥TK中的因子g2和n1个随机数rx、因子g(既可以根据包含在追踪密钥TK中的因子g1、g2算出,也可以从公开密钥PK获取。)、追踪行随机数生成部432所生成的n1个随机数sx以及干扰行随机数生成部434所生成的i-1个随机数vx,1,算出扩张域K上的雅可比簇JacC的n1个因子Rx。 
在索引x大于整数i的情况下,追踪行第一因子算出部441使用CPU911,算出因子Rx=sxrx·g2(其中,x是大于等于i+1且小于等于n1的整数。)。即,追踪行第一因子算出部441使用CPU911,算出将因子g2相加sx×rx次得到的因子并设为因子Rx。 
在索引x与整数i相等的情况下,追踪行第一因子算出部441使用CPU911,算出因子Rx=sxrx·g(其中,x=i)。即,追踪行第一因子算出部441使用CPU911,算出将因子g相加sx×rx次得到的因子并设为因子Rx。 
在索引x小于整数i的情况下,追踪行第一因子算出部441使用CPU911,算出因子Rx=vx,1·g(其中,x是大于等于1且小于等于i-1的整数。)。即,追踪行第一因子算出部441使用CPU911,算出将因子g相加vx,1次得到的因子并设为因子Rx。 
在任意情况下,因子Rx被包含在有限生成因子群G中。 
追踪行第一因子算出部441使用RAM914,存储表示所算出的n1个因子Rx的数据。 
追踪行第二因子算出部442与密文生成装置200的密码行第二因子算出部242相当。追踪行第二因子算出部442使用CPU911,根据目标决定部421所决定的整数i、包含在追踪密钥TK中的因子g4和n1个随机数rx、因子h(既可以根据包含在追踪密钥TK中的因子g3和g4算出,也 可以从公开密钥PK获取。)、追踪行随机数生成部432所生成的n1个随机数sx以及干扰行随机数生成部434所生成的i-1个随机数vx,1,算出扩张域K上的雅可比簇JacC的n1个因子R x。 
在索引x大于整数i的情况下,追踪行第二因子算出部442使用CPU911,算出因子R x=sxrx·g4(其中,x是大于等于i+1且小于等于n1的整数。)。即,追踪行第二因子算出部442使用CPU911,算出将因子g4相加sx×rx次得到的因子并设为因子R x。 
在索引x与整数i相等的情况下,追踪行第二因子算出部442使用CPU911,算出因子R x=sxrx·h(其中,x=i)。即,追踪行第二因子算出部442使用CPU911,算出将因子h相加sx×rx次得到的因子并设为因子R x。 
在索引x小于整数i的情况下,追踪行第二因子算出部442使用CPU911,算出因子R x=vx,1·h(其中,x是大于等于1且小于等于i-1的整数。)。即,追踪行第二因子算出部442使用CPU911,算出将因子h相加vx,1次得到的因子并设为因子R x。 
在任意情况下,因子R x被包含在有限生成因子群G中。 
追踪行第二因子算出部442使用RAM914,存储表示所算出的n1个因子R x的数据。 
追踪行第三因子算出部443与密文生成装置200的密码行第三因子算出部243相当。追踪行第三因子算出部443使用CPU911,根据目标决定部421所决定的整数i、包含在追踪密钥TK中的因子g2、追踪共用随机数生成部431所生成的随机数t、追踪行随机数生成部432所生成的n1个随机数sx以及干扰行随机数生成部434所生成的i-1个随机数vx,2,算出扩张域K上的雅可比簇JacC的n1个因子Ax。 
在索引x大于整数i的情况下,追踪行第三因子算出部443使用CPU911,算出因子Ax=sxt·g2(其中,x是大于等于i+1且小于等于n1的整数。)。即,追踪行第三因子算出部443使用CPU911,算出将因子g2相加sx×t次得到的因子并设为因子Ax。 
在索引x与整数i相等的情况下,追踪行第三因子算出部443使 用CPU911,算出因子Ax=sxt·g(其中,x=i)。即,追踪行第三因子算出部443使用CPU911,算出将因子g相加sx×t次得到的因子并设为因子Ax。 
在索引x小于整数i的情况下,追踪行第三因子算出部443使用CPU911,算出因子Ax=vx,2·g(其中,x是大于等于1且小于等于i-1的整数。)。即,追踪行第三因子算出部443使用CPU911,算出将因子g相加vx,2次得到的因子并设为因子Ax。 
在任意情况下,因子Ax被包含在有限生成因子群G中。 
追踪行第三因子算出部443使用RAM914,存储表示所算出的n1个因子R x的数据。 
追踪加密密钥算出部444与密文生成装置200的加密密钥算出部244相当。追踪加密密钥算出部444使用CPU911,根据目标决定部421所决定的整数i、包含在追踪密钥TK中的因子g2和n1个随机数αx、因子g、追踪共用随机数生成部431所生成的随机数t、追踪行随机数生成部432所生成的n1个随机数sx以及干扰行随机数生成部434所生成的i-1个随机数vx,3,算出n1个配对值CKx。 
在索引x大于整数i的情况下,追踪加密密钥算出部444使用CPU911,算出配对值CKx=e(g2,g)α x s x t(其中,x是大于等于i+1且小于等于n1的整数。)。即,追踪加密密钥算出部444使用CPU911,算出将因子g2与因子g的配对值相乘αx×sx×t次得到的配对值,并设为配对值CKx。 
在索引x与整数i相等的情况下,追踪加密密钥算出部444使用CPU911,算出配对值CKx=e(g,g)α x s x t(其中,x=i)。即,追踪加密密钥算出部444使用CPU911,算出将因子g与因子g的配对值相乘αx×sx×t次得到的配对值并设为配对值CKx。 
在索引x小于整数i的情况下,追踪加密密钥算出部444使用CPU911,算出配对值CKx=e(g,g)v x,3(其中,x是大于等于1且小于等于i-1的整数。)。即,追踪加密密钥算出部444使用CPU911,算出将因子g与因子g的配对值相乘vx,3次得到的配对值并设为配对值 CKx。 
追踪加密密钥算出部444使用RAM914,存储表示所算出的n1个配对值CKx的数据。 
追踪明文加密部445与密文生成装置200的明文加密部245相当。追踪明文加密部445使用CPU911,输入追踪明文生成部422所存储的表示明文M的数据和追踪加密密钥算出部444所存储的表示n1个配对值CKx的数据。追踪明文加密部445使用CPU911,根据所输入的数据所表示的明文M和n1个配对值CKx,将n1个配对值CKx中的各个配对值用作加密密钥来对明文M进行加密,生成n1个密文Bx(其中,x是大于等于1且小于等于n1的整数。)。例如,明文加密部245使用CPU911,将明文M视为配对值,算出将配对值M与配对值CKx相乘得到的配对值M·CKx,并设为密文Bx。明文加密部245使用RAM914,存储所生成的n1个密文Bx。 
追踪列密文生成部450具有追踪列第一因子算出部451和追踪列第二因子算出部452。 
追踪列第一因子算出部451与密文生成装置200的密码列第一因子算出部251相当。追踪列第一因子算出部451使用CPU911,根据目标决定部421所决定的整数j、包含在追踪密钥TK中的因子g1和n2个随机数cy、因子g、因子h、追踪共用随机数生成部431所生成的随机数t、追踪列随机数生成部433所生成的n2个随机数wy以及干扰列随机数生成部435所生成的j-1个随机数zp,y,算出扩张域K上的雅可比簇JacC的n2个因子Cy。 
在索引y大于等于整数j的情况下,追踪列第一因子算出部451使用CPU911,算出因子Cy=tcy·g+wy·h(其中,y是大于等于j且小于等于n2的整数。)。即,追踪列第一因子算出部451使用CPU911,算出将如下因子相加得到的因子并设为因子Cy:将因子g相加t×cy次得到的因子;将因子h相加wy次得到的因子。 
在索引y小于整数j的情况下,追踪列第一因子算出部451使用CPU911,算出因子Cy=tcy·g+zp,y·g1+wy·h(其中,y是大于等于1 且小于等于j-1的整数。)。即,追踪列第一因子算出部451使用CPU911,算出将如下因子相加得到的因子并设为因子Cy:将因子g相加t×cy次得到的因子;将因子g1相加zp,y次得到的因子;将因子h相加wy次得到的因子。 
在任意情况下,因子Cy被包含在有限生成因子群G中。 
追踪列第一因子算出部451使用RAM914,存储表示所算出的n2个因子Cy的数据。 
追踪列第二因子算出部452与密文生成装置200的密码列第二因子算出部252相当。追踪列第二因子算出部452使用CPU911,根据追踪列随机数生成部433所算出的n2个随机数wy和因子g,算出扩张域K上的雅可比簇JacC的n2个因子C y=wy·g。即,追踪列第二因子算出部452使用CPU911,算出将因子g相加wy次得到的因子并设为因子C y。因子C y被包含在有限生成因子群G中。追踪列第二因子算出部452使用RAM914,存储表示所算出的n2个因子C y的数据。 
根据如上所述算出的多个因子、密文,行密文设定部461设定行密文CTx,列密文设定部462设定列密文CTy,密文输出部463输出追踪用的密文CT。 
当使用索引x大于i的私人密钥Kx,y对密文输出部463所输出的追踪用的密文CT进行解密时,不管索引y的值如何都得到与追踪明文生成部422所生成的明文M相同的解密文M’。另外,在使用索引x小于i的私人密钥Kx,y进行解密时,不管索引y的值如何都得到与追踪明文生成部422所生成的明文M无关的解密文M’。当使用索引x与i相等的私人密钥Kx,y进行解密时,如果索引y大于等于j,则得到与追踪明文生成部422所生成的明文M相同的解密文M’,但是如果索引y小于j,则得到与追踪明文生成部422所生成的明文M无关的解密文M’。 
因而,如果对将密文输出部463所输出的追踪用的密文CT输入到非法的密文解密装置300z来解密的结果所得到的解密文M’进行解析,则能够判别非法的密文解密装置300z所使用的私人密钥Kx,y的泄漏源。 
为了由如上所述的非法者追踪装置400判别私人密钥的泄漏源, 需要使非法的密文解密装置300z无法区分普通的密文CT和追踪用的密文CT。当假设非法的密文解密装置300z能够区分普通的密文CT和追踪用的密文CT时,如果构成为当非法的密文解密装置300z判别为输入了追踪用的密文CT时不输出解密文M’(或者输出随机的解密文M’),则无法得到用于由非法者追踪装置400判别私人密钥的泄漏源的线索。 
在此,密文CT和追踪用的密文CT之间的差异在于因子Rx、R x、Ax等是因子g2或因子g4的整数倍,还是因子g或因子h的整数倍。作为g2或g4的整数倍的因子与因子g1或因子g3(或者其整数倍的因子)之间的配对值为1,因此,如果能够算出因子g1或因子g3(或者其整数倍的因子)之间的配对值,则能够判别密文CT与追踪用的密文CT之间的差异。但是,因子g1或因子g3(或者其整数倍的因子)未公开,而且实质上也无法根据包含在公开密钥PK中的因子等来算出。因而,无法通过算出配对值来判别密文CT与追踪用的密文CT之间的差异。 
另外,作为因子g2或因子g4的整数倍的因子、作为因子g或因子h的整数倍的因子的阶数相同,都是r。即,即使求出因子的阶数,也无法判别密文CT与追踪用的密文CT之间的差异。 
因而,非法的密文解密装置300z无法区分普通的密文CT与追踪用的密文CT,非法者追踪装置400能够判别私人密钥的泄漏源。 
本实施方式中的密码参数设定装置100具有处理数据的处理装置(CPU911)、随机因子选择部122、基底因子生成部123、配对对数算出部125以及参数设定部140。 
上述随机因子选择部122使用上述处理装置(CPU911),从循环群G’(有限域Fp上的超椭圆曲线C的雅可比簇JacC所形成的群的部分群)的多个要素中选择要素来作为随机因子D。 
上述基底因子生成部123使用上述处理装置(CPU911),根据上述随机因子选择部122所选择的随机因子D,利用多个映射Gj(高斯和算子Gj)(其中,上述多个映射Gj是从上述循环群G’向多个循环群G’j中的各个循环群的同态型映射。)映射上述随机因子D,算出多个基 底因子D j。 
上述配对对数算出部125使用上述处理装置(CPU911),算出群G(有限生成因子群G)(其中,上述群G是上述多个循环群G’j的直积,能够计算通过包含在上述群G中的两个要素之间的双线性配对运算的配对值。)中的上述多个基底因子D j之间的配对值的对数,并设为多个配对对数系数ηi。 
上述参数设定部140使用上述处理装置(CPU911),将上述基底因子生成部123所算出的多个基底因子D j和上述配对对数算出部125所算出的多个配对对数系数ηi设为用于密码运算的密码参数。
根据本实施方式中的密码参数设定装置100,起到如下效果:能够算出为了构成群G而所需的具体的密码参数,该群G具有为了实现高级密码方式而能够利用的群结构。 
本实施方式中的随机因子选择部122使用上述处理装置(CPU911),从循环群G’的多个要素中选择要素来作为随机因子D,该循环群G’是有限域Fp上的代数曲线C(超椭圆曲线C)的雅可比簇JacC的因子所形成的群的部分群。 
上述基底因子生成部123使用上述处理装置(CPU911),将扩张域K上的代数曲线C(超椭圆曲线C)的雅可比簇JacC的因子所形成的群中的多个自同态型映射(高斯和算子Gj)作为上述多个映射Gj,来算出上述多个基底因子D j,其中,上述扩张域K是将上述有限域Fp进行有限代数扩张而得到的。 
根据本实施方式中的密码参数设定装置100,起到如下效果:能够算出为了构成群G而所需的具体的密码参数,该群G具有为了实现高级密码方式而能够利用的群结构。 
本实施方式中的密码参数设定装置100具有处理数据的处理装置(CPU911)、随机因子选择部122、基底因子生成部123、离散对数算出部124、配对对数算出部125以及参数设定部140。 
上述随机因子选择部122使用上述处理装置(CPU911),从有限域Fp上的亏格d的代数曲线C(超椭圆曲线C)(其中,上述有限域Fp的阶 数p是素数。上述亏格d是大于等于2的整数。)的雅可比簇JacC的多个因子中选择随机因子D。 
上述基底因子生成部123使用上述处理装置(CPU911),根据上述随机因子选择部122所选择的随机因子D,算出多个基底因子D j。 
上述离散对数算出部124使用上述处理装置(CPU911),算出多个离散对数lκ。 
上述配对对数算出部125使用上述处理装置(CPU911),根据上述离散对数算出部124所算出的多个离散对数lκ,算出多个配对对数系数ηi。 
上述参数设定部140使用上述处理装置(CPU911),根据上述基底因子生成部123所算出的多个基底因子D j和上述配对对数算出部125所算出的多个配对对数系数ηi,设定用于密码运算的密码参数。 
在此,有限生成因子群G的群结构是阶数为r的2d个循环群的直积。即,有限生成因子群G是以阶数r的剩余群为成分的2d维的向量空间。 
通过利用这种有限生成因子群G的群结构,能够实现高级密码方式。为了实现这种高级密码方式,需要能够在多项式时间内算出具体的密码参数、密钥的值。 
根据本实施方式中的密码参数设定装置100,起到如下效果:能够在多项式时间内算出为了构成有限生成因子群G而所需的具体的密码参数,该有限生成因子群G具有为了实现如上所述的高级密码方式而能够利用的群结构。 
本实施方式中的随机因子选择部122使用上述处理装置(CPU911),从有限域Fp上的超椭圆曲线C:Y2=Xw+1(其中,w是素数,w=2d+1。将上述阶数p除以上述素数w得到的余数a是阶数为w的有限域Fw的乘法群Fw 的生成元。)的雅可比簇JacC的多个因子中选择随机因子D。 
上述基底因子生成部123使用上述处理装置(CPU911),根据上述随机因子选择部122所选择的随机因子D,使高斯和算子Gj(其中,j 是大于等于0且小于等于2d-1的整数。上述高斯和算子Gj是式17所示的扩张域K上的雅可比簇JacC上的作用。上述扩张域K是将上述有限域Fp扩张2d阶得到的代数扩张域。ζ是1的w次方根)作用于上述随机因子D,来算出多个基底因子D j=Gj(D)。 
上述离散对数算出部124使用上述处理装置(CPU911),根据上述余数a算出满足式18的多个离散对数lκ(其中,κ是大于等于1且2d-1的整数。上述多个离散对数lκ是大于等于0且小于等于2d-1的整数。) 
上述配对对数算出部125使用上述处理装置(CPU911),根据上述离散对数算出部124所算出的多个离散对数lκ,计算出式19所示的计算式,算出多个配对对数系数ηi(其中,i是大于等于0且小于等于2d-1的整数。上述多个配对对数系数ηi是大于等于0且小于等于r-1的整数。r是上述随机因子D的阶数。) 
[式17] 
G j = Σ i = 0 2 d - 1 { p i · j · ρ a i }
其中,ρ是与上述扩张域K上的超椭圆曲线C上的作用(x,y)→(ζx,y)对应的上述雅可比簇JacC上的作用。ζ是1的w次方根。 
[式18] 
a κ - 1 ≡ a l κ mod w
[式19] 
η i = ( Σ κ = 1 2 d - 1 p l κ + i · κ ) mod r
根据本实施方式中的密码参数设定装置100,起到如下效果:通过具体地计算如上所述的式,能够在多项式时间内算出为了构成有限生成因子群G而所需的具体的密码参数,该有限生成因子群G具有为了实现高级密码方式而能够利用的群结构。 
本实施方式中的密钥生成装置500具有处理数据的处理装置(CPU911)、存储数据的存储装置(ROM913、磁盘装置920等)、基底因子存储部511、配对对数存储部512、输出基底算出部143以及密钥算出 部150。 
上述基底因子存储部511使用上述存储装置(ROM913),存储群G(有限生成因子群G)的多个要素(其中,上述群G是阶数相同的多个循环群的直积,能够计算通过包含在上述群G中的两个要素间的双线性配对运算的配对值。上述多个基底因子D j相互线性独立。)来作为多个基底因子D j。 
上述配对对数存储部512使用上述存储装置(ROM913),存储上述多个基底因子D j间的配对值的对数来作为多个配对对数系数ηi。 
上述输出基底算出部143使用上述处理装置(CPU911),根据上述基底因子存储部511所存储的多个基底因子D j和上述配对对数存储部512所存储的多个配对对数系数ηi,算出作为上述群G(有限生成因子群G)的要素的多个输出基底gk(其中,上述多个输出基底gk中的至少某两个输出基底gk之间的配对值为1。) 
上述密钥算出部150使用上述处理装置(CPU911),根据上述输出基底算出部143所算出的多个输出基底gk,算出用于密码运算的密钥。 
根据本实施方式中的密钥生成装置500,起到如下效果:根据至少某两个输出基底gk之间的配对值为1的多个输出基底gk,算出用于密码运算的密钥,因此能够将与e(gk1,gk2)=1的两个输出基底中的一个输出基底gk1的配对运算用作删除另一个输出基底gk2所涉及的成分的投影算子,能够实现利用了该投影算子的高级密码方式。 
本实施方式中的密钥生成装置500还具有随机矩阵选择部142。 
上述随机矩阵选择部142使用上述处理装置(CPU911),根据上述配对对数存储部512所存储的多个配对对数系数ηi,从在关系式M’=V·M·VT(其中,M’是以m’μv为μ行v列成分的b阶方矩阵。b是上述输出基底算出部143所算出的多个输出基底gk的数量。V是以取大于等于0且小于等于r-1的整数值的变量cμv为μ行v列成分的b行f列的矩阵。r是上述多个循环群的阶数。F是上述基底因子存储部511所存储的多个基底因子D j的数量。M是以上述配对对数存储部512所存储的配对对数系数ηi中的基底因子D μ与基底因子D v之间的 配对对数系数ηi为μ行v列成分的f阶方矩阵。VT是将上述矩阵V转置得到的f行b列的矩阵。)中成为m’uv=0(其中,u和v是大于等于1且小于等于b的规定的整数。)的多个矩阵V中随机地选择随机矩阵V。 
上述输出基底算出部143使用上述处理装置(CPU911),根据上述基底因子存储部511所存储的多个基底因子D j和上述随机矩阵选择部142所选择的随机矩阵V,算出上述多个输出基底gk=vk·D(其中,k是大于等于1且小于等于b的整数。vk是上述随机矩阵V的第k行向量。D是以上述多个基底因子D j为第j+1行成分的f阶列向量。)。 
根据本实施方式中的密钥生成转置500,起到如下效果:随机地选择关系式M’=V·M·VT中成为m’uv=0的随机矩阵V,根据所选择的随机矩阵V,算出多个输出基底gk=vk·D,因此能够算出输出基底gu与输出基底gv之间的配对值e(gu,gv)为1的多个输出基底gk。另外,多个基底因子D j与多个输出基底gk之间的关系中存在作为随机要素的随机矩阵V,因此起到如下效果:不知道随机矩阵V的密码系统800的用户无法推测多个输出基底gk,能够将多个输出基底gk利用于秘密密钥中。 
本实施方式中的基底因子存储部511使用上述存储装置(ROM913),存储群G(有限生成因子群G)的多个要素来作为上述多个基底因子D j,该群G是将有限域Fp进行有限代数扩张而得到的扩张域K上的代数曲线C的雅可比簇JacC的多个因子所形成的群的部分群。 
根据本实施方式中的密钥生成装置500,起到如下效果:将有限生成因子群G的多个要素用作多个基底因子D j,该有限生成因子群G是将有限域Fp进行有限代数扩张而得到的扩张域K上的代数曲线C的雅可比簇JacC的多个因子所形成的群的部分群,因此计算机能够进行因子的加法运算、配对运算等运算。 
本实施方式中的密钥生成装置500具有处理数据的处理装置(CPU911)、存储数据的存储装置(ROM913、磁盘装置920等)、基底因子存储部511、配对对数存储部512、随机矩阵选择部142、输出基底算 出部143以及密钥算出部150。 
上述基底因子存储部511使用上述存储装置(ROM913),存储上述密码参数设定装置100所算出的多个基底因子D j。 
上述配对对数存储部512使用上述存储装置(ROM913),存储上述密码参数设定装置100所算出的多个配对对数系数ηi。 
上述随机矩阵选择部142使用上述处理装置(CPU911),根据多个整数m’μv(μ和v是大于等于1且小于等于b的整数。b是大于等于2且小于等于2d的整数。)要满足的规定的条件,从满足关系式M’=V·M·VT(其中,M’是以整数m’μv为μ行v列成分的b阶方矩阵。V是以取大于等于0且小于等于r-1的某一个整数值的变量cμv为μ行v列成分的b行2d列的矩阵。VT是将上述矩阵V转置得到的2d行b列方矩阵。M是以整数mμv为μ行v列成分的2d阶方矩阵。当μ+v=2d+1时上述整数mμv为ηv+1,当μ+v≠2d+1时上述整数mμv为0。)的多个矩阵V中随机地选择随机矩阵V。 
上述输出基底算出部143使用上述处理装置(CPU911),根据上述密码参数存储部510所存储的多个基底因子D j和上述随机矩阵选择部142所选择的随机矩阵V,算出多个输出基底gk=vk·D(其中,k是大于等于1且小于等于b的整数。gk是上述扩张域K上的雅可比簇JacC的因子。vk是上述随机矩阵V的第k行向量。D是以上述多个基底因子D j为第j+1行成分的2d阶列向量。)。 
根据本实施方式中的密钥生成装置500,根据由随机矩阵选择部142从满足上述条件的矩阵V中选择的随机矩阵V,输出基底算出部143算出输出基底gk,因此能够算出输出基底gk间的配对值成为期望值的输出基底gk。由此,起到如下效果:构成具有为了实现如上所述的高级密码方式而能够利用的群结构的有限生成因子群G,能够在多项式时间内算出利用了所构成的有限生成因子群G的具体密钥的值。 
本实施方式中的密钥生成装置500还具有一致条件输入部(条件输入部141)。 
上述一致条件输入部(条件输入部141)使用上述处理装置 (CPU911),输入上述多个输出基底gk中的、表示输出基底gμ与输出基底gv的配对值e(gμ,gv)要成为1的输出基底的组的整数组(μ,v)。 
上述随机矩阵选择部142使用上述处理装置(CPU911),根据上述一致条件输入部(条件输入部141)所输入的整数组(μ,v),选择满足条件m’μy=0的随机矩阵V。 
根据本实施方式中的密钥生成装置500,根据由随机矩阵选择部142从满足上述条件的矩阵V中选择的随机矩阵V,输出基底算出部143算出输出基底gk,因此能够算出两个输出基底gk间的配对值成为1的输出基底gk。由此,起到如下效果:构成具有为了实现如上所述的高级密码方式而能够利用的群结构的有限生成因子群G,能够在多项式时间内算出利用了所构成的有限生成因子群G的具体密钥的值。 
本实施方式中的密钥生成装置500还具有不一致条件输入部(条件输入部141)。 
上述不一致条件输入部(条件输入部141)使用上述处理装置(CPU911),输入表示上述多个输出基底gk中的、输出基底gμ与输出基底gv的配对值e(gμ,gv)不会成为1的输出基底的组的整数组(μ,v)。 
上述随机矩阵选择部142使用上述处理装置,根据上述不一致条件输入部(条件输入部141)所输入的整数组(μ,v),选择满足条件m’μv≠0的随机矩阵V。 
根据本实施方式中的密钥生成装置500,根据由随机矩阵选择部142从满足上述条件的矩阵V中选择的随机矩阵V,输出基底算出部143算出输出基底gk,因此能够算出两个输出基底gk间的配对值成为1以外的值的输出基底gk。由此,起到如下效果:构成具有为了实现如上所述的高级密码方式而能够利用的群结构的有限生成因子群G,能够在多项式时间内算出利用了所构成的有限生成因子群G的具体密钥的值。 
本实施方式中的密码系统800具有密码参数设定装置100和密钥生成装置500。 
上述基底因子存储部511使用上述存储装置(ROM913),存储上 述密码参数设定装置100所算出的多个基底因子D j。 
上述配对对数存储部512使用上述存储装置(ROM913),存储上述密码参数设定装置100所算出的多个配对对数系数ηi。 
根据本实施方式中的密码系统800,起到如下效果:密钥生成装置500使用密码参数设定装置100所算出的具体的多个基底因子D j和多个配对对数系数ηi的值来生成密钥,因此能够计算为了实现高级密码方式而所需的密钥的具体的值。 
本实施方式中的密码系统800还具有密文生成装置200和密文解密装置300。 
上述密文生成装置200根据上述密码参数设定装置100所设定的密码参数和上述密钥生成装置500所生成的密钥,生成密文。 
上述密文解密装置300根据上述密码参数设定装置100所设定的密码参数和上述密钥生成装置500所生成的密钥,对上述密文生成装置200所生成的密文进行解密。 
根据本实施方式中的密码系统800,根据密码参数设定装置100所设定的密码参数,由密钥生成装置500构成具有为了实现如上所述的高级密码方式而能够利用的群结构的有限生成因子群G,算出利用了所构成的有限生成因子群G的具体密钥的值,密文生成装置200使用密钥生成装置500所生成的密钥来生成密文,密文解密装置300对密文生成装置200所生成的密文进行解密,因此起到如下效果:能够实现利用了有限生成因子群G的群结构的高级密码方式。 
本实施方式中的密码系统800具有多个密文解密装置300a~300c,还具有非法者追踪装置400。 
上述密钥生成装置500还具有公开密钥设定部191、私人密钥设定部192以及追踪密钥设定部193。 
上述公开密钥设定部191设定公开密钥PK,该公开密钥PK用于由上述密文生成装置200生成密文。 
上述私人密钥设定部192设定多个私人密钥SKx,y,该多个私人密钥SKx,y用于由上述多个密文解密装置300a~300c各自对上述密文生 成装置200所生成的密文CT进行解密。 
上述追踪密钥设定部193设定追踪密钥TK,该追踪密钥TK用于由上述非法者追踪装置400判别私人密钥SKx,y的泄漏源。 
上述密文生成装置200根据上述密钥生成装置500所设定的公开密钥PK,生成密文CT。 
上述多个密文解密装置300a~300c分别根据上述密钥生成装置500所设定的多个私人密钥SKx,y中的、与上述密文解密装置300a~300c的用户对应的私人密钥SKx,y,对上述密文生成装置200所生成的密文CT进行解密。 
上述非法者追踪装置400根据上述密钥生成装置500所设定的追踪密钥TK,生成密文CT,对由盗版解密装置(非法的密文解密装置300z)解密所生成的密文CT得到的结果(解密文M’)进行解析,来判别上述盗版解密装置在解密密文时使用的私人密钥SKx,y,其中,上述盗版解密装置是对上述密文生成装置200所生成的密文CT进行解密的盗版解密装置。 
根据本实施方式中的密码系统800,起到如下效果:利用有限生成因子群G的群结构,能够实现判别私人密钥的泄漏源的高级密码方式。 
本实施方式中的随机因子选择部122使用上述处理装置(CPU911),从有限域Fp上的超椭圆曲线C:Y2=X5+1(其中,将素数p除以5得到的余数a是2或3。)的雅可比簇JacC的多个因子中选择随机因子D。 
随机矩阵选择部142使用上述处理装置(CPU911),选择满足条件m’12=m’21=m’34=m’43=m’14=m’41=m’23=m’32=0,m’11≠0,m’22≠0,m’33≠0,m’44≠0的4行4列的随机矩阵V。 
上述输出基底算出部143使用上述处理装置(CPU911),根据上述基底因子存储部511所存储的多个基底因子D j和上述随机矩阵选择部142所算出的随机矩阵V,算出四个输出基底gk=vk·D(其中,k是大于等于1且小于等于4的整数。)。 
上述密钥算出部150具有用户人数输入部151、公开行基底算出部171、公开列基底算出部172、行随机数生成部161、列随机数生成部163、配对随机数生成部162、共用随机数生成部164、公开共用因子算出部173、公开行第一因子算出部174、公开行第二因子算出部175、公开配对值算出部176、公开列因子算出部177、公开密钥设定部191、私人因子算出部181以及私人密钥设定部192。 
上述用户人数输入部151使用上述处理装置(CPU911),输入表示用户的数量n的整数n1和整数n2(其中,n=n1n2)。 
上述公开行基底算出部171使用上述处理装置(CPU911),根据上述输出基底算出部143所算出的输出基底g1和输出基底g2,算出上述雅可比簇JacC的因子g=g1+g2。 
上述公开列基底算出部172使用上述处理装置(CPU911),根据上述输出基底算出部143所算出的输出基底g3和输出基底g4,算出上述雅可比簇JacC的因子h=g3+g4。 
上述行随机数生成部161使用上述处理装置(CPU911),根据上述用户人数输入部151所输入的整数n1,随机地生成n1个随机数rx(其中,x是大于等于1且小于等于n1的整数。随机数rx是大于等于1且小于等于r-1的整数。)。 
上述列随机数生成部163使用上述处理装置(CPU911),根据上述用户人数输入部151所输入的整数n2,随机地生成n2个随机数cy(其中,y是大于等于1且小于等于n2的整数。随机数cy是大于等于1且小于等于r-1的整数。)。 
上述配对随机数生成部162使用上述处理装置(CPU911),根据上述用户人数输入部151所输入的整数n1,随机地生成n1个随机数αx(其中,x是大于等于1且小于等于n1的整数。随机数αx是大于等于1且小于等于r-1的整数。)。 
上述共用随机数生成部164使用上述处理装置(CPU911),随机地生成随机数β(其中,β是大于等于1且小于等于r-1的整数。)。 
上述公开共用因子算出部173使用上述处理装置(CPU911),根据 上述输出基底算出部143所算出的输出基底g2和上述共用随机数生成部164所生成的随机数β,算出上述雅可比簇JacC的因子E=β·g2。 
上述公开行第一因子算出部174使用上述处理装置(CPU911),根据上述输出基底算出部143所算出的输出基底g2、上述行随机数生成部161所生成的n1个随机数rx以及上述共用随机数生成部164所生成的随机数β,算出上述雅可比簇JacC的n1个因子Ex=β·rx·g2(其中,x是大于等于1且小于等于n1的整数。)。 
上述公开行第二因子算出部175使用上述处理装置(CPU911),根据上述输出基底算出部143所算出的输出基底g4、上述行随机数生成部161所生成的n1个随机数rx以及上述共用随机数生成部164所生成的随机数β,算出上述雅可比簇JacC的n1个因子Fx=β·rx·g4(其中,x是大于等于1且小于等于m的整数。)。 
上述公开配对值算出部176使用上述处理装置(CPU911),根据上述输出基底算出部143所算出的输出基底g2、上述配对随机数生成部162所生成的n1个随机数αx以及上述共用随机数生成部164所生成的随机数β,算出n1个配对值Gx=e(g4,g4)β·α x(其中,配对e是e(D,D’)=ew(D,φ(D’))。ew是韦伊配对。φ是上述雅可比簇JacC上的能够计算的同态型映射。)。 
上述公开列因子算出部177使用上述处理装置(CPU911),根据上述公开行基底算出部171所算出的因子g和上述列随机数生成部163所生成的随机数cy,算出上述雅可比簇JacC的n2个因子Hy=cy·g(其中,y是大于等于1且小于等于n2的整数。)。 
上述公开密钥设定部191使用上述处理装置(CPU911),根据上述公开行基底算出部171所算出的因子g、上述公开列基底算出部172所算出的因子h、上述公开共用因子算出部173所算出的因子E、上述公开行第一因子算出部174所算出的n1个因子Ex、上述公开行第二因子算出部175所算出的n1个因子Fx、上述公开配对值算出部176所算出的n1个配对值Gx以及上述公开列因子算出部177所算出的n2个因子Hy,设定公开密钥PK=(g,h,E,Ex,Fx,Gx,Hy)(其中,x是大于等 于1且小于等于n1的整数。y是大于等于1且小于等于n2的整数。)。 
上述私人因子算出部181使用上述处理装置(CPU911),根据上述公开行基底算出部171所算出的因子g、上述行随机数生成部161所生成的n1个随机数rx、上述列随机数生成部163所生成的n2个随机数cy以及上述配对随机数生成部162所生成的n1个随机数αx,算出n个因子Kx,y=αx·g+rxcy·g(其中,x是大于等于1且小于等于n1的整数。y是大于等于1且小于等于n2的整数。)。 
上述私人密钥设定部192使用上述处理装置(CPU911),根据上述私人因子算出部181所算出的n个因子Kx,y,设定与n名用户分别对应的n个私人密钥SKx,y(Kx,y)。 
本实施方式中的密文生成装置200具有处理数据的处理装置(CPU911)、公开密钥输入部211、明文输入部221、密码共用随机数生成部231、密码列随机数生成部233、密码行随机数生成部232、密码行第一因子算出部241、密码行第二因子算出部242、密码行第三因子算出部243、加密密钥算出部244、明文加密部245、行密文设定部261、密码列第一因子算出部251、密码列第二因子算出部252以及列密文设定部262。 
上述公开密钥输入部211使用上述处理装置(CPU911),输入上述密钥生成装置500所设定的公开密钥PK=(g,h,E,Ex,Fx,Gx,Hy)。 
上述明文输入部221使用上述处理装置(CPU911),输入要加密的明文M。 
上述密码共用随机数生成部231使用上述处理装置(CPU911),随机地生成随机数t(其中,随机数t是大于等于1且小于等于r的整数。)。 
上述密码列随机数生成部233使用上述处理装置(CPU911),生成n2个以下的随机数wy(其中,y是大于等于1且小于等于n2的整数。随机数wy是大于等于1且小于等于r-1的整数。)。 
上述密码行随机数生成部232使用上述处理装置(CPU911),生成n1个以下的随机数sx(其中,x是大于等于1且小于等于n1的整数。随机数sx是大于等于1且小于等于r-1的整数。)。 
上述密码行第一因子算出部241使用上述处理装置(CPU911),根据包含在上述公开密钥输入部211所输入的公开密钥PK中的n1个因子Ex和上述密码行随机数生成部232所生成的n1个以下的随机数sx,算出雅可比簇JacC的n1个以下的因子Rx=sx·Ex(其中,x是大于等于1且小于等于n1的整数。)。 
上述密码行第二因子算出部242使用上述处理装置(CPU911),根据包含在上述公开密钥输入部211所输入的公开密钥PK中的n1个因子Fx和上述密码行随机数生成部232所生成的n1个以下的随机数sx,算出雅可比簇JacC的n1个以下的因子R x=sx·Fx(其中,x是大于等于1且小于等于n1的整数。)。 
上述密码行第三因子算出部243使用上述处理装置(CPU911),根据包含在上述公开密钥输入部211所输入的公开密钥PK中的因子E、上述密码共用随机数生成部231所生成的随机数t以及上述密码行随机数生成部232所生成的n1个以下的随机数sx,算出雅可比簇JacC的n1个以下的因子Ax=sxt·E(其中,x是大于等于1且小于等于n1的整数。)。 
上述加密密钥算出部244使用上述处理装置(CPU911),根据包含在上述公开密钥输入部211所输入的公开密钥PK中的n1个配对值Gx、上述密码共用随机数生成部231所生成的随机数t以及上述密码行随机数生成部232所生成的n1个以下的随机数sx,算出n1个以下的配对值CKx=Gx s x t(其中,x是大于等于1且小于等于n1的整数。)。 
上述明文加密部245使用上述处理装置(CPU911),根据上述明文输入部221所输入的明文M和上述加密密钥算出部244所算出的n1个以下的配对值CKx,将上述n1个以下的配对值CKx分别用作加密密钥来对上述明文M进行加密,生成n1个以下的密文Bx(其中,x是大于等于1且小于等于n1的整数。)。 
上述行密文设定部261使用上述处理装置(CPU911),根据上述密码行第一因子算出部241所算出的n1个以下的因子Rx、上述密码行第二因子算出部242所算出的n1个以下的因子R x、上述密码行第三 因子算出部243所算出的n1个以下的因子Ax以及上述明文加密部245所生成的n1个以下的密文Bx,设定n1个以下的行密文CTx=(Rx,R x,Ax,Bx)(其中,x是大于等于1且小于等于n1的整数。)。 
上述密码列第一因子算出部251使用上述处理装置(CPU911),根据包含在上述公开密钥输入部211所输入的公开密钥PK中的因子h和因子Hy、上述密码共用随机数生成部231所生成的随机数t以及上述密码列随机数生成部233所生成的随机数wy,算出雅可比簇JacC的n2个以下的因子Cy=t·Hy+wy·h(其中,y是大于等于1且小于等于n2的整数。)。 
上述密码列第二因子算出部252使用上述处理装置(CPU911),根据包含在上述公开密钥输入部211所输入的公开密钥PK中的因子g和上述密码列随机数生成部233所生成的随机数wy,算出雅可比簇JacC的n2个以下的因子C y=wy·g(其中,y是大于等于1且小于等于n2的整数。)。 
上述列密文设定部262使用上述处理装置(CPU911),根据上述密码列第一因子算出部251所算出的n2个以下的因子Cy和上述密码列第二因子算出部252所算出的n2个以下的因子C y,设定n2个以下的列密文CTy=(Cy,C y)(其中,y是大于等于1且小于等于n2的整数。)。 
本实施方式中的密文解密装置300具有存储数据的存储装置和处理数据的处理装置(CPU911)、私人密钥存储部331、行密文输入部322、列密文输入部323、解密密钥算出部341以及密文解密部342。 
上述私人密钥存储部331使用上述存储装置,存储上述密钥生成装置500所设定的n个私人密钥SKx,y中的、与对应于上述密文解密装置300的用户的规定的索引X和Y(其中,X是大于等于1且小于等于n1的整数。Y是大于等于1且小于等于n2的整数。)所对应的私人密钥SKX,Y=(KX,Y)。 
上述行密文输入部322使用上述处理装置(CPU911),输入上述密文生成装置200所设定的n1个以下的行密文CTx中的、与上述索引X对应的行密文CTX=(RX,R X,AX,BX)。 
上述列密文输入部323使用上述处理装置(CPU911),输入上述密文生成装置200所设定的n2个以下的列密文CTy中的、与上述索引Y对应的列密文CTY=(CY,C Y)。 
上述解密密钥算出部341使用上述处理装置(CPU911),根据上述私人密钥存储部331所存储的私人密钥SKX,Y、包含在上述行密文输入部322所输入的行密文CTx中的因子RX、因子R X及因子AX、包含在上述列密文输入部323所输入的列密文CTY中的因子CY和因子C Y,算出配对值CK’=e(KX,Y,AX)·e(R X,C Y)/e(CY,RX)。 
上述密文解密部342使用上述处理装置(CPU911),根据包含在上述行密文输入部322所输入的行密文CTX中的密文BX和上述解密密钥算出部341所算出的配对值CK’,将上述配对值CK’用作解密密钥来对上述密文BX进行解密,来生成解密文M’。 
根据本实施方式中的密码系统800,起到如下效果:利用有限生成因子群G的群结构,能够实现由(3n1+2n2)个雅可比簇JacC的因子和4n1个密文Bx构成密文CT的密码方式,该密文CT是将一个明文M进行加密来对n名用户发送的密文。 
本实施方式中的密码系统800具有多个密文解密装置300a~300c,还具有非法者追踪装置400。 
上述密钥算出部150还具有追踪密钥设定部193。 
上述追踪密钥设定部193使用上述处理装置(CPU911),根据上述输出基底算出部143所算出的四个输出基底gk、上述行随机数生成部161所生成的n1个随机数rx、上述配对随机数生成部162所生成的n1个随机数αx以及上述列随机数生成部163所生成的n2个随机数cy,设定追踪密钥TK=(gk,rx,αx,cy)(其中,k是大于等于1且小于等于4的整数。x是大于等于1且小于等于n1的整数。y是大于等于1且小于等于n2的整数。)。 
上述非法者追踪装置400具有存储数据的存储装置、处理数据的处理装置(CPU911)、追踪密钥存储部411、目标决定部421、追踪明文生成部422、追踪共用随机数生成部431、追踪列随机数生成部433、 追踪行随机数生成部432、干扰行随机数生成部434、干扰列随机数生成部435、追踪行第一因子算出部441、追踪行第二因子算出部442、追踪行第三因子算出部443、追踪加密密钥算出部444、追踪明文加密部445、追踪行密文设定部(行密文设定部461)、追踪列第一因子算出部451、追踪列第二因子算出部452、追踪列密文设定部(列密文设定部462)、解密文输入部471以及泄漏源判别部472。 
上述追踪密钥存储部411使用上述存储装置,存储密钥生成装置500所设定的追踪密钥TK=(gk,rx,αx,cy)。 
上述目标决定部421使用上述处理装置(CPU911),将上述索引x分类为三个组,使用上述处理装置(CPU911),将上述索引y分类为两个组。 
上述追踪明文生成部422使用上述处理装置(CPU911),生成明文M。 
上述追踪共用随机数生成部431使用上述处理装置(CPU911),随机地生成随机数t(其中,随机数t是大于等于1且小于等于r的整数。)。 
上述追踪列随机数生成部433使用上述处理装置(CPU911),随机地生成n2个以下的随机数wy(其中,y是大于等于1且小于等于n2的整数。随机数wy是大于等于1且小于等于r-1的整数。)。 
上述追踪行随机数生成部432使用上述处理装置(CPU911),随机地生成n1个以下的随机数sx(其中,x是大于等于1且小于等于n1的整数。随机数sx是大于等于1且小于等于r-1的整数。)。 
上述干扰行随机数生成部434使用上述处理装置(CPU911),随机地生成n1个以下的随机数vx,1(其中,x是大于等于1且小于等于n1的整数。随机数vx,1是大于等于1且小于等于r-1的整数。)、n1个以下的随机数vx,2(其中,x是大于等于1且小于等于n1的整数。随机数vx,2是大于等于1且小于等于r-1的整数。)、n1个以下的随机数vx,3(其中,x是大于等于1且小于等于n1的整数。随机数vx,3是大于等于1且小于等于r-1的整数。)。 
上述干扰列随机数生成部435使用上述处理装置(CPU911),生成 n2个以下的随机数zp,y(其中,y是大于等于1且小于等于n2的整数。随机数zp,y是大于等于1且小于等于r-1的整数。)。 
上述追踪行第一因子算出部441使用上述处理装置(CPU911),根据包含在上述追踪密钥存储部411所存储的追踪密钥TK中的因子g1、因子g2和n1个随机数rx、上述目标决定部421分类索引x得到的三个组、上述追踪行随机数生成部432所生成的n1个以下的随机数sx以及上述干扰行随机数生成部434所生成的n1个以下的随机数vx,1,关于属于上述三个组中的第一组的索引x算出因子Rx=sxrx·g2(其中,x是大于等于1且小于等于n1的整数。),关于属于上述三个组中的第二组的索引x算出因子Rx=sxrx·(g1+g2)(其中,x是大于等于1且小于等于n1的整数。),关于属于上述三个组中的第三组的索引x算出因子Rx=vx,1·(g1+g2)(其中,x是大于等于1且小于等于n1的整数。)。 
上述追踪行第二因子算出部442使用上述处理装置(CPU911),根据包含在上述追踪密钥存储部411所存储的追踪密钥TK中的因子g3、因子g4和n1个随机数rx、上述目标决定部421分类索引x得到的三个组、上述追踪行随机数生成部432所生成的n1个以下的随机数sx以及上述干扰行随机数生成部434所生成的n1个以下的随机数vx,1,关于属于上述三个组中的第一组的索引x算出因子R x=sxrx·g4(其中,x是大于等于1且小于等于n1的整数。),关于属于上述三个组中的第二组的索引x算出因子R x=sxrx·(g3+g4)(其中,x是大于等于1且小于等于n1的整数。),关于属于上述三个组中的第三组的索引x算出因子R x=vx,1·(g3+g4)(其中,x是大于等于1且小于等于n1的整数。)。 
上述追踪行第三因子算出部443使用上述处理装置(CPU911),根据包含在上述追踪密钥存储部411所存储的追踪密钥TK中的因子g1和因子g2、上述目标决定部421分类索引x得到的三个组、上述追踪共用随机数生成部431所生成的随机数t、上述追踪行随机数生成部432所生成的n1个以下的随机数sx以及上述干扰行随机数生成部434所生成的n1个以下的随机数vx,2,关于属于上述三个组中的第一组的索引x算出因子Ax=sxt·g2(其中,x是大于等于1且小于等于n1的整 数。),关于属于上述三个组中的第二组的索引x算出因子Ax=sxt·(g1+g2)(其中,x是大于等于1且小于等于n1的整数。),关于属于上述三个组中的第三组的索引x算出因子Ax=vx,2·(g1+g2)(其中,x是大于等于1且小于等于n1的整数。)。 
上述追踪加密密钥算出部444使用上述处理装置(CPU911),根据包含在上述追踪密钥存储部411所存储的追踪密钥TK中的因子g1、因子g2和n1个随机数αx、上述目标决定部421分类索引x得到的三个组、上述追踪行随机数生成部432所生成的n1个以下的随机数sx以及上述干扰行随机数生成部434所生成的n1个以下的随机数vx,3,关于属于上述三个组中的第一组的索引x算出配对值CKx=e(g2,g2)α x s x t(其中,x是大于等于1且小于等于n1的整数。),关于属于上述三个组中的第二组的索引x算出配对值CKx=e(g1+g2,g1+g2)α x s x t(其中,x是大于等于1且小于等于n1的整数。),关于属于上述三个组中的第三组的索引x算出配对值CKx=e(g1+g2,g1+g2)v x,2(其中,x是大于等于1且小于等于n1的整数。)。 
上述追踪明文加密部445使用上述处理装置(CPU911),根据上述追踪加密密钥算出部444所算出的n1个以下的配对值CKx和上述追踪明文生成部422所生成的明文M,将上述n1个以下的配对值CKx分别用作加密密钥来对上述明文M进行加密,生成n1个以下的密文Bx(其中,x是大于等于1且小于等于n1的整数。)。 
上述追踪行密文设定部(行密文设定部461)使用上述处理装置(CPU911),根据上述追踪行第一因子算出部441所算出的n1个以下的因子Rx、上述追踪行第二因子算出部442所算出的n1个以下的因子R x、上述追踪行第三因子算出部443所算出的n1个以下的因子Ax以及上述追踪明文加密部445所生成的n1个以下的密文Bx,设定n1个以下的行密文CTx=(Rx,R x,Ax,Bx)(其中,x是大于等于1且小于等于n1的整数。)。 
上述追踪列第一因子算出部451使用上述处理装置(CPU911),根据包含在上述追踪密钥存储部411所存储的追踪密钥TK中的因子g1、 因子g2、因子g3、因子g4和n2个随机数cy、上述目标决定部421分类索引y得到的两个组、上述追踪共用随机数生成部431所生成的随机数t、上述追踪列随机数生成部433所生成的n2个以下的随机数wy以及上述干扰列随机数生成部435所生成的n2个以下的随机数zp,y,关于属于上述两个组中的第一组的索引y算出因子Cy=tcy·(g1+g2)+wy·(g3+g4)(其中,y是大于等于1且小于等于n2的整数。),关于属于上述两个组中的第二组的索引y算出因子Cy=tcy·(g3+g4)+zp,y·g1+wy·(g3+g4)(其中,y是大于等于1且小于等于n2的整数。)。 
上述追踪列第二因子算出部452使用上述处理装置(CPU911),根据包含在追踪密钥存储部411所存储的追踪密钥TK中的因子g1和因子g2以及上述追踪列随机数生成部433所生成的n2个以下的随机数wy,算出n2个以下的因子C y=wy·(g1+g2)(其中,y是大于等于1且小于等于n2的整数。)。 
上述追踪列密文设定部(列密文设定部462)使用上述处理装置(CPU911),根据上述追踪列第一因子算出部451所算出的n2个以下的因子Cy和上述追踪列第二因子算出部452所算出的n2个以下的因子C y,设定n2个以下的列密文CTy=(Cy,C y)(其中,y是大于等于1且小于等于n2的整数。)。 
上述解密文输入部471使用上述处理装置(CPU911),输入由盗版解密装置(非法的密文解密装置300z)对密文CT进行解密而生成的解密文M’,其中,上述盗版解密装置是对上述密文生成装置200所生成的密文进行解密的盗版解密装置,上述密文CT包含上述追踪行密文设定部(行密文设定部461)所设定的n1个以下的行密文CTx和上述追踪列密文设定部(列密文设定部462)所设定的n2个以下的列密文CTy。 
上述泄漏源判别部472使用上述处理装置(CPU911),将上述追踪明文生成部422所生成的明文M与上述解密文输入部471所输入的解密文M’进行比较,判别上述盗版解密装置(非法的密文解密装置300z)在解密中使用的私人密钥Kx,y。 
根据本实施方式中的密码系统800,起到能够实现如下的高级密码方式的效果:利用有限生成因子群G的群结构,对非法利用被泄露的私人密钥Kx,y的盗版解密装置进行解析,能够判别私人密钥的泄漏源。 
本实施方式中的密码参数设定装置100或密钥生成装置500能够通过由计算机执行如下程序来实现:该程序使具有处理数据的处理装置的计算机作为上述密码参数设定装置100或密钥生成装置500来发挥功能。 
根据本实施方式中的程序,起到能够实现如下的密码参数设定装置的效果:能够在多项式时间内算出为了构成有限生成因子群G而所需的具体的密码参数,该有限生成因子群G具有为了实现如上所述的高级密码方式而能够利用的群结构。 
根据本实施方式中的程序,起到能够实现如下的密钥生成装置的效果:构成具有为了实现如上所述的高级密码方式而能够利用的群结构的有限生成因子群G,能够在多项式时间内算出利用了所构成的有限生成因子群G的具体密钥的值。 
由本实施方式中的密码参数设定装置100设定用于密码运算的密码参数的密码参数设定方法的特征在于具有以下工序。 
上述处理装置(CPU911)从循环群G’(有限域Fp上的代数曲线C的雅可比簇JacC的因子所形成的群的部分群)的多个要素中选择要素来作为随机因子D。 
上述处理装置(CPU911)根据所选择的随机因子D,利用多个映射Gj(高斯和算子Gj)(其中,上述多个映射Gj是从上述循环群G’向多个循环群G’j中的各个循环群的同态型映射。)映射上述随机因子D,来算出多个基底因子D j。 
上述处理装置(CPU911)算出群G(有限生成因子群G)(其中,上述群G是上述多个循环群G’j的直积,能够计算通过包含在上述群G中的两个要素间的双线性配对运算的配对值。)中的上述多个基底因子D j间的配对值的对数,并设为多个配对对数系数ηi。 
上述处理装置(CPU911)将算出的多个基底因子D j和算出的多个配对对数系数ηi设为上述密码参数。 
根据本实施方式中的密码参数设定装置100,起到如下效果:能够算出为了构成群G而所需的具体的密码参数,该群G具有为了实现高级密码方式而能够利用的群结构。 
由本实施方式中的密码参数设定装置100设定用于密码运算的密码参数的密码参数设定方法的特征在于具有以下工序。 
上述处理装置(CPU911)从有限域Fp上的亏格d的超椭圆曲线C(其中,上述有限域Fp的阶数p是素数。上述亏格d是大于等于2的整数。)的雅可比簇JacC的多个因子中随机地选择随机因子D。 
上述处理装置(CPU911)根据所选择的随机因子D,算出多个基底因子D j。 
上述处理装置(CPU911)算出多个离散对数lκ(其中,κ是大于等于1且小于等于2d-1的整数。离散对数lκ是大于等于0且小于等于2d-1的整数。)。 
上述处理装置(CPU911)根据算出的多个离散对数lκ,算出多个配对对数系数ηi(其中,i是大于等于0且小于等于2d-1的整数。配对对数系数ηi是大于等于0且小于等于r-1的整数。r是上述雅可比簇JacC的多个因子的阶数。)。 
上述处理装置(CPU911)根据算出的多个基底因子D j和算出的多个配对对数系数ηi,设定上述密码参数。 
根据本实施方式中的密码参数设定方法,起到如下效果:能够在多项式时间内算出为了构成有限生成因子群G而所需的具体的密码参数,该有限生成因子群G具有为了实现高级密码方式而能够利用的群结构。 
由本实施方式中的密钥生成装置500生成用于密码运算的密钥的密钥生成方法的特征在于具有以下工序。 
上述存储装置(ROM913)存储群G(有限生成因子群G)的多个要素(其中,上述群G是阶数相同的多个循环群的直积,能够计算通过 包含在上述群G中的两个要素间的双线性配对运算的配对值。上述多个基底因子D j相互线性独立。)作为多个基底因子D j。 
上述存储装置(ROM913)存储上述多个基底因子D j间的配对值的对数来作为多个配对对数系数ηi。 
上述处理装置(CPU911)根据上述存储装置(ROM913)所存储的多个基底因子D j和上述存储装置(ROM913)所存储的多个配对对数系数ηi,算出作为上述群G的要素的多个输出基底gk(其中,上述多个输出基底gk中的至少某两个输出基底gk间的配对值为1。)。 
上述处理装置(CPU911)根据所算出的多个输出基底,算出上述密钥。 
根据本实施方式中的密钥生成方法,起到如下效果:具体地构成具有为了实现高级密码方式而能够利用的群结构的群G,能够算出利用了所构成的群G的具体密钥的值。 
由本实施方式中的密钥生成装置500生成用于密码运算的密钥的密钥生成方法的特征在于具有以下工序。 
上述存储装置(ROM913)存储将有限域Fp进行有限代数扩张得到的扩张域K上的亏格d的代数曲线C(其中,上述有限域Fp的阶数p是素数。上述亏格d是大于等于2的整数。w是素数,w=2d+1。)的雅可比簇JacC的多个基底因子D j以及表示上述多个基底因子间的配对值的关系的多个配对对数系数ηi。 
上述处理装置(CPU911)根据上述存储装置所存储的多个配对对数系数ηi,随机地选择满足规定条件的随机矩阵V。 
上述处理装置(CPU911)根据上述存储装置所存储的多个基底因子D j和所选择的随机矩阵V,算出多个输出基底gk。 
上述处理装置(CPU911)根据所算出的多个输出基底gk,算出上述密钥。 
根据本实施方式中的密钥生成方法,起到如下效果:构成具有为了实现如上所述的高级密码方式而能够利用的群结构的有限生成因子群G,能够在多项式时间内算出利用了所构成的有限生成因子群G的具 体密钥的值。 
(实施方式2) 
使用图13~图19来说明实施方式2。 
在本实施方式中,说明利用了雅可比簇JacC的因子所形成的群的群结构的高级密码方式的其它例子。 
图13是表示本实施方式中的密码系统800B的整体结构的一例的系统结构图。 
密码系统800B具有密码参数设定装置100和组签名系统820。 
密码参数设定装置100设定在组签名系统820中使用的密码参数(系统参数)。 
此外,密码参数设定装置100的细节与实施方式1中所说明的相同,因此在此省略说明。 
组签名系统820具有密钥生成装置500B、签名密钥发行装置600、多个签名装置200B、签名验证装置300B以及签名者追踪装置400B。 
在组签名系统820中,多个签名装置200B中的某一个对消息M进行签名,签名验证装置300B验证签名σ。组签名系统820具有匿名性,签名验证装置300B不知哪个签名装置200B进行了签名。但是,签名者追踪装置400B能够追踪哪个签名装置200B进行了签名,因此组的负责人能够判别签名者。 
密钥生成装置500B生成在组签名系统820中使用的密钥。由密钥生成装置500B生成的密钥中有公开密钥PK、追踪密钥TK、主密钥MK等。 
公开密钥PK一般被公开。主密钥MK是由签名密钥发行装置600以保密状态保持。追踪密钥TK是由签名者追踪装置400B以保密状态保持。 
签名密钥发行装置600使用主密钥MK来生成签名密钥SK。签名密钥发行装置600是由组的负责人进行管理,对允许作为组员进行签名的签名装置200B发行所生成的签名密钥SK。签名密钥发行装置600所发行的签名密钥SK是由签名装置200B以保密状态保持。 
另外,签名密钥发行装置600生成标识符sID。签名密钥发行装置600所生成的标识符sID用于识别签名密钥SK,是由签名者追踪装置400B以保密状态保持。 
签名装置200B输入消息M,使用签名密钥SK来生成签名σ。 
签名验证装置300B输入消息M和签名σ,使用公开密钥PK来验证签名σ。 
签名者追踪装置400B输入签名σ,使用追踪密钥TK和标识符sID来判别签名者。 
图14是表示本实施方式中的密钥生成装置500B的功能模块的结构的一例的模块结构图。 
此外,对于与在实施方式1中说明的密钥生成装置500相同的部分标注同一附图标记,在此省略说明。 
输出基底算出部143使用CPU911,算出两个输出基底g1、g2。 
条件存储部130存储表示两个整数组(1,2)、(2,1)的数据来作为一致条件数据,存储表示两个整数组(1,1)、(2,2)的数据来作为不一致条件数据。即,输出基底算出部143算出配对值为e(g1,g2)=e(g2,g1)=1、e(g1,g1)≠1、e(g2,g2)≠1的两个输出基底g1、g2。 
图15是表示本实施方式中的密钥算出部150B的内部模块的结构的一例的详细框图。 
密钥算出部150B具有比特长度输入部151B、随机数生成部160B、公开密钥算出部170B、主密钥算出部180B、公开密钥设定部191B、主密钥设定部192B以及追踪密钥设定部193B。 
比特长度输入部151B使用CPU911,输入比特长度m。比特长度m表示预先决定的要签名的消息M的比特长度。比特长度输入部151B使用RAM914,存储表示所输入的比特长度的数据。 
随机数生成部160B具有基底随机数生成部163B、配对随机数生成部161B、主随机数生成部162B。 
基底随机数生成部163B使用CPU911,随机地选择大于等于1且小于等于r-1的整数,并设为随机数β。基底随机数生成部163B使 用RAM914,存储表示所选择的随机数β的数据。 
配对随机数生成部161B使用CPU911,随机地选择大于等于1且小于等于r-1的整数,并设为随机数α。配对随机数生成部161B使用RAM914,存储表示所选择的随机数α的数据。 
主随机数生成部162B使用CPU911,随机地选择大于等于1且小于等于r-1的整数,并设为随机数ω。主随机数生成部162B使用RAM914,存储表示所选择的随机数ω的数据。 
公开密钥算出部170B具有公开基底算出部171B、公开第一因子算出部172B、公开配对值算出部173B、公开第二因子生成部174B、公开第三因子生成部175B以及公开比特因子生成部176B。 
公开基底算出部171B使用CPU911,输入由输出基底算出部143所存储的表示输出基底g1、g2的数据和基底随机数生成部163B所存储的表示随机数β的数据。公开基底算出部171B使用CPU911,根据所输入的数据所表示的输出基底g1、g2和随机数β,算出扩张域K上的雅可比簇JacC的因子g=g2+β·g1。即,公开基底算出部171B使用CPU911,算出将因子g1相加β次得到的因子,算出将算出的因子与因子g2相加得到的因子,并设为因子g。因子g被包含在有限生成因子群G中。公开基底算出部171B使用CPU911,存储表示所算出的因子g的数据。 
公开第一因子算出部172B使用CPU911,输入主随机数生成部162B所存储的表示随机数ω的数据和公开基底算出部171B所存储的表示因子g的数据。公开第一因子算出部172B使用CPU911,根据所输入的数据所表示的随机数ω和因子g,算出扩张域K上的雅可比簇JacC的因子Ω=ω·g。即,公开第一因子算出部172B使用CPU911,算出将因子g相加ω次得到的因子,并设为因子Ω。因子Ω被包含在有限生成因子群G中。公开第一因子算出部172B使用RAM914,存储表示所算出的因子Ω的数据。 
公开配对值算出部173B使用CPU911,输入配对随机数生成部161B所存储的表示随机数α的数据和公开基底算出部171B所存储的表示因子g的数据。公开配对值算出部173B使用CPU911,根据所输入的 数据所表示的随机数α和因子g,算出配对值A=e(g,g)α。即,公开配对值算出部173B使用CPU911,算出将因子g与因子g的配对值相乘α次得到的配对值,并设为配对值A。公开配对值算出部173B使用RAM914,存储表示所算出的配对值A的数据。 
公开第二因子生成部174B使用CPU911,从包含在有限生成因子群G中的因子中随机地选择因子,并设为因子u。例如,公开第二因子生成部174B使用CPU911,随机地选择大于等于1且小于等于r-1的2d个整数并设为2d个随机数uj(其中,j是大于等于0且小于等于2d-1的整数。),根据包含在密码参数设定装置100所设定的密码参数中的2d个基底因子D j和所生成的2d个随机数,算出包含在有限生成因子群G中的因子u=∑(uj·D j)(其中,j是大于等于0且小于等于2d-1的整数。)。即,公开第二因子生成部174B使用CPU911,算出将2d个基底因子D j分别相加ui次得到的2d个因子,算出将算出的2d个因子全部相加得到的因子,并设为因子u。公开第二因子生成部174B使用RAM914,存储表示所选择的因子u的数据。 
公开第三因子生成部175B使用CPU911,从包含在有限生成因子群G中的因子中随机地选择因子,并设为因子v’。公开第三因子生成部175B使用RAM914,存储表示所选择的因子v’的数据。 
公开比特因子生成部176B使用CPU911,输入比特长度输入部151B所存储的表示比特长度m的数据。公开比特因子生成部176B使用CPU911,根据所输入的数据所表示的比特长度m,从包含在有限生成因子群G中的因子中随机地选择m个因子,并设为m个因子vi(其中,i是大于等于1且小于等于m的整数。)。公开比特因子生成部176B使用RAM914,存储表示所选择的m个因子vi的数据。 
主密钥算出部180B具有主因子算出部181B。 
主因子算出部181B使用CPU911,输入配对随机数生成部161B所存储的表示随机数α的数据和公开基底算出部171B所存储的表示因子g的数据。主因子算出部181B使用CPU911,根据所输入的数据所表示的随机数α和因子g,算出扩张域K上的雅可比簇JacC的因子 g’=α·g。即,主因子算出部181B使用CPU911,算出将因子g相加α次得到的因子,并设为因子g’。因子g’被包含在有限生成因子群G中。主因子算出部181B使用CPU911,存储表示所算出的因子g’的数据。 
公开密钥设定部191B使用CPU911,输入由输出基底算出部143所存储的表示输出基底g1的数据、公开基底算出部171B所存储的表示因子g的数据、公开第一因子算出部172B所存储的表示因子Ω的数据、公开配对值算出部173B所存储的表示配对值A的数据、公开第二因子生成部174B所存储的表示因子u的数据、公开第三因子生成部175B所存储的表示因子v’的数据以及公开比特因子生成部176B所存储的表示m个因子vi的数据。公开密钥设定部191B使用CPU911,根据所输入的数据所表示的输出基底g1、因子g、因子Ω、配对值A、因子u、因子v’以及m个因子vi,将m+5个因子与配对值的组(g1,g,Ω,A,u,v’,v1,v2...,vm)设定为公开密钥PK。 
主密钥设定部192B使用CPU911,输入主随机数生成部162B所存储的表示随机数ω的数据和主因子算出部181B所存储的表示因子g’的数据。主密钥设定部192B使用CPU911,根据所输入的数据所表示的随机数ω和因子g’,将整数与因子的组(ω,g’)设定为主密钥MK。 
追踪密钥设定部193B使用CPU911,输入由输出基底算出部143所存储的表示输出基底g2的数据。追踪密钥设定部193B使用CPU911,根据所输入的数据所表示的输出基底g2,将因子g2设定为追踪密钥TK。 
图16是表示本实施方式中的签名密钥发行装置600的功能模块的结构的一例的模块结构图。 
签名密钥发行装置600具有发行请求输入部154C、已发行标识符存储部155C、主密钥存储部156C、公开密钥输入部157C、标识符生成部160C、签名密钥算出部180C、标识符设定部194C以及签名密钥设定部195C。 
主密钥存储部156C预先使用具有防篡改性的存储装置,存储表示 密钥生成装置500B所设定的主密钥MK=(ω,g’)的数据。 
已发行标识符存储部155C使用具有防篡改性的存储装置,存储表示已发行的签名密钥SK的标识符sID的数据。 
公开密钥输入部157C(发行公开密钥输入部)使用磁盘装置920,存储表示签名密钥发行装置600所设定的公开密钥PK的数据。 
发行请求输入部154C使用CPU911,输入请求发行签名密钥SK的签名密钥发行请求。 
在发行请求输入部154C输入了签名密钥发行请求的情况下,标识符生成部160C使用CPU911,输入包含在主密钥存储部156C所存储的主密钥MK中的表示随机数ω的数据和已发行标识符存储部155C所存储的表示已发行签名密钥SK的标识符sID的数据。 
标识符生成部160C使用CPU911,随机地选择大于等于1且小于等于r-1的整数,并设为新的签名密钥SK的标识符sID。 
标识符生成部160C使用CPU911,根据所输入的数据所表示的随机数ω和所选择的新的签名密钥SK的标识符sID,判断在阶数r的剩余环Z/rZ中的ω+sID是否存在与乘法有关的逆元。在判断为ω+sID不存在逆元的情况下,标识符生成部160C使用CPU911,重新选择标识符sID。 
此外,阶数r是素数,因此如果ω+sID不能被r整除,则ω+sID存在与乘法有关的逆元。ω和sID都是大于等于1且小于等于r-1的整数,因此如果ω+sID≠r,则ω+sID存在与乘法有关的逆元。标识符生成部160C使用CPU911,算出随机数ω与标识符sID之和ω+sID,在算出的和ω+sID与阶数r相等的情况下,重新选择标识符sID。 
标识符生成部160C使用CPU911,根据所选择的新的签名密钥SK的标识符sID和所输入的数据所表示的已发行签名密钥SK的标识符sID,判断在已发行签名密钥SK的标识符sID中是否存在与所选择的新的签名密钥SK的标识符sID一致的标识符。在判断为存在一致的标识符的情况下,标识符生成部160C使用CPU911,重新选择标识符sID。 
在所选择的新的签名密钥SK的标识符sID与ω之和存在逆元且所选择的新的签名密钥SK的标识符sID与已发行签名密钥SK的标识符sID不同的情况下,标识符生成部160C使用RAM914,存储所选择的新的签名密钥SK的标识符sID。 
已发行标识符存储部155C使用具有防篡改性的存储装置,将表示标识符生成部160C所存储的新的签名密钥SK的标识符sID的数据追加到表示到此为止存储的已发行签名密钥SK的标识符sID的数据中来进行存储。 
签名密钥算出部180C具有签名第一密钥算出部184C、签名第二密钥算出部185C以及签名第三密钥算出部186C。 
签名第一密钥算出部184C使用CPU911,输入包含在主密钥存储部156C所存储的主密钥MK中的表示随机数ω和因子g’的数据以及标识符生成部160C所存储的表示新的签名密钥SK的标识符sID的数据。签名第一密钥算出部184C根据所输入的数据所表示的随机数ω、因子g’以及标识符sID,算出扩张域K上的雅可比簇JacC的因子K1={1/(ω+sID)}·g’。即,签名第一密钥算出部184C使用CPU911,在阶数r的剩余环Z/rZ中算出整数ω与整数sID之和的倒数1/(ω+sID),算出将因子g’相加所算出的倒数1/(ω+sID)次得到的因子,并设为因子K1。因子K1被包含在有限生成因子群G中。签名第一密钥算出部184C使用RAM914,存储表示所算出的因子K1的数据。 
签名第二密钥算出部185C使用CPU911,输入包含在公开密钥输入部157C所存储的公开密钥PK中的表示因子g的数据和标识符生成部160C所存储的表示新的签名密钥SK的标识符sID的数据。签名第二密钥算出部185C使用CPU911,根据所输入的数据所表示的因子g和标识符sID,算出扩张域K上的雅可比簇JacC的因子K2=sID·g。即,签名第二密钥算出部185C使用CPU911,算出将因子g相加sID次得到的因子,并设为因子K2。因子K2被包含在有限生成因子群G中。签名第二密钥算出部185C使用RAM914,存储表示所算出的因子K2的数据。 
签名第三密钥算出部186C使用CPU911,输入包含在公开密钥输 入部157C所存储的公开密钥PK中的表示因子u的数据和标识符生成部160C所存储的表示新的签名密钥SK的标识符sID的数据。签名第三密钥算出部186C使用CPU911,根据所输入的数据所表示的因子u和标识符sID,算出扩张域K上的雅可比簇JacC的因子K3=sID·u。即,签名第三密钥算出部186C使用CPU911,算出将因子u相加sID次得到的因子,并设为因子K3。因子K3被包含在有限生成因子群G中。签名第三密钥算出部186C使用RAM914,存储表示所算出的因子K3的数据。 
标识符设定部194C使用CPU911,输入标识符生成部160C所存储的表示新的签名密钥SK的标识符sID的数据。标识符设定部194C使用CPU911,根据所输入的数据所表示的标识符sID,设定标识符sID。 
签名密钥设定部195C使用CPU911,输入签名第一密钥算出部184C所存储的表示因子K1的数据、表示签名第二密钥算出部185C所存储的因子K2的数据以及表示签名第三密钥算出部186C所存储的因子K3的数据。签名密钥设定部195C使用CPU911,根据所输入的数据所表示的因子K1、因子K2以及因子K3,将三个因子的组(K1,K2,K3)设定为签名密钥SK。 
图17是表示本实施方式中的签名装置200B的功能模块的结构的一例的模块结构图。 
签名装置200B具有公开密钥输入部211B、签名密钥输入部212B、签名密钥验证部220B、签名密钥存储部225B、消息输入部213B、签名随机数生成部230B、消息因子算出部240B、签名算出部250B以及签名输出部261B。 
公开密钥输入部211B(签名公开密钥输入部)使用CPU911,输入密钥生成装置500B所设定的公开密钥PK。签名密钥第一验证值算出部221B使用磁盘装置920,存储表示所输入的公开密钥PK的数据。 
签名密钥输入部212B使用CPU911,输入签名密钥发行装置600所发行的签名密钥SK。签名密钥输入部212B使用RAM914,存储表示所输入的签名密钥SK的数据。 
签名密钥验证部220B验证签名密钥输入部212B所输入的签名密 钥SK的匹配性。 
签名密钥验证部220B具有签名密钥第一验证值算出部221B、签名密钥第二验证值算出部222B、签名密钥第三验证值算出部223B以及签名密钥验证判断部224B。 
签名密钥第一验证值算出部221B使用CPU911,输入包含在公开密钥输入部211B所存储的公开密钥PK中的表示因子Ω的数据和包含在签名密钥输入部212B所存储的签名密钥SK中的表示因子K1、K2的数据。签名密钥第一验证值算出部221B使用CPU911,根据所输入的数据所表示的因子Ω、因子K1以及因子K2,算出配对值A’=e(K1,K2+Ω)。即,签名密钥第一验证值算出部221B使用CPU911,算出因子K1与将因子K2和因子Ω相加得到的因子之间的配对值,并设为配对值A’。签名密钥第一验证值算出部221B使用RAM914,存储表示所算出的配对值A’的数据。 
签名密钥第二验证值算出部222B使用CPU911,输入包含在公开密钥输入部211B所存储的公开密钥PK中的表示因子u的数据和包含在签名密钥输入部212B所存储的签名密钥SK中的表示因子K2的数据。签名密钥第二验证值算出部222B使用CPU911,根据所输入的数据所表示的因子u和因子K2,算出配对值B=e(K2,u)。即,签名密钥第二验证值算出部222B使用CPU911,算出因子K2与因子u之间的配对值,并设为配对值B。签名密钥第二验证值算出部222B使用RAM914,存储表示所算出的配对值B的数据。 
签名密钥第三验证值算出部223B使用CPU911,输入包含在公开密钥输入部211B所存储的公开密钥PK中的表示因子g的数据和包含在签名密钥输入部212B所存储的签名密钥SK中的表示因子K3的数据。签名密钥第三验证值算出部223B使用CPU911,根据所输入的数据所表示的因子g和因子K3,算出配对值B’=e(g,K3)。即,签名密钥第三验证值算出部223B使用CPU911,算出因子g与因子K3的配对值,并设为配对值B’。签名密钥第三验证值算出部223B使用RAM914,存储表示所算出的配对值B’的数据。 
签名密钥验证判断部224B使用CPU911,输入包含在公开密钥输入部211B所存储的公开密钥PK中的表示配对值A的数据、在签名密钥第一验证值算出部212B所存储的表示配对值A’的数据、签名密钥第二验证值算出部222B所存储的表示配对值B的数据以及签名密钥第三验证值算出部223B所存储的表示配对值B’的数据。签名密钥验证判断部224B使用CPU911,根据所输入的数据所表示的配对值A、配对值A’、配对值B以及配对值B’,判断配对值A与配对值A’是否一致、配对值B与配对值B’是否一致。签名密钥验证判断部224B使用CPU911,在配对值A与配对值A’一致且配对值B与配对值B’一致的情况下,判断为签名密钥输入部212B所输入的签名密钥SK具有匹配性。 
在签名密钥验证判断部224B判断为签名密钥SK具有匹配性的情况下,签名密钥存储部225B使用CPU911,输入签名密钥输入部212B所存储的表示签名密钥SK的数据。签名密钥存储部225B使用具有防篡改性的存储装置,存储表示所输入的签名密钥SK的数据。 
消息输入部213B(签名消息输入部)使用CPU911,输入要签名的消息M。在此,消息M的比特长度是m,将消息M的第i个比特表示为μi(其中,i是大于等于1且小于等于m的整数。μi是0或1。)。消息输入部213B使用RAM914,存储表示所输入的消息M的数据。 
消息因子算出部240B(签名消息因子算出部)将消息输入部213B所输入的消息M变换为包含在有限生成因子群G中的因子。 
消息因子算出部240B使用CPU911,输入包含在公开密钥输入部211B所存储的公开密钥PK中的表示因子v’和m个因子vi的数据以及消息输入部213B所存储的表示消息M的数据。消息因子算出部240B使用CPU911,根据所输入的数据所表示的因子v’、m个因子vi以及消息M,算出扩张域K上的雅可比簇JacC的因子v=v’+∑(μi·vi)(其中,i是大于等于1且小于等于m的整数。)。即,消息因子算出部240B使用CPU911,算出将如下因子与因子v’相加得到的因子并设为因子v:将m个因子vi中的、与消息M的比特μi为1的比特对应的因子vi合计得到的因子。因子v被包含在有限生成因子群G中。 消息因子算出部240B使用RAM914,存储表示所算出的因子v的数据。 
签名随机数生成部230B生成为了算出签名σ而使用的随机数。 
签名随机数生成部230B具有签名第一随机数生成部231B和签名第二随机数生成部232B。 
签名第一随机数生成部231B使用CPU911,随机地选择大于等于1且小于等于r-1的整数,并设为随机数s。签名第一随机数生成部231B使用RAM914,存储表示所选择的随机数s的数据。 
签名第二随机数生成部232B使用CPU911,随机地选择大于等于1且小于等于r-1的四个整数,并设为随机数tj(其中,j是大于等于1且小于等于4的整数。)。签名第二随机数生成部232B使用RAM914,存储表示所选择的四个随机数tj的数据。 
签名算出部250B算出构成签名σ的因子。 
签名算出部250B具有签名第一因子算出部251B、签名第二因子算出部252B、签名第三因子算出部253B、签名第四因子算出部254B、签名第五因子算出部255B以及签名第六因子算出部256B。 
签名第一因子算出部251B使用CPU911,输入包含在公开密钥输入部211B所存储的公开密钥PK中的表示因子g1的数据、包含在签名密钥存储部225B所存储的签名密钥SK中的表示因子K1的数据以及签名第二随机数生成部232B所存储的表示随机数t1的数据。签名第一因子算出部251B使用CPU911,根据所输入的数据所表示的因子g1、因子K1以及随机数t1,算出扩张域K上的雅可比簇JacC的因子σ1=K1+t1·g1。即,签名第一因子算出部251B使用CPU911,算出将如下因子与因子K1相加得到的因子并设为因子σ1:将因子g1相加t1次得到的因子。因子σ1被包含在有限生成因子群G中。签名第一因子算出部251B使用RAM914,存储表示所算出的因子σ1的数据。 
签名第二因子算出部252B使用CPU911,输入包含在公开密钥输入部211B所存储的公开密钥PK中的表示因子g1的数据、包含在签名密钥存储部225B所存储的签名密钥SK中的表示因子K2的数据以及签名 第二随机数生成部232B所存储的表示随机数t2的数据。签名第二因子算出部252B使用CPU911,根据所输入的数据所表示的因子g1、因子K2以及随机数t2,算出扩张域K上的雅可比簇JacC的因子σ2=K2+t2·g1。即,签名第二因子算出部252B使用CPU911,算出将如下因子与因子K2相加得到的因子并设为因子σ2:将因子g1相加t2次得到的因子。因子σ2被包含在有限生成因子群G中。签名第二因子算出部252B使用RAM914,存储表示所算出的因子σ2的数据。 
签名第三因子算出部253B使用CPU911,输入包含在公开密钥输入部211B所存储的公开密钥PK中的表示因子g1的数据、包含在签名密钥存储部225B所存储的签名密钥SK中的表示因子K3的数据、消息因子算出部240B所存储的表示因子v的数据、签名第一随机数生成部231B所存储的表示随机数s的数据以及签名第二随机数生成部232B所存储的表示随机数t3的数据。签名第三因子算出部253B使用CPU911,根据所输入的数据所表示的因子g1、因子K3、因子v、随机数s以及随机数t3,算出扩张域K上的雅可比簇JacC的因子σ3=K3+s·v+t3·g1。即,签名第一因子算出部251B使用CPU911,算出将如下因子与因子K3相加得到的因子并设为因子σ3:将因子g1相加t3次得到的因子;将因子v相加s次得到的因子。因子σ3被包含在有限生成因子群G中。签名第三因子算出部253B使用RAM914,存储表示所算出的因子σ3的数据。 
签名第四因子算出部254B使用CPU911,输入包含在公开密钥输入部211B所存储的公开密钥PK中的表示因子g1和因子g的数据、签名第一随机数生成部231B所存储的表示随机数s的数据以及签名第二随机数生成部232B所存储的表示随机数t4的数据。签名第四因子算出部254B使用CPU911,根据所输入的数据所表示的因子g1、因子g、随机数s以及随机数t4,算出扩张域K上的雅可比簇JacC的因子σ4=-s·g+t4·g1。即,签名第四因子算出部254B使用CPU911,算出将如下因子相加得到的因子并设为因子σ4:将因子g相加(r-s)次得到的因子;将因子g1相加t4次得到的因子。因子σ4被包含在有限生成因子群G中。签名第四因子算出部254B使用RAM914,存储表示所算出的因子σ4的数据。 
签名第五因子算出部255B使用CPU911,输入包含在公开密钥输入部211B所存储的公开密钥PK中的表示因子g1和因子Ω的数据、包含在签名密钥存储部225B所存储的签名密钥SK中的表示因子K1和因子K2的数据以及签名第二随机数生成部232B所存储的表示随机数t1和随机数t2的数据。签名第五因子算出部255B使用CPU911,根据所输入的数据所表示的因子g1、因子Ω、因子K1、因子K2、随机数t1以及随机数t2,算出扩张域K上的雅可比簇JacC的因子π1=t1t2·g1+t2·K1+t1·(K2+Ω)。即,签名第五因子算出部255B使用CPU911,算出将如下因子相加得到的因子并设为因子π1:将因子g1相加t1×t2次得到的因子;将因子K1相加t2次得到的因子;将因子K2与因子Ω相加得到的因子相加t1次得到的因子。因子π1被包含在有限生成因子群G中。签名第五因子算出部255B使用RAM914,存储表示所算出的因子π1的数据。 
签名第六因子算出部256B使用CPU911,输入包含在公开密钥输入部211B所存储的公开密钥PK中的表示因子g和因子u的数据、消息因子算出部240B所存储的表示因子v的数据以及签名第二随机数生成部232B所存储的表示随机数t2、随机数t3、随机数t4的数据。签名第六因子算出部256B使用CPU911,根据所输入的数据所表示的因子g、因子u、因子v、随机数t2、随机数t3以及随机数t4,算出扩张域K上的雅可比簇JacC的因子π2=t2·u-t3·g-t4·v。即,签名第六因子算出部256B使用CPU911,算出将如下因子相加得到的因子并设为因子π2:将因子u相加t2次得到的因子;将因子g相加(r-t3)次得到的因子;将因子v相加(r-t4)次得到的因子。因子π2被包含在有限生成因子群G中。签名第六因子算出部256B使用RAM914,存储表示所算出的因子π2的数据。 
签名输出部261B使用CPU911,输入签名第一因子算出部251B所存储的表示因子σ1的数据、签名第二因子算出部252B所存储的表示因子σ2的数据、签名第三因子算出部253B所存储的表示因子σ3的数据、签名第四因子算出部254B所存储的表示因子σ4的数据、签名第五因子算出部255B所存储的表示因子π1的数据以及签名第六因子算出部256B所存储的表示因子π2的数据。签名输出部261B使用CPU911,根 据所输入的数据所表示的因子σ1、因子σ2、因子σ3、因子σ4、因子π1以及因子π2,将六个因子的组(σ1,σ2,σ3,σ4,π1,π2)作为签名σ进行输出。 
图18是表示本实施方式中的签名验证装置300B的功能模块的结构的一例的模块结构图。 
签名验证装置300B具有公开密钥输入部311B、消息输入部313B、签名输入部312B、消息因子算出部340B以及签名验证部350B。 
公开密钥输入部311B(验证公开密钥输入部)使用CPU911,输入密钥生成装置500B所设定的公开密钥PK。公开密钥输入部311B使用磁盘装置920,存储表示所输入的公开密钥PK的数据。 
消息输入部313B(验证消息输入部)使用CPU911输入已签名的消息M。消息输入部313B使用RAM914,存储表示所输入的消息M的数据。 
签名输入部312B(验证签名输入部)使用CPU911,输入对于消息输入部313B所输入的消息M的签名σ。签名输入部312B使用RAM914,存储表示所输入的签名σ的数据。 
消息因子算出部340B(验证消息因子算出部)与签名装置200B的消息因子算出部240B同样地将消息输入部313B所输入的消息M变换为包含在有限生成因子群G中的因子v。 
签名验证部350B具有签名第一验证值算出部351B、签名第二验证值算出部352B、签名第三验证值算出部353B、签名第四验证值算出部354B以及签名验证判断部355B。 
签名第一验证值算出部351B使用CPU911,输入包含在公开密钥输入部311B所存储的公开密钥PK中的表示因子g1的数据和包含在签名输入部312B所存储的签名σ中的表示因子π1的数据。签名第一验证值算出部351B使用CPU911,根据所输入的数据所表示的因子g1和因子π1,算出配对值C=e(g1,π1)。即,签名第一验证值算出部351B使用CPU911,算出因子g1与因子π1的配对值,并设为配对值C。签名第一验证值算出部351B使用RAM914,存储表示所算出的配对值C的数据。 
签名第二验证值算出部352B使用CPU911,输入包含在公开密钥 输入部311B所存储的公开密钥PK中的表示因子Ω和配对值A的数据和包含在签名输入部312B所存储的签名σ中的表示因子σ1和因子σ2的数据。签名第二验证值算出部352B使用CPU911,根据所输入的数据所表示的因子Ω、配对值A、因子σ1以及因子σ2,算出配对值C’=e(σ1,σ2+Ω)/A。即,签名第二验证值算出部352B使用CPU911,算出将如下的配对值与配对值A的倒数相乘得到的配对值并设为配对值C’:因子σ1与将因子σ2和因子Ω相加得到的因子的配对值。签名第二验证值算出部352B使用RAM914,存储表示所算出的配对值C’的数据。 
签名第三验证值算出部353B使用CPU911,输入包含在公开密钥输入部311B所存储的公开密钥PK中的表示因子g1的数据和包含在签名输入部312B所存储的签名σ中的表示因子π2的数据。签名第三验证值算出部353B使用CPU911,根据所输入的数据所表示的因子g1和因子π2,算出配对值D=e(g1,π2)。即,签名第三验证值算出部353B使用CPU911,算出因子g1与因子π2的配对值,并设为配对值D。签名第三验证值算出部353B使用RAM914,存储表示所算出的配对值D的数据。 
签名第四验证值算出部354B使用CPU911,输入包含在公开密钥输入部311B所存储的公开密钥PK中的表示因子u和因子g的数据、包含在签名输入部312B所存储的签名σ中的表示因子σ2、因子σ3及因子σ4的数据以及消息因子算出部340B所存储的表示因子v的数据。签名第四验证值算出部354B使用CPU911,根据所输入的数据所表示的因子u、因子g、因子σ2、因子σ3、因子σ4以及因子v,算出配对值D’=e(σ2,u)/{e(g,σ3)·e(σ4,v)}。即,签名第四验证值算出部354B使用CPU911,算出将如下量相乘得到的配对值并设为配对值D’:因子σ2与因子u的配对值;因子g与因子σ3的配对值的倒数;因子σ4与因子v的配对值的倒数。签名第四验证值算出部354B使用RAM914,存储表示所算出的配对值D’的数据。 
签名验证判断部355B使用CPU911,输入签名第一验证值算出部351B所存储的表示配对值C的数据、签名第二验证值算出部352B所存储的表示配对值C’的数据、签名第三验证值算出部353B所存储的表示 配对值D的数据以及签名第四验证值算出部354B所存储的表示配对值D’的数据。签名验证判断部355B使用CPU911,根据所输入的数据所表示的配对值C、配对值C’、配对值D以及配对值D’,判断配对值C与配对值C’是否一致、配对值D与配对值D’是否一致。签名验证判断部355B使用CPU911,在配对值C与配对值C’一致且配对值D与配对值D’一致的情况下,判断为对于消息M的签名σ有效。 
图19是表示本实施方式中的签名者追踪装置400B的功能模块的结构的一例的模块结构图。 
签名者追踪装置400B具有签名输入部412B、追踪密钥存储部414B、标识符存储部415B、签名配对值算出部451B、标识符配对值算出部452B以及签名者判别部453B。 
追踪密钥存储部414B预先使用具有防篡改性的存储装置,存储表示密钥生成装置500B所设定的追踪密钥TK的数据。 
标识符存储部415B预先使用具有防篡改性的存储装置,存储表示签名密钥发行装置600所发行的多个签名密钥SK各自的标识符sID的数据。 
签名输入部412B(追踪签名输入部)使用CPU911,输入想要判别签名者的签名σ。签名输入部412B使用RAM914,存储表示所输入的签名σ的数据。 
签名配对值算出部451B使用CPU911,输入包含在追踪密钥存储部414B所存储的追踪密钥TK中的表示因子g2的数据以及包含在签名输入部412B所存储的签名σ中的表示因子σ2的数据。签名配对值算出部451B使用CPU911,根据所输入的数据所表示的因子g2和因子σ2,算出配对值E=e(g2,σ2)。即,签名配对值算出部451B使用CPU911,算出因子g2与因子σ2的配对值,并设为配对值E。签名配对值算出部451B使用RAM914,存储表示所算出的配对值E的数据。 
标识符配对值算出部452B使用CPU911,输入包含在追踪密钥存储部414B所存储的追踪密钥TK中的表示因子g2的数据以及标识符存储部415B所存储的表示多个标识符sID的数据。标识符配对值算出部 452B使用CPU911,根据所输入的数据所表示的因子g2和多个标识符sID,分别算出多个配对值EID=e(g2,g2)s ID。即,标识符配对值算出部452B使用CPU911,算出将因子g2与因子g2的配对值相乘sID次得到的配对值并设为配对值EID。标识符配对值算出部452B使用RAM914,存储表示所算出的多个配对值EID的数据。 
签名者判别部453B使用CPU911,输入签名配对值算出部451B所存储的表示配对值E的数据以及标识符配对值算出部452B所存储的表示多个配对值EID的数据。签名者判别部453B使用CPU911,根据所输入的数据所表示的配对值E和多个配对值EID,从多个配对值EID中查找与配对值E一致的配对值。签名者判别部453B在查找到与配对值E一致的配对值EID的情况下,使用CPU911,判断为作为算出该配对值EID的源的标识符sID为生成签名σ的签名密钥SK的标识符。 
在此,当使用未公开的参数来表示签名配对值算出部451B所算出的配对值E时,成为式20。 
[式20] 
E=e(g2,sID·(g2+β·g1)+t2·g1
根据输出基底算出部143所算出的输出基底g1、g2、g3之间的关系,得到e(g1,g2)=e(g2,g1)=e(g2,g3)=e(g3,g2)=1、e(g1,g1)≠1、e(g2,g2)≠1、e(g3,g3)≠1,因此配对值E为如式21所示。 
[式21] 
E = e ( g 2 , s ID · g 2 ) = e ( g 2 , g 2 ) s ID
因而,通过查找与配对值E一致的配对值EID,能够判别签名者。 
本实施方式中的密码系统800B还具有签名密钥发行装置600、多个签名装置200B、签名验证装置300B以及签名者追踪装置400B。 
上述签名密钥发行装置600根据密码参数设定装置100B所设定的密码参数和密钥生成装置500B所生成的密钥(主密钥MK),生成分别与上述多个签名装置200B对应的多个签名密钥SK。 
上述多个签名装置200B中的至少某一个签名装置200B使用上述签名密钥发行装置600所生成的多个签名密钥SK中的、与上述签 名装置200B对应的签名密钥SK,生成签名σ。 
上述签名验证装置300B使用上述密码参数设定装置100B所设定的密码参数和密钥生成装置500所生成的密钥(公开密钥PK),验证上述签名装置200B所生成的签名。 
上述签名者追踪装置400B使用上述密码参数设定装置100B所设定的密码参数和密钥生成装置500所生成的密钥(追踪密钥TK),解析上述签名装置200B所生成的签名σ,判别生成了上述签名σ的签名装置200B。 
根据本实施方式中的密码系统800,起到如下效果:由密码参数设定装置100B设定为了构成有限生成因子群G而所需的具体的密码参数,根据密码参数设定装置100B所设定的密码参数,由密钥生成装置500生成有限生成因子群G,算出利用了所构成的有限生成因子群G的具体密钥的值,使用密钥生成装置500所算出的密钥,由签名密钥发行装置600生成签名密钥SK,由签名装置200B生成签名σ,由签名验证装置300B验证签名σ,由签名者追踪装置400B判别生成了签名σ的签名装置200B,因此能够实现利用了有限生成因子群G的群结构的高级密码方式,其中,上述有限生成因子群G具有为了实现如上所述的高级密码方式而能够利用的群结构。 
本实施方式中的随机因子选择部122使用上述处理装置(CPU911),从有限域Fp上的超椭圆曲线C:Y2=X5+1(其中,将素数p除以5得到的余数a是2或3。)的雅可比簇JacC的多个因子中选择随机因子D。 
上述随机矩阵选择部142使用上述处理装置(CPU911),选择满足条件m’12=m’21=0,m’11≠0,m’22≠0的3行3列的随机矩阵V。 
上述输出基底算出部143使用上述处理装置(CPU911),根据上述基底因子存储部511所算出的多个基底因子D j和上述随机矩阵选择部142所算出的随机矩阵V,算出两个输出基底gk=vk·D(其中,k是大于等于1且小于等于2的整数。)。 
上述密钥算出部150B具有比特长度输入部151B、基底随机数生 成部163B、配对随机数生成部161B、主随机数生成部162B、公开基底算出部171B、公开第一因子算出部172B、公开配对值算出部173B、公开第二因子生成部174B、公开第三因子生成部175B、公开比特因子生成部176B、主因子算出部181B、公开密钥设定部191B、主密钥设定部192B以及追踪密钥设定部193B。 
上述比特长度输入部151B使用上述处理装置(CPU911),输入进行签名的消息M的比特长度m。 
上述基底随机数生成部163B使用上述处理装置(CPU911),随机地生成随机数β(其中,随机数β是大于等于1且小于等于r-1的整数。)。 
上述配对随机数生成部161B使用上述处理装置(CPU911),随机地生成随机数α(其中,随机数α是大于等于1且小于等于r-1的整数。)。 
上述主随机数生成部162B使用上述处理装置(CPU911),随机地生成随机数ω(其中,随机数ω是大于等于1且小于等于r-1的整数。)。 
上述公开基底算出部171B使用上述处理装置(CPU911),根据上述输出基底算出部143所算出的输出基底g1和输出基底g2以及上述基底随机数生成部163B所生成的随机数β,算出上述雅可比簇JacC的因子g=g2+β·g1。 
上述公开第一因子算出部172B使用上述处理装置(CPU911),根据上述主随机数生成部162B所生成的随机数ω和上述公开基底算出部171B所算出的因子g,算出上述雅可比簇JacC的因子Ω=ω·g。 
上述公开配对值算出部173B使用上述处理装置(CPU911),根据上述配对随机数生成部161B所生成的随机数α和上述公开基底算出部171B所算出的因子g,算出配对值A=e(g,g)α。 
上述公开第二因子生成部174B使用上述处理装置(CPU911),随机地生成上述雅可比簇JacC的因子u。 
上述公开第三因子生成部175B使用上述处理装置(CPU911),随机地生成上述雅可比簇JacC的因子v’。 
上述公开比特因子生成部176B使用上述处理装置(CPU911),根据上述比特长度输入部151B所输入的比特长度m,随机地生成上述 雅可比簇JacC的m个因子vi(其中,i是大于等于1且小于等于m的整数。)。 
上述主因子算出部181B使用上述处理装置(CPU911),根据上述配对随机数生成部161B所生成的随机数α和上述公开基底算出部171B所算出的因子g,算出上述雅可比簇JacC的因子g’=α·g。 
上述公开密钥设定部191B使用上述处理装置(CPU911),根据上述输出基底算出部143所算出的因子g1、上述公开基底算出部171B所算出的因子g、上述公开第一因子算出部172B所算出的因子Ω、上述公开配对值算出部173B所算出的配对值A、上述公开第二因子生成部174B所生成的因子u、上述公开第三因子生成部175B所生成的因子v’以及上述公开比特因子生成部176B所生成的m个因子vi,设定公开密钥PK=(g1,g,Ω,A,u,v’,vi)(其中,i是大于等于1且小于等于m的整数。)。 
上述主密钥设定部192B使用上述处理装置(CPU911),根据上述主随机数生成部162B所生成的随机数ω和上述主因子算出部181B所算出的因子g’,设定主密钥MK=(ω,g’)。 
上述追踪密钥设定部193B使用上述处理装置(CPU911),根据上述输出基底算出部143所算出的输出基底g2,设定追踪密钥TK=(g2)。 
本实施方式中的签名密钥发行装置600具有存储数据的存储装置、处理数据的处理装置(CPU911)、主密钥存储部156C、发行公开密钥输入部(公开密钥输入部157C)、标识符生成部160C、签名第一密钥算出部184C、签名第二密钥算出部185C、签名第三密钥算出部186C、签名密钥设定部195C以及标识符设定部194C。 
上述主密钥存储部156C使用上述存储装置,存储上述密钥生成装置500B所设定的主密钥MK=(ω,g’)。 
上述发行公开密钥输入部(公开密钥输入部157C)使用上述处理装置(CPU911),输入上述密钥生成装置500B所设定的公开密钥PK=(g1,g,Ω,A,u,v’,vi)。 
上述标识符生成部160C使用上述处理装置(CPU911),随机地生 成标识符sID(其中,标识符sID是大于等于1且小于等于r-1的整数。)。 
上述签名第一密钥算出部184C使用上述处理装置(CPU911),根据包含在上述主密钥存储部156C所存储的主密钥MK中的随机数ω和因子g’以及上述标识符生成部160C所生成的标识符sID,算出上述雅可比簇JacC的因子K1={1/(ω+sID)}·g’ 
上述签名第二密钥算出部185C使用上述处理装置(CPU911),根据包含在上述发行公开密钥输入部(公开密钥输入部157C)所存储的公开密钥PK中的因子g和上述标识符生成部160C所生成的标识符sID,算出上述雅可比簇JacC的因子K2=sID·g。 
上述签名第三密钥算出部186C使用上述处理装置(CPU911),根据包含在上述发行公开密钥输入部(公开密钥输入部157C)所存储的公开密钥PK中的因子u和上述标识符生成部160C所生成的标识符sID,算出上述雅可比簇JacC的因子K3=sID·u。 
上述签名密钥设定部195C使用上述处理装置(CPU911),根据上述签名第一密钥算出部184C所算出的因子K1和上述签名第二密钥算出部185C所算出的因子K2以及上述签名第三密钥算出部186C算出的因子K3,设定签名密钥SK=(K1,K2,K3)。 
上述标识符设定部194C使用上述处理装置(CPU911),将上述标识符生成部160C所生成的标识符SID设定为用于识别上述签名密钥设定部195C所设定的签名密钥SK的标识符。 
本实施方式中的签名装置200B具有存储数据的存储装置、处理数据的处理装置(CPU911)、签名密钥存储部225B、签名公开密钥输入部(公开密钥输入部211B)、签名消息输入部(消息输入部213B)、签名消息因子算出部(消息因子算出部240B)、签名第一随机数生成部231B、签名第二随机数生成部232B、签名第一因子算出部251B、签名第二因子算出部252B、签名第三因子算出部253B、签名第四因子算出部254B、签名第五因子算出部255B、签名第六因子算出部256B以及签名输出部261B。 
上述签名密钥存储部225B使用上述存储装置,存储上述密钥生 成装置500B所设定的签名密钥SK=(K1,K2,K3)。 
上述签名公开密钥输入部(公开密钥输入部211B)使用上述处理装置(CPU911),输入上述密钥生成装置500B所设定的公开密钥PK=(g1,g,Ω,A,u,v’,vi)。 
上述签名消息输入部(消息输入部213B)使用上述处理装置(CPU911),输入进行签名的消息M。 
上述签名消息因子算出部(消息因子算出部240B)使用上述处理装置(CPU911),根据包含在上述签名公开密钥输入部(公开密钥输入部211B)所输入的公开密钥PK中的因子v’和m个因子vi以及上述签名消息输入部(消息输入部213B)所输入的消息M,算出上述雅可比簇JacC的因子v=v’+∑(μi·vi)(其中,i是大于等于1且小于等于m的整数。μi是表示上述消息M的第i个比特的0或1的整数。)。 
上述签名第一随机数生成部231B使用上述处理装置(CPU911),生成随机数s(其中,随机数s是大于等于且小于等于r-1的整数。)。 
上述签名第二随机数生成部232B使用上述处理装置(CPU911),随机地生成四个随机数tj(其中,j是大于等于1且小于等于4的整数。随机数tj是大于等于1且小于等于r-1的整数。)。 
上述签名第一因子算出部251B使用上述处理装置(CPU911),根据包含在上述签名公开密钥输入部(公开密钥输入部211B)所输入的公开密钥PK中的因子g1、包含在上述签名密钥存储部225B所存储的签名密钥SK中的因子K1以及上述签名第二随机数生成部232B所生成的随机数t1,算出上述雅可比簇JacC的因子σ1=K1+t1·g1。 
上述签名第二因子算出部252B使用上述处理装置(CPU911),根据包含在上述签名公开密钥输入部(公开密钥输入部211B)所输入的公开密钥PK中的因子g1、包含在上述签名密钥存储部225B所存储的签名密钥SK中的因子K2以及上述签名第二随机数生成部232B所生成的随机数t2,算出上述雅可比簇JacC的因子σ2=K2+t2·g1。 
上述签名第三因子算出部253B使用上述处理装置(CPU911),根据包含在上述签名公开密钥输入部(公开密钥输入部211B)所输入的公 开密钥PK中的因子g1、包含在上述签名密钥存储部225B所存储的签名密钥SK中的因子K3、上述签名消息因子算出部(消息因子算出部240B)所算出的因子v、上述签名第一随机数生成部231B所生成的随机数s以及上述签名第二随机数生成部232B所生成的随机数t3,算出上述雅可比簇JacC的因子σ3=K3+s·v+t3·g1。 
上述签名第四因子算出部254B使用上述处理装置(CPU911),根据包含在上述签名公开密钥输入部(公开密钥输入部211B)所输入的公开密钥PK中的因子g和因子g1、上述签名第一随机数生成部231B所生成的随机数s以及上述签名第二随机数生成部232B所生成的随机数t4,算出上述雅可比簇JacC的因子σ4=-s·g+t4·g1。 
上述签名第五因子算出部255B使用上述处理装置(CPU911),根据包含在上述签名公开密钥输入部(公开密钥输入部211B)所输入的公开密钥PK中的因子g1和因子Ω、包含在上述签名密钥存储部225B所存储的签名密钥SK中的因子K1和因子K2以及上述签名第二随机数生成部232B所生成的随机数t1和随机数t2,算出上述雅可比簇JacC的因子π1=t1t2·g1+t2·K1+t1·(K2+Ω)。 
上述签名第六因子算出部256B使用上述处理装置(CPU911),根据包含在上述签名公开密钥输入部(公开密钥输入部211B)所输入的公开密钥PK中的因子g和因子u、上述签名消息因子算出部(消息因子算出部240B)所算出的因子v以及上述签名第二随机数生成部232B所生成的随机数t2、随机数t3和随机数t4,算出上述雅可比簇JacC的因子π2=t2·u-t3·g-t4·v。 
上述签名输出部261B使用上述处理装置(CPU911),根据上述签名第一因子算出部251B所算出的因子σ1、上述签名第二因子算出部252B所算出的因子σ2、上述签名第三因子算出部253B所算出的因子σ3、上述签名第四因子算出部254B所算出的因子σ4、上述签名第五因子算出部255B所算出的因子π1以及上述签名第六因子算出部256B所算出的因子π2,输出签名σ=(σ1,σ2,σ3,σ4,π1,π2)。 
本实施方式中的签名验证装置300B具有处理数据的处理装置 (CPU911)、验证公开密钥输入部(公开密钥输入部311B)、验证签名输入部(签名输入部312B)、验证消息输入部(消息输入部313B)、验证消息因子算出部(消息因子算出部340B)、签名第一验证值算出部351B、签名第二验证值算出部352B、签名第三验证值算出部353B、签名第四验证值算出部354B以及签名验证判断部355B。 
上述验证公开密钥输入部(公开密钥输入部311B)使用上述处理装置(CPU911),输入上述密钥生成装置500B所设定的公开密钥PK=(g1,g,Ω,A,u,v’,vi)。 
上述验证签名输入部(签名输入部312B)使用上述处理装置(CPU911),输入上述签名装置200B所输出的签名σ=(σ1,σ2,σ3,σ4,π1,π2)。 
上述验证消息输入部(消息输入部313B)使用上述处理装置(CPU911),输入通过上述签名σ签名的消息M。 
上述验证消息因子算出部(消息因子算出部340B)使用上述处理装置(CPU911),根据包含在上述验证公开密钥输入部(公开密钥输入部311B)所输入的公开密钥PK中的因子v’和m个因子vi以及上述验证消息输入部(消息输入部313B)所输入的消息M,算出上述雅可比簇JacC的因子v=v’+∑(μi·vi)(其中,i是大于等于1且小于等于m的整数。μi是表示上述消息M的第i个比特的0或1的整数。)。 
上述签名第一验证值算出部351B使用上述处理装置(CPU911),根据包含在上述验证公开密钥输入部(公开密钥输入部311B)所输入的公开密钥PK中的因子g1和包含在上述验证签名输入部(签名输入部312B)所输入的签名σ中的因子π1,算出配对值C=e(g1,π1)。 
上述签名第二验证值算出部352B使用上述处理装置(CPU911),根据包含在上述验证公开密钥输入部(公开密钥输入部311B)所输入的公开密钥PK中的因子Ω和配对值A以及包含在上述验证签名输入部(签名输入部312B)所输入的签名σ中的因子σ1和因子σ2,算出配对值C’=e(σ1,σ2+Ω)/A。 
上述签名第三验证值算出部353B使用上述处理装置(CPU911),根据包含在上述验证公开密钥输入部(公开密钥输入部311B)所输入的 公开密钥PK中的因子g1和包含在上述验证签名输入部(签名输入部312B)所输入的签名σ中的因子π2,算出配对值D=e(g1,π2)。 
上述签名第四验证值算出部354B使用上述处理装置(CPU911),根据包含在上述验证公开密钥输入部(公开密钥输入部311B)所输入的公开密钥PK中的因子u和因子g、包含在上述验证签名输入部(签名输入部312B)所输入的签名σ中的因子σ2、因子σ3和因子σ4以及上述验证消息因子算出部(消息因子算出部340B)所算出的因子v,算出配对值D’=e(σ2,u)/{e(g,σ3)·e(σ4,v)}。 
上述签名验证判断部355B使用上述处理装置(CPU911),根据上述签名第一验证值算出部351B所算出的配对值C、上述签名第二验证值算出部352B所算出的配对值C’、上述签名第三验证值算出部353B所算出的配对值D以及上述签名第四验证值算出部354B所算出的配对值D’,判断上述配对值C与上述配对值C’是否相等以及上述配对值D与上述配对值D’是否相等,在判断为上述配对值C与上述配对值C’相等并且上述配对值D与上述配对值D’相等的情况下,判断为上述验证签名输入部(签名输入部312B)所输入的签名σ有效。 
本实施方式中的签名者追踪装置400B具有存储数据的存储装置、处理数据的处理装置(CPU911)、追踪密钥存储部414B、标识符存储部415B、追踪签名输入部(签名输入部412B)、签名配对值算出部451B、标识符配对值算出部452B以及签名者判别部453B。 
上述追踪密钥存储部414B使用上述存储装置,存储上述密钥生成装置500B所设定的追踪密钥TK=(g2)。 
上述标识符存储部415B使用上述存储装置,存储用于识别上述签名密钥发行装置600所发行的签名密钥SK的标识符sID。 
上述追踪签名输入部(签名输入部412B)使用上述处理装置(CPU911),输入上述签名装置200B所输出的签名σ。 
上述签名配对值算出部451B使用上述处理装置(CPU911),根据包含在上述追踪密钥存储部414B所存储的追踪密钥TK中的因子g2和包含在上述追踪签名输入部(签名输入部412B)所输入的签名σ中的 因子σ2,算出配对值E=e(g2,σ2)。 
上述标识符配对值算出部452B使用上述处理装置(CPU911),根据包含在上述追踪密钥存储部414B所存储的追踪密钥TK中的因子g2和上述标识符存储部415B所存储的标识符sID,算出配对值EID=e(g2,g2)s ID。 
上述签名者判别部453B使用上述处理装置(CPU911),从上述标识符配对值算出部452B所算出的配对值EID中查找与上述签名配对值算出部451B所算出的配对值E一致的配对值,由此判别生成了上述追踪签名输入部(签名输入部412B)所输入的签名σ的签名密钥SK的标识符。 
根据本实施方式中的密码系统800B,起到如下效果:利用有限生成因子群G的群结构,能够实现具有匿名性并且能够追踪签名者的组签名。 

Claims (21)

1.一种密码参数设定装置,其特征在于,具有:处理数据的处理装置、随机因子选择部、基底因子生成部、配对对数算出部以及参数设定部,
上述随机因子选择部使用上述处理装置,从循环群G’的多个要素中选择要素来作为随机因子D
上述基底因子生成部使用上述处理装置,根据上述随机因子选择部所选择的随机因子D,利用多个映射Gj对上述随机因子D进行映射,算出多个基底因子D j,其中,上述多个映射Gj是从上述循环群G’向多个循环群G’j中的各个循环群的同态型映射,
上述配对对数算出部使用上述处理装置,算出群G中的上述多个基底因子D j间的配对值的对数来作为多个配对对数系数ηi,其中,上述群G是上述多个循环群G’j的直积,能够计算通过包含在上述群G中的两个要素间的双线性配对运算的配对值,
上述参数设定部使用上述处理装置,将上述基底因子生成部所算出的多个基底因子D j和上述配对对数算出部所算出的多个配对对数系数ηi设为用于密码运算的密码参数。
2.根据权利要求1所述的密码参数设定装置,其特征在于,
上述随机因子选择部使用上述处理装置,从作为有限域Fp上的代数曲线C的雅可比簇JacC的因子所形成的群的部分群的循环群G’的多个要素中选择要素来作为随机因子D
上述基底因子生成部使用上述处理装置,将扩张域K上的代数曲线C的雅可比簇JacC的因子所形成的群中的多个自同态型映射作为上述多个映射Gj来算出上述多个基底因子D j,其中,上述扩张域K是将上述有限域Fp进行有限代数扩张得到的。
3.一种密码参数设定装置,其特征在于,具有:处理数据的处理装置、随机因子选择部、基底因子生成部、离散对数算出部、配对对数算出部以及参数设定部,
上述随机因子选择部使用上述处理装置,从有限域Fp上的亏格d的代数曲线C的雅可比簇JacC的多个因子中选择随机因子D,其中,上述有限域Fp的阶数p是素数,上述亏格d是大于等于2的整数,
上述基底因子生成部使用上述处理装置,根据上述随机因子选择部所选择的随机因子D,算出多个基底因子D j
上述离散对数算出部使用上述处理装置,算出多个离散对数lκ
上述配对对数算出部使用上述处理装置,根据上述离散对数算出部所算出的多个离散对数lκ,算出多个配对对数系数ηi
上述参数设定部使用上述处理装置,根据上述基底因子生成部所算出的多个基底因子D~j和上述配对对数算出部所算出的多个配对对数系数ηi,设定用于密码运算的密码参数。
4.根据权利要求3所述的密码参数设定装置,其特征在于,
上述随机因子选择部使用上述处理装置,从有限域Fp上的超椭圆曲线C:Y2=Xw+1的雅可比簇JacC的多个因子中选择随机因子D,其中,w是素数,w=2d+1,将上述阶数p除以上述素数w得到的余数a是阶数为w的有限域Fw的乘法群Fw 的生成元,
上述基底因子生成部使用上述处理装置,根据上述随机因子选择部所选择的随机因子D,使高斯和算子Gj作用于上述随机因子D,算出上述扩张域K上的雅可比簇JacC的多个基底因子D j=Gj(D),其中,j是大于等于0且小于等于2d-1的整数,上述高斯和算子Gj是式1所示的扩张域K上的雅可比簇JacC上的算子,上述扩张域K是将上述有限域Fp扩张2d阶得到的代数扩张域,
上述离散对数算出部使用上述处理装置,根据上述余数a,算出满足式2的多个离散对数lκ,其中,κ是大于等于1且小于等于2d-1的整数,上述多个离散对数lκ是大于等于0且小于等于2d-1的整数,
上述配对对数算出部使用上述处理装置,根据上述离散对数算出部所算出的多个离散对数lκ,计算出式3所示的计算式,算出多个配对对数系数ηi,其中,i是大于等于0且小于等于2d-1的整数,上述多个配对对数系数ηi是大于等于0且小于等于r-1的整数,r是上述随机因子D的阶数,
[式1]
G j = Σ i = 0 2 d - 1 { p i · j · ρ a i }
其中,ρ是与上述扩张域K上的超椭圆曲线C上的算子(x,y)→(ζx,y)对应的上述雅可比簇JacC上的算子,ζ是1的w次方根,
[式2]
a κ - 1 ≡ a l κ mod w
[式3]
η i = ( Σ κ = 1 2 d - 1 p l κ + i · κ ) mod r .
5.一种密钥生成装置,其特征在于,具有:处理数据的处理装置、存储数据的存储装置、基底因子存储部、配对对数存储部、输出基底算出部以及密钥算出部,
上述基底因子存储部使用上述存储装置,将群G的多个要素作为多个基底因子D j来进行存储,其中,上述群G是阶数相同的多个循环群的直积,能够计算通过包含在上述群G中的两个要素间的双线性配对运算的配对值,上述多个基底因子D j相互线性独立,
上述配对对数存储部使用上述存储装置,将上述多个基底因子D j间的配对值的对数作为多个配对对数系数ηi来进行存储,
上述输出基底算出部使用上述处理装置,根据上述基底因子存储部所存储的多个基底因子D j以及上述配对对数存储部所存储的多个配对对数系数ηi,算出作为上述群G的要素的多个输出基底gk,其中,上述多个输出基底gk中的至少某两个输出基底gk间的配对值为1,
上述密钥算出部使用上述处理装置,根据上述输出基底算出部所算出的多个输出基底gk,算出用于密码运算的密钥。
6.根据权利要求5所述的密钥生成装置,其特征在于,
上述密钥生成装置还具有随机矩阵选择部,
上述随机矩阵选择部使用上述处理装置,根据上述配对对数存储部所存储的多个配对对数系数ηi,从在关系式M’=V·M·VT中成为m’uv=0的多个矩阵V中随机地选择随机矩阵V,其中,M’是以m’μν为μ行ν列成分的b阶方矩阵,b是由上述输出基底算出部算出的多个输出基底gk的数量,V是以取大于等于0且小于等于r-1的整数值的变量cμv为μ行ν列成分的b行f列矩阵,r是上述多个循环群的阶数,f是上述基底因子存储部所存储的多个基底因子D j的数量,M是以上述配对对数存储部所存储的配对对数系数ηi中的基底因子D μ与基底因子D ν间的配对对数系数ηi为μ行ν列成分的f阶方矩阵,VT是将上述矩阵V转置得到的f行b列矩阵,u和v是大于等于1且小于等于b的规定的整数,
上述输出基底算出部使用上述处理装置,根据上述基底因子存储部所存储的多个基底因子D j和上述随机矩阵选择部所选择的随机矩阵V,算出上述多个输出基底gk=vk·D,其中,k是大于等于1且小于等于b的整数,vk是上述随机矩阵V的第k行向量,D是以上述多个基底因子D j为第j+1行成分的f阶列向量。
7.根据权利要求5所述的密钥生成装置,其特征在于,
上述基底因子存储部使用上述存储装置,作为上述多个基底因子D j,存储群G的多个要素,该群G是对有限域Fp进行有限代数扩张得到的扩张域K上的代数曲线C的雅可比簇JacC的多个因子所形成的群的部分群。
8.一种密钥生成装置,其特征在于,具有:处理数据的处理装置、存储数据的存储装置、基底因子存储部、配对对数存储部、随机矩阵选择部、输出基底算出部以及密钥算出部,
上述基底因子存储部使用上述存储装置,存储上述权利要求4所述的密码参数设定装置所算出的多个基底因子D j
上述配对对数存储部使用上述存储装置,存储上述密码参数设定装置所算出的多个配对对数系数ηi
上述随机矩阵选择部使用上述处理装置,根据多个整数m’μv要满足的规定的条件,从满足关系式M’=V·M·VT的多个矩阵V中随机地选择随机矩阵V,其中,μ和ν是大于等于1且小于等于b的整数,b是大于等于2且小于等于2d的整数,M’是以整数m’μv为μ行ν列成分的b阶方矩阵,V是以取大于等于0且小于等于r-1的某一个整数值的变量cμν为μ行ν列成分的b行2d列的矩阵,VT是将上述矩阵V转置得到的2d行b列的矩阵,M是以整数mμν为μ行ν列成分的2d阶的方矩阵,在μ+ν=2d+1时上述整数mμν为ην+1,在μ+ν≠2d+1时上述整数mμν为0,
上述输出基底算出部使用上述处理装置,根据上述基底因子存储部所存储的多个基底因子D j和上述随机矩阵选择部所选择的随机矩阵V,算出多个输出基底gk=vk·D,其中,k是大于等于1且小于等于b的整数,gk是上述扩张域K上的雅可比簇JacC的因子,vk是上述随机矩阵V的第k行向量,D是以上述多个基底因子D j为第j+1行成分的2d阶列向量,
上述密钥算出部使用上述处理装置,根据上述输出基底算出部所算出的多个输出基底gk和上述随机矩阵选择部所选择的随机矩阵V,算出用于密码运算的密钥。
9.根据权利要求8所述的密钥生成装置,其特征在于,
上述密钥生成装置还具有一致条件输入部,
上述一致条件输入部使用上述处理装置,输入表示上述多个输出基底gk中的、输出基底gμ与输出基底gν的配对值e(gμ,gν)要成为1的输出基底的组的整数组(μ,ν),
上述随机矩阵选择部使用上述处理装置,根据上述一致条件输入部所输入的整数组(μ,ν),选择满足条件m’μν=0的随机矩阵V
10.根据权利要求8所述的密钥生成装置,其特征在于,
上述密钥生成装置还具有不一致条件输入部,
上述不一致条件输入部使用上述处理装置,输入表示上述多个输出基底gk中的、输出基底gμ与输出基底gν的配对值e(gμ,gν)不会成为1的输出基底的组的整数组(μ,ν),
上述随机矩阵选择部使用上述处理装置,根据上述不一致条件输入部所输入的整数组(μ,ν),选择满足条件m’μν≠0的随机矩阵V
11.一种密码系统,其特征在于,具有权利要求1所述的密码参数设定装置和权利要求5所述的密钥生成装置,
上述基底因子存储部使用上述存储装置,存储上述密码参数设定装置所算出的多个基底因子D j
上述配对对数存储部使用上述存储装置,存储上述密码参数设定装置所算出的多个配对对数系数ηi
12.根据权利要求11所述的密码系统,其特征在于,
上述密码系统还具有密文生成装置和密文解密装置,
上述密文生成装置根据上述密码参数设定装置所设定的密码参数和上述密钥生成装置所生成的密钥,生成密文,
上述密文解密装置根据上述密码参数设定装置所设定的密码参数和上述密钥生成装置所生成的密钥,对上述密文生成装置所生成的密文进行解密。
13.根据权利要求12所述的密码系统,其特征在于,
上述密码系统具有多个密文解密装置,还具有非法者追踪装置,
上述密钥生成装置还具有公开密钥设定部、私人密钥设定部以及追踪密钥设定部,
上述公开密钥设定部设定为了由上述密文生成装置生成密文而使用的公开密钥,
上述私人密钥设定部设定多个私人密钥,该多个私人密钥用于由上述多个密文解密装置中的各个密文解密装置对上述密文生成装置所生成的密文进行解密,
上述追踪密钥设定部设定追踪密钥,该追踪密钥用于由上述非法者追踪装置判别私人密钥的泄漏源,
上述密文生成装置根据上述密钥生成装置所设定的公开密钥,生成密文,
上述多个密文解密装置分别根据上述密钥生成装置所设定的多个私人密钥中的、与上述密文解密装置的用户对应的私人密钥,对上述密文生成装置所生成的密文进行解密,
上述非法者追踪装置根据上述密钥生成装置所设定的追踪密钥,生成密文,对使盗版解密装置解密所生成的密文而得到的结果进行解析,判别上述盗版解密装置在解密密文时使用的私人密钥,其中,上述盗版解密装置是对上述密文生成装置所生成的密文进行解密的盗版解密装置。
14.根据权利要求12所述的密码系统,其特征在于,
上述密码参数设定装置是权利要求4所述的密码参数设定装置,
上述密钥生成装置是权利要求8所述的密钥生成装置,
上述随机因子选择部使用上述处理装置,从有限域Fp上的超椭圆曲线C:Y2=X5+1的雅可比簇JacC的多个因子中选择随机因子D,其中,将素数p除以5得到的余数a是2或3,
上述随机矩阵选择部使用上述处理装置,选择满足条件m’12=m’21=m’34=m’43=m’14=m’41=m’23=m’32=0,m’11≠0,m’22≠0,m’33≠0,m’44≠0的4行4列的随机矩阵V
上述输出基底算出部使用上述处理装置,根据上述基底因子存储部所存储的多个基底因子D j和上述随机矩阵选择部所算出的随机矩阵V,算出四个输出基底gk=vk·D,其中,k是大于等于1且小于等于4的整数,
上述密钥算出部具有:用户人数输入部、公开行基底算出部、公开列基底算出部、行随机数生成部、列随机数生成部、配对随机数生成部、共用随机数生成部、公开共用因子算出部、公开行第一因子算出部、公开行第二因子算出部、公开配对值算出部、公开列因子算出部、公开密钥设定部、私人因子算出部以及私人密钥设定部,
上述用户人数输入部使用上述处理装置,输入表示用户数量n的整数n1和整数n2,其中,n=n1n2
上述公开行基底算出部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g1和输出基底g2,算出上述雅可比簇JacC的因子g=g1+g2
上述公开列基底算出部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g3和输出基底g4,算出上述雅可比簇JacC的因子h=g3+g4
上述行随机数生成部使用上述处理装置,根据上述用户人数输入部所输入的整数n1,随机地生成n1个随机数rx,其中,x是大于等于1且小于等于n1的整数,随机数rx是大于等于1且小于等于r-1的整数,
上述列随机数生成部使用上述处理装置,根据上述用户人数输入部所输入的整数n2,随机地生成n2个随机数cy,其中,y是大于等于1且小于等于n2的整数,随机数cy是大于等于1且小于等于r-1的整数,
上述配对随机数生成部使用上述处理装置,根据上述用户人数输入部所输入的整数n1,随机地生成n1个随机数αx其中,x是大于等于1且小于等于n1的整数,随机数αx是大于等于1且小于等于r-1的整数,
上述共用随机数生成部使用上述处理装置,随机地生成随机数β,其中,随机数β是大于等于1且小于等于r-1的整数,
上述公开共用因子算出部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g2和上述共用随机数生成部所生成的随机数β,算出上述雅可比簇JacC的因子E=β·g2
上述公开行第一因子算出部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g2、上述行随机数生成部所生成的n1个随机数rx以及上述共用随机数生成部所生成的随机数β,算出上述雅可比簇JacC的n1个因子Ex=β·rx·g2,其中,x是大于等于1且小于等于n1的整数,
上述公开行第二因子算出部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g4、上述行随机数生成部所生成的n1个随机数rx以及上述共用随机数生成部所生成的随机数β,算出上述雅可比簇JacC的n1个因子Fx=β·rx·g4,其中,x是大于等于1且小于等于n1的整数,
上述公开配对值算出部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g2、上述配对随机数生成部所生成的n1个随机数αx以及上述共用随机数生成部所生成的随机数β,算出n1个配对值Gx=e(g4,g4)β·αx,其中,配对e是e(D,D’)=ew(D,φ(D’)),eW是韦伊配对,φ是上述雅可比簇JacC上的能够计算的同态型映射,
上述公开列因子算出部使用上述处理装置,根据上述公开行基底算出部所算出的因子g和上述列随机数生成部所生成的n2个随机数cy,算出上述雅可比簇JacC的n2个因子Hy=cy·g,其中,y是大于等于1且小于等于n2的整数,
上述公开密钥设定部使用上述处理装置,根据上述公开行基底算出部所算出的因子g、上述公开列基底算出部所算出的因子h、上述公开共用因子算出部所算出的因子E、上述公开行第一因子算出部所算出的n1个因子Ex、上述公开行第二因子算出部所算出的n1个因子Fx、上述公开配对值算出部所算出的n1个配对值Gx以及上述公开列因子算出部所算出的n2个因子Hy,设定公开密钥PK=(g,h,E,Ex,Fx,Gx,Hy),其中,x是大于等于1且小于等于n1的整数,y是大于等于1且小于等于n2的整数,
上述私人因子算出部使用上述处理装置,根据上述公开行基底算出部所算出的因子g、上述行随机数生成部所生成的n1个随机数rx、上述列随机数生成部所生成的n2个随机数cy以及上述配对随机数生成部所生成的n1个随机数αx,算出n个因子Kx,y=αx·g+rxcy·g,其中,x是大于等于1且小于等于n1的整数,y是大于等于1且小于等于n2的整数,
上述私人密钥设定部使用上述处理装置,根据上述私人因子算出部所算出的n个因子Kx,y,设定与n名用户分别对应的n个私人密钥SKx,y=(Kx,y),
上述密文生成装置具有:处理数据的处理装置、公开密钥输入部、明文输入部、密码共用随机数生成部、密码列随机数生成部、密码行随机数生成部、密码行第一因子算出部、密码行第二因子算出部、密码行第三因子算出部、加密密钥算出部、明文加密部、行密文设定部、密码列第一因子算出部、密码列第二因子算出部以及列密文设定部,
上述公开密钥输入部使用上述处理装置,输入上述密钥生成装置所设定的公开密钥PK=(g,h,E,Ex,Fx,Gx,Hy),
上述明文输入部使用上述处理装置,输入要加密的明文M,
上述密码共用随机数生成部使用上述处理装置,随机地生成随机数t,其中,随机数t是大于等于1且小于等于r-1的整数,
上述密码列随机数生成部使用上述处理装置,生成n2个以下的随机数wy,其中,y是大于等于1且小于等于n2的整数,随机数wy是大于等于1且小于等于r-1的整数,
上述密码行随机数生成部使用上述处理装置,生成n1个以下的随机数sx,其中,x是大于等于1且小于等于n1的整数,随机数sx是大于等于1且小于等于r-1的整数,
上述密码行第一因子算出部使用上述处理装置,根据包含在上述公开密钥输入部所输入的公开密钥PK中的n1个因子Ex和上述密码行随机数生成部所生成的n1个以下的随机数sx,算出雅可比簇JacC的n1个以下的因子Rx=sx·Ex,其中,x是大于等于1且小于等于n1的整数,
上述密码行第二因子算出部使用上述处理装置,根据包含在上述公开密钥输入部所输入的公开密钥PK中的n1个因子Fx和上述密码行随机数生成部所生成的n1个以下的随机数sx,算出雅可比簇JacC的n1个以下的因子R x=sx·Fx,其中,x是大于等于1且小于等于n1的整数,
上述密码行第三因子算出部使用上述处理装置,根据包含在上述公开密钥输入部所输入的公开密钥PK中的因子E、上述密码共用随机数生成部所生成的随机数t以及上述密码行随机数生成部所生成的n1个以下的随机数sx,算出雅可比簇JacC的n1个以下的因子Ax=sxt·E,其中,x是大于等于1且小于等于n1的整数,
上述加密密钥算出部使用上述处理装置,根据包含在上述公开密钥输入部所输入的公开密钥PK中的n1个配对值Gx、上述密码共用随机数生成部所生成的随机数t以及上述密码行随机数生成部所生成的n1个以下的随机数sx,算出n1个以下的配对值CKx=Gx s x t,其中,x是大于等于1且小于等于n1的整数,
上述明文加密部使用上述处理装置,根据上述明文输入部所输入的明文M和上述加密密钥算出部所算出的n1个以下的配对值CKx,将上述n1个以下的配对值CKx分别用作加密密钥来对上述明文M进行加密,生成n1个以下的密文Bx,其中,x是大于等于1且小于等于n1的整数,
上述行密文设定部使用上述处理装置,根据上述密码行第一因子算出部所算出的n1个以下的因子Rx、上述密码行第二因子算出部所算出的n1个以下的因子R x、上述密码行第三因子算出部所算出的n1个以下的因子Ax以及上述明文加密部所生成的n1个以下的密文Bx,设定n1个以下的行密文CTx=(Rx,R x,Ax,Bx),其中,x是大于等于1且小于等于n1的整数,
上述密码列第一因子算出部使用上述处理装置,根据包含在上述公开密钥输入部所输入的公开密钥PK中的因子h和因子Hy、上述密码共用随机数生成部所生成的随机数t以及上述密码列随机数生成部所生成的随机数wy,算出雅可比簇JacC的n2个以下的因子Cy=t·Hy+wy·h,其中,y是大于等于1且小于等于n2的整数,
上述密码列第二因子算出部使用上述处理装置,根据包含在上述公开密钥输入部所输入的公开密钥PK中的因子g和上述密码列随机数生成部所生成的随机数wy,算出雅可比簇JacC的n2个以下的因子C y=wy·g,其中,y是大于等于1且小于等于n2的整数,
上述列密文设定部使用上述处理装置,根据上述密码列第一因子算出部所算出的n2个以下的因子Cy和上述密码列第二因子算出部所算出的n2个以下的因子C y,设定n2个以下的列密文CTy=(Cy,C y),其中,y是大于等于1且小于等于n2的整数,
上述密文解密装置具有:存储数据的存储装置、处理数据的处理装置、私人密钥存储部、行密文输入部、列密文输入部、解密密钥算出部以及密文解密部,
上述私人密钥存储部使用上述存储装置,存储上述密钥生成装置所设定的n个私人密钥SKx,y中的、与对应于上述密文解密装置的用户的规定的索引X和Y所对应的私人密钥SKX,Y=(KX,Y),其中,X是大于等于1且小于等于n1的整数,Y是大于等于1且小于等于n2的整数,
上述行密文输入部使用上述处理装置,输入上述密文生成装置所设定的n1个以下的行密文CTx中的、与上述索引X对应的行密文CTX=(RX,R X,AX,BX),
上述列密文输入部使用上述处理装置,输入上述密文生成装置所设定的n2个以下的列密文CTy中的、与上述索引Y对应的列密文CTY=(CY,C Y),
上述解密密钥算出部使用上述处理装置,根据上述私人密钥存储部所存储的私人密钥SKX,Y、包含在上述行密文输入部所输入的行密文CTX中的因子RX、因子R X及因子AX、包含在上述列密文输入部所输入的列密文CTY中的因子CY和因子C Y,算出配对值CK’=e(KX,Y,AX)·e(R X,C Y)/e(CY,RX),
上述密文解密部使用上述处理装置,根据包含在上述行密文输入部所输入的行密文CTX中的密文BX以及上述解密密钥算出部所算出的配对值CK’,将上述配对值CK’用作解密密钥来对上述密文BX进行解密,生成解密文M’。
15.根据权利要求14所述的密码系统,其特征在于,
上述密码系统具有多个密文解密装置,还具有非法者追踪装置,
上述密钥算出部还具有追踪密钥设定部,
上述追踪密钥设定部使用上述处理装置,根据上述输出基底算出部所算出的四个输出基底gk、上述行随机数生成部所生成的n1个随机数rx、上述配对随机数生成部所生成的n1个随机数αx以及上述列随机数生成部所生成的n2个随机数cy,设定追踪密钥TK=(gk,rx,αx,cy),其中,k是大于等于1且小于等于4的整数,x是大于等于1且小于等于n1的整数,y是大于等于1且小于等于n2的整数,
上述非法者追踪装置具有:存储数据的存储装置、处理数据的处理装置、追踪密钥存储部、目标决定部、追踪明文生成部、追踪共用随机数生成部、追踪列随机数生成部、追踪行随机数生成部、干扰行随机数生成部、干扰列随机数生成部、追踪行第一因子算出部、追踪行第二因子算出部、追踪行第三因子算出部、追踪加密密钥算出部、追踪明文加密部、追踪行密文设定部、追踪列第一因子算出部、追踪列第二因子算出部、追踪列密文设定部、解密文输入部以及泄漏源判别部,
上述追踪密钥存储部使用上述存储装置,存储密钥生成装置所设定的追踪密钥TK=(gk,rx,αx,cy),
上述目标决定部使用上述处理装置,将上述索引x分类为三个组,使用上述处理装置,将上述索引y分类为两个组,
上述追踪明文生成部使用上述处理装置,生成明文M,
上述追踪共用随机数生成部使用上述处理装置,随机地生成随机数t,其中,随机数t是大于等于1且小于等于r的整数,
上述追踪列随机数生成部使用上述处理装置,随机地生成n2个以下的随机数wy,其中,y是大于等于1且小于等于n2的整数,随机数wy是大于等于1且小于等于r-1的整数,
上述追踪行随机数生成部使用上述处理装置,随机地生成n1个以下的随机数sx,其中,x是大于等于1且小于等于n1的整数,随机数sx是大于等于1且小于等于r-1的整数,
上述干扰行随机数生成部使用上述处理装置,随机地生成:n1个以下的随机数vx,1,其中,x是大于等于1且小于等于n1的整数,随机数vx,1是大于等于1且小于等于r-1的整数;n1个以下的随机数vx,2,其中,x是大于等于1且小于等于n1的整数,随机数vx,2是大于等于1且小于等于r-1的整数;以及n1个以下的随机数vx,3,其中,x是大于等于1且小于等于n1的整数,随机数vx,3是大于等于1且小于等于r-1的整数,
上述干扰列随机数生成部使用上述处理装置,随机地生成n2个以下的随机数zp,y,其中,y是大于等于1且小于等于n2的整数,随机数zp,y是大于等于1且小于等于r-1的整数,
上述追踪行第一因子算出部使用上述处理装置,根据包含在上述追踪密钥存储部所存储的追踪密钥TK中的因子g1、因子g2及n1个随机数rx、上述目标决定部对索引x进行分类得到的三个组、上述追踪行随机数生成部所生成的n1个以下的随机数sx以及上述干扰行随机数生成部所生成的n1个以下的随机数vx,1,关于属于上述三个组中的第一组的索引x,算出因子Rx=sxrx·g2,其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第二组的索引x,算出因子Rx=sxrx·(g1+g2),其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第三组的索引x,算出因子Rx=vx,1·(g1+g2),其中,x是大于等于1且小于等于n1的整数,
上述追踪行第二因子算出部使用上述处理装置,根据包含在上述追踪密钥存储部所存储的追踪密钥TK中的因子g3、因子g4及n1个随机数rx、上述目标决定部对索引x进行分类得到的三个组、上述追踪行随机数生成部所生成的n1个以下的随机数sx以及上述干扰行随机数生成部所生成的n1个以下的随机数vx,1,关于属于上述三个组中的第一组的索引x,算出因子R x=sxrx·g4,其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第二组的索引x,算出因子R x=sxrx·(g3+g4),其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第三组的索引x,算出因子R x=vx,1·(g3+g4),其中,x是大于等于1且小于等于n1的整数,
上述追踪行第三因子算出部使用上述处理装置,根据包含在上述追踪密钥存储部所存储的追踪密钥TK中的因子g1及因子g2、上述目标决定部对索引x进行分类得到的三个组、上述追踪共用随机数生成部所生成的随机数t、上述追踪行随机数生成部所生成的n1个以下的随机数sx以及上述干扰行随机数生成部所生成的n1个以下的随机数vx,2,关于属于上述三个组中的第一组的索引x,算出因子Ax=sxt·g2,其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第二组的索引x,算出因子Ax=sxt·(g1+g2),其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第三组的索引x,算出因子Ax=vx,2·(g1+g2),其中,x是大于等于1且小于等于n1的整数,
上述追踪加密密钥算出部使用上述处理装置,根据包含在上述追踪密钥存储部所存储的追踪密钥TK中的因子g1、因子g2及n1个随机数αx、上述目标决定部对索引x进行分类得到的三个组、上述追踪行随机数生成部所生成的n1个以下的随机数sx以及上述干扰行随机数生成部所生成的n1个以下的随机数vx,3,关于属于上述三个组中的第一组的索引x,算出配对值CKx=e(g2,g2)α x s x t,其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第二组的索引x,算出配对值CKx=e(g1+g2,g1+g2)α x s x t,其中,x是大于等于1且小于等于n1的整数,关于属于上述三个组中的第三组的索引x,算出配对值CKx=e(g1+g2,g1+g2)v x,2,其中,x是大于等于1且小于等于n1的整数,
上述追踪明文加密部使用上述处理装置,根据上述追踪加密密钥算出部所算出的n1个以下的配对值CKx和上述追踪明文生成部所生成的明文M,将上述n1个以下的配对值CKx分别用作加密密钥来对上述明文M进行加密,生成n1个以下的密文Bx,其中,x是大于等于1且小于等于n1的整数,
上述追踪行密文设定部使用上述处理装置,根据上述追踪行第一因子算出部所算出的n1个以下的因子Rx、上述追踪行第二因子算出部所算出的n1个以下的因子R x、上述追踪行第三因子算出部所算出的n1个以下的因子Ax以及上述追踪明文加密部所生成的n1个以下的密文Bx,设定n1个以下的行密文CTx=(Rx,R x,Ax,Bx),其中,x是大于等于1且小于等于n1的整数,
上述追踪列第一因子算出部使用上述处理装置,根据包含在上述追踪密钥存储部所存储的追踪密钥TK中的因子g1、因子g2、因子g3、因子g4及n2个随机数cy、上述目标决定部对索引y进行分类得到的两个组、上述追踪共用随机数生成部所生成的随机数t、上述追踪列随机数生成部所生成的n2个以下的随机数wy以及上述干扰列随机数生成部所生成的n2个以下的随机数zp,y,关于属于上述两个组中的第一组的索引y,算出因子Cy=tcy·(g1+g2)+wy·(g3+g4),其中,y是大于等于1且小于等于n2的整数,关于属于上述两个组中的第二组的索引y,算出因子Cy=tcy·(g3+g4)+zp,y·g1+wy·(g3+g4),其中,y是大于等于1且小于等于n2的整数,
上述追踪列第二因子算出部使用上述处理装置,根据包含在追踪密钥存储部所存储的追踪密钥TK中的因子g1及因子g2、上述追踪列随机数生成部所生成的n2个以下的随机数wy,算出n2个以下的因子C y=wy·(g1+g2),其中,y是大于等于1且小于等于n2的整数,
上述追踪列密文设定部使用上述处理装置,根据上述追踪列第一因子算出部所算出的n2个以下的因子Cy以及上述追踪列第二因子算出部所算出的n2个以下的因子C y,设定n2个以下的列密文CTy=(Cy,C y),其中,y是大于等于1且小于等于n2的整数,
上述解密文输入部使用上述处理装置,输入由盗版解密装置对包含上述追踪行密文设定部所设定的n1个以下的行密文CTx和上述追踪列密文设定部所设定的n2个以下的列密文CTy的密文进行解密而生成的解密文M’,其中,上述盗版解密装置是对由上述密文生成装置所生成的密文进行解密的盗版解密装置,
上述泄漏源判别部使用上述处理装置,将上述追踪明文生成部所生成的明文M与上述解密文输入部所输入的解密文M’进行比较,来判别上述盗版解密装置在解密中使用的私人密钥Kx,y
16.根据权利要求11所述的密码系统,其特征在于,
上述密码系统还具有:签名密钥发行装置、多个签名装置、签名验证装置以及签名者追踪装置,
上述签名密钥发行装置根据密码参数设定装置所设定的密码参数和上述密钥生成装置所生成的密钥,生成分别与上述多个签名装置对应的多个签名密钥,
上述多个签名装置中的至少某一个签名装置使用上述签名密钥发行装置所生成的多个签名密钥中的、与上述签名装置对应的签名密钥,生成签名,
上述签名验证装置使用上述密码参数设定装置所设定的密码参数和上述密钥生成装置所生成的密钥,验证上述签名装置所生成的签名,
上述签名者追踪装置使用上述密码参数设定装置所设定的密码参数和上述密钥生成装置所生成的密钥,解析上述签名装置所生成的签名,判别生成了上述签名的签名装置。
17.根据权利要求11所述的密码系统,其特征在于,
上述密码参数设定装置是权利要求4所述的密码参数设定装置,
上述密钥生成装置是权利要求8所述的密钥生成装置,
上述随机因子选择部使用上述处理装置,从有限域Fp上的超椭圆曲线C:Y2=X5+1的雅可比簇JacC的多个因子中选择随机因子D,其中,将素数p除以5得到的余数a是2或3,
上述随机矩阵选择部使用上述处理装置,选择满足条件m’12=m’21=0,m’11≠0,m’22≠0的2行2列的随机矩阵V
上述输出基底算出部使用上述处理装置,根据上述基底因子存储部所存储的多个基底因子D j和上述随机矩阵选择部所算出的随机矩阵V,算出两个输出基底gk=vk·D,其中,k是大于等于1且小于等于2的整数,
上述密钥算出部具有:比特长度输入部、基底随机数生成部、配对随机数生成部、主随机数生成部、公开基底算出部、公开第一因子算出部、公开配对值算出部、公开第二因子生成部、公开第三因子生成部、公开比特因子生成部、主因子算出部、公开密钥设定部、主密钥设定部以及追踪密钥设定部,
上述比特长度输入部使用上述处理装置,输入进行签名的消息的比特长度m,
上述基底随机数生成部使用上述处理装置,随机地生成随机数β,其中,随机数β是大于等于1且小于等于r-1的整数,
上述配对随机数生成部使用上述处理装置,随机地生成随机数α,其中,随机数α是大于等于1且小于等于r-1的整数,
上述主随机数生成部使用上述处理装置,随机地生成随机数ω,其中,随机数ω是大于等于1且小于等于r-1的整数,
上述公开基底算出部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g1和输出基底g2、上述基底随机数生成部所生成的随机数β,算出上述雅可比簇JacC的因子g=g2+β·g1
上述公开第一因子算出部使用上述处理装置,根据上述主随机数生成部所生成的随机数ω和上述公开基底算出部所算出的因子g,算出上述雅可比簇JacC的因子Ω=ω·g,
上述公开配对值算出部使用上述处理装置,根据上述配对随机数生成部所生成的随机数α和上述公开基底算出部所算出的因子g,算出配对值A=e(g,g)α
上述公开第二因子生成部使用上述处理装置,随机地生成上述雅可比簇JacC的因子u,
上述公开第三因子生成部使用上述处理装置,随机地生成上述雅可比簇JacC的因子v’,
上述公开比特因子生成部使用上述处理装置,根据上述比特长度输入部所输入的比特长度m,随机地生成上述雅可比簇JacC的m个因子vi,其中,i是大于等于1且小于等于m的整数,
上述主因子算出部使用上述处理装置,根据上述配对随机数生成部所生成的随机数α和上述公开基底算出部所算出的因子g,算出上述雅可比簇JacC的因子g’=α·g,
上述公开密钥设定部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g1、上述公开基底算出部所算出的因子g、上述公开第一因子算出部所算出的因子Ω、上述公开配对值算出部所算出的配对值A、上述公开第二因子生成部所生成的因子u、上述公开第三因子生成部所生成的因子v’以及上述公开比特因子生成部所生成的m个因子vi,设定公开密钥PK=(g1,g,Ω,A,u,v’,vi),其中,i是大于等于1且小于等于m的整数,
上述主密钥设定部使用上述处理装置,根据上述主随机数生成部所生成的随机数ω和上述主因子算出部所算出的因子g’,设定主密钥MK=(ω,g’),
上述追踪密钥设定部使用上述处理装置,根据上述输出基底算出部所算出的输出基底g2,设定追踪密钥TK=(g2),
上述签名密钥发行装置具有:存储数据的存储装置、处理数据的处理装置、主密钥存储部、发行公开密钥输入部、标识符生成部、签名第一密钥算出部、签名第二密钥算出部、签名第三密钥算出部、签名密钥设定部以及标识符设定部,
上述主密钥存储部使用上述存储装置,存储上述密钥生成装置所设定的主密钥MK=(ω,g’),
上述发行公开密钥输入部使用上述处理装置,输入上述密钥生成装置所设定的公开密钥PK=(g1,g,Ω,A,u,v’,vi),
上述标识符生成部使用上述处理装置,随机地生成标识符sID,其中,标识符sID是大于等于1且小于等于r-1的整数,
上述签名第一密钥算出部使用上述处理装置,根据包含在上述主密钥存储部所存储的主密钥MK中的随机数ω和因子g’、上述标识符生成部所生成的标识符sID,算出上述雅可比簇JacC的因子K1={1/(ω+sID)}·g’,
上述签名第二密钥算出部使用上述处理装置,根据包含在上述发行公开密钥输入部所存储的公开密钥PK中的因子g和上述标识符生成部所生成的标识符sID,算出上述雅可比簇JacC的因子K2=sID·g,
上述签名第三密钥算出部使用上述处理装置,根据包含在上述发行公开密钥输入部所存储的公开密钥PK中的因子u和上述标识符生成部所生成的标识符sID,算出上述雅可比簇JacC的因子K3=sID·u,
上述签名密钥设定部使用上述处理装置,根据上述签名第一密钥算出部所算出的因子K1、上述签名第二密钥算出部所算出的因子K2以及上述签名第三密钥算出部所算出的因子K3,设定签名密钥SK=(K1,K2,K3),
上述标识符设定部使用上述处理装置,将上述标识符生成部所生成的标识符sID设定为用于识别上述签名密钥设定部所设定的签名密钥SK的标识符,
上述签名装置具有:存储数据的存储装置、处理数据的处理装置、签名密钥存储部、签名公开密钥输入部、签名消息输入部、签名消息因子算出部、签名第一随机数生成部、签名第二随机数生成部、签名第一因子算出部、签名第二因子算出部、签名第三因子算出部、签名第四因子算出部、签名第五因子算出部、签名第六因子算出部以及签名输出部,
上述签名密钥存储部使用上述存储装置,存储上述密钥生成装置所设定的签名密钥SK=(K1,K2,K3),
上述签名公开密钥输入部使用上述处理装置,输入上述密钥生成装置所设定的公开密钥PK=(g1,g,Ω,A,u,v’,vi),
上述签名消息输入部使用上述处理装置,输入进行签名的消息M,
上述签名消息因子算出部使用上述处理装置,根据包含在上述签名公开密钥输入部所输入的公开密钥PK中的因子v’和m个因子vi、上述签名消息输入部所输入的消息M,算出上述雅可比簇JacC的因子v=v’+∑(μi·vi),其中,i是大于等于1且小于等于m的整数,μi是表示上述消息M的第i个比特的0或1的整数,
上述签名第一随机数生成部使用上述处理装置,生成随机数s,其中,随机数s是大于等于1且小于等于r-1的整数,
上述签名第二随机数生成部使用上述处理装置,随机地生成四个随机数tj,其中,j是大于等于1且小于等于4的整数,随机数tj是大于等于1且小于等于r-1的整数,
上述签名第一因子算出部使用上述处理装置,根据包含在上述签名公开密钥输入部所输入的公开密钥PK中的因子g1、包含在上述签名密钥存储部所存储的签名密钥SK中的因子K1以及上述签名第二随机数生成部所生成的随机数t1,算出上述雅可比簇JacC的因子σ1=K1+t1·g1
上述签名第二因子算出部使用上述处理装置,根据包含在上述签名公开密钥输入部所输入的公开密钥PK中的因子g1、包含在上述签名密钥存储部所存储的签名密钥SK中的因子K2以及上述签名第二随机数生成部所生成的随机数t2,算出上述雅可比簇JacC的因子σ2=K2+t2·g1
上述签名第三因子算出部使用上述处理装置,根据包含在上述签名公开密钥输入部所输入的公开密钥PK中的因子g1、包含在上述签名密钥存储部所存储的签名密钥SK中的因子K3、上述签名消息因子算出部所算出的因子v、上述签名第一随机数生成部所生成的随机数s以及上述签名第二随机数生成部所生成的随机数t3,算出上述雅可比簇JacC的因子σ3=K3+s·v+t3·g1
上述签名第四因子算出部使用上述处理装置,根据包含在上述签名公开密钥输入部所输入的公开密钥PK中的因子g和因子g1、上述签名第一随机数生成部所生成的随机数s以及上述签名第二随机数生成部所生成的随机数t4,算出上述雅可比簇JacC的因子σ4=-s·g+t4·g1
上述签名第五因子算出部使用上述处理装置,根据包含在上述签名公开密钥输入部所输入的公开密钥PK中的因子g1和因子Ω、包含在上述签名密钥存储部所存储的签名密钥SK中的因子K1和因子K2以及上述签名第二随机数生成部所生成的随机数t1和随机数t2,算出上述雅可比簇JacC的因子π1=t1t2·g1+t2·K1+t1·(K2+Ω),
上述签名第六因子算出部使用上述处理装置,根据包含在上述签名公开密钥输入部所输入的公开密钥PK中的因子g和因子u、上述签名消息因子算出部所算出的因子v以及上述签名第二随机数生成部所生成的随机数t2、随机数t3和随机数t4,算出上述雅可比簇JacC的因子π2=t2·u-t3·g-t4·v,
上述签名输出部使用上述处理装置,根据上述签名第一因子算出部所算出的因子σ1、上述签名第二因子算出部所算出的因子σ2、上述签名第三因子算出部所算出的因子σ3、上述签名第四因子算出部所算出的因子σ4、上述签名第五因子算出部所算出的因子π1以及上述签名第六因子算出部所算出的因子π2,输出签名σ=(σ1,σ2,σ3,σ4,π1,π2),
上述签名验证装置具有:处理数据的处理装置、验证公开密钥输入部、验证签名输入部、验证消息输入部、验证消息因子算出部、签名第一验证值算出部、签名第二验证值算出部、签名第三验证值算出部、签名第四验证值算出部以及签名验证判断部,
上述验证公开密钥输入部使用上述处理装置,输入上述密钥生成装置所设定的公开密钥PK=(g1,g,Ω,A,u,v’,vi),
上述验证签名输入部使用上述处理装置,输入上述签名装置所输出的签名σ=(σ1,σ2,σ3,σ4,π1,π2),
上述验证消息输入部使用上述处理装置,输入通过上述签名σ进行签名的消息M,
上述验证消息因子算出部使用上述处理装置,根据包含在上述验证公开密钥输入部所输入的公开密钥PK中的因子v’和m个因子vi、上述验证消息输入部所输入的消息M,算出上述雅可比簇JacC的因子v=v’+∑(μi·vi),其中,i是大于等于1且小于等于m的整数,μi是表示上述消息M的第i个比特的0或1的整数,
上述签名第一验证值算出部使用上述处理装置,根据包含在上述验证公开密钥输入部所输入的公开密钥PK中的因子g1和包含在上述验证签名输入部所输入的签名σ中的因子π1,算出配对值C=e(g1,π1),
上述签名第二验证值算出部使用上述处理装置,根据包含在上述验证公开密钥输入部所输入的公开密钥PK中的因子Ω和配对值A以及包含在上述验证签名输入部所输入的签名σ中的因子σ1和因子σ2,算出配对值C’=e(σ1,σ2+Ω)/A,
上述签名第三验证值算出部使用上述处理装置,根据包含在上述验证公开密钥输入部所输入的公开密钥PK中的因子g1和包含在上述验证签名输入部所输入的签名σ中的因子π2,算出配对值D=e(g1,π2),
上述签名第四验证值算出部使用上述处理装置,根据包含在上述验证公开密钥输入部所输入的公开密钥PK中的因子u和因子g、包含在上述验证签名输入部所输入的签名σ中的因子σ2、因子σ3和因子σ4以及上述验证消息因子算出部所算出的因子v,算出配对值D’=e(σ2,u)/{e(g,σ3)·e(σ4,v)},
上述签名验证判断部使用上述处理装置,根据上述签名第一验证值算出部所算出的配对值C、上述签名第二验证值算出部所算出的配对值C’、上述签名第三验证值算出部所算出的配对值D以及上述签名第四验证值算出部所算出的配对值D’,判断上述配对值C与上述配对值C’是否相等以及上述配对值D与上述配对值D’是否相等,在判断为上述配对值C与上述配对值C’相等并且上述配对值D与上述配对值D’相等的情况下,判断为上述验证签名输入部所输入的签名σ有效,
上述签名者追踪装置具有:存储数据的存储装置、处理数据的处理装置、追踪密钥存储部、标识符存储部、追踪签名输入部、签名配对值算出部、标识符配对值算出部以及签名者判别部,
上述追踪密钥存储部使用上述存储装置,存储上述密钥生成装置所设定的追踪密钥TK=(g2),
上述标识符存储部使用上述存储装置,存储用于识别上述签名密钥发行装置所发行的签名密钥SK的标识符sID
上述追踪签名输入部使用上述处理装置,输入上述签名装置所输出的签名σ,
上述签名配对值算出部使用上述处理装置,根据包含在上述追踪密钥存储部所存储的追踪密钥TK中的因子g2和包含在上述追踪签名输入部所输入的签名σ中的因子σ2,算出配对值E=e(g2,σ2)
上述标识符配对值算出部使用上述处理装置,根据包含在上述追踪密钥存储部所存储的追踪密钥TK中的因子g2和上述标识符存储部所存储的标识符sID,算出配对值EID=e(g2,g2)s ID
上述签名者判别部使用上述处理装置,从上述标识符配对值算出部所算出的配对值EID中查找与上述签名配对值算出部所算出的配对值E一致的配对值,由此判别生成了上述追踪签名输入部所输入的签名σ的签名密钥SK的标识符。
18.一种密码参数设定方法,由具有对数据进行处理的处理装置的密码参数设定装置设定用于密码运算的密码参数,该密码参数设定方法的特征在于,
上述处理装置从循环群G’的多个要素中选择要素来作为随机因子D
上述处理装置根据所选择的随机因子D,利用多个映射Gj对上述随机因子D进行映射,算出多个基底因子D j,其中,上述多个映射Gj是从上述循环群G’向多个循环群G’j中的各个循环群的同态型映射,
上述处理装置算出群G中的上述多个基底因子D j间的配对值的对数来作为多个配对对数系数ηi,其中,上述群G是上述多个循环群G’j的直积,能够计算通过包含在上述群G中的两个要素间的双线性配对运算的配对值,
上述处理装置将算出的多个基底因子D j和算出的多个配对对数系数ηi设为上述密码参数。
19.一种密码参数设定方法,由具有对数据进行处理的处理装置的密码参数设定装置设定用于密码运算的密码参数,该密码参数设定方法的特征在于,
上述处理装置从有限域Fp上的亏格d的超椭圆曲线C的雅可比簇JacC的多个因子中随机地选择随机因子D,其中,上述有限域Fp的阶数p是素数,上述亏格d是大于等于2的整数,
上述处理装置根据所选择的随机因子D,算出多个基底因子D j
上述处理装置算出多个离散对数lκ,其中,κ是大于等于1且小于等于2d-1的整数,离散对数lκ是大于等于0且小于等于2d-1的整数,
上述处理装置根据所算出的多个离散对数lκ,算出多个配对对数系数ηi,其中,i是大于等于0且小于等于2d-1的整数,配对对数系数ηi是大于等于0且小于等于r-1的整数,r是上述雅可比簇JacC的多个因子的阶数,
上述处理装置根据算出的多个基底因子D j和算出的多个配对对数系数ηi,设定上述密码参数。
20.一种密钥生成方法,由具有对数据进行处理的处理装置和存储数据的存储装置的密钥生成装置生成用于密码运算的密钥,该密钥生成方法的特征在于,
上述存储装置将群G的多个要素作为多个基底因子D j来进行存储,其中,上述群G是阶数相同的多个循环群的直积,能够计算通过包含在上述群G中的两个要素间的双线性配对运算的配对值,上述多个基底因子D j相互线性独立,
上述存储装置将上述多个基底因子D j间的配对值的对数作为多个配对对数系数ηi来进行存储,
上述处理装置根据上述存储装置所存储的多个基底因子D j和上述存储装置所存储的多个配对对数系数ηi,算出作为上述群G的要素的多个输出基底gk,其中,上述多个输出基底gk中的至少某两个输出基底gk间的配对值为1,
上述处理装置根据所算出的多个输出基底,算出上述密钥。
21.一种密钥生成方法,由具有对数据进行处理的处理装置和存储数据的存储装置的密钥生成装置生成用于密码运算的密钥,该密钥生成方法的特征在于,
上述存储装置存储对有限域Fp进行有限代数扩张得到的扩张域K上的亏格d的代数曲线C的雅可比簇JacC的多个基底因子D j以及表示上述多个基底因子间的配对值的关系的多个配对对数系数ηi,其中,上述有限域Fp的阶数p是素数,上述亏格d是大于等于2的整数,w是素数,w=2d+1,
上述处理装置根据上述存储装置所存储的多个配对对数系数ηi,随机地选择满足规定条件的随机矩阵V
上述处理装置根据上述存储装置所存储的多个基底因子D j和所选择的随机矩阵V,算出多个输出基底gk
上述处理装置根据所算出的多个输出基底gk,算出上述密钥。
CN2008801249620A 2008-01-18 2008-01-18 密码参数设定装置、密钥生成装置、密码系统、密码参数设定方法和密钥生成方法 Expired - Fee Related CN101911582B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/050582 WO2009090750A1 (ja) 2008-01-18 2008-01-18 暗号パラメータ設定装置及び鍵生成装置及び暗号システム及びプログラム及び暗号パラメータ設定方法及び鍵生成方法

Publications (2)

Publication Number Publication Date
CN101911582A CN101911582A (zh) 2010-12-08
CN101911582B true CN101911582B (zh) 2012-09-05

Family

ID=40885160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008801249620A Expired - Fee Related CN101911582B (zh) 2008-01-18 2008-01-18 密码参数设定装置、密钥生成装置、密码系统、密码参数设定方法和密钥生成方法

Country Status (5)

Country Link
US (1) US8401179B2 (zh)
EP (1) EP2234322B1 (zh)
JP (1) JP5094882B2 (zh)
CN (1) CN101911582B (zh)
WO (1) WO2009090750A1 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009278223A (ja) * 2008-05-13 2009-11-26 Panasonic Corp 電子証明システム及び秘匿通信システム
US8819847B2 (en) * 2008-07-18 2014-08-26 Bank Of America Corporation Associating a unique identifier and a hierarchy code with a record
CN102308326B (zh) * 2008-08-29 2014-08-13 国立大学法人冈山大学 配对运算装置、配对运算方法
JP5349261B2 (ja) 2009-04-23 2013-11-20 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
WO2011062136A1 (ja) 2009-11-20 2011-05-26 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
US8615668B2 (en) 2010-01-15 2013-12-24 Mitsubishi Electric Corporation Confidential search system and cryptographic processing system
WO2011147092A1 (zh) * 2010-05-27 2011-12-01 华南理工大学 一种基于线性几何的等级群组密钥管理方法
US8681973B2 (en) * 2010-09-15 2014-03-25 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for performing homomorphic encryption and decryption on individual operations
WO2012057134A1 (ja) * 2010-10-26 2012-05-03 日本電信電話株式会社 代理計算システム、計算装置、能力提供装置、代理計算方法、能力提供方法、プログラム、及び記録媒体
CN102495811B (zh) * 2011-12-12 2015-04-22 创新科软件技术(深圳)有限公司 一种许可证生成及验证方法和一种存储设备
KR101329007B1 (ko) 2012-05-31 2013-11-12 삼성에스디에스 주식회사 아이디 기반 암호 시스템을 위한 비밀키 생성 장치 및 그 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US9350543B2 (en) 2012-07-26 2016-05-24 Cisco Technology, Inc. Method and system for homomorphicly randomizing an input
CN103259643B (zh) * 2012-08-14 2016-06-15 苏州大学 一种矩阵全同态加密方法
CN104871477B (zh) * 2013-01-16 2018-07-10 三菱电机株式会社 加密系统、重加密密钥生成装置、重加密装置、加密方法
CN105850071B (zh) * 2014-01-14 2019-06-25 三菱电机株式会社 加密系统、重加密密钥生成装置以及重加密装置
US10015152B2 (en) * 2014-04-02 2018-07-03 International Business Machines Corporation Securing data in a dispersed storage network
CN104052595B (zh) * 2014-05-23 2017-02-08 戴葵 密码算法定制方法
NL2013520B1 (en) * 2014-09-24 2016-09-29 Koninklijke Philips Nv Public-key encryption system.
US9553721B2 (en) * 2015-01-30 2017-01-24 Qualcomm Incorporated Secure execution environment communication
US20160352710A1 (en) 2015-05-31 2016-12-01 Cisco Technology, Inc. Server-assisted secure exponentiation
JP6266186B2 (ja) * 2015-10-08 2018-01-24 三菱電機株式会社 暗号システム、準同型署名方法及び準同型署名プログラム
GB2556902A (en) * 2016-11-24 2018-06-13 Payfont Ltd Method and system for securely storing data using a secret sharing scheme
US10218504B1 (en) 2018-02-02 2019-02-26 ISARA Corporation Public key validation in supersingular isogeny-based cryptographic protocols
US10116443B1 (en) * 2018-02-02 2018-10-30 ISARA Corporation Pairing verification in supersingular isogeny-based cryptographic protocols
JP2019160057A (ja) * 2018-03-15 2019-09-19 キヤノン株式会社 プリントサーバーと、その制御方法とプログラム
US10630476B1 (en) * 2019-10-03 2020-04-21 ISARA Corporation Obtaining keys from broadcasters in supersingular isogeny-based cryptosystems
US10880278B1 (en) 2019-10-03 2020-12-29 ISARA Corporation Broadcasting in supersingular isogeny-based cryptosystems
CN112885175B (zh) * 2021-01-15 2022-10-21 杭州安恒信息安全技术有限公司 信息安全赛题生成方法、装置、电子装置和存储介质
CN113364585B (zh) * 2021-06-04 2022-09-13 晶澄微电子(宁波)有限公司 减少模逆计算的ecc认证方法及系统
KR102496583B1 (ko) * 2021-09-17 2023-02-06 이정훈 암호화 장치 및 이를 이용한 암호화 방법

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3292107B2 (ja) * 1997-08-28 2002-06-17 日本電気株式会社 2重ベクトル加算装置、2重ベクトル2倍装置及び2重ベクトル整数倍装置
JP2000206879A (ja) * 1999-01-14 2000-07-28 Internatl Business Mach Corp <Ibm> 標数2のガロア体上で定義される超楕円曲線のヤコビ多様体の群演算を実施する装置及び方法
JP3551853B2 (ja) * 1999-08-27 2004-08-11 日本電気株式会社 αYa+βXb+1=0という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体
JP2001066989A (ja) * 1999-08-31 2001-03-16 Fuji Xerox Co Ltd 一方向性関数生成方法,一方向性関数値生成装置,証明装置,認証方法および認証装置
US7020776B2 (en) * 2000-06-22 2006-03-28 Microsoft Corporation Cryptosystem based on a Jacobian of a curve
JP2002271310A (ja) * 2001-03-09 2002-09-20 Shigeo Mitsunari 生成装置、暗号化装置、復号化装置、生成方法、暗号化方法、復号化方法、プログラム、ならびに、情報記録媒体
KR100395158B1 (ko) * 2001-07-12 2003-08-19 한국전자통신연구원 유한 비가환군을 이용한 공개키 암호 시스템
US7209555B2 (en) * 2001-10-25 2007-04-24 Matsushita Electric Industrial Co., Ltd. Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device
ES2255455B1 (es) * 2001-12-12 2007-03-01 Scytl Secure Electronic Voting, S.A. Metodo para votacion electronica segura y protocolos criptograficos empleados.
JP4304937B2 (ja) * 2002-08-21 2009-07-29 日本電気株式会社 ヤコビ群要素加算装置
US7043015B2 (en) * 2002-10-31 2006-05-09 Microsoft Corporation Methods for point compression for Jacobians of hyperelliptic curves
EP1467512B1 (en) * 2003-04-07 2008-07-23 STMicroelectronics S.r.l. Encryption process employing chaotic maps and digital signature process
US20050018851A1 (en) * 2003-06-26 2005-01-27 Microsoft Coproration Methods and apparatuses for providing blind digital signatures using curve-based cryptography
US20050018850A1 (en) * 2003-06-26 2005-01-27 Micorsoft Corporation Methods and apparatuses for providing short digital signatures using curve-based cryptography
AU2003304629A1 (en) * 2003-07-22 2005-02-04 Fujitsu Limited Tamper-resistant encryption using individual key
US7440569B2 (en) * 2003-07-28 2008-10-21 Microsoft Corporation Tate pairing techniques for use with hyperelliptic curves
US7461261B2 (en) * 2004-02-13 2008-12-02 Ecole Polytechnique Federale De Lausanne (Epel) Method to generate, verify and deny an undeniable signature
JP4599859B2 (ja) * 2004-03-12 2010-12-15 ソニー株式会社 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
JP2005316267A (ja) 2004-04-30 2005-11-10 Hitachi Ltd 楕円曲線ペアリング演算装置
JPWO2006030496A1 (ja) * 2004-09-15 2008-05-08 三菱電機株式会社 楕円曲線暗号演算装置、楕円曲線を用いた演算装置の演算方法および楕円曲線上の点のスカラー倍演算をコンピュータに実行させるプログラム
JP4752313B2 (ja) * 2004-09-30 2011-08-17 ソニー株式会社 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
US7764785B2 (en) * 2004-11-08 2010-07-27 King Fahd University Of Petroleum And Minerals Method for communicating securely over an insecure communication channel
US20060104447A1 (en) * 2004-11-12 2006-05-18 Microsoft Corporation Discrete logarithm-based cryptography using the Shafarevich-Tate group
JP2006145945A (ja) * 2004-11-22 2006-06-08 Sony Corp 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
US7594261B2 (en) * 2005-02-08 2009-09-22 Microsoft Corporation Cryptographic applications of the Cartier pairing
KR100891323B1 (ko) * 2005-05-11 2009-03-31 삼성전자주식회사 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치
US7856100B2 (en) * 2005-12-19 2010-12-21 Microsoft Corporation Privacy-preserving data aggregation using homomorphic encryption
JP4513752B2 (ja) * 2006-01-16 2010-07-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4682852B2 (ja) * 2006-01-16 2011-05-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7885406B2 (en) * 2006-10-10 2011-02-08 Microsoft Corporation Computing endomorphism rings of Abelian surfaces over finite fields
US8160245B2 (en) * 2007-03-07 2012-04-17 Research In Motion Limited Methods and apparatus for performing an elliptic curve scalar multiplication operation using splitting
JP5297688B2 (ja) * 2008-05-09 2013-09-25 株式会社日立製作所 ベクトル秘匿型内積計算システム、ベクトル秘匿型内積計算方法及び暗号鍵共有システム
US8300807B2 (en) * 2009-01-07 2012-10-30 Microsoft Corp. Computing isogenies between genus-2 curves for cryptography

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Dan Boneh等.Fully Collusion Resistant Traitor Tracing With Short Ciphertexts and Private Keys.《Eurocrypt2006》.2006,全文. *
JP特开2005-316267A 2005.11.10
Ryuichi SAKAI等.Daen Kyokusenjono Pairing ni Motozuku 2,3 no Ango Hoshiki(sono 2).《Information Processing Society of Japan Kenkyu Hokoku》.2002,第2002卷(第68期),全文. *
RyuichiSAKAI等.DaenKyokusenjonoPairingniMotozuku2 3 no Ango Hoshiki(sono 2).《Information Processing Society of Japan Kenkyu Hokoku》.2002
Steven D. Galbraith等.Distortion Maps for Genus Two Curves.《arXiv:math/0611471v1》.2006,全文. *
邹静等.一个新的前向安全签名方案.《计算机工程与科学》.2005,(第12期),全文. *

Also Published As

Publication number Publication date
CN101911582A (zh) 2010-12-08
EP2234322A1 (en) 2010-09-29
EP2234322A4 (en) 2017-06-28
JPWO2009090750A1 (ja) 2011-05-26
EP2234322B1 (en) 2019-10-02
US8401179B2 (en) 2013-03-19
JP5094882B2 (ja) 2012-12-12
WO2009090750A1 (ja) 2009-07-23
US20100329454A1 (en) 2010-12-30

Similar Documents

Publication Publication Date Title
CN101911582B (zh) 密码参数设定装置、密钥生成装置、密码系统、密码参数设定方法和密钥生成方法
CN108632032B (zh) 无密钥托管的安全多关键词排序检索系统
Li et al. A leakage-resilient CCA-secure identity-based encryption scheme
Rial et al. A provably secure anonymous buyer–seller watermarking protocol
US20050002532A1 (en) System and method of hiding cryptographic private keys
CN104067556B (zh) 用于确定自动机是否已经接受了字符串的系统
CN106571905A (zh) 一种数值型数据同态保序加密方法
CN1836396B (zh) 用于加密和/或解密数据的可追踪方法和系统
CN105162589A (zh) 一种基于格的可验证属性加密方法
Jiang et al. Ciphertext-policy attribute-based encryption with key-delegation abuse resistance
Yu et al. Accountable multi-authority ciphertext-policy attribute-based encryption without key escrow and key abuse
JP5578754B2 (ja) 暗号変換方法および装置、並びにプログラム
Sun et al. Efficient chosen ciphertext secure identity‐based encryption against key leakage attacks
Balasubramanian et al. Algorithmic strategies for solving complex problems in cryptography
Hu et al. Improving security and privacy-preserving in multi-authorities ciphertext-policy attribute-based encryption
Zhang et al. Attack on Chen et al.'s certificateless aggregate signature scheme
Zhang et al. A secure enhanced key-policy attribute-based temporary keyword search scheme in the cloud
Song et al. Traceable and privacy-preserving non-interactive data sharing in mobile crowdsensing
Ren et al. SM9-based traceable and accountable access control for secure multi-user cloud storage
Hu et al. Revocable identity-based encryption from the computational Diffie-Hellman problem
Suwarjono et al. Cryptography Implementation for electronic voting security
Martiri et al. Monotone digital signatures: an application in software copy protection
CN113271210B (zh) 一种在区块链应用系统中使用公钥加密概要密文的方法
Geurden A New Future for Military Security Using Fully Homomorphic Encryption
Ali et al. A verifiable ciphertext policy attribute-based encryption (vcp-abe) scheme with keywords search and revocation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120905

Termination date: 20200118