[发明专利]取模方法、取模装置及芯片有效
申请号: | 201310274835.1 | 申请日: | 2013-07-02 |
公开(公告)号: | CN103401681A | 公开(公告)日: | 2013-11-20 |
发明(设计)人: | 王亚伟;汪朝晖 | 申请(专利权)人: | 北京华大信安科技有限公司 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/30 |
代理公司: | 北京弘权知识产权代理事务所(普通合伙) 11363 | 代理人: | 郭放;许伟群 |
地址: | 100015 北京市朝阳*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 方法 装置 芯片 | ||
技术领域
本发明涉及信息安全领域,尤其涉及取模方法、取模装置及芯片。
背景技术
RSA算法作为一种公钥密码算法,在信息安全领域已经得到广泛应用。基于RSA算法的各种智能卡及智能密码钥匙等安全产品已经普遍应用于金融、通信、社保、交通等各个领域。在智能卡及智能密码钥匙的芯片采用RSA算法进行签名或者对采用RSA加密方式加密的数据进行解密时,通常会结合中国剩余定理(CRT,Chinese Remainder Theorem)对签名或解密的处理过程进行加速,即芯片采用通常所说的RSA-CRT算法对数据进行签名或解密。
芯片采用RSA-CRT算法对数据进行签名或解密时,需要使用RSA的私钥对待签名或待解密的数据进行取模。现有技术中,通常的做法是芯片采用直接取模运算方式进行取模,直接取模运算方式是指以设待签名或待解密的数据为被除数,以私钥为除数直接进行取模运算的方式进行取模。
发明人对芯片现有取模过程研究之后发现,在采用RSA-CRT算法对数据进行签名或解密时,如果芯片采用直接取模运算的方式进行取模,攻击者采用明文攻击(CPA,Chosen Plaintext Attack)结合简单功耗分析(SPA,Simple Power Attack/Analysis),可以分析出芯片执行RSA-CRT算法时所采用的一个RSA私钥,进而获取到整个RSA算法的全部私钥。由此可见,当采用RSA-CRT算法对数据进行签名或解密时,使用现有取模方法进行取模,芯片取模过程安全性低。
发明内容
本发明实施例提供了取模方法、取模装置及芯片,以解决在采用RSA-CRT算法对数据进行签名或解密时,使用现有取模方法进行取模,芯片取模过程安全性低的问题。
第一方面,本发明实施例提供了一种取模方法,该方法包括:接收待取模数据;根据RSA密钥的长度生成随机数;获取直接取模运算的一个等价运算,所述等价运算的参数包含所述随机数;使用所述等价运算对所述待取模数据以RSA的私钥为模数进行取模。
结合第一方面,在第一种可能的实现方式中,所述根据RSA密钥的长度生成随机数,包括:获取RSA的两个私钥;获取公钥模数,所述公钥模数为两个私钥的乘积;生成随机数,所述随机数为位长小于等于所述公钥模数的位长并且大于等于所述公钥模数的位长的一半的。
结合第一方面及第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述获取直接取模运算的一个等价运算,具体为,选择以下运算中的一个作为直接取模运算的等价运算:
(C+R*m)mod m,
(C-R*m)mod m,
((C+R)-R mod m)mod m,
((C-R)+R mod m)mod m,
((C+R)mod m-R)mod m,
((C-R)mod m+R)mod m,
((C+R)mod m-R mod m)mod m,
((C-R)mod m+R mod m)mod m,
其中C为所述待取模数据,R为所述随机数,m为RSA的私钥第一元素或私钥第二元素,即两个私钥之一。
结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述使用所述等价运算对所述待取模数据以RSA的私钥为模数进行取模,具体为:使用所述等价运算对所述待取模数据以RSA的私钥为模数进行取模,使用蒙哥马利模乘器完成所述等价运算中的包含的取模运算。
第二方面,本发明实施例还提供了一种取模装置,所述装置包括:接收单元,用于接收待取模数据;生成单元,用于根据RSA密钥的长度生成随机数;获取单元,用于获取直接取模运算的一个等价运算,所述等价运算的参数包含所述生成单元生成的所述随机数;取模单元,用于使用所述获取单元获取的所述等价运算对所述接收单元接收到的所述待取模数据以RSA的私钥为模数进行取模。
结合第二方面,在第一种可能的实现方式中,所述生成单元包括:私钥获取子单元,用于获取RSA的两个私钥;公钥模数获取子单元,用于获取公钥模数,所述公钥模数为所述私钥获取子单元获取到的两个私钥的乘积;随机数生成子单元,用于生成随机数,所述随机数为位长小于等于所述公钥模数获取子单元获取到的所述公钥模数的位长并且大于等于所述公钥模数的位长的一半的。
结合第二方面及第二方面的第一种可能的实现方式,在第二种可能的实现方式中,获取单元,具体用于选择以下运算中的一个作为直接取模运算的等价运算:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华大信安科技有限公司,未经北京华大信安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310274835.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种手机终端天线
- 下一篇:用于废旧铅酸蓄电池的处理系统和处理方法