【逆向】RSA编码解码基础
序言
本文主要讲述RSA加密算法的基础知识,其内容主要用于逆向分析算法部分的基础铺垫,如需文章以外的知识请自行查阅相关资料。
RSA简介
RSA是一种公钥密码算法或非对称加密算法,它的名字是由它的三位开发者的姓氏首字母组成的(Rivest-Shamir-Adleman)。
公钥密码算法的密钥分为2种:"加密密钥"、"解密密钥"。只要拥有加密密钥,任何人都可以进行加密,但没有解密密钥是无法进行解密的。
公钥和私钥是一一对应的,一个公钥和一个私钥的组合被称为"密钥对",由于密钥之间有着非常密切的关系,因此公钥和私钥必须同时生成。
RSA算法
在RSA中"明文"、"密文"、"密钥"都是数字。
RSA的加密、解密过程可以使用如下公式来表述:
密文 = 明文E mod N //将明文和自己做E次方乘法,然后将其结果除以N求余数。
明文 = 密文D mod N //将密文和自己做D次方乘法,然后将其结果除以N求余数。
根据以上内容,我们得出如下结论:
密钥对的生成
因为'E'和'N'是公钥,'D'和'N'是私钥,所以密钥对的生成就是求"E"、"D"、"N"三个数的过程。
参考:《图解密码技术》