RSA 算法实现

密码学基础

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

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


    RSA algorithm process.png

加密算法描述

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

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

RSA 算法的原理及应用

RSA 的原理

  1. 密钥的产生:
    • 随机选取两个长度相等的大素数:q & p;
    • n = p \times q\ , \ \ t = (p - 1) \times (q - 1),\ \ where \ \ t = \phi(n)
    • 随机在 (0, t) 中取一个数 e, 并且 d \times e \equiv 1 \ mod \ n,继而我们可以得到 d (我们通过拓展欧几里得算法找 d
    • 公钥:(n, d) 密钥:(q, p, e)
  2. 加密算法过程:
    • 已知明文 x, \ x < n,我们可以将 x 分成不同符块 x_i, 使得每个符块 x_i < n。 然后得到密文:C = \sum_{i = 1}^m x_i ^ e \ (mod \ n)
  3. 解密算法实现:
    • 已知密文 C 以及私钥 (n, e),可以计算出明文 x = C^d (mod \ n)
  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公钥算法 本文简单介绍了公开密钥密码系统的思想和特点,并具体介绍了RSA算法的理论基础,工作原...
    火狼o阅读 4,327评论 2 15
  • 前言 文中首先解释加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的...
    sunny冲哥阅读 3,033评论 0 2
  • 数字证书原理 - 无恙 - 博客园 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明...
    拉肚阅读 1,692评论 0 3
  • 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现...
    sunny冲哥阅读 1,403评论 0 3
  • 1 非对称加密算法 (1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。(2)甲...
    树懒啊树懒阅读 1,448评论 0 0