RSA 算法实现

密码学基础

密码技术用于保证电子数据的安全性,完整性和真实性。

  1. 保密性:对数据进行加密,使得非法用户无法读懂数据信息,而合法用户可以用密钥读取信息;
  2. 完整性:对数据进行鉴别,已确认是否被非法篡改;
  3. 真实性:保证数据来源的真实性。


    RSA algorithm process.png

加密算法描述

加密算法分成两种,对称加密和非对称加密。

  1. 对称加密:双份都使用共同密钥,不论发送方对信息加密还是接收方对信息解密,都是使用同一个密钥;
    a. 如果这个密钥被非法获取,则加密毫无意义;
    b. 另外,如何传送密钥也是一个难题。
  2. 非对称加密 (RSA): 两把密钥:公开密钥,保密私钥。
    a. 两个成对出现。如果通过公钥加密,则只能通过私钥解密;Vice Versa;

RSA 算法的原理及应用

RSA 的原理

  1. 密钥的产生:
    • 随机选取两个长度相等的大素数: & ;
    • 随机在 中取一个数 , 并且 ,继而我们可以得到 (我们通过拓展欧几里得算法找 )
    • 公钥: 密钥:
  2. 加密算法过程:
    • 已知明文 ,我们可以将 分成不同符块 , 使得每个符块 。 然后得到密文:
  3. 解密算法实现:
    • 已知密文 以及私钥 ,可以计算出明文
  4. RSA 算法举例:(MATLAB)
clear; clc;
p = 67; q = 71; 
n = p * q; 
t = (p - 1) * (q - 1); 
e = 101; d = 1601;
message = [228, 184, 173];
encrpyted_message = mod(sym(message) .^ e, n);
decrpyted_message = mod(sym(encrpyted_message) .^ d, n);

fprintf('the original message is: %d\n', message)
fprintf('the encrpyted message is: %d\n', encrpyted_message)
fprintf('the decrpyted message is: %d\n', decrpyted_message)

你可能感兴趣的:(RSA 算法实现)