zoukankan      html  css  js  c++  java
  • RSA加密算法

    一、密码与加密

      传统密码加密算法是秘密的

      现代密码系统加密算法是公开的,密钥是秘密的

      • 对称加密,加密解密都是一个密钥
      • 非对称加密,加密解密是不同的密钥

    二、RSA加密算法

    1、RSA非对称加密系统

      公钥:用来加密,是公开的

      私钥:用来解密,是私有的

      

    2、RSA加密算法过程

    • 随机选取两个质数p和q
    • 计算n=pq
    • 选取一个与φ (n)互质的小奇数e,φ (n)=(p-1)(q-1)
    • 对模φ (n),计算e的乘法逆元d,即满足(e*d) mod φ (n) = 1
    • 公钥(e, n)    私钥(d, n)

      加密过程:c = (m^e) mod n

      解密过程:m = (c^d) mod n

    3、RSA加密算法测试

    In[1]:p = 53
    In[2]:q = 59
    In[3]:n = p * q
    In[4]:fai = (p-1)*(q-1)   # 欧拉函数
    In[5]:e = 3   # 与fai互质的小奇数
    In[6]:d = 2011  # 求得逆元d,满足(e*d)mod fai = 1
    In[7]:(e*d) % fai
    Out[9]: 1
    In[10]:print(e,n)   # 这两个组成公钥
    3 3127
    In[11]:print(d,n)  # 这两个组成私钥 
    2011 3127
    In[12]:m = 87   # 定义要传输的明文
    In[13]:c = (m**e) % n   # 加密得到密文
    In[14]:c
    Out[14]: 1833
    In[15]:(c**d) % n   # 解密得到明文
    Out[15]: 87
    

      

  • 相关阅读:
    Python-TXT文本操作
    Appium-处理系统弹窗
    Appium-服务关键字
    App Inspector-iOS真机功能详解
    Appium+Python3+iOS真机环境搭建
    Appium-超过60s的应用场景如何处理
    python-入门的第一个爬虫例子
    Mysql(五) JDBC
    Mysql(四)正则表达式
    Mysql(三)约束
  • 原文地址:https://www.cnblogs.com/xiugeng/p/9766220.html
Copyright © 2011-2022 走看看