加解密优化

本文由 @lonelyrains 出品,转载请注明出处。 
文章链接: http://blog.csdn.net/lonelyrains/article/details/49761619


       使用场景:USBKey、音频Key、蓝牙Key等基于单片机的签名验签、加密解密。


       考虑到单片机的计算能力问题,可能用一点分布式的思想,将一部分计算通过发指令到上位机上进行,来优化Key的计算时长、耗电量,只要确保最关键的私钥不出Key就行。


       RSA为例:c^d mod n = c^d mod (p*q) = (c^dp mod p) *( c^dq mod q), dp = d mod (p-1) ,dq = d mod (q-1)。 其中d不出Key,要借助上位机的计算能力快速计算c^d mod n,因为主要耗时是指数运算,只传递c、dp、dq,分别计算c^dp、c^dq,然后再在单片机内计算(c^dp mod p) *( c^dq mod q),以达到优化目的。只知道c、dp、dq并不能算出p、q、d,所以是安全的。


       当然,还可以考虑其他非对称算法应用的推广。

   

       虽然目前RSA1024大多能直接在COS上跑起来,但是RSA2048等位数较长时,却因为单片机的计算能力使时间受到限制。


       RSA原理参考之前的一篇博文:目前世界上最重要的算法RSA的数学原理摘要

你可能感兴趣的:(加解密优化)