论文笔记:公钥密码算法的硬件实现及侧信道攻击研究(RSA部分)
论文笔记:公钥密码算法的硬件实现及侧信道攻击研究 作者:王晖(天津大学,2017届硕士学位论文) RSA 算法计算流程 1. 密钥对生成(软件实现) • 选取两个大素数 p 和 q; • 计算𝑛 = 𝑝 × 𝑞,以及 n 的欧拉函数𝜙(𝑛) = (𝑝 − 1) ∙ (𝑞 − 1); • 随机选取一个整数𝑒 (1 < 𝑒 < 𝜙(𝑛)),满足𝑔𝑐𝑑(𝑒, 𝜙(𝑛)) = 1; • 计算私钥 d,满足𝑑 × 𝑒 ≡ 1 𝑚𝑜𝑑 𝜙(𝑛); • 其中 n, e 可以公开为公钥;p, q 可以抛弃但不能泄露, d 需要保密 为私钥。 2. 加密过程 • 加密方拥有公钥信息 n, e,首先需要将明文信息数字化,即转换成 二进制数据,保证每次加密明文信息 m 的长度小于log2𝑛; • 加密方对明文 m 进行加密,即进行模幂运算𝑐 = 𝑚^e 𝑚𝑜𝑑 𝑛; • 加密方将加密好的密文 c 通过可信通信渠道发送给解密方。 3. 解密过程 • 解密方拥有私钥信息 d; • 解密方接收密文信息 c; • 解密方对密文 c 进行解密操作,即𝑚 = 𝑐^d 𝑚𝑜𝑑 𝑛。 显然,加解密过程的基本运算单元都是:message = 𝑚𝑒𝑠𝑠𝑎𝑔𝑒^k𝑒𝑦 𝑚𝑜𝑑 𝑛。最后通过设计状态机调用模幂模块,分别能够实现 RSA 的加解密过程。RSA整个模块在 Xilinx ISE 开发环境中基于 Xilinx