首页> 中国专利> 基于椭圆曲线加密法的签密方案

基于椭圆曲线加密法的签密方案

摘要

本发明提供了一种用于基于椭圆曲线加密法签密数据的方法和系统。在前端系统中,使用随机点R对数据加密,并且使用随机点R对数据数字签名。在对数据签密之后,仅随机点R的x坐标R

著录项

  • 公开/公告号CN101645773A

    专利类型发明专利

  • 公开/公告日2010-02-10

    原文格式PDF

  • 申请/专利权人 耶德托存取公司;

    申请/专利号CN200910159690.4

  • 发明设计人 徐胜波;

    申请日2009-07-31

  • 分类号

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人郭思宇

  • 地址 荷兰霍夫多普

  • 入库时间 2023-12-17 23:27:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-08-17

    未缴年费专利权终止 IPC(主分类):H04L9/30 授权公告日:20160127 终止日期:20170731 申请日:20090731

    专利权的终止

  • 2016-01-27

    授权

    授权

  • 2015-08-19

    著录事项变更 IPC(主分类):H04L9/30 变更前: 变更后: 申请日:20090731

    著录事项变更

  • 2013-09-18

    著录事项变更 IPC(主分类):H04L9/30 变更前: 变更后: 申请日:20090731

    著录事项变更

  • 2011-09-07

    实质审查的生效 IPC(主分类):H04L9/30 申请日:20090731

    实质审查的生效

  • 2010-02-10

    公开

    公开

查看全部

说明书

技术领域

本发明涉及用于基于椭圆曲线加密法加密并数字签名数据的方法、条件访问系统、前端系统和智能卡。

背景技术

条件访问系统是公知的,并且广泛地与当前可获得的付费电视系统相结合地使用。目前,这样的系统基于服务的传输,所述服务被具有机顶盒和每一个订阅包的智能卡的用户接收的控制字(也被称为服务加密密钥)加密。典型地,这些服务由前端系统以广播流发射。已知这样的实现,其中机顶盒功能被集成到如电视、个人录影机、手机、智能电话或计算机用品的装置中。已知这样的智能卡实现,其中智能卡是在操作之前手动插入机顶盒中的独立的卡、或集成在机顶盒中的表面安装装置。已知软件实现的智能卡作为机顶盒中的软件模块运行。来自特别服务提供商的订阅包的智能卡允许包内的加密服务被解密和观看。广播流还包含授权管理消息(EMM),也被称为密钥管理消息(KMM),和授权控制消息(ECM),这对于智能卡解密服务而言是必要的。控制字是用于保护服务数据的主要安全机构,并且相对频繁地改变。ECM被用于以加密形式传送控制字,因此被相对频繁地发送。EMM被用于传送用于解密ECM以抽取控制字、解密与添加或移除观看/使用权限相关的其它数据、和/或解密其它用户特定数据的秘密密钥。因此,存在不同种类的EMM,它们以不同的频率级别被发送,但不变的是比发送ECM的频率稍慢或慢的多。

椭圆曲线加密法是用于对诸如EMM和ECM的消息进行加密和数字签名的已知技术。实现椭圆曲线加密法技术的椭圆曲线加密系统对由预定的椭圆曲线域参数确定的有限场上的椭圆曲线执行算术运算。椭圆曲线域参数存储在用于加密和签名目的的前端系统中,并且存储在用于解密和签名验证目的的智能卡中。

椭圆曲线加密法典型地使用下述椭圆曲线域参数之一:有限场IFp上的椭圆曲线域参数、和IF2^m上的椭圆曲线域参数。

IFp上的椭圆曲线域参数是p、a、b、G、n和h。参数p是指定有限场Fp的质数(prime)。参数a∈IFp和b∈IFp指定由等式y2=x3+a*x+b限定的椭圆曲线E(IFp)。参数G是椭圆曲线上的点的循环子群的基点(Gx,Gy)。参数n是G的阶,即最小的非负质数n,从而n·G=O(O是无穷大的点)。参数h是余因子|E(IFp)|/n。

