mRSA是斯坦福大学的一些密码学研究人员提出的一种RSA算法的变化机制,这种机制,解决了RSA算法面临的一些问题,而且,和传统RSA的应用完全能够兼容起来。
mRSA算法在一种被称为SEM(SEcurity Mediator)的架构下使用,其算法的核心可以描述如下:
用户RSA密钥对 PUBKEY为(N,e),私钥(N,D),是符合RSA算法要求的数值。
我们将私钥分为两部分 用户持有部分 Duser 和SEM持有部分 Dsem ,满足下面的条件:
D= Dsem + Duser mod(φ(N) )
或反过来:
Duser =D - Dsem mod(φ(N) )
CA中心在使用给公钥签发证书时,和标准RSA算法密钥完全一致,无须任何区别和变化。
使用mRSA算法签名:
假设拿到摘要后的消息M,那么:
SEM端签名:
Ssem = MDsem mod(φ(N) )
用户签名:
Suser = MDuser mod(φ(N) )
客户收到 Ssem 以后计算:
M1= ( Ssem * Suser) emod(φ(N) )
如果M=M1,则能够得出 完整签名:
S= ( Ssem * Suser) mod(φ(N) )
此签名值可以用公钥证书顺利验证通过。
同理,RSA私钥解密运算的话,也可以类似得出:
假设拿到密文C:
sem解密得到:
Psem = CDsem mod(φ(N) )
用户解密得到:
Puser = CDuser mod(φ(N) )
用户收到Psem,计算
C1= ( Psem * Puser)e mod(φ(N) )
如果C=C1,那么,明文应该就等于
P=( Psem * Puser)mod(φ(N) )
mRSA的使用场景:
1、使用CA或密钥中心产生密钥
按照PKI系统一般要求,私钥应该在用户处产生,否则签名可能没有法律效力,但是因为证书下载成功率的问题,所以这个问题一直很困扰证书运营商,密钥统一由CA或KM产生吧,又涉及法律效力问题,为人所诟病。
今年来,有些地方推出“预植证书”这样的业务,就是预先把证书做在KEY里,但是也同样面临法律问题,有了mRSA这种技术,其实完全可以把私钥的一部分在生产时灌入KEY,另一部分由另外单独的通道交给客户,在使用之前合成。而且,现在有很多新的技术,能让这种机制使用更方便。
2、软证书的使用
因为网络环境的恶劣,所以用软证书一直都不被提倡,但是有了mRSA是否能改善这种情况?一部分私钥安装到了计算机系统,另外一部分客户持有,使用之前合成,不使用时,计算机中只有一部分。这样是否能改善软证书的安全性?
尤其是在移动终端(平板电脑、智能手机)这些领域,可以用二维码等方式,来读取客户持有那部分数据,使用起来,也还是很方便的。
3、大型证书系统的证书撤销
大型证书系统,证书撤销是一个很棘手的问题,CRL方案有时效性,OCSP技术又有性能瓶颈,没有一个特别方便的方案。如果使用mRSA这种SEM方案,就比较简单,直接在运营端注销Dsem,就再也没有办法进行数字签名了,运营方的Dsem数据只是私钥的一部分,也不会带来数据安全问题。
4、改进安全性
在mRSA机制下,产生一个有效的数字签名需要客户端和服务器端的协同,这样,服务器端很容易控制客户,也保护了客户端,免受一些攻击。
以上就是mRSA算法的介绍,个人感觉,这种机制还是大有发展空间的。当然,现在咱们中国有了自己的非对称算法,基于RSA的这种技术怎么发展,需要看PKI和算法技术的发展了。