CN1890916A - 使用椭圆曲线的信息传输系统、加密设备和解密设备 - Google Patents
使用椭圆曲线的信息传输系统、加密设备和解密设备 Download PDFInfo
- Publication number
- CN1890916A CN1890916A CN 200480035869 CN200480035869A CN1890916A CN 1890916 A CN1890916 A CN 1890916A CN 200480035869 CN200480035869 CN 200480035869 CN 200480035869 A CN200480035869 A CN 200480035869A CN 1890916 A CN1890916 A CN 1890916A
- Authority
- CN
- China
- Prior art keywords
- point
- ciphertext
- elliptic curve
- content
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
提供一种内容传送系统,使得利用ElGamal密码时,能够减小密文的长度。内容传送设备对内容密钥执行椭圆曲线加密,产生加密的内容密钥,该加密的内容密钥包括通过椭圆曲线加密获得的椭圆曲线点的x坐标,并输出该加密的内容密钥。内容接收设备接收该加密的内容密钥,并利用该加密的内容密钥中包含的x坐标,计算该椭圆曲线点的y坐标。然后该内容接收设备利用该椭圆曲线点和该加密的内容密钥中包含的其他信息,执行椭圆曲线解密,以产生解密的内容密钥。
Description
技术领域
本发明涉及秘密信息传输技术,该技术将密码术用于信息安全。
背景技术
近几年中,密码术用于各个领域,以安全地进行通信,而不向第三方暴露通信内容。
例如,当传送存储介质,例如DVD时,其中DVD上记录了诸如音乐或电影的内容,或者当向许多用户通过网络传输该内容时,该内容被加密,以防止未授权使用。
主要具有两种类型的密码术:秘密密钥密码术和公共密钥密码术。在秘密密钥密码术中,加密和解密使用相同的密钥。因此,发送器(执行加密)和接收器(执行解密)必须预先共享密钥。而在公共密钥密码术中,加密和解密使用不同的密钥,并且解密密钥保密,而加密密钥公开。
DES(数据加密标准)是一种秘密密钥密码术。DES是块密码,它使用明文、密文和密钥,其中明文、密文和密钥每个都是64比特长。在DES中,首先对明文块进行初始置换,该初始置换改变比特的顺序,使得相邻比特被以大约32个比特分隔开。然后对置换后的块进行16轮相同的转换。
椭圆曲线ElGamal是一种公共密钥密码术。通过将有限域内ElGamal密码的乘法运算应用于椭圆曲线上的加法运算,来构建椭圆曲线ElGamal。
椭圆曲线ElGamal如下所述:
接收器(用于执行解密)秘密地持有椭圆曲线ElGamal的秘密密钥ks。
发送器(用于执行加密)持有与秘密密钥ks对应的公共密钥KP:
KP=ks*G
其中G是椭圆曲线ElGamal中椭圆曲线上的基点,ks*G是通过将G与其自身相加(ks-1)倍所获得椭圆曲线上的点。
这样,该发送器通过下述方式从明文KC产生密文EKC。
(步骤1)产生随机数字k,计算PC=k*G。
(步骤2)计算k*KP。
(步骤3)将明文KC转换为椭圆曲线上的点P_KC=f(KC)。将在后面解释这里使用的转换函数f。
(步骤4)计算C=P_KC+k*KP。
(步骤5)将PC和C作为密文EKC发送。
该接收器通过下述方式从密文EKC中产生解密文本KC’。
(步骤1)利用密文EKC中包含的PC,计算ks*PC。
(步骤2)计算P_KC’=C-ks*PC,并将P_KC’转换为整数,以获得解密文本KC’=f-1(P_KC’)。这里,f-1是转换函数f的逆。解密文本KC’预期等于明文KC,这是由于以下原因:
由于
ks*PC=ks*k*G=k*KP
成立,
P_KC’=C-ks*PC
=P_KC+k*KP-ks*PC
=P_KC
这样,点P_KC’等于点P_KC。相应的,KC’等于KC。
转换函数f将整数转换为椭圆曲线上对应的点,其中该整数具有的比特长度小于椭圆曲线的定义域。而逆转换函数f-1将椭圆曲线上的点转换为对应的整数,其中该整数具有的比特长度小于定义域。转换函数f是单射函数(injection)。可以使用任何函数,只要f-1(f(v))=v,其中v是整数。在Neal Koblitz的A Course in Number Theory andCryptography,Springer-Verlag,1987,pp.162-163中详细描述了转换函数。
下面分析上述椭圆曲线ElGamal密码中密文的数据长度。
为了简单起见,令椭圆曲线的定义域是160个比特,这是椭圆曲线密码术中通常推荐的参数。
密文EKC由点C和PC组成。点C和PC每个都由x坐标和y坐标构成。相应的,点C和PC每个都是320比特长。所以,密文EKC是320+320=640比特(=80字节)。
DES产生的密文的长度等于明文,而椭圆曲线ElGamal产生的密文是明文大小的四倍。
这样,当与其他密码术诸如DES进行比较时,椭圆曲线ElGamal实现了更高等级的安全性,但是它具有的问题是当密钥长度相等时,密文的长度更长。
注意,传统技术描述于下列文献中:T.Okamoto & H.Yamamoto,Modern Encryption,Sangyo Tosho,1997;Henri Cohen,A Course inComputational Algebraic Number Theory(Graduate Texts in Mathematics,vol 138),Springer-Verlag,1993,pp.31-33;Michael Rosing,ImplementingElliptic Curve Cryptography,Manning,1998,pp180-181;Neal Koblitz,A Course in Number Theory and Cryptography,Springer-Verlag,1987,pp.162-163;以及美国专利No.6199086。
发明内容
本发明的目的是提供一种信息传输系统、一种加密设备、一种解密设备、一种加密方法、一种解密方法和一种计算机可读程序,使得当使用椭圆曲线密码术时,密文的长度能够减小。
上述目的可以通过一种信息传输系统实现,该信息传输系统利用作为安全性基础的椭圆曲线离散对数问题,保密地传输信息,该信息传输系统包括加密设备和解密设备,加密设备包括:存储单元,用于存储明文;加密单元,用于对明文执行椭圆曲线加密,以及产生密文,该密文包括椭圆曲线上的加密点的x坐标,该加密点是通过椭圆曲线加密而产生的;输出单元,用于输出密文,并且解密设备包括:获取单元,用于获得密文;解密单元,用于利用获取的密文中包含的x坐标,计算椭圆曲线上加密点的y坐标,并利用加密点和获取的密文中包含的其他信息,执行椭圆曲线解密,以产生解密的文本。
根据这种结构,加密设备输出密文,该密文包括椭圆曲线点的x坐标,但不包括椭圆曲线点的y坐标。解密设备根据接收的密文中包含的x坐标,计算椭圆曲线点的y坐标,并利用计算的椭圆曲线点执行解密。这样,可以减小被传输的密文的数据长度。
这里,加密设备中的存储单元中存储的明文可以是标量,其中加密单元包括:随机数产生单元,用于产生随机数,该随机数是标量;第一计算单元,用于将椭圆曲线上的基点乘以该随机数;第二计算单元,用于将椭圆曲线上的公共密钥点乘以该随机数;转换单元,用于对明文应用转换函数,以产生椭圆曲线上的明文点,其中该转换函数用于将标量转换为椭圆曲线上的对应点;第三计算单元,用于通过明文点和相乘后的公共密钥点相加,计算求和点;以及产生单元,用于产生密文,该密文包括求和点以及相乘后的基点的x坐标,其中相乘后的基点是加密点。
这里,第三计算单元可以判断预定条件是否满足,如果判断是肯定的,那么设定明文点和相乘后的公共密钥点的和作为求和点,如果判断是否定的,那么设定明文点和相乘后的公共密钥点的和的对应负点作为求和点。
这里,可以通过下式在有限域GF(P)上定义椭圆曲线
y2=x3+a×x+b
其中p是素数,其中第三计算单元判断相乘后的基点的y坐标是否小于(p-1)/2,作为预定条件。
这里,解密设备中的获取单元可以从上述的加密设备获取密文,其中解密单元包括:平方根计算单元,用于将所获取的密文中包含的x坐标代入式y2=x3+a×x+b中,以得到两个解y,选择两个解y中小于(p-1)/2的一个,并产生第一解密点,该第一解密点由所获取的密文中包含的x坐标和选择作为y坐标的解y组成;标量乘法单元,用于将第一解密点乘以秘密密钥,以产生第二解密点,该秘密密钥是标量,公共密钥点是通过将椭圆曲线上的基点乘以秘密密钥而已经产生的;解密的文本计算单元,用于从所获得的密文中包含的求和点中减去第二解密点,并对作为减法结果所获得的点应用逆转换函数,以产生解密的文本,该逆转换函数用于将椭圆曲线上的点转换为对应的标量。
根据这些结构,本发明能够应用于GF(p)上的椭圆曲线。
这里,加密设备中的存储单元中存储的明文可以是标量,其中加密单元包括:随机数产生单元,用于产生随机数,该随机数是标量;第一计算单元,用于将椭圆曲线上的基点乘以随机数;第二计算单元,用于将椭圆曲线上的公共密钥点乘以随机数;转换单元,用于对明文应用转换函数,以产生椭圆曲线上的明文点,该转换函数用于将标量转换为椭圆曲线上的对应点;第三计算单元,用于利用明文点和相乘后的公共密钥点相加,计算求和点;以及产生单元,用于产生密文,该密文包括求和点以及相乘后的基点的x坐标,该相乘后的基点是加密点。
这里,第三计算单元可以判断预定条件是否满足,如果判断是肯定的,那么设定明文点和相乘后的公共密钥点的和作为求和点,如果判断是否定的,那么设定明文点和相乘后的公共密钥点的和的对应负点作为求和点。
这里,可以通过下式在有限域GF(2m)上定义椭圆曲线
y2+xy=x3+ax2+b
其中m是自然数,GF(2m)上的生成多项式用根为α的f(x)表示,其中,作为预定条件的是:第三计算单元判断相乘后的基点的y坐标的α生成多项式中的项αs的系数是否等于相乘后的基点的x坐标的α生成多项式中的项αs的系数,其中s表示相乘后的基点的x坐标的α生成多项式中的非零系数项中的最低次数。
这里,解密设备中的获取单元可以从上述加密设备获取密文,其中解密单元包括:检测单元,用于检测所获得的密文中包含的x坐标的α生成多项式中的非零系数项中的最低次数s;求解单元,用于将所获得的密文中包含的x坐标代入式y2+xy=x3+ax2+b中,以得到两个解y,从两个解y中选择一个解y,该解的α生成多项式包括的项αs的系数等于所获得的密文中包含的x坐标的α生成多项式中的项αs的系数,以及产生第一解密点,该第一解密点由所获得的密文中包含的x坐标和选择作为y坐标的解y组成;标量乘法单元,用于将第一解密点乘以秘密密钥,以产生第二解密点,该秘密密钥是标量,公共密钥点是通过将椭圆曲线上的基点乘以秘密密钥而已经产生的;以及解密的文本计算单元,用于从所获得的密文中包含的求和点中减去第二解密点,并对作为减法结果所获得的点应用逆转换函数,以产生解密的文本,该逆转换函数用于将椭圆曲线上的点转换为对应的标量。
根据这些结构,本发明还应用于GF(2m)上的椭圆曲线。
这里,通过下式在有限域GF(p)上定义椭圆曲线
y2=x3+a×x+b
其中p是素数,其中加密设备中的存储单元中存储的明文是标量,并且加密单元包括:随机数产生单元,用于产生随机数,该随机数是标量;第二计算单元,用于将椭圆曲线上的公共密钥点乘以随机数;转换单元,用于对明文应用转换函数,以产生椭圆曲线上的明文点,该转换函数用于将标量转换为椭圆曲线上的对应点;第三计算单元,用于将明文点和相乘后的公共密钥点相加,以获得求和点;第一计算单元,用于判断求和点的y坐标是否小于(p-1)/2,如果判断是肯定的,则将椭圆曲线上的基点乘以随机数,如果判断是否定的,则将椭圆曲线上的基点乘以随机数的对应负数;产生单元,用于产生密文,该密文包括相乘后的基点以及求和点的x坐标,其中求和点是加密点。
这里,解密设备中的获取单元可以从上述加密设备中获得密文,其中解密单元包括:平方根计算单元,用于将所获得的密文中包含的x坐标代入式y2=x3+a×x+b中,以得到两个解y,选择两个解y中小于(p-1)/2的一个,并产生第一解密点,该第一解密点由所获得的密文中包含的x坐标和选择作为y坐标的解y组成;标量乘法单元,用于将所获得的密文中包含的相乘后的基点乘以秘密密钥,以产生第二解密点,该秘密密钥是标量,公共密钥点是通过将椭圆曲线上的基点乘以秘密密钥而已经产生的;以及解密的文本计算单元,用于从第一解密点中减去第二解密点,并对作为减法结果所获得的点应用逆转换函数,以产生解密的文本,该逆转换函数用于将椭圆曲线上的点转换为对应的标量。
根据这些结构,本发明可以应用于GF(p)上的椭圆曲线。
这里,通过下式可以在有限域GF(p)上定义椭圆曲线
y2=x3+a×x+b
其中p是素数,其中加密设备中的存储单元中存储的明文是标量,并且加密单元包括:随机数产生单元,用于产生随机数,该随机数是标量;第一计算单元,用于将椭圆曲线上的基点乘以该随机数;第二计算单元,用于将椭圆曲线上的公共密钥点乘以该随机数;第三计算单元,用于将明文和相乘后的公共密钥点的x坐标进行异或运算;以及产生单元,用于产生密文,该密文包括作为异或运算结果获得的异或值以及相乘后的基点的x坐标,其中相乘后的基点是加密点。
这里,解密设备中的获取单元可以从上述的加密设备中获得密文,其中解密单元包括:平方根计算单元,用于将所获得的密文中包含的x坐标代入式y2=x3+a×x+b中,以得到两个解y,从两个解y选择小于(p-1)/2的一个,并产生第一解密点,该第一解密点由所获得的密文中包含的x坐标和选择作为y坐标的解y组成;标量乘法单元,用于将第一解密点乘以秘密密钥,以产生第二解密点,该秘密密钥是标量,公共密钥点是通过将椭圆曲线上的基点乘以秘密密钥而已经产生的;以及解密的文本计算单元,用于对所获得的密文中包含的异或值和第二解密点的x坐标进行异或运算,以产生解密的文本。
根据这些结构,被传输的密文的数据长度可以进一步减小。
这里,加密设备中的存储单元中存储的明文可以是内容密钥,其中加密单元通过对内容密钥进行加密产生密文,加密设备还包括:内容加密单元,用于利用内容密钥对内容进行加密;以及内容输出单元,用于输出加密的内容。
这里,解密设备中的获取单元可以从上述加密设备中获得密文和加密的内容,其中解密单元对密文进行解密,以产生解密的文本,该解密的文本是解密的内容密钥,解密设备还包括:内容解密单元,用于利用解密的内容密钥,对加密的内容进行解密,以产生解密的内容;以及内容再现单元,用于再现解密的内容。
根据这些结构,当利用内容密钥对内容进行加密,以及利用内容密钥对加密的内容进行解密时,作为被传输密文的加密的内容密钥的数据长度会减小。
这样,通过省略密文中椭圆曲线点的y坐标,可以减小被传输密文的数据长度。
附图说明
图1表示本发明的第一实施例涉及的内容传送系统的结构;
图2表示图1所示的内容传送设备的结构的模块图;
图3表示从内容传送设备中的发送/接收单元发送至每个内容接收设备的传输信息的数据结构;
图4表示图1所示的内容接收设备的结构的模块图;
图5表示图1所示的内容传送系统整体运行的流程图;
图6表示通过图2所示的内容传送设备中的密钥信息产生单元产生加密的内容密钥信息EKC的运算的流程图;
图7表示通过密钥信息产生单元中的密钥加密单元产生加密的内容密钥EKCi的运算的流程图;
图8表示通过图4所示的内容接收设备中的密钥解密单元产生解密的内容密钥KC’的运算的流程图;
图9表示本发明的第二实施例中从内容传送设备中的发送/接收单元发送至每个内容接收设备的传输信息的数据结构;
图10表示通过第二实施例的内容传送设备中的密钥信息产生单元中的密钥加密单元产生加密的内容密钥EKCi的运算的流程图;
图11表示通过第二实施例的内容接收设备中的密钥解密单元产生解密的内容密钥KC’的运算的流程图;
图12表示本发明的第三实施例的内容传送设备中的密钥信息产生单元的结构的模块图;
图13表示在第三实施例中从内容传送设备中的发送/接收单元发送至每个内容接收设备的传输信息的数据结构;
图14表示第三实施例的内容接收设备中的密钥解密单元的结构的模块图;
图15表示通过图12所示的密钥信息产生单元产生加密的内容密钥信息EKC的运算的流程图;
图16表示通过图14所示的密钥解密单元产生解密的内容密钥KC’的运算的流程图。
本发明的最佳实施方式
1.第一实施例
下面描述本发明第一实施例涉及的内容传送系统10。
1.1内容传送系统10的结构
图1表示内容传送系统10的结构。如图所示,内容传送系统10大致由一个内容传送设备100和n个内容接收设备2001,2002,...,200i,...,200n组成。这里,n是自然数。例如,当n=1000000时,内容传送系统10包括1000000个内容接收设备。内容传送设备100经由因特网20连接至内容接收设备2001,2002,...,200n。
内容传送设备100产生作为数字电影作品等的内容C的内容密钥KC,并根据秘密密钥密码的加密算法Enc1,利用内容密钥KC对内容C进行加密,以产生加密的内容EC。内容传送设备100也根据公共密钥密码的加密算法Enc2对内容密钥KC进行加密,以产生加密的内容密钥信息EKC,并将加密的内容EC和加密的内容密钥信息EKC经由因特网20发送至每个内容接收设备2001,2002,...,200n。
内容接收设备2001经由因特网20从内容传送设备100接收加密的内容EC和加密的内容密钥信息EKC,并根据公共密钥密码的解密算法Dec2对加密的内容密钥信息EKC进行解密,以产生解密的内容密钥KC’。然后内容接收设备2001根据秘密密钥密码的解密算法Dec1,利用解密的内容密钥KC’,对加密的内容EC进行解密,以产生解密的内容C’,并再现解密的内容C’。其他内容接收设备2002,...,200n与内容接收设备2001相同。
这里,解密算法Dec1是用于解密根据加密算法Enc1产生的密文的算法,解密算法Dec2是用于解密根据加密算法Enc2产生的密文的算法。
应该注意到,内容接收设备2001,2002,...,200n中每个的参考标记的下标是设备ID号,该号码用于唯一地识别内容接收设备。例如,内容接收设备200i由设备ID号“i”唯一识别。
1.2椭圆曲线密码术以及椭圆曲线参数
在内容传送系统10中,椭圆曲线密码术用作上述公共密钥密码。T.Okamoto & H.Yamamoto,Modern Encryption,Sangyo Tosho,1997中详细的描述了椭圆曲线密码术。下面简要解释在内容传送系统10中使用的椭圆曲线E1的参数。
令椭圆曲线E1由下式定义
y2=x3+a×x+b
其中x和y是变量,a和b是常数。同时,a×x表示a和x相乘。常数a和b是自然数。单个椭圆曲线E1由a和b这些常数确定。通常,椭圆曲线E1定义在定义域GF(pm)上,该定义域是有限域,其中p是素数,m是自然数。为了简单起见,令m=1,使得椭圆曲线E1的定义域是GF(p)。
1.3椭圆曲线离散对数问题
离散对数问题用作公共密钥密码术的安全性的基础。离散对数问题的代表示例是定义在有限域上的问题以及定义在椭圆曲线上的问题。在Neal Koblitz,A Course in Number Theory and Cryptography,Springer-Verlag,1987中详细描述了离散对数问题。
椭圆曲线离散对数问题如下所述。
令E(GF(p))是定义在有限域GF(p)上的椭圆曲线,已知当E的阶数可以被一个大的素数整除时,则椭圆曲线E上的点G被设为基点。这样,问题是找到整数x,使得
Y=x*G
其中如果这样的整数x存在,那么Y是E上给定的点。
离散对数问题有助于公共密钥密码学的安全性的原因是:在具有大量元素的有限域GF(p)上进行上述x的计算非常困难。
1.4内容传送设备100的结构
图2表示内容传送设备100的结构的模块图。在图中,内容传送设备100包括发送/接收单元101、内容密钥产生单元102、内容加密单元103、公共密钥存储单元104、密钥信息产生单元105、内容存储单元106和控制单元107。控制单元107连接至输入单元108和显示单元109。
内容传送设备100实际上是通过计算机系统实现的,该计算机系统包括微处理器、ROM、RAM、硬盘单元和通信单元。计算机可读程序存储在RAM或硬盘单元中。内容传送设备100的功能由微处理器根据计算机可读程序的运行实现。
(1)公共密钥存储单元104
公共密钥存储单元104预先分别存储内容接收设备2001,2002,...,200n的公共密钥KP1,KP2,...,KPn。
公共密钥KP1,KP2,...,KPn中的每一个都是按照如下计算出的椭圆曲线E1上的点:
KP1=ks1*G
KP2=ks2*G
...
KPn=ksn*G
其中ks1,ks2,...ksn分别是内容接收设备2001,2002,...,200n的秘密密钥,G是椭圆曲线ElGamal中椭圆曲线E1上的基点。在该描述中,a*B表示椭圆曲线上的点,该点通过将椭圆曲线上的点B自身相加(a-1)遍得到。例如,ks1*G是通过将基点G自身相加(ks1-1)遍得到的椭圆曲线E1上的点。此后,该运算称为椭圆曲线点乘(也可以称为椭圆曲线求幂/标量乘法)。
(2)内容存储单元106
内容存储单元106预先存储内容C,该内容C是数字电影作品等。根据MPEG2(运动图像专家组2)标准,将数字作品的视频数据和音频数据压缩,产生内容C,其中MPEG2标准定义了视频和音频压缩/编码技术。
(3)内容密钥产生单元102
内容密钥产生单元102为内容存储单元106中存储的内容C产生160比特随机数,并设定产生的随机数为内容密钥KC。内容密钥产生单元102将内容密钥KC输出至内容加密单元103和密钥信息产生单元105。
(4)内容加密单元103
内容加密单元103从内容存储单元106中读取内容C,并从内容密钥产生单元102接收内容密钥KC。
内容加密单元103根据秘密密钥密码的加密算法Enc1,利用内容密钥KC,对内容C进行加密,以产生加密的内容
EC=Enc1(KC,C)
这里,Enc1(KC,C)是利用内容密钥KC,将秘密密钥密码的加密算法Enc1应用于内容C产生的密文。例如,DES可以用作秘密密钥密码。其他的秘密密钥密码,诸如AES(高级加密标准)也同样适用。T.Okamoto & H.Yamamoto,Modern Encryption,Sangyo Tosho,1997中详细描述了秘密密钥密码术。
内容加密单元103将加密的内容EC输出至发送/接收单元101。
(5)密钥信息产生单元105
密钥信息产生单元105包括密钥加密单元111、计数器设定单元112、计数器增长单元113、计数器判断单元114、输出单元115、密钥控制单元116、参数存储单元117和计数器118,如图2所示。
参数存储单元117预先存储基点G、常数a、常数b以及素数p。
计数器设定单元112将计数器118中的计数器i设定为1。
密钥加密单元111按照下述方式产生对应于内容接收设备200i的加密的内容密钥EKCi。
(a)产生160比特随机数ki。
(b)从参数存储单元117中读取基点G、常数a和素数p,并利用随机数ki、基点G、常数a和素数p计算
PCi=ki*G
这里,椭圆曲线点乘如下执行。
以100*P为例,
100*P可以表示为:
100*P=2(2(P+2(2(2(P+2P)))))
这表示通过对椭圆曲线上的点P进行6次双倍运算和2次加法运算,可以计算100*P。
这样,通过加法和双倍运算实现椭圆曲线点乘。
令椭圆曲线E1定义为:
y2=x3+a×x+b
给定椭圆曲线E1上的两个点P=(x1,y1)和Q=(x2,y2),则R=(x3,y3)是椭圆曲线E1上的点,使得R=P+Q。
当P≠Q时,R=P+Q是利用下述加法公式的加法运算:
x3={(y2-y1)/(x2-x1)}2-x1-x2
y3={(y2-y1)/(x2-x1)}(x1-x3)-y1
另一方面,当P=Q时,R=P+Q=P+P=2×P,使得R=P+Q是利用下述双倍公式的双倍运算:
x3={(3x1 2+a)/2y1}2-2x1
y3={(3x1 2+a)/2y1}(x1-x3)-y1
注意到,上述运算是在有限域GF(p)上进行的,其中椭圆曲线E1定义在该有限域上。
关于椭圆曲线算法的细节,参见“Efficient Elliptic CurveExponentiation”in Miyaji,Ono & Cohen Advances in Cryptology-Proceedings of ICICS’97,Lecture Notes in Computer Science,Springer-Verlag,1997,pp.282-290.
(c)从公共密钥存储单元104读取公共密钥KPi,并利用随机数ki、公共密钥KPi、常数a和素数p计算
ki*KPi
这里,如上所述执行椭圆曲线点乘。
(d)从内容密钥产生单元102接收内容密钥KC,并利用转换函数f,将内容密钥KC转换成椭圆曲线E1上的点P_KC=f(KC)。转换函数f在后面将详细解释。
(e)计算
P_KC+ki*KPi
(f)从参数存储单元117读取素数p,并判断点PCi的y坐标y(PCi)是否满足:
y(PCi)<(p-1)/2
如果y(PCi)<(p-1)/2,设定
Ci=P_KC+ki*KPi
如果y(PCi)≥(p-1)/2,设定
Ci=-(P_KC+ki*KPi)
(g)将点PCi的x坐标x(PCi)和点Ci作为加密的内容密钥EKCi输出至输出单元115。
计数器判断单元114判断计数器i是否为n。
如果计算器判断单元114判断出i≠n,则计算器增长单元113将计数器i增加1。此后,重复上述步骤(a)至(g)。
如果计算器判断单元114判断出i=n,输出单元115将加密的内容密钥EKC1,EKC2,EKC3,...,EKCn作为加密的内容密钥信息EKC,输出至发送/接收单元101。
密钥控制单元116控制密钥信息产生单元105中的结构元件。
上述步骤(a)至(g)对传统的椭圆曲线ElGamal密码进行了改进。它与传统的椭圆曲线ElGamal密码的不同之处在于下述几点。在传统椭圆曲线ElGamal密码中,密文由Ci和PCi组成,在该实施例改进的密码中,密文由Ci和PCi的x坐标组成。换言之,该实施例的主要特点是:在加密的内容密钥信息EKC中完全没有(甚至1比特)包含与PCi的y坐标相关的信息。
(6)发送/接收单元101
发送/接收单元101从内容加密单元103接收加密的内容EC,并从密钥信息产生单元105接收加密的内容密钥信息EKC。发送/接收单元101将加密的内容EC和加密的内容密钥信息EKC经由因特网20发送至每个内容接收设备2001,2002,...,200n。
图3表示传输信息301的数据结构,该传输信息从发送/接收单元101发送至每个内容接收设备2001,2002,...,200n。如图所示,传输信息301由加密的内容EC302和加密的内容密钥信息EKC303组成。加密的内容密钥信息EKC303包括n个加密的内容密钥311,312,...,313。第i个加密的内容密钥,即EKCi,包括x(PCi)(PCi的x坐标)和Ci。
x(PCi)和Ci的长度是固定的。具体地,x(PCi)是160个比特长,而Ci是320个比特长。在加密的内容密钥信息EKC中,按照分配给n个内容接收设备2001,2002,...,200n的设备ID号的次序排列n个加密的内容密钥,以至于n个加密的内容密钥和n个内容接收设备2001,2002,...,200n一一对应。这样,与内容接收设备对应的加密的内容密钥可以由分配给该内容接收设备的设备ID号指定。
例如,x(PG1)(PC1的x坐标)和C1组成对应于设备ID号是“1”的内容接收设备2001的加密的内容密钥EKC1,可以通过从加密的内容密钥信息EKC的起始位置处抽取出480(=160+320)个比特获得该x(PC1)和C1。
通常,x(PCi)(PCi的x坐标)和Ci组成对应于设备ID号是“i”的内容接收设备200i的加密的内容密钥EKCi,可以通过从加密的内容密钥信息EKC的起始位置处的第(1+(i-1)×480)个比特开始抽取出480个比特获得该x(PCi)和Ci。
(7)控制单元107、输入单元108以及显示单元109
控制单元107控制内容传送设备100中的结构元件。
输入单元108从内容传送设备100的操作者接收输入的信息或指令,并向控制单元107输出接收的信息或指令。
显示单元109在控制单元107的控制下,显示各种信息。
1.5内容接收设备2001,2002,...,200n的结构
内容接收设备2001,2002,...,200n具有相同的结构。下面描述内容接收设备200i的结构作为示例。
图4表示内容接收设备200i的结构的模块图。如图所示,内容接收设备200i包括发送/接收单元201、秘密密钥存储单元202、内容解密单元203、密钥解密单元204、再现单元205、控制单元206、输入单元207、监视器208、扬声器209和参数存储单元210。
与内容传送设备100类似,内容接收设备200i实际上由计算机系统实现,该计算机系统包括微处理器、ROM以及RAM。计算机可读程序存储在RAM中。内容接收设备200i的功能由微处理器根据该计算机可读程序的运行来实现。
应该注意到,参考标记“200i”的下标“i”是设备的ID号,用于唯一识别内容接收设备200i。
(1)秘密密钥存储单元202和参数存储单元210
秘密密钥存储单元202预先秘密地存储160比特的秘密密钥ks1。只有密钥解密单元204可以访问秘密密钥存储单元202。
秘密密钥ksi对应于公共密钥KPi。如上所述,公共密钥KPi可以通过下式计算
KPi=ksi*G
参数存储单元210预先存储基点G、常数a、常数b和素数p。
(2)发送/接收单元201
发送/接收单元201经由因特网20从内容传送设备100接收加密的内容EC和加密的内容密钥信息EKC。发送/接收单元201向内容解密单元203输出加密的内容EC,向密钥解密单元204输出加密的内容密钥信息EKC。
(3)密钥解密单元204
密钥解密单元204包括平方根计算单元211、标量乘法单元212和内容密钥计算单元213,如图4所示。
(平方根计算单元211)
平方根计算单元211预先存储分配给内容接收设备200i的设备ID号“i”。
平方根计算单元211从发送/接收单元201接收加密的内容密钥信息EKC,并读取设备ID号“i”。如上所述,平方根计算单元211利用设备ID号“i”,指定加密的内容密钥信息EKC中,对应于内容接收设备200i的x(PCi)(PCi的x坐标)。平方根计算单元211从加密的内容密钥信息EKC中抽取出x(PCi)。
然后,对于x(PCi),平方根计算单元211在GF(p)上找到
z=x(PCi)3+a×x(PCi)+b的两个平方根rt。
这里,两个平方根rt中的一个小于(p-1)/2,另一个不小于(p-1)/2。平方根计算单元211选择小于(p-1)/2的平方根rt。然后平方根计算单元211利用抽取的x(PCi)和选择的rt,设定
PCi’=(x(PCi),rt)
平方根计算单元211向标量乘法单元212输出PCi’。
Henri Cohen,A Course in Computational Algebraic Number Theory(Graduate Texts in Mathematics,Vol.138),Springer-Verlag,1993,pp.31-33中详细描述了平方根计算。
下面解释当p=3 mod 4时,如何在GF(p)上找到平方根rt。其他平方根计算方法的详细介绍,参见上述Cohen的文献。
这里,“d mod e”表示d除以e的余数。
z的平方根rt是z((p+1)/4)或者-z((p+1)/4)。
通常,
z(p-1)=1 mod p
成立。这样,
z(p+1)=z2 mod p
这使得
z((p+1)/4)=(z2)1/4=z1/2
是z的平方根。
(标量乘法单元212)
标量乘法单元212从秘密密钥存储单元202读取秘密密钥ksi,从平方根计算单元211接收PCi’。标量乘法单元212也从参数存储单元210读取常数a和素数p,并利用常数a、素数p以及秘密密钥ksi,通过将PCi’乘以ksi,计算点
ksi*PCi’
这里,如上所述执行椭圆曲线点乘。
标量乘法单元212向内容密钥计算单元213输出点ksi*PCi’。
(内容密钥计算单元213)
内容密钥计算单元213从标量乘法单元212接收点ksi*PCi’,并利用加密的内容密钥信息EKC中的加密的内容密钥EKCi中包含的Ci,计算
P_KC’=Ci-ksi*PCi’
然后,内容密钥计算单元213将P_KC’转换为整数,以获得解密的内容密钥
KC’=f1(P_KC’)
这里,f-1是转换函数f的逆。通过这种方式获得的解密的内容密钥KC’预期等于内容密钥KC。内容密钥计算单元213向内容解密单元203输出解密的内容密钥KC’。
(4)内容解密单元203
内容解密单元203从发送/接收单元201接收加密的内容EC,从密钥解密单元204接收解密的内容密钥KC’。内容解密单元203根据秘密密钥密码的解密算法Dec1,利用解密的内容密钥KC’,对加密的内容EC进行解密,以产生解密的文本
C’=Dec1(KC’,EC)
这里,Dec1(KC’,EC)是利用解密的内容密钥KC’,将秘密密钥密码的解密算法Dec1应用于加密的内容EC得到的解密的文本。
内容解密单元203向再现单元205输出解密的内容C’。
(5)再现单元205、控制单元206、输入单元207、监视器208以及扬声器209
再现单元205从内容解密单元203接收解密的内容C’,从解密的内容C’获得视频数据和音频数据。再现单元205将视频数据和音频数据转换为模拟视频信号和音频信号,并分别将它们输出至监视器208和扬声器209。
监视器208从再现单元205接收模拟视频信号,并显示图像。
扬声器209从再现单元205接收模拟音频信号,并输出声音。
控制单元206控制内容接收设备200i的结构元件。
输入单元207从内容接收设备200i的用户接收指令,并向控制单元206输出接收到的指令。
1.6.转换函数f和逆转换函数f-1
以下解释转换函数f和逆转换函数f-1。
转换函数f将整数转换至椭圆曲线E1上对应的点,其中该整数具有的比特长度比定义域GF(p)小。而逆转换函数f-1将椭圆曲线E1上的点转换成对应的整数,其中该整数具有的比特长度比定义域GF(p)小。转换函数f是单射函数。只要满足下述两个条件,可以使用任何函数:
f-1(f(v))=v
其中v是整数;以及
f-1(-P)=f-1(P)
其中P是椭圆曲线E1上的点。转换的详细描述参见Neal Koblitz,A Course in Number Theory and Cryptography,Springer-Verlag,1987,pp.162-163。
下面解释Koblitz在上述文献中描述的转换方法。
(1)定义域GF(p)的比特长度用lenp表示,v的比特长度用lenp-10表示。也就是,v比定义域GF(p)小10比特。令c=0以及x_fv=c||v。这样,判断
(x_fv)3+a×x_fv+b
是否是GF(p)上的二次剩余。
(2)如果判断是肯定的,则找到(x_fv)3+a×x_fv+b的平方根y_fv,并设定f(v)=(x_fv,y_fv)。
(3)如果判断是否定的,将c增加1,并设定x_fv=c||v。然后再次判断
(x_fv)3+a×x_fv+b
是否是GF(p)上的二次剩余。如果判断是肯定的,则找到(x_fv)3+a×x_fv+b的平方根y_fv,并设定f(v)=(x_fv,y_fv)。如果判断是否定的,则将c增加1,并执行相同的判断。如此重复直到得到(x_fv)3+a×x_fv+b是GF(p)上的二次剩余。
接下来解释逆转换函数f-1(P_fv)。
当P_fv=(x_fv,y_fv)时,将f-1(P_fv)设定为用x_fv的低(lenp-10)个比特表示的数。根据该方法,很明显
f-1(f(v))=v
而且,由于f-1(P_fv)是P_fv的x坐标的低比特,则很明显
f-1(-P)=f-1(P)
如上所述,转换函数f和逆转换函数f-1并不限制于Koblitz在上述文献中描述的那些,只要函数f是单射函数,f-1(f(v))=v成立,其中v是整数,以及f-1(-P)=f-1(P)成立,其中P是椭圆曲线E1上的点。
1.7.解密的内容密钥KC’等于内容密钥KC的原因
如果f-1(P_KC’)=f-1(P_KC),则解密的内容密钥KC’等于内容密钥KC。f-1(P_KC’)=f-1(P_KC)成立的原因如下。
定义在GF(p)上的椭圆曲线上,P=(x1,y1)的对应负点-P通常用-P=(x1,-y1)给出。平方根rt满足
rt2=x(PCi)3+a×x(PCi)+b
类似地,点PCi的y坐标y(PCi)满足
y(PCi)2=x(PCi)3+a×x(PCi)+b
因此,
y(PCi)=rt
或者
y(PCi)=-rt
如果y(PCi)=rt,即,y(PCi)<(p-1)/2,那么PCi=PCi’。
代入PCi=PCi’以及Ci=P_KC+ki*KPi得到
P_KC’=Ci-ksi*PCi’=P_KC+ki*KPi-ksi*PCi
这里,
ki*KPi=ki*ksi*G=ksi*PCi
使得
P_KC’=P_KC
所以
f-1(P_KC’)=f-1(P_KC)
成立。
另一方面,如果y(PCi)=-rt,即,y(PCi)≥(p-1)/2,那么PCi’=-PCi。代入PCi’=-PCi以及Ci=-(P_KC+ki*KPi)得到
P_KC’=Ci-ksi*PCi’=-(P_KC+ki*KPi)-ksi*(-PCi)
=-P_KC
已知
f-1(-P_KC)=f-1(P_KC)
那么
f-1(P_KC’)=f-1(P_KC)
成立。
如上所述,
f-1(P_KC’)=f-1(P_KC)
成立,使得解密的内容密钥KC’等于内容密钥KC。
1.8.内容传送系统10的运行
下面描述内容传送系统10的运行。
(1)内容传送系统10的整体运行
图5表示内容传送系统10整体运行的流程图。
在内容传送设备100中,内容密钥产生单元102产生内容密钥KC(S101),内容加密单元103利用内容密钥KC对内容C加密,以产生加密的内容EC(S102)。而且,密钥信息产生单元105产生加密的内容密钥信息EKC(S103)。发送/接收单元101将加密的内容EC和加密的内容密钥信息EKC经由因特网20发送至每个内容接收设备2001,2002,...,200n(S104)。
在作为内容接收设备2001,2002,...,200n示例的内容接收设备200i中,发送/接收单元201经由因特网20从内容传送设备100接收加密的内容EC和加密的内容密钥信息EKC(S104)。密钥解密单元204利用存储在秘密密钥存储单元202中的秘密密钥ksi,对加密的内容密钥信息EKC中包含的加密的内容密钥EKCi进行解密,以产生解密的内容密钥KC’(S105)。内容解密单元203利用解密的内容密钥KC’,对加密的内容EC进行解密,以产生解密的内容C’(S106)。再现单元205再现解密的内容C’(S107)。
(2)产生加密的内容密钥信息EKC的运算
图6表示通过内容传送设备100中的密钥信息产生单元105,产生加密的内容密钥信息EKC的运算的流程图。该运算对应于图5中的步骤S103。
计数器设定单元112设定计数器i为1(S121)。
密钥加密单元111产生对应于内容接收设备200i的加密的内容密钥EKCi(S122)。计数器判断单元114判断是否i=n(S123)。如果i≠n,计数器增长单元113将i增加1(S124)。然后运算返回至步骤S122。
如果i=n,输出单元115将加密的内容密钥EKC1,EKC2,EKC3,...,EKCn作为加密的内容密钥信息EKC,输出至发送/接收单元101(S125)。
(3)产生加密的内容密钥EKCi的运算
图7表示通过密钥信息产生单元105中的密钥加密单元111,产生加密的内容密钥EKCi的运算流程图。该运算对应于图6中的步骤S122。
密钥加密单元111产生随机数ki(S141),并计算PCi=ki*G(S142)。密钥加密单元111也计算ki*KPi(S143)。密钥加密单元111将内容密钥KC转换成椭圆曲线Ei上的点P_KC=f(KC)(S144)。然后密钥加密单元111计算P_KC+ki*KPi(S145)。
这之后,密钥加密单元111判断PCi的y坐标y(PCi)是否满足y(PCi)<(p-1)/2(S146)。如果y(PCi)<(p-1)/2,那么密钥加密单元111设定Ci=P_KC+ki*KPi(S148)。否则,密钥加密单元111设定Ci-(P_KC+ki*KPi)(S147)。
密钥加密单元111将PCi的x坐标x(PCi)和Ci作为加密的内容密钥EKCi输出(S149)。
(4)产生解密的内容密钥KC’的运算
图8表示通过内容接收设备200i中的密钥解密单元204产生解密的内容密钥KC’的运算流程图。该运算对应于图5中的步骤S105。
平方根计算单元211关于加密的内容密钥EKCi中包含的x(Pci)计算x(PCi)3+a×x(Pci)+b的两个平方根rt(S161)。平方根计算单元211从两个平方根rt中选择满足rt<(p-1)/2的平方根rt(S162)。然后平方根计算单元211产生PCi’=(x(PCi),rt)(S163)。
然后,标量乘法单元212通过将PCi’乘以ksi,计算点ksi*PCi’(S164)。
接下来,内容密钥计算单元213计算P_KC’=Ci-ksi*PCi’(S165)。然后内容密钥计算单元213将P_KC’转换为整数,以产生解密的内容密钥KC’=f-1(P_KC’)(S166)。
这样解密的内容密钥KC’预期等于内容密钥KC。
1.9.第一实施例的效果
下面分析内容传送系统10中加密的内容密钥EKCi的数据长度。
为了简单起见,假定椭圆曲线E1的定义域GF(p)是160个比特长,该长度是椭圆曲线密码术中通常推荐的。
对应于内容接收设备200i的加密的内容密钥EKCi由点Ci和点PCi的x坐标即x(PCi)组成。Ci由长度都是160比特的x坐标和y坐标组成,所以Ci是320比特长。PCi的x坐标是160比特长。因此,加密的内容密钥EKCi是320+160=480比特(=60字节)。
传统技术中每个加密的内容密钥的数据长度是80字节。相应地,与传统技术相比,第一实施例的内容传送系统10使得每个加密的内容密钥的数据长度减小到3/4。
假设内容接收设备的数目n是1000000。根据第一实施例,加密的内容密钥信息EKC的数据长度是60×1000000=60000000字节(=60兆字节)。而根据传统技术,加密的内容密钥信息的数据长度是80×1000000=80000000字节(=80兆字节)。
这样,与传统技术相比,第一实施例的内容传送系统10使得加密的内容密钥信息的数据长度减小了20兆字节。
2.第二实施例
下面描述本发明第二实施例涉及的内容传送系统10b(未示出)。
内容传送系统10b具有与第一实施例的内容传送系统10类似的结构。下面重点描述与内容传送系统10的不同之处。
和内容传送系统10一样,内容传送系统10b大致由一个内容传送设备100b和n个内容接收设备200b1,200b2,...,200bi,...,200bn组成。内容传送设备100b经由因特网20连接至每个内容接收设备200b1,200b2,...,200bn。
2.1.内容传送设备100b的结构
内容传送设备100b具有与内容传送设备100类似的结构。具体而言,内容传送设备100b包括发送/接收单元101、内容密钥产生单元102、内容加密单元103、公共密钥存储单元104、密钥信息产生单元105b、内容存储单元106和控制单元107。控制单元107连接至输入单元108和显示单元109(未示出)。
也就是说,内容传送设备100b与内容传送设备100的不同之处在于密钥信息产生单元105由密钥信息产生单元105b代替。
下面重点描述与内容传送设备100的不同之处。
(1)密钥信息产生单元105b
密钥信息产生单元105b具有与密钥信息产生单元105类似的结构。详细地,密钥信息产生单元105b包括密钥加密单元111b、计数器设定单元112、计数器增长单元113、计数器判断单元114、输出单元115、密钥控制单元116、参数存储单元117以及计算器118(未示出)。
也就是说,密钥信息产生单元105b与密钥信息产生单元105的不同之处在于密钥加密单元111被密钥加密单元111b代替。下面重点描述与密钥信息产生单元105的不同之处。
密钥加密单元111b以下述方式产生对应于内容接收设备200bi的加密的内容密钥EKCi。
(a)产生160比特随机数ki。
(b)从参数存储单元117读取基点G、常数a以及素数p,并利用随机数ki、基点Gi、常数a和素数p计算
PCi=ki*G
(c)从公共密钥存储单元104读取公共密钥KPi,并利用随机数ki、公共密钥KPi、常数a和素数p计算
ki*KPi
(d)从内容密钥产生单元102接收内容密钥KC,并利用内容密钥KC,对于ki*KPi,计算
si=KC xor x(ki*KPi)
这里,x(ki*KPi)是ki*KPi的x坐标,xor是异或运算的运算符。而且,si是标量。
(e)将x(PCi)(PCi的x坐标)和si作为加密的内容密钥EKCi输出至输出单元115。
(2)输出单元115
输出单元115将加密的内容密钥EKC1,EKC2,EKC3,...,EKCn作为加密的内容密钥信息EKC输出至发送/接收单元101。
(3)发送/接收单元101
发送/接收单元101从内容加密单元103接收加密的内容EC,并从密钥信息产生单元105b接收加密的内容密钥信息EKC。发送/接收单元101将加密的内容EC和加密的内容密钥信息EKC经由因特网20发送至每个内容接收设备200b1,200b2,...,200bn。
图9表示从发送/接收单元101发送至每个内容接收设备200b1,200b2,...,200bn的传输信息321的数据结构。
如上所示,传输信息321由加密的内容EC 322和加密的内容密钥信息EKC 323组成。加密的内容密钥信息EKC 323由n个加密的内容密钥331,332,...,333组成。第i个加密的内容密钥,即EKCi,由x(PCi)(PCi的x坐标)和si组成。
(4)与第一实施例的不同之处
第二实施例与第一实施例的不同之处在于密文由x(PCi)(点PCi的x坐标)和标量si组成,取代了x(PCi)和点Ci。在第二实施例中,和第一实施例一样,加密的内容密钥信息EKC中完全没有包括(甚至1比特)PCi的y坐标的信息。
2.2.内容接收设备200b1,200b2,...,200bn的结构
内容接收设备200b1,200b2,...,200bn具有和内容接收设备2001,2002,...,200n类似的结构。
下面解释内容接收设备200bi的结构,作为内容接收设备200b1,200b2,...,200bn的代表示例,重点在于内容接收设备200i的不同之处。
内容接收设备200bi具有与内容接收设备200i类似的结构。详细地,内容接收设备200bi包括发送/接收单元201、秘密密钥存储单元202、内容解密单元203、密钥解密单元204b、再现单元205、控制单元206、输入单元207、监视器208、扬声器209以及参数存储单元210。
也就是说,内容接收设备200bi与内容接收设备200bi的不同之处在于密钥解密单元204被密钥解密单元204b取代。
(1)密钥解密单元204b
密钥解密单元204b包括平方根计算单元211、标量乘法单元212和内容密钥计算单元213b(未示出)。
也就是说,密钥解密单元204b与密钥解密单元204的不同之处在于内容密钥计算单元213被内容密钥计算单元213b代替。
平方根计算单元211对于加密的内容密钥EKCi中包含的x(PCi),计算GF(p)上的
z=x(PCi)3+a×x(PCi)+b
的平方根rt,并如前所述,设定
PCi’=(x(PCi),rt)
如上所述,标量乘法单元212通过将PCi’乘以秘密密钥存储单元202中存储的秘密密钥ksi,计算点
ksi*PCi’
内容密钥计算单元213b从标量乘法单元212接收点ksi*PCi’,并利用接收的点ksi*PCi’,计算
si xor x(ksi*PCi’)
内容密钥计算单元213b设定计算结果为解密的内容密钥KC’:
KC’=si xor x(ksi*PCi’)
2.3.内容传送系统10b的运行
下面描述内容传送系统10b的运行。
内容传送系统10b的运行与内容传送系统10的运行类似,所以下面重点描述与内容传送系统10的不同之处。
内容传送系统10b的整体运行与图5所示的相同,所以这里省略关于整体运行的解释。
通过内容传送设备100b中的密钥信息产生单元105b产生加密的内容密钥信息EKC的运算与图6所示的相同,所以这里省略它的解释。
(1)产生加密的内容密钥EKCi的运算
图10表示通过密钥信息产生单元105b中密钥加密单元111b产生加密的内容密钥EKCi的运算流程图。该运算与图6中步骤S122对应。
该密钥加密单元111b产生160比特随机数ki(S201)。密钥加密单元111b从参数存储单元117读取基点G、常数a和素数p,并利用随机数ki、基点G、常数a和素数p计算PCi=ki*G(S202)。密钥加密单元111b还从公共密钥存储单元104读取公共密钥KPi,并利用随机数ki、公共密钥KPi、常数a和素数p计算ki*KPi(S203)。密钥加密单元111b利用从内容密钥产生单元102接收的内容密钥KC,对于ki*KPi,计算si=KC xor x(ki*KPi)(S204)。密钥加密单元111b将x(PCi)(PCi的x坐标)和si作为加密的内容密钥EKCi输出至输出单元115(S205)。
(2)产生解密的内容密钥KC’的运算
图11表示通过内容接收设备200bi中的密钥解密单元204b产生解密的内容密钥KC’的运算流程图。该运算对应图5中的步骤S105。
平方根计算单元211对于加密的内容密钥EKCi中包含的x(PCi),计算x(PCi)3+a×x(PCi)+b的两个平方根rt。平方根计算单元211从两个平方根rt中选择满足rt<(p-1)/2的平方根rt。然后平方根计算单元211产生PCi’=(x(PCi),rt)(S221)。
这之后,标量乘法单元212通过将PCi’乘以ksi,计算点ksi*PCi’(S222)。
内容密钥计算单元213b从标量乘法单元212接收点ksi*PCi’,并利用接收的点ksi*PCi’,计算si xor x(ksi*PCi’)。内容密钥计算单元213b设定计算结果作为解密的内容密钥KC’(S223)。
这样的解密的内容密钥KC’预期等于内容密钥KC。
2.4.解密的内容密钥KC’等于内容密钥KC的原因
当
x(ksi*PCi’)=x(ksi*PCi)=x(ksi*ki*G)=x(ki*KPi)
成立时,解密的内容密钥
KC’=si xor x(ksi*PCi’)
等于内容密钥KC。下面给出x(ksi*PCi’)=x(ki*KPi)成立的原因。
在定义在GF(p)上的椭圆曲线上,点P=(x1,y1)的对应负点-P通常用-P=(x1,-y1)给出。平方根rt满足
rt2=x(PCi)3+a×x(PCi)+b
类似的,点PCi的y坐标y(PCi)满足
y(PCi)2=x(PCi)3+a×x(PCi)+b
因此,
y(PCi)=rt
或者
y(PCi)=-rt
如果y(PCi)=rt,那么PCi=PCi’。因此
x(ksi*PCi’)=x(ksi*PCi)
成立。
另一方面,如果y(PCi)=-rt,那么PCi’=-PCi。因此
ksi*PCi’=-ksi*PCi
由于x(P)=x(-P),
x(ksi*PCi’)=x(-ksi*PCi)=x(ksi*PCi)
成立。
相应的,
x(ksi*PCi’)=x(ksi*KPi)
成立。因此,解密的内容密钥KC’等于内容密钥KC。
2.5.第二实施例的效果
下面分析内容传送系统10b中加密的内容密钥EKCi的数据长度。
为了简单起见,假定椭圆曲线E1的定义域GF(p)是160比特长,该长度是椭圆曲线密码术中通常推荐的。
对应于内容接收设备200bi的加密的内容密钥EKCi由一个标量si和点PCi的x坐标即x(PCi)组成。标量si是160比特长。类似的,点PCi的x坐标是160比特长。因此,加密的内容密钥EKCi是160+160=320比特(=40字节)。
根据传统技术,每个加密的内容密钥的数据长度是80字节。相应地,与传统技术相比,第二实施例的内容传送系统10b使得每个加密的内容密钥的数据长度减小了1/2。
假设内容接收设备的数目n是1000000。根据第二实施例,加密的内容密钥信息EKC的数据长度是40×1000000=40000000字节(=40兆字节)。而根据传统技术,加密的内容密钥信息的数据长度是80×1000000=80000000字节(=80兆字节)。
这样,与传统技术相比,第二实施例的内容传送系统10b使得加密的内容密钥信息的数据长度减小了40兆字节。
3.第三实施例
下面描述本发明第三实施例涉及的内容传送系统10c(未示出)。
内容传送系统10c具有与内容传送系统10类似的结构。下面重点描述与内容传送系统10的不同之处。
和内容传送系统10一样,内容传送系统10c大致由一个内容传送设备100c和n个内容接收设备200c1,200c2,...,200ci,...,200cn组成。内容传送设备100c经由因特网20连接至每个内容接收设备200c1,200c2,...,200cn。
3.1.内容传送设备100c的结构
内容传送设备100c具有与内容传送设备100类似的结构。详细地,内容传送设备100c包括发送/接收单元101、内容密钥产生单元102、内容加密单元103、公共密钥存储单元104、密钥信息产生单元105c、内容存储单元106和控制单元107。控制单元107连接至输入单元108和显示单元109(未示出)。
也就是说,内容传送设备100c与内容传送设备100的不同之处在于密钥信息产生单元105由密钥信息产生单元105c代替。
下面重点描述与内容传送设备100的不同之处。
(1)密钥信息产生单元105c
密钥信息产生单元105c具有与密钥信息产生单元105类似的结构。图12表示密钥信息产生单元105c的结构。如图所示,密钥信息产生单元105c包括计数器设定单元112、计数器增长单元113、计数器判断单元114、输出单元115、密钥控制单元116、参数存储单元117、计数器118、公共加密单元119c以及独立加密单元120c。
也就是说,密钥信息产生单元105c与密钥信息产生单元105的不同之处在于密钥加密单元111被公共加密单元119c和独立加密单元120c代替。下面重点描述与密钥信息产生单元105的不同之处。
(计数器设定单元112)
计数器设定单元112设定计数器i为1。
(公共加密单元119c)
公共加密单元119c产生160比特随机数k。公共加密单元119c也从参数存储单元117读取基点G、常数a以及素数p,并利用随机数k、基点G、常数a和素数p计算公共密文
PC=k*G
公共加密单元119c输出公共密文PC至输出单元115,输出随机数k至独立加密单元120c。
(独立加密单元120c)
独立加密单元120c以下述方式产生对应于内容接收设备200ci的独立密文si。
(a)从公共加密单元119c接收随机数k。
(b)从公共密钥存储单元104读取公共密钥KPi,从参数存储单元117读取常数a和素数p,并利用随机数k、公共密钥KPi、常数a和素数p计算
k*KPi
(c)从内容密钥产生单元102接收内容密钥KC,并利用接收的内容密钥KC,对于k*KPi,计算独立密文
si=KC xor x(k*KPi)
这里,x(k*KPi)是k*KPi的x坐标。
(d)将独立密文si输出至输出单元115。
(计数器判断单元114、计数器增长单元113、输出单元115以及密钥控制单元116)
计数器判断单元114判断计数器i是否是n。
当计数器判断单元114判断出i≠n时,计数器增长单元113将计数器i增长1。这之后,重复上述步骤。
当计数器判断单元114判断出i=n时,输出单元115将公共密文PC和独立密文s1,s2,s3,...,sn作为加密的内容密钥信息EKC输出至发送/接收单元101。
密钥控制单元116控制密钥信息产生单元105c中的组成元件。
(2)发送/接收单元101
发送/接收单元101从内容加密单元103接收加密的内容EC,从密钥信息产生单元105c接收加密的内容密钥信息EKC。发送/接收单元101将加密的内容EC和加密的内容密钥信息EKC经由因特网20发送至每个内容接收设备200c1,200c2,...,200cn。
图13表示从发送/接收单元101发送至每个内容接收设备200c1,200c2,...,200cn的传输信息341的数据结构。
如图所示,传输信息341由加密的内容EC 342和加密的内容密钥信息EKC 343组成。加密的内容密钥信息EKC 343由公共密文PC344和n个独立密文351,352,...,353组成。第i个独立密文,即si,是KC xor x(k*KPi)。
3.2.内容接收设备200c1,200c2,...,200cn的结构
内容接收设备200c1,200c2,...,200cn具有和内容接收设备2001,2002,...,200n类似的结构。
下面解释内容接收设备200ci的结构,作为内容接收设备200c1,200c2,...,200cn的代表示例,重点在于与内容接收设备200i的不同之处。
内容接收设备200ci具有与内容接收设备200i类似的结构。详细地,内容接收设备200ci包括发送/接收单元201、秘密密钥存储单元202、内容解密单元203、密钥解密单元204c、再现单元205、控制单元206、输入单元207、监视器208、扬声器209和参数存储单元210(未示出)。
也就是说,内容接收设备200ci与内容接收设备200i的不同之处在于密钥解密单元204被密钥解密单元204c取代。
(1)发送/接收单元201
发送/接收单元201经由因特网20从内容传送设备100c接收加密的内容EC和加密的内容密钥信息EKC,并将加密的内容EC输出至内容解密单元203,将加密的内容密钥信息EKC输出至密钥解密单元204c。
(2)密钥解密单元204c
图14表示密钥解密单元204c的结构。如图所示,密钥解密单元204c包括标量乘法单元212c和内容密钥计算单元213c。
标量乘法单元212c从秘密密钥存储单元202读取秘密密钥ksi。标量乘法单元212c从接收自发送/接收单元201的加密的内容密钥信息EKC中抽取公共密文PC。标量乘法单元212c还从参数存储单元210读取常数a和素数p,并利用常数a、素数p和秘密密钥ksi,通过将PC乘以ksi,计算点
ksi*PC
标量乘法单元212c将点ksi*PC输出至内容密钥计算单元213c。
内容密钥计算单元213c预先存储分配给内容接收设备200ci的设备ID号“i”。内容密钥计算单元213c读取设备ID号“i”,并利用该设备ID号“i”,指定在从发送/接收单元201接收的加密的内容密钥信息EKC中对应于内容接收设备200ci的独立密文si。内容密钥计算单元213c从加密的内容密钥信息EKC中提取si。内容密钥计算单元213c还从标量乘法单元212c中接收点ksi*PC。然后内容密钥计算单元213c利用接收的点ksi*PC,计算
si xor x(ksi*PC)
并设定计算结果为解密的内容密钥KC’:
KC’=si xor x(ksi*PC)
内容密钥计算单元213c将解密的内容密钥KC’输出至内容解密单元203。
2.3.内容传送系统10c的运行
下面描述内容传送系统10c的运行。
内容传送系统10c的运行与内容传送系统10的运行类似,所以下面重点描述与内容传送系统10的不同之处。
内容传送系统10c的整体运行与图5所示的相同,所以这里省略了它的解释。
(1)产生加密的内容密钥信息EKC的运算
图15表示通过内容传送设备100c中的密钥信息产生单元105c,产生加密的内容密钥信息EKC的运算流程图。该运算与图5中步骤S103对应。
计数器设定单元112设定计数器i为1(S301)。
公共加密单元119c产生160比特的随机数k,并计算公共密文PC=k*G。公共加密单元119c将公共密文PC输出至输出单元115,并将随机数k输出至独立加密单元120c(S302)。
独立加密单元120c产生对应于内容接收设备200ci的独立密文si,并将独立密文si输出至输出单元115(S303)。
计数器判断单元114判断计数器i是否是n(S304)。如果i≠n,则计算器增长单元113将计数器i增加1(S305)。然后运算返回步骤S303。
如果i=n,输出单元115将公共密文PC和独立密文s1,s2,s3,...,sn作为加密的内容密钥信息EKC输出至发送/接收单元101(S306)。
(2)产生解密的内容密钥KC’的运算
图16表示通过内容接收设备200ci中的密钥解密单元204c,产生解密的内容密钥KC’的运算流程图。该运算对应图5中步骤S105。
标量乘法单元212c利用常数a、素数p以及秘密密钥ksi,通过将公共密文PC乘以秘密密钥ksi,计算点ksi*PC。标量乘法单元212c将点ksi*PC输出至内容密钥计算单元213c(S321)。
内容密钥计算单元213c计算解密的内容密钥KC’=si xorx(ksi*PC),并将解密的内容密钥KC’输出至内容解密单元203(S322)。
3.4.第三实施例的效果
下面分析内容传送系统10c中加密的内容密钥信息EKC的数据长度。
为了简单起见,假定椭圆曲线E1的定义域GF(p)是160比特长,该长度是椭圆曲线密码术中通常推荐的。
公共密文PC是椭圆曲线E1上的点。PC由每个都是160比特长的x坐标和y坐标组成,因此是320比特(=40字节)。独立密文si是160比特(=20字节)。
假设n=1000000。根据第三实施例,加密的内容密钥信息EKC的数据长度是40+20×1000000=20000040字节(≠20兆字节)。
而根据传统技术,加密的内容密钥信息的数据长度是80兆字节。这样,与传统技术相比,第三实施例的内容传送系统10c使得加密的内容密钥信息的数据长度减小到1/4。
3.5.第三实施例的结论
根据该实施例,本发明可以通过这样一种信息传输系统实现,该信息传输系统包括一个加密设备和多个解密设备,并保密地传输信息。
加密设备包括存储单元、公共计算单元、独立计算单元以及输出单元。存储单元存储明文。公共计算单元产生公共密文,该密文对于多个解密设备来说是公共的。独立计算单元基于明文,分别产生对应于多个解密设备的多个独立密文。输出单元输出公共密文和多个独立密文。
多个解密设备中的每一个都包括获取单元、抽取单元和解密单元。获取单元获取公共密文和多个独立密文。抽取单元从多个独立密文中抽取对应于解密设备的独立密文。解密单元利用公共密文和抽取的独立密文,产生解密的文本。
本发明也可以通过这样一种信息传输系统实现,该信息传输系统包括加密设备和多个解密设备,并利用作为安全性基础的群上的离散对数问题,秘密传输信息。
令g是群的基本元素。通过对基本元素g应用(ks-1)次群运算,计算出多个解密设备中每个的公共密钥,其中ks是解密设备的秘密密钥。
加密设备包括存储单元、随机数产生单元、公共计算单元、独立计算单元和输出单元,其中独立计算单元包括公共密钥计算单元和异或单元。存储单元存储明文。随机数产生单元产生随机数k,其中该随机数是标量。公共计算单元对基本元素g应用(k-1)次群运算,产生公共密文元素。公共密钥计算单元对多个解密设备中每个的公共密钥应用(k-1)次群运算,产生对应于多个解密设备的多个群运算后的公共密钥元素。异或单元对明文和多个群运算后的公共密钥元素中的每一个执行异或运算,以产生对应于多个解密设备的多个独立密文。输出单元输出公共密文元素和多个独立密文。
多个解密设备中的每个都包括获取单元、抽取单元、秘密密钥计算单元以及异或单元。获取单元获取公共密文元素和多个独立密文。抽取单元从多个独立密文中抽取对应于解密设备的独立密文。秘密密钥计算单元对公共密文元素应用(ks-1)次群运算,其中ks是解密设备的秘密密钥。异或单元对抽取的独立密文和群运算后的公共密文元素执行异或运算,以产生解密的文本。
本发明也可以由这样一种信息传输系统实现,该信息传输系统包括加密设备和多个解密设备,并利用作为安全性基础的椭圆曲线离散对数问题,保密地传输信息。
通过下式定义有限域GF(p)上的椭圆曲线
y2=x3+a×x+b
其中p是素数,G是椭圆曲线上的基点。这样,通过在椭圆曲线上,将基点G乘以解密设备的秘密密钥,计算出多个解密设备中每个的公共密钥点。
加密设备包括存储单元、随机数产生单元、公共计算单元、独立计算单元和输出单元,其中独立计算单元包括公共密钥计算单元和异或单元。存储单元存储明文。随机数产生单元产生随机数,其中该随机数是标量。公共计算单元将基点G乘以随机数,以产生公共密文点。公共密钥计算单元将多个解密设备中每个的公共密钥点乘以随机数,以产生对应于多个解密设备的多个相乘后的公共密钥点。异或单元对于明文和多个相乘后的公共密钥点中每一个的x坐标执行异或运算,以产生对应于多个解密设备的多个独立密文。输出单元输出公共密文点和多个独立密文。
多个解密设备中的每个都包括获取单元、抽取单元、秘密密钥计算单元和异或单元。获取单元获取公共密文点和多个独立密文。抽取单元从多个独立密文中抽取对应于解密设备的独立密文。秘密密钥计算单元将公共密文点乘以解密设备的秘密密钥。异或单元对抽取的独立密文和相乘后的公共密文点的x坐标执行异或运算,以产生解密的文本。
根据这些结构,通过使部分密文成为所有解密设备公共的,减小了传输密文的数据长度。这有益于高实用性。
4.第一至第三实施例的结论
如上所述,本发明可以由这样一种内容传送系统实现,该内容传送系统包括内容传送设备、通信路径和多个内容接收设备,并将内容经由通信路径从内容传送设备传送至多个内容接收设备中的每一个。
内容传送设备包括:发送单元,用于将数据发送至多个内容接收设备中的每一个;内容密钥产生单元,用于产生内容密钥;加密的内容产生单元,用于利用内容密钥对内容进行加密;公共密钥存储单元,用于存储多个内容接收设备中每一个的公共密钥;以及加密的内容密钥信息产生单元,用于利用公共密钥,对内容密钥进行加密,以产生加密的内容密钥信息。
多个内容接收设备中的每一个都包括:接收单元,用于从内容传送设备接收数据;秘密密钥存储单元,用于存储内容接收设备的秘密密钥;加密的内容密钥解密单元,用于对加密的内容密钥信息进行解密,以获得内容密钥;以及加密的内容解密单元,用于对加密的内容进行解密,以获得内容。
加密的内容密钥信息产生单元执行椭圆曲线加密,并产生加密的内容密钥信息,该信息包括:在通过椭圆曲线加密获得的密文中包含的椭圆曲线点PC的x坐标;以及不同于椭圆曲线点PC的密文的剩余部分。加密的内容密钥解密单元计算椭圆曲线点PC的y坐标,其中该椭圆曲线点的x坐标包含在加密的内容密钥信息中。
这里,可以利用由
y2=x3+a×x+b
定义的椭圆曲线,执行椭圆曲线加密
其中a和b是整数。在这种情况下,加密的内容密钥解密单元通过寻找
(PCx)3+a×PCx+b的平方根,计算椭圆曲线点PC的y坐标,
其中PCx表示椭圆曲线点PC的x坐标。
本发明还可以通过这样一种内容传送系统实现,该内容传送系统包括内容传送设备、通信路径和多个内容接收设备,并经由通信路径将内容从内容传送设备传送至多个内容接收设备中的每一个。
内容传送设备包括:发送单元,用于将数据传送至多个内容接收设备中的每一个;内容密钥产生单元,用于产生内容密钥;加密的内容产生单元,用于利用内容密钥对内容进行加密;公共密钥存储单元,用于存储多个内容接收设备中每个的公共密钥;以及加密的内容密钥信息产生单元,用于利用公共密钥对内容密钥进行加密,以产生加密的内容密钥信息。
多个内容接收设备中的每一个包括:接收单元,用于从内容传送设备接收数据;秘密密钥存储单元,用于存储内容接收设备的秘密密钥;加密的内容密钥解密单元,用于对加密的内容密钥信息进行解密,以获得内容密钥;以及加密的内容解密单元,用于对加密的内容进行解密,以获得内容。
加密的内容密钥信息产生单元产生公共密文和多个独立密文作为加密的内容密钥信息,其中该公共密文对于多个内容接收设备是公共的,该多个独立密文分别对应于多个内容接收设备。
这里,加密的内容密钥信息产生单元和加密的内容密钥解密单元可以使用椭圆曲线密码术。
这里,公共密文和多个独立密文,每个都可以是椭圆曲线上的点。或者,公共密文可以是椭圆曲线上的点,多个独立密文中的每一个可以是椭圆曲线的定义域中的元素。
这里,加密的内容密钥信息产生单元以及加密的内容密钥解密单元可以使用ElGamal密码。
本发明也可以通过这样一种内容传送系统中的内容传送设备实现,该内容传送系统包括内容传送设备、通信路径和多个内容接收设备,并将内容经由通信路径从内容传送设备传送至多个内容接收设备中的每一个。
内容传送设备包括:发送单元,用于将数据发送至多个内容接收设备中的每一个;内容密钥产生单元,用于产生内容密钥;加密的内容产生单元,用于利用内容密钥对内容进行加密;公共密钥存储单元,用于存储多个内容接收设备中每个的公共密钥;以及加密的内容密钥信息产生单元,用于利用公共密钥,对内容密钥进行加密,以产生加密的内容密钥信息。
加密的内容密钥信息产生单元执行椭圆曲线加密,并产生加密的内容密钥信息,该信息包括:通过椭圆曲线加密获得的密文中包含的椭圆曲线点的x坐标,以及不同于该椭圆曲线点的密文的剩余部分。
本发明还可以通过这样一种内容传送系统中的内容接收设备实现,该内容传送系统包括内容传送设备、通信路径和多个内容接收设备,并将内容经由通信路径从内容传送设备传送至多个内容接收设备中的每一个。
内容接收设备包括:接收单元,用于从内容传送设备接收数据;秘密密钥存储单元,用于存储内容接收设备的秘密密钥;加密的内容密钥解密单元,用于对加密的内容密钥信息进行解密,以获得内容密钥;加密的内容解密单元,用于对加密的内容进行解密,以获得内容。
加密的内容密钥解密单元计算椭圆曲线点的y坐标,该椭圆曲线点的x坐标包含在加密的内容密钥信息中。
本发明还可以通过这样一种内容传送系统中的内容传送设备实现,该内容传送系统包括内容传送设备、通信路径和多个内容接收设备,并将内容经由通信路径从内容传送设备传送至多个内容接收设备中的每一个。
内容传送设备包括:发送单元,用于将数据传送至多个内容接收设备中的每一个;内容密钥产生单元,用于产生内容密钥;加密的内容产生单元,用于利用内容密钥对内容进行加密;公共密钥存储单元,用于存储多个内容接收设备中每个的公共密钥;以及加密的内容密钥信息产生单元,用于利用公共密钥对内容密钥进行加密,以产生加密的内容密钥信息。
加密的内容密钥信息产生单元产生公共密文和多个独立密文作为加密的内容密钥信息,其中该公共密文对于多个内容接收设备是公共的,该多个独立密文分别对应于多个内容接收设备。
本发明还可以通过这样一种内容传送系统中的内容接收设备实现,该内容传送系统包括内容传送设备、通信路径和多个内容接收设备,并将内容经由通信路径从内容传送设备传送至多个内容接收设备中的每一个。
内容接收设备包括:接收单元,用于从内容传送设备接收数据;秘密密钥存储单元,用于存储内容接收设备的秘密密钥;加密的内容密钥解密单元,用于对加密的内容密钥信息进行解密,以获得内容密钥;加密的内容解密单元,用于对加密的内容进行解密,以获得内容。
加密的内容密钥解密单元从包含在加密的内容密钥信息中的公共密文和独立密文中获得内容密钥。这里,公共密文对于多个内容接收设备是公共的,且独立密文对应于内容接收设备。
根据这些结构,通过省略密文中包含的椭圆曲线点的y坐标,或者使部分密文对于多个内容接收设备是公共的,使得加密的内容密钥信息的数据长度减小。这对高实用性作出了贡献。
5.变形
本发明已经通过上述第一至第三实施例进行了描述,但是很明显,本发明并不限制于此。下面给出示例变形。
(1)第一实施例描述的情况是:通过内容传送设备100中的密钥信息产生单元105中的密钥加密单元111产生的加密的内容密钥EKCi由x(PCi)(点PCi的x坐标)和点Ci组成。或者,加密的内容密钥EKCi由点PCi和x(Ci)(点Ci的x坐标)组成。
在这种情况下,密钥加密单元111以下述方式产生加密的内容密钥EKCi。
(a)产生160比特的随机数ki。
(b)从参数存储单元117读取基点G、常数a和素数p,并利用随机数ki、基点G、常数a和素数p,计算
ki*G
椭圆曲线点乘如前所述。
(c)从公共密钥存储单元104读取公共密钥KPi,并利用随机数ki、公共密钥KPi、常数a和素数p,计算
ki*KPi
(d)从内容密钥产生单元102接收内容密钥KC,并利用前述的转换函数f,将内容密钥KC转换为椭圆曲线E1上的点P_KC=f(KC)。
(e)计算
Ci=P_KC+ki*KPi
(f)判断y(Ci)(点Ci的y坐标)是否满足
y(Ci)<(p-1)/2
如果y(Ci)<(p-1)/2,设定PCi=ki*G。如果y(Ci)≥(p-1)/2,设定PCi=-ki*G。
(g)将x(Ci)(点Ci的x坐标)和点PCi作为加密的内容密钥EKCi输出至输出单元115。
在内容接收设备200i中,密钥解密单元204中的平方根计算单元211对于包含在加密的内容密钥EKCi中的x(Ci),计算
x(Ci)3+a×x(Ci)+b的两个平方根rt。平方根计算单元211从两个平方根rt中选择满足rt<(p-1)/2的平方根rt。然后平方根计算单元211产生Ci’=x(x(Ci),rt)。
这之后,标量乘法单元212通过将PCi乘以ksi,计算点
ksi*PCi
然后,内容密钥计算单元213计算
P_KC’=Ci’-ksi*PCi
然后内容密钥计算单元213将P_KC’转换为整数,以产生解密的内容密钥KC’=f-1(P_KC’)。
这样的解密的内容密钥KC’预期等于内容密钥KC。
(2)第三实施例描述的情况是:独立加密单元120c产生独立密文si=KC xor x(k*KPi),其中该独立密文是标量。或者,独立加密单元120c可以产生独立密文Ci,其中该密文是椭圆曲线E1上的点,和第一实施例中一样。
(3)第一至第三实施例描述的情况是:使用定义在GF(p)上的椭圆曲线E1,或者可以使用定义在GF(pm),例如GF(2m),上的椭圆曲线E2。
令椭圆曲线E2由下式定义
y2+xy=x3+a×x2+b
而且,椭圆曲线E2上的点P(x,y)的对应负点用-P(x,x+y)表示,GF(2m)的生成多项式用根为α的f(x)表示。
这种情况是,内容传送设备100中的密钥信息产生单元105以下述方式作为示例,产生加密的内容密钥信息EKC。
密钥加密单元111如下所述产生加密的内容密钥EKCi。
(a)产生160比特的随机数ki。
(b)从参数存储单元117读取基点G、常数a和素数p,并利用随机数ki、基点G、常数a和素数p,计算
PCi=ki*G
(c)从公共密钥存储单元104读取公共密钥KPi,并利用随机数ki、公共密钥KPi、常数a和素数p,计算
ki*KPi
(d)从内容密钥产生单元102接收内容密钥KC,并利用转换函数f,将内容密钥KC转换为椭圆曲线E2上的点P_KC=f(KC)。
(e)计算
P_KC+ki*KPi
(f)寻找s,其中该s是x(PCi)(PCi的x坐标)的α多项式中,系数不是0而是1的项中α的最低次数。
例如,当x(PCi)=α6+α5=α3,则s=3,这是因为项α3具有非零系数和最低次数。
(g)如果y(PCi)(PCi的y坐标)的α多项式中项αs的系数等于x(PCi)的α多项式中项αs的系数,那么设定
Ci=P_KC+ki*KPi
另一方面,如果y(PCi)的α多项式中项αs的系数不等于x(PCi)的α多项式中项αs的系数,那么设定
Ci=-(P_KC+ki*KPi)
(h)将x(PCi)(点PCi的x坐标)和点Ci作为加密的内容密钥EKCi输出至输出单元115。
输出单元115将加密的内容密钥EKC1,EKC2,EKC3,...,EKCn作为加密的内容密钥信息EKC输出至发送/接收单元101。
发送/接收单元101将加密的内容EC和加密的内容密钥信息EKC经由因特网20发送至每个内容接收设备2001,2002,...,200n。
内容接收设备200i经由因特网20从内容传送设备100接收加密的内容EC和加密的内容密钥信息EKC。
在内容接收设备200i中,密钥解密单元204预先存储分配给内容接收设备200i的设备ID号“i”。
密钥解密单元204从发送/接收单元201接收加密的内容密钥信息EKC,并读取设备ID号“i”。如前所述,密钥解密单元204利用设备ID号“i”,指定在加密的内容密钥信息EKC中对应于内容接收设备200i的加密的内容密钥EKCi。密钥解密单元204从加密的内容密钥信息EKC中抽取加密的内容密钥EKCi,还从加密的内容密钥EKCi中抽取x(PCi)(点PCi的x坐标)和点Ci。
密钥解密单元204寻找x(PCi)的α多项式中系数不是0而是1的项中α的最低次数s。然后密钥解密单元204计算
y2+x(PCi)y=x(PCi)3+a×x(PCi)2+b
以获得两个解y’i-1和y’i-2。密钥解密单元204从两个解y’i-1和y’i-2中选择一个解,该解的α多项式包含的项αs的系数与x(PCi)的α多项式中项αs的系数相等。因此,选择解y(PCi)’。
接下来,密钥解密单元204利用选择的y(PCi)’和抽取的x(PCi),设定
PCi’=(x(PCi),y(PCi)’)
然后密钥解密单元204计算
P_KC’=Ci-ksi*PCi’
并将P_KC’转换成整数,以产生解密的内容密钥KC’=f-1(P_KC’)。
内容解密单元203利用这样的解密的内容密钥KC’,对加密的内容EC进行解密,以产生解密的内容C’。
上述改进还可以再如下改进。
上述改进描述的情况是:s是系数不是0而是1的项中α的最低次数。或者,s可以是系数不是0而是1的项中α的最高次数。
并且,上述改进描述的示例是:从两个解y’i-1和y’i-2中选择一个解,该解的α多项式包含的项αs的系数与x(PCi)的α多项式中的项αs的系数相等。或者,可以从两个解y’i-1和y’i-2中选择一个解,该解的α多项式包含的项αs的系数与x(PCi)的α多项式中的项αs的系数不相等。
(4)第三实施例描述的情况是:使用椭圆曲线上的ElGamal,或者可以使用有限域上的ElGamal。
下面给出使用有限域ElGamal的示例。
令p是素数,g是有限域GF(p)上的基本元素(g∈GP(p)),且q是基本元素g的阶数(其中gq=l mod p)。
并且,ksi表示内容接收设备200ci的秘密密钥,kpi表示内容接收设备200ci的公共密钥(kpi=gksimod p)。
这里,ab表示将a增加至指数b的求幂运算。
内容接收设备200ci存储秘密密钥ksi、素数p、基本元素g以及基本元素g的阶数q。内容传送设备100c存储公共密钥kp1,kp2,...,kpn、素数p、基本元素g、以及基本元素g的阶数q。
在内容传送设备100c中,公共加密单元119c产生160比特的随机数k。公共加密单元119c也读取基本元素g和素数p,并利用随机数k、基本元素g和素数p,计算公共密文
pc=gk mod p公共加密单元119c输出公共密文pc至输出单元115,并输出随机数k至独立加密单元120c。
如下所述,独立加密单元120c产生对应于内容接收设备200ci的独立密文ci。
(a)从公共加密单元119c接收随机数k。
(b)读取公共密钥kpi和素数p,并利用随机数k、公共密钥kpi和素数p计算
kpi k mod p
(c)从内容密钥产生单元102接收内容密钥KC,并利用接收的内容密钥KC计算独立密文
ci=KC xor(kpi k mod p)
这样,产生对应于内容接收设备200c1,200c2,...,200cn的独立密文c1,c2,...,cn。
发送单元101经由因特网20发送加密的内容密钥信息EKC至每个内容接收设备200c1,200c2,...,200cn,其中该内容密钥信息EKC由公共密文pc和独立密文c1,c2,...,cn组成。
内容接收设备200ci从内容传送设备100c接收加密的内容密钥信息EKC,其中该内容密钥信息EKC由公共密文pc和独立密文ci,c2,...,cn组成。
在内容接收设备200ci中,密钥解密单元204c包括标量乘法单元212c和内容密钥计算单元213c,如图14所示。
标量乘法单元212c读取秘密密钥ksi和素数p。标量乘法单元212c也从发送/接收单元201接收的加密的内容密钥信息EKC中抽取公共密文pc。标量乘法单元212c利用素数p和秘密密钥ksi计算
pcksi mod p标量乘法单元212c将pcksi mod p输出至内容密钥计算单元213c。
内容密钥计算单元213c预先存储分配给内容接收设备200ci的设备ID号“i”。内容密钥计算单元213c读取设备ID号“i”。内容密钥计算单元213c利用设备ID号“i”指定在从发送/接收单元201接收的加密的内容密钥信息EKC中对应于内容接收设备200ci的独立密文ci。内容密钥计算单元213c从加密的内容密钥信息EKC中抽取ci。内容密钥计算单元213c也从标量乘法单元212c接收pcksi mod p,并利用接收的pcksi mod p计算
ci xor(pcksi mod p)
内容密钥计算单元213c将计算结果设定为解密的内容密钥KC’:
KC’=ci xor(pcksi mod p)
内容密钥计算单元213c将解密的内容密钥KC’输出至内容解密单元203。
根据该改进,本发明可以由这样一种信息传输系统实现,该系统包括加密设备和多个解密设备,并利用作为安全性基础的有限域离散对数问题,秘密传输信息。
令p是素数,g是有限域GF(p)上的基本元素(g∈GP(p)),且q是基本元素g的阶数(其中gq=1 mod p)。
这样,多个解密设备中每一个的公共密钥kp都可以利用解密设备的秘密密钥ks,通过
kp=gks mod p计算出来。
加密设备包括存储单元、随机数产生单元、公共计算单元、独立计算单元以及输出单元,其中独立计算单元包括公共密钥计算单元和异或单元。存储单元存储明文。随机数产生单元产生随机数k。公共计算单元利用基本元素g和随机数k,产生公共密文元素pc
pc=gk mod p
公共密钥计算单元利用多个解密设备中每个的公共密钥kp和随机数k,计算取幂的公共密钥元素
kpk mod p异或单元对明文和为多个解密设备中每个计算出的取幂的公共密钥元素,执行异或运算,以获得对应于多个解密设备的多个独立密文。输出单元输出公共密文元素pc和多个独立密文。
多个解密设备中的每个包括获取单元、抽取单元、秘密密钥计算单元以及异或单元。获取单元获取公共密文元素pc和多个独立密文。抽取单元从多个独立密文中抽取对应于解密设备的独立密文。秘密密钥计算单元利用公共密文元素pc和解密设备的秘密密钥ks,计算取幂的公共密文元素
pcks mod p异或单元对抽取的独立密文和取幂的公共密文元素执行异或运算,以产生解密的文本。
(5)第一至第三实施例可以自由组合。
(6)第一至第三实施例描述的情况是:分配给每个内容接收设备一对秘密密钥和公共密钥,但是本发明并不限于此。
例如,可以根据类型,诸如作者、制片人或者体裁,对内容进行分组,使得每组被分配有一对秘密密钥和公共密钥。
并且,可以为每个独立的用户分配一对秘密密钥和公共密钥。
另外,可以为每组用户分配一对秘密密钥和公共密钥。
(7)第一至第三实施例描述的情况是:内容传送设备经由因特网分发加密的内容和加密的内容密钥信息,但是内容传送设备可以分发存储介质,诸如DVD或者存储器卡,其中加密的内容和加密的内容密钥信息存储在该存储介质上。在这种情况下,每个内容接收设备从存储介质读取加密的内容和加密的内容密钥信息,并对加密的内容进行解密。
或者,内容传送设备可以通过数字广播,来广播加密的内容和加密的内容密钥信息。在这种情况下,每个内容接收设备接收承载着加密的内容和加密的内容密钥信息的广播波,并从广播波中抽取加密的内容和加密的内容密钥信息,以及对加密的内容进行解密。
(8)第一至第三实施例和改进描述的情况是:使用椭圆曲线ElGamal或者有限域ElGamal,对内容密钥进行加密,但是本发明并不限于此。椭圆曲线ElGamal或有限域ElGamal可以同等地用于对内容进行加密。
(9)第一至第三实施例描述了对内容进行加密的示例,但这并不限制本发明。
本发明可以应用于任意类型的秘密通信,在不向第三方暴露通信内容的情况下安全地进行信息通信。例如,本发明适用于e-mail发送/接收系统、用于商业交易的秘密通信系统、专利应用申请系统、以及金融机构的支付系统。
(10)本发明也适用于上述方法。该方法可以通过由计算机执行的计算机可读程序实现。这样的计算机可读程序可以作为数字信号分发。
本发明可以通过计算机可读存储介质,诸如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(蓝光盘)或者半导体存储器实现,上述的计算机可读程序或数字信号记录在该计算机可读存储介质中。相反,本发明也可以通过记录在这样的存储介质上的计算机可读程序或数字信号实现。
用于实现本发明的计算机可读程序或数字信号经由诸如电子通信网、有线或无线通信网或因特网这样的网络发送,或经由数据广播发送。
本发明也可以通过包括微处理器和存储器的计算机系统实现。在这种情况下,计算可读程序存储在存储器中,且微处理器根据该计算机可读程序运行。
可以通过分发记录有计算机可读程序或数字信号的存储介质,或者通过经由网络发送计算机可读程序或数字信号,将计算机可读程序或数字信号提供给独立的计算机系统。然后该独立的计算机系统可以执行计算机可读程序或数字信号,以实现本发明。
(11)第一至第三实施例和改进可以自由组合。
如上所述,本发明可以通过省略每个加密的内容密钥中密文的椭圆曲线点的y坐标,或者通过使部分密文对于所有内容接收设备来说是公共的,来减小加密的内容密钥信息的数据长度。
工业实用性
本发明的设备可以重复以及连续地用于任何工业,该工业在不向第三方暴露信息的情况下安全可靠地处理信息。同时,本发明的设备可以在电气产品的制造工业中重复和连续地制造和销售。
Claims (21)
1、一种信息传输系统,利用作为安全性基础的椭圆曲线离散对数问题来保密地传输信息,所述信息传输系统包括加密设备和解密设备,
所述加密设备包括:
存储单元,用于存储明文;
加密单元,用于对所述明文执行椭圆曲线加密,并产生密文,该密文包括椭圆曲线上加密点的x坐标,所述加密点是通过所述椭圆曲线加密产生的;以及
输出单元,用于输出所述密文,以及
所述解密设备包括:
获取单元,用于获取所述密文;以及
解密单元,用于利用所述获取的密文中包含的x坐标,计算所述椭圆曲线上所述加密点的y坐标,以及利用所述加密点和所述获取的密文中包含的其他信息,执行椭圆曲线解密,以产生解密的文本。
2、一种加密设备,利用作为安全性基础的椭圆曲线离散对数问题对明文进行加密,所述加密设备包括:
存储单元,用于存储所述明文;
加密单元,用于对所述明文执行椭圆曲线加密,并产生密文,该密文包括椭圆曲线上加密点的x坐标,所述加密点是通过所述椭圆曲线加密产生的;以及
输出单元,用于输出所述密文。
3、如权利要求2所述的加密设备,其中:
存储在所述存储单元中的所述明文是标量;以及
所述加密单元包括:
随机数产生单元,用于产生随机数,该随机数是标量;
第一计算单元,用于将所述椭圆曲线上的基点乘以所述随机数;
第二计算单元,用于将所述椭圆曲线上的公共密钥点乘以所述随机数;
转换单元,用于对所述明文应用转换函数,以产生所述椭圆曲线上的明文点,其中所述转换函数用于将标量转换为所述椭圆曲线上的对应点;
第三计算单元,用于通过所述明文点和所述相乘后的公共密钥点相加,计算求和点;以及
产生单元,用于产生所述密文,该密文包括所述求和点和所述相乘后的基点的x坐标,其中该相乘后的基点是所述加密点。
4、如权利要求3所述的加密设备,其中:
所述第三计算单元判断是否满足预定的条件,来设定所述求和点,
如果所述判断是肯定的,则将所述明文点和所述相乘后的公共密钥点的和设定为所述求和点,以及
如果所述判断是否定的,则将与所述明文点和所述相乘后的公共密钥点的和的对应负点设定所述求和点。
5、如权利要求4所述的加密设备,其中:
所述椭圆曲线通过下式定义在有限域GF(p)上
y2=x3+a×x+b
其中p是素数;以及
所述第三计算单元判断所述相乘后的基点的y坐标是否小于(p-1)/2,作为所述预定的条件。
6、如权利要求4所述的加密设备,其中:
所述椭圆曲线通过下式定义在有限域GF(2m)上
y2+xy=x3+ax2+b
其中m是自然数,且由根为α的f(x)表示GF(2m)上的生成多项式;以及
作为所述预定条件的是:所述第三计算单元判断所述相乘后的基点的y坐标的α生成多项式中项αs的系数是否等于所述相乘后的基点的x坐标的α生成多项式中项αs的系数,其中s表示所述相乘后的基点的x坐标的α生成多项式中的非零系数项中的最低次数。
7、如权利要求2所述的加密设备,其中:
所述椭圆曲线通过下式定义在有限域GF(p)上
y2=x3+a×x+b
其中p是素数;
存储在所述存储单元中的所述明文是标量;以及
所述加密单元包括:
随机数产生单元,用于产生随机数,该随机数是标量;
第二计算单元,用于将所述椭圆曲线上的公共密钥点乘以所述随机数;
转换单元,用于对所述明文应用转换函数,以产生所述椭圆曲线上的明文点,其中所述转换函数用于将标量转换为所述椭圆曲线上的对应点;
第三计算单元,用于将所述明文点和所述相乘后的公共密钥点相加,以获得求和点;
第一计算单元,用于判断所述求和点的y坐标是否小于(p-1)/2,以及
如果所述判断是肯定的,则将所述椭圆曲线上的基点乘以所述随机数,以及
如果所述判断是否定的,则将所述椭圆曲线上的基点乘以所述随机数的对应负数;以及
产生单元,用于产生所述密文,该密文包括相乘后的基点以及所述求和点的x坐标,所述求和点是所述加密点。
8、如权利要求2所述的加密设备,其中:
所述椭圆曲线通过下式定义在有限域GF(p)上
y2=x3+a×x+b
其中p是素数;
存储在所述存储单元中的所述明文是标量;以及
所述加密单元包括:
随机数产生单元,用于产生随机数,该随机数是标量;
第一计算单元,用于将所述椭圆曲线上的基点乘以所述随机数;
第二计算单元,用于将所述椭圆曲线上的公共密钥点乘以所述随机数;
第三计算单元,用于对所述明文和所述相乘后的公共密钥点的x坐标执行异或运算;以及
产生单元,用于产生所述密文,该密文包括作为所述异或运算结果所获得的异或值以及所述相乘后的基点的x坐标,该相乘后的基点是所述加密点。
9、如权利要求2所述的加密设备,其中:
存储在所述存储单元中的所述明文是内容密钥;
所述加密单元通过对所述内容密钥进行加密,产生所述密文;以及
所述加密设备还包括:
内容加密单元,用于利用所述内容密钥对内容进行加密;以及
内容输出单元,用于输出所述加密的内容。
10、一种解密设备,利用作为安全性基础的椭圆曲线离散对数问题对密文进行解密,所述解密设备包括:
获取单元,用于获取所述密文,该密文包括椭圆曲线上加密点的x坐标,所述加密点是通过对明文执行椭圆曲线加密产生的;以及
解密单元,用于利用所述获取的密文中包含的x坐标,计算所述椭圆曲线上所述加密点的y坐标,以及利用所述加密点和所述获取的密文中包含的其他信息,执行椭圆曲线解密,以产生解密的文本。
11、如权利要求10所述的解密设备,其中:
所述椭圆曲线通过下式定义在有限域GF(p)上
y2=x3+a×x+b
其中p是素数;
所述获取单元从如权利要求5所述的加密设备中获取所述密文;以及
所述解密单元包括:
平方根计算单元,用于将所述获取的密文中包含的x坐标代入式y2=x3+a×x+b中,以得到两个解y,从所述两个解y中选择小于(p-1)/2的一个解,并产生第一解密点,所述第一解密点由所述获取的密文中包含的x坐标以及所述选择作为y坐标的解y组成;
标量乘法单元,用于将所述第一解密点乘以秘密密钥,以产生第二解密点,其中所述秘密密钥是标量,所述公共密钥点是通过将所述椭圆曲线上的基点乘以所述秘密密钥产生的;以及
解密的文本计算单元,用于从所述获取的密文中包含的所述求和点中减去所述第二解密点,并对作为所述减法结果所获得的点应用逆转换函数,以产生所述解密的文本,其中所述逆转换函数用于将所述椭圆曲线上的点转换成对应的标量。
12、如权利要求10所述的解密设备,其中:
所述椭圆曲线通过下式定义在有限域GF(2m)上
y2+xy=x3+ax2+b
其中m是自然数,且GF(2m)中的生成多项式用根为α的f(x)表示;
所述获取单元从如权利要求6所述的加密设备中获取所述密文;以及
所述解密单元包括:
检测单元,用于检测所述获取的密文中包含的x坐标的α生成多项式中的非零系数项中的最低次数s;
求解单元,用于将所述获取的密文中包含的x坐标代入所述式y2+xy=x3+ax2+b中,以得到两个解y,从所述两个解y中选择一个解y,该解的α生成多项式包括的项αs的系数与所述获取的密文中包含的x坐标的α生成多项式中的项αs的系数相等,并产生第一解密点,所述第一解密点由所述获取的密文中包含的x坐标和所述选择作为y坐标的解y组成;
标量乘法单元,用于将所述第一解密点乘以秘密密钥,以产生第二解密点,该秘密密钥是标量,所述公共密钥点是通过将所述椭圆曲线上的基点乘以所述秘密密钥产生的;以及
解密的文本计算单元,用于从所述获取的密文中包含的所述求和点减去所述第二解密点,并对作为所述减法结果所获得的点应用逆转换函数,以产生所述解密的文本,其中所述逆转换函数用于将所述椭圆曲线上的点转换成对应的标量。
13、如权利要求10所述的解密设备,其中:
所述椭圆曲线通过下式定义在有限域GF(p)上
y2=x3+a×x+b
其中p是素数;
所述获取单元从如权利要求7所述的加密设备中获取所述密文;以及
所述解密单元包括:
平方根计算单元,用于将所述获取的密文中包含的x坐标代入式y2=x3+a×x+b中,以得到两个解y,从所述两个解y中选择小于(p-1)/2的一个解,并产生第一解密点,所述第一解密点由所述获取的密文中包含的x坐标和选择作为y坐标的解y组成;
标量乘法单元,用于将所述获取的密文中包含的相乘后的基点乘以秘密密钥,以产生第二解密点,该秘密密钥是标量,所述公共密钥点是通过将所述椭圆曲线上的所述基点乘以所述秘密密钥产生的;以及
解密的文本计算单元,用于从所述第一解密点中减去所述第二解密点,并对作为所述减法结果所获得的点应用逆转换函数,以产生所述解密的文本,其中所述逆转换函数用于将所述椭圆曲线上的点转换成对应的标量。
14、如权利要求10所述的解密设备,其中:
所述椭圆曲线通过下式定义在有限域GF(p)上
y2=x3+a×x+b
其中p是素数;
所述获取单元从如权利要求8所述的加密设备中获取所述密文;以及
所述解密单元包括:
平方根计算单元,用于将所述获取的密文中包含的x坐标代入式y2=x3+a×x+b中,以得到两个解y,从所述两个解y中选择小于(p-1)/2的一个解,并产生第一解密点,所述第一解密点由所述获取的密文中包含的x坐标和选择作为y坐标的解y组成;
标量乘法单元,用于将所述第一解密点乘以秘密密钥,以产生第二解密点,该秘密密钥是标量,所述公共密钥点是通过将所述椭圆曲线上的基点乘以所述秘密密钥产生的;以及
解密的文本计算单元,用于对所述获取的密文中包含的异或值和所述第二解密点的x坐标执行异或运算,以产生所述解密的文本。
15、如权利要求10所述的解密设备,其中:
所述获取单元从如权利要求9所述的加密设备中获取所述密文和所述加密的内容;
所述解密单元对所述密文进行解密,以产生所述解密的文本,该解密的文本是解密的内容密钥;以及
所述解密设备还包括:
内容解密单元,用于利用所述解密的内容密钥,对所述加密的内容进行解密,以产生解密的内容;以及
内容再现单元,用于再现所述解密的内容。
16、一种在加密设备中使用的加密方法,利用作为安全性基础的椭圆曲线离散对数问题对明文进行加密,包括:
加密步骤,对所述明文执行椭圆曲线加密,并产生密文,该密文包括椭圆曲线上加密点的x坐标,所述加密点是通过所述椭圆曲线加密产生的;以及
输出步骤,输出所述密文。
17、一种在加密设备中使用的计算机可读程序,利用作为安全性基础的椭圆曲线离散对数问题对明文进行加密,所述程序包括用于执行以下步骤的代码:
加密步骤,对所述明文执行椭圆曲线加密,并产生密文,该密文包括椭圆曲线上加密点的x坐标,所述加密点是通过所述椭圆曲线加密产生的;以及
输出步骤,输出所述密文。
18、如权利要求17所述的程序,记录在计算机可读存储介质中。
19、一种解密设备中使用的解密方法,利用作为安全性基础的椭圆曲线离散对数问题对密文进行解密,所述方法包括:
获取步骤,获取所述密文,该密文包括椭圆曲线上加密点的x坐标,所述加密点是通过对明文执行椭圆曲线加密产生的;以及
解密步骤,利用所述获取的密文中包含的x坐标,计算所述椭圆曲线上的所述加密点的y坐标,以及利用所述加密点和所述获取的密文中包含的其他信息,执行椭圆曲线解密,以产生解密的文本。
20、一种在解密设备中使用的计算机可读程序,利用作为安全性基础的椭圆曲线离散对数问题对密文进行解密,所述程序包括用于执行以下步骤的代码:
获取步骤,获取所述密文,所述密文包括椭圆曲线上加密点的x坐标,所述加密点是通过对明文执行椭圆曲线加密产生的;以及
解密步骤,利用所述获取的密文中包含的x坐标,计算所述椭圆曲线上的所述加密点的y坐标,并利用所述加密点和所述获取的密文中包含的其他信息,执行椭圆曲线解密,以产生解密的文本。
21、如权利要求20所述的程序,记录在计算机可读存储介质中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003346172 | 2003-10-03 | ||
JP346172/2003 | 2003-10-03 | ||
JP421116/2003 | 2003-12-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1890916A true CN1890916A (zh) | 2007-01-03 |
Family
ID=37579210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200480035869 Pending CN1890916A (zh) | 2003-10-03 | 2004-10-01 | 使用椭圆曲线的信息传输系统、加密设备和解密设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1890916A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197668B (zh) * | 2007-12-06 | 2010-08-18 | 上海交通大学 | 基于随机化带符号标量乘法的椭圆曲线抗旁路攻击方法 |
CN101931529A (zh) * | 2010-08-09 | 2010-12-29 | 中兴通讯股份有限公司 | 一种数据加密方法、数据解密方法及节点 |
CN103124213A (zh) * | 2013-03-05 | 2013-05-29 | 丁勇 | 基于椭圆曲线密码的传感器网络密钥管理方法 |
CN104915179A (zh) * | 2015-04-28 | 2015-09-16 | 南京邮电大学 | 一种人体生理数据隐私保护的方法 |
CN106603223A (zh) * | 2016-11-30 | 2017-04-26 | 中国电子科技集团公司第五十八研究所 | 基于FPGA的Rijndael‑ECC加密系统 |
CN108712256A (zh) * | 2018-07-02 | 2018-10-26 | 复旦大学 | 一种基于椭圆曲线子域子码的加密解密算法 |
CN112350827A (zh) * | 2020-09-29 | 2021-02-09 | 中国科学院信息工程研究所 | 一种基于Koblitz曲线的加速标量乘计算的椭圆曲线加解密方法和系统 |
CN114065171A (zh) * | 2021-11-11 | 2022-02-18 | 北京海泰方圆科技股份有限公司 | 一种身份认证方法、装置、系统、设备及介质 |
WO2022068237A1 (zh) * | 2020-09-29 | 2022-04-07 | 平安科技(深圳)有限公司 | 基于信息的属性生成密钥的信息处理方法、装置及设备 |
-
2004
- 2004-10-01 CN CN 200480035869 patent/CN1890916A/zh active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197668B (zh) * | 2007-12-06 | 2010-08-18 | 上海交通大学 | 基于随机化带符号标量乘法的椭圆曲线抗旁路攻击方法 |
CN101931529A (zh) * | 2010-08-09 | 2010-12-29 | 中兴通讯股份有限公司 | 一种数据加密方法、数据解密方法及节点 |
WO2012019407A1 (zh) * | 2010-08-09 | 2012-02-16 | 中兴通讯股份有限公司 | 一种数据加密方法、数据解密方法、发送节点及接收节点 |
CN101931529B (zh) * | 2010-08-09 | 2014-07-16 | 中兴通讯股份有限公司 | 一种数据加密方法、数据解密方法及节点 |
CN103124213A (zh) * | 2013-03-05 | 2013-05-29 | 丁勇 | 基于椭圆曲线密码的传感器网络密钥管理方法 |
CN103124213B (zh) * | 2013-03-05 | 2015-09-16 | 丁勇 | 基于椭圆曲线密码的传感器网络密钥管理方法 |
CN104915179B (zh) * | 2015-04-28 | 2018-07-17 | 南京邮电大学 | 一种人体生理数据隐私保护的方法 |
CN104915179A (zh) * | 2015-04-28 | 2015-09-16 | 南京邮电大学 | 一种人体生理数据隐私保护的方法 |
CN106603223A (zh) * | 2016-11-30 | 2017-04-26 | 中国电子科技集团公司第五十八研究所 | 基于FPGA的Rijndael‑ECC加密系统 |
CN108712256A (zh) * | 2018-07-02 | 2018-10-26 | 复旦大学 | 一种基于椭圆曲线子域子码的加密解密算法 |
CN108712256B (zh) * | 2018-07-02 | 2021-10-26 | 复旦大学 | 一种基于椭圆曲线子域子码的加密解密算法 |
CN112350827A (zh) * | 2020-09-29 | 2021-02-09 | 中国科学院信息工程研究所 | 一种基于Koblitz曲线的加速标量乘计算的椭圆曲线加解密方法和系统 |
WO2022068237A1 (zh) * | 2020-09-29 | 2022-04-07 | 平安科技(深圳)有限公司 | 基于信息的属性生成密钥的信息处理方法、装置及设备 |
CN112350827B (zh) * | 2020-09-29 | 2022-08-23 | 中国科学院信息工程研究所 | 一种基于Koblitz曲线的加速标量乘计算的椭圆曲线加解密方法和系统 |
CN114065171A (zh) * | 2021-11-11 | 2022-02-18 | 北京海泰方圆科技股份有限公司 | 一种身份认证方法、装置、系统、设备及介质 |
CN114065171B (zh) * | 2021-11-11 | 2022-07-08 | 北京海泰方圆科技股份有限公司 | 一种身份认证方法、装置、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1224909C (zh) | 数字作品保护系统 | |
CN1157020C (zh) | 提高了安全性的密码处理装置 | |
CN1977250A (zh) | 进行加密或解密的计算机系统和计算机程序 | |
CN1922643A (zh) | 加密系统、加密装置、解密装置、程序和集成电路 | |
CN1099779C (zh) | 通信设备和通信系统 | |
CN1774886A (zh) | 信息处理方法,解密处理方法,信息处理设备和计算机程序 | |
CN101053200A (zh) | 信息处理设备、信息存储媒体、内容管理系统、数据处理方法、以及计算机程序 | |
CN1665185A (zh) | 内容提供系统、用户系统、跟踪系统、装置及方法 | |
CN101061526A (zh) | 密码处理运算装置 | |
CN1898621A (zh) | 内容输出设备、内容分发服务器及密钥发布中心 | |
CN101080897A (zh) | 鉴别系统、鉴别方法、证明器件、验证器件及其程序和记录介质 | |
CN1531241A (zh) | 密码重构方法、分散密码重构装置及密码重构系统 | |
CN1303065A (zh) | 数据库管理装置和加密/解密系统 | |
CN1947372A (zh) | 个人信息管理装置、分散密钥存储装置、个人信息管理系统 | |
CN1848128A (zh) | 信息处理器、信息处理方法和计算机程序 | |
CN1959770A (zh) | 加密方法、密文解码方法、加密器、密文解码器和通信系统 | |
CN1726669A (zh) | 数据分割方法和使用异或运算的装置 | |
CN1822538A (zh) | 加密方法,加密装置,解密方法和解密装置 | |
CN1396568A (zh) | 数字作品保护系统、记录媒体装置、发送装置和重放装置 | |
CN1753356A (zh) | 信息处理方法、解密方法、信息处理装置和计算机程序 | |
CN1759559A (zh) | 数字作品的保护系统、记录设备、再现设备及记录介质 | |
CN101047495A (zh) | 用于传送数据的方法和系统 | |
CN101040306A (zh) | 伪随机数生成装置 | |
CN1199177C (zh) | 可抑制电路规模能进行高速纠错的纠错装置和解码装置 | |
CN1267816C (zh) | 信息安全装置,质数生成装置,和质数生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20070103 |