IF2^m上的椭圆曲线域参数是m、f(x)、a、b、G、n和h。参数m是指定有限场IF2^m的整数。参数f(x)是指定IF2^m的表示的次数m的不可约分的二进制多项式。参数a∈IF2^m和b∈IF2^m在F2^m中指定由等式y2+x*y=x3+a*x2+b限定的椭圆曲线E(IF2^m)。参数G是椭圆曲线上的点的循环子群的基点(Gx,Gy)。参数n是G的阶,即最小的非负质数n,从而n·G=O(O是无穷大的点)。参数h是余因子|E(IF2^m)|/n。

加密是使用算法(也已知为密码)变换信息(也被称为明文)以使其对于除了那些有解密密钥的人以外的任何人不可读的处理。一种已知的基于椭圆曲线加密法的公共密钥加密方案是椭圆曲线整体加密方案(ECIES)。ECIES在例如`M.Abdalla,M.Bellare,P.Rogaway的“DHAES:An encryption scheme based on the Diffie-Hellmanproblem”,http://www-cse.ucsd.edu/users/mihir/papers/dhies.html,2001年9月18日中有描述,并且在例如ANSI X9.63和IEEE P1363A中标准化,上述文献通过引用全文并入本申请。在加密/解密处理中,ECIES使用接收机的私有密钥(由参数dreceiver表示)和公共密钥(由参数Qreceiver表示)。此处,参数dreceiver典型地为在区间[1,n-1]中随机选择的整数。参数Qreceiver典型地等于dreceiver·G。

为了使用ECIES对明文消息加密,前端系统执行下述步骤。首先,产生随机数r,并且计算随机点R=r·G,得到R=(Rx,Ry)。第二,导出共享秘密S=Px,其中P=(Px,Py)=r·Qreceiver(并且P不是无限大的点)。第三,诸如ISO/IEC 18033-2中限定的KDF1或KDF2的密钥导出函数(KDF)被用于通过计算kE=KDF(S)推导对称加密密钥。第四,通过计算E(kE;message)使用加密密钥kE对消息加密。第五,加密的结果被输出作为R‖encrypted_message,即与被加密的消息相连接的随机点R。

为了使用ECIES解密消息,智能卡执行下述步骤。第一,导出共享秘密S=Px,其中P=(Px,Py)=dreceiver·R。第二,KDF被用于通过计算kE=KDF(S)推导对称加密密钥。第三,通过计算E-1(kE;encrypted_message)使用加密密钥kE对消息解密。

数字签名是一种用于模拟纸张上的手写签名的安全特性的非对称加密法。数字签名提供了消息的认证。一种已知的基于椭圆曲线加密法的公共密钥签名算法是椭圆曲线数字签名算法(ECDSA)。ECDSA在例如ANSI X9.62,FIPS 186-2,IEEE P1363和ISO 15946-2中被标准化,上述文献通过引用而全部并入本申请。ECDSA在签名/验证处理中使用发送者的私有密钥(由参数dsender表示)和公共密钥(由参数Qsender表示)。此处,参数dsender典型地为区间[1,n-1]中随机选择的整数。参数Qsender典型地等于dsender·G。

为了使用ECDSA数字地签名一个消息,前端系统执行下述步骤。第一,将消息的散列e计算为e=H(message),其中H是诸如FIPS PUB 180-1中限定的SHA-1的加密散列函数。第二,从[1,n-1]中选择随机整数k。第三,计算签名分量rsignature=x1(mod n),其中(x1,y1)=k·G。如果rsignature等于0,则重复第二步骤。第四,计算签名分量ssignature=k-1*(e+rsignature*dsender)(mod n)。如果ssignature等于0,则重复第二步骤。第五,得到的签名作为rsignature‖ssignature输出,即与签名分量Ssignature相连接的签名分量rsignature

为了验证使用ECDSA的消息的数字签名,智能卡执行下述步骤。第一,验证签名分量rsignature和签名分量ssignature是[1,n-1]中的整数。如果不是,则签名无效。第二,将消息的散列e计算为e=H(message),其中H是签名产生中使用的相同函数。第三,计算w=ssignature-1(mod n)。第四,计算u1=e*w(mod n)和u2=rsignature*w(modn)。第五,计算(x1,y1)=u1·G+u2·Qsender。第六,如果x1=rsignature(modn)则总结签名有效;否则,无效。

加密和数字签名数据两者的处理也已知为签密。

在图1A中,示出了在应用ECIES加密之前和之后的EMM或ECM的现有技术例子。该例子中的未加密的ECM/EMM 10具有6字节头部11和50字节的净荷12。使用ECIES和192字节的公共密钥对净荷12加密。这也被认为是使用ECC-192的加密。得到的加密的EMM/ECM 20包含头部11、48字节的随机点R=(Rx,Ry)21和50字节的加密的净荷22。因此,由于随机点R 21的48字节的开销,该例子中的加密的EMM/ECM包20在加密之后变长了48字节。可以使用不同大小的公共密钥,得到不同大小的随机点R=(Rx,Ry)。

在图1B中,示出了在应用ECDSA数字签名之前和之后的加密的EMM或ECM的现有技术例子。该例子中的加密的EMM/ECM 20具有6字节头部11和48字节的随机点R(Rx,Ry)21和50字节的加密净荷22。使用ECDSA和192字节的公共密钥对加密的EMM/ECM数字签名。这也被认为是使用ECC-192的数字签名。得到的签名的并加密的EMM/ECM 30包含加密的ECM 20、24字节的签名分量rsignature31和24字节的签名分量ssignature32。因此,由于签名分量rsignature31的24字节的开销和签名分量ssignature32的24字节的开销,该例子中的数字签名并加密的ECM包30在数字签名之后变长了48字节。可以使用不同大小的公共密钥,得到不同大小的签名分量。

ECIES和ECDSA增加了消息的大小。在ECC-192的例子中,在应用了ECIES和ECDSA之后,一共向消息添加了96字节。对于典型的数据包大小为184字节的EMM和ECM,该开销相当大。

在EP0874307A1中,公开了一种用于将椭圆曲线E上的点P乘以值k,以推导点kP的方法。该方法仅被公开用于二元场IF2^m中的椭圆曲线。该方法包括将数k表示为存储在寄存器中的二进制位的向量,并且形成点对(P1,P2)的序列的步骤,其中点对相差最大为P,并且其中通过从(mP,(m+1)P)计算(2mP,(2m+1)P),或从(mP,(m+1)P)计算((2m+1)P,(2m+2)P)来选择点对的连续序列。可在计算期间不使用点的y坐标来进行计算,而允许在计算结束时抽取y坐标,从而避免在计算期间使用逆运算,并且因此加速加密处理器的运行。EP0874307A1还公开了一种用于加速两方之间的签名验证的方法。在EP0874307A1中,由于通过加密和数字签名消息而对消息添加的开销,签密的消息不利地具有增加的大小。

发明内容

本发明的一个目的是提供一种用于基于椭圆曲线加密法对数据进行加密和数字签名的改进的方法。

根据本发明的一个方面,提出了一种用于基于椭圆曲线加密法处理数据以获得处理结果的方法。该方法包括使用随机点R加密数据以获得加密的数据的步骤。该方法还包括使用随机点R对加密的数据数字签名以获得处理结果的步骤。

因此,本发明的包括基于椭圆曲线加密法对数据加密和数字签名的步骤的方法使得能够产生再使用加密步骤中计算的随机数据的数字签名,使得在签密之后能够具有减小的数据开销。

权利要求2的实施例有利地使得能够得到没有随机点R的y坐标Ry和签名分量rsignature的处理结果。

权利要求3的实施例有利地使得能够对授权管理消息或授权控制消息签密。

根据本发明的一个方面,提出了一种用于基于椭圆曲线加密法处理数据以获得处理结果的方法。该方法包括使用随机点R验证数据的步骤。该方法还包括使用随机点R对数据解密以获得处理结果的方法。

因此,本发明的包括基于椭圆曲线加密法验证和解密作为签密数据的数据的步骤的方法有利地使得能够对数据进行数字签名验证和解密,由此在两个步骤中都使用相同的随机点R,使得能够减小签密数据中的数据开销。

权利要求6的实施例有利地使得能够不用随机点R的y坐标Ry和签名分量rsignature对数据进行签名验证和解密。

权利要求7的实施例有利地使得能够对签密的授权管理消息或签密的授权控制消息进行签名验证和解密。

权利要求4和8的实施例有利地使得能够在条件访问系统中使用本发明的方法。

根据本发明的一个方面,提出了一种条件访问系统,该系统包括前端系统和一个或多个智能卡。该条件访问系统被配置为执行上述步骤中的一个或多个。因此,本发明的条件访问系统有利地使得能够以签密之后的减小的数据开销来对数据进行签密。

根据本发明的一个方面,提出了一种前端系统。该前端系统被配置为执行上述步骤中的一个或多个,因此,本发明的前端系统有利地使得能够以签密之后的减小的数据开销进行签密。

根据本发明的一个方面,提出了一种智能卡。该智能卡被配置为执行上述步骤中的一个或多个,因此,本发明的智能卡有利地使得能够对具有减小的数据开销的签密的数据进行签密验证和解密。

在下文中,将更详细地描述本发明的实施例。然而,应理解为这些实施例不可被理解为限制本发明的保护范围。

附图说明

通过参照附图所示的示例性实施例更详细地描述本发明的方面,其中:

图1A示出了在应用ECIES之前和之后的ECM或EMM的现有技术例子;

图1B示出了在应用ECDSA之前和之后的ECM或EMM的现有技术例子;

图2示出了本发明的示例性实施例的条件访问系统的示意图;

图3示出了包括本发明的示例性实施例的对数据加密和数字签名的步骤的方法的步骤;

图4示出了包括本发明的示例性实施例的验证和解密数据的步骤的方法的步骤;以及

图5示出了本发明的示例性实施例的在应用ECIES和ECDSA之前和之后的ECM或EMM。

具体实施方式

图1A和1B示出了背景技术部分中已讨论过的、在应用ECIES(图1A)和ECDSA(图1B)之前和之后的ECM或EMM的现有技术例子。

本发明典型地应用于其中EMM和ECM以签密形式被发射的条件访问系统。本发明不限于条件访问系统中的应用,并且可用于其中数据被签密的任何系统。

在图2中,示出了典型的条件访问系统100。图2仅示出了签密中涉及的主要元件,未示出的其它元件可以是条件访问系统100的一部分。在条件访问系统100中,前端系统110通过广播网络130将签密的EMM和签密的ECM发射至智能卡120。智能卡120例如位于机顶盒(未示出)中,所述机顶盒用于接收签密的EMM/ECM并将签密的EMM/ECM转发至智能卡120。尽管图2仅示出了一个智能卡120,典型地,条件访问系统中存在有多于一个的智能卡。在多个智能卡的情况下,前端系统110能够将EMM/ECM发射至每一个智能卡。

前端系统110包括处理器111、存储器112、加密模块113和数字签名模块114。使用处理器111,加密模块113从存储器112读取明文EMM。参照图5,明文EMM 40包含头部部分41和净荷部分42。可供替换地,加密模块113可从存储器112读取明文。使用处理器111,明文EMM 40的净荷部分42使用下述的改进的ECIES方案被加密。得到的加密EMM 50包含头部部分41、加密的净荷部分52和随机点R的x坐标Rx51。下面,加密的EMM 50被传递至数字签名模块114。存储器112可被用于暂时存储加密的EMM 50。下面,使用处理器111,使用下述改进的ECDSA算法在数字签密模块114中对加密的EMM 50数字签名。得到的签密的EMM 60包含头部部分41、加密的净荷52、仅随机点R的x坐标Rx 51和仅签名的签名分量ssignature 61。签密的EMM 60通过广播网络130被发射至智能卡120。

智能卡120包括处理器121、存储器122、签密验证模块123和解密模块124。通过机顶盒(未示出),智能卡接收签密的EMM 60并将其存储在存储器122中。使用处理器121,从存储器122读取签密的EMM 60,并使用下述的改进的ECDSA算法在签名验证模块123中对其进行验证。如果签密的EMM 60被验证为可信,则使用下述的改进的ECIES方案在解密模块124中对签密的EMM 60的加密的净荷部分52进行解密。其结果是,获得明文EMM的净荷部分42。

参照图3,根据本发明加密1000和数字签名2000数据使用改进的ECIES方案和改进的ECDSA方案。为了签密EMM,前端系统110使用下述信息作为输入:

明文EMM 40,例如,如图5所示的,包含头部部分41和净荷部分42;

椭圆曲线域参数p、a、b、G、n和h,其中h具有小值,优选地低于5并且在下面的例子中为值1;

接收智能卡120的公共密钥Qreceiver,该密钥具有都在由域参数限定的椭圆曲线上x和y坐标的随机点;以及

发射前端系统110的私有密钥dsender,该密钥是一个整数。

在签密EMM的加密部分1000中,在步骤1001中产生随机数r,并在步骤1002中计算随机点R=r·G=(Rx,Ry)。下面,在步骤1003中推导共享秘密S=Px,其中P=(Px,Py)=r·Qreceiver。在步骤1004中,检查P是否是无穷大的点。如果是,则重复步骤1001。否则,在步骤1005中推导对称加密密钥kE=KDF(S)。在步骤1006中,使用加密密钥kE对EMM 40的净荷部分42进行加密。得到的加密的EMM50包含头部部分41、随机点R的x坐标Rx 51和加密净荷52。

在签密EMM的数字签名部分2000中,例如SHA-1的散列函数被用于计算2001加密EMM 50的散列值e,即计算e=H(加密EMM50)。在步骤2002中,如签密EMM的加密部分1000中所使用的,使用相同的随机数r和x坐标Rx计算签名分量Ssignature,即Ssignature被计算2002为Ssignature=r-1*(e+Rx*dsender)。在步骤2003中,检查s是否等于0。如果是,则重复步骤1。得到的签密的EMM 60包含头部部分41、随机点R的x坐标Rx 51、加密净荷52和签名分量Ssignature61。

参照图4,根据本发明验证3000和解密4000数据使用改进的ECIES方案和改进的ECDSA方案。为了验证和解密EMM,智能卡120使用下述信息作为输入:

■签密的EMM 60,例如,如图5所示,包含头部部分41、随机点R的x坐标Rx51、加密净荷部分52和签名分量Ssignature61;

■相同的椭圆曲线域参数p、a、b、G、n和h,如签密EMM使用的;

■发射前端系统110的公共密钥Qsender,该密钥是具有由域参数限定的椭圆曲线上的x和y坐标的随机点;以及

■接收智能卡120的私有密钥dsender,该密钥是一个整数。

在验证部分3000中,在步骤3001中验证接收的随机点R的x坐标Rx51和签名分量Ssignature61是否是范围[1,n-1]中的整数。如果不是,则签密EMM 60不可信,即其与如前端系统110创建的签密EMM不同。放弃并且不进一步处理非可信的EMM。否则,在步骤3002中,为加密的EMM 50(即,没有签名分量ssignature61的签密的EMM 60)计算散列值e=H(加密EMM 50)。此处,H是与签名产生中使用的相同的函数,例如,相同的SHA-1函数。在步骤3003中,计算w=ssignature-1(mod n)。在步骤3004中,计算u1=e*w(mod n)和u2=Rx*w(mod n)。在步骤3005中,计算(x1,y1)=u1·G+u2·Qsender。在步骤3006中,验证是否x1=Rx(mod n)。如果不是,则签密EMM 60不可信,即其与如前端系统110创建的签密EMM不同。放弃并且不进一步处理非可信的EMM。否则签密的EMM 60是可信的并且可被解密。

在解密部分4000中,从Rx计算随机点R的y坐标Ry,并且在步骤4001中构建点R’=(Rx,R’y)。R’y可以等于Ry或-Ry。在步骤4002中,计算P’=(Px,P’y)=dreceiver·R’。在步骤4003中,验证P是否为无穷大的点。如果是,则放弃并且不进一步处理签密的EMM。否则通过计算KE=KDF(Px)来推导4004对称加密密钥KE。利用推导的KE,在步骤4005中对签密的EMM 60的加密的净荷部分52解密,并获得明文净荷42。

本发明不限于给出的例子。如图3和4示出的加密部分1000、数字签名部分2000、验证部分3000和解密部分4000可例如对于相同的输入,使用不同的计算步骤来达到相同结果。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号