码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 公钥加密算法-RSA


    RSA算法

    RSA算法是由它的三位开发者,即 Ron Rivest、Adi Shamir 和 Leonard Adleman 的姓氏的首字母组成的 (Rivest-Shamir-Adleman)。
    RSA 可以被用于公钥加密、数字签名和密钥交换。


    文章目录

    • RSA算法
    • 一、简介
    • 二、RSA算法流程
      • 1、 加密或者验签过程
      • 2、解密或者签名过程
    • 三、RSA算法密钥长度
    • 四、RSA的数学难题


    一、简介

    RSA算法是非对称加密算法。了解RSA算法之前需要了解素数的概念。
    素数:只能被1和本身整除的数。如:13,19…
    RSA算法数学难题:两个大素数相乘容易,素数相乘的乘积分解比较难。
    RSA算法中间涉及到数论的一些知识。RSA算法的流程理解起来是比较简单的。实际的难度在于RSA选择和生成的私钥与公钥。


    二、RSA算法流程

    1. 选择两个大素数,p、q(这里的p和q不能太小,太小容易被破解,太大计算时间比较长)
    2. n=p*q。Φ(n) = (p-1)(q-1)(这里的Φ(n)是欧拉函数:Φ(n)的值为小于n且与n互质的个数)
    3. 选择一个公钥e(1
    4. 私钥d:(d*e)mod(p-1)(q-1)=1
    5. 加密(密文:c,明文:p):c=p^e modn。公钥(n,e)
    6. 解密:p=c^dmodn。私钥(p,q,d)

    1、 加密或者验签过程

    明文先转换为比特串分组,使每个分组对应的十进制数小于n,即分组长度小于log2n,然后对每个明文分组mi 作加密运算,具体过程如下。

    1. 获得接收公钥(e,n)。
    2. 把消息M分组长度为(L
    3. 使用加密算法ci=mi^e mod n(l≤i≤t),计算出密文c=c1c2…ct

    公钥指数e的长度比较短,因此可以提高解密和验签的速度

    2、解密或者签名过程

    1. 将密文c按长度L分组得c=c1 c2…ct。
    2. 使用私钥d和解密算法mi=ci^d mod n(l≤i≤t)计算mi。
    3. 得明文消息M=m1m2m3…mt。

    RSA算法加解密
    RSA算法流程图


    三、RSA算法密钥长度

    RSA密钥长度有:1024、2048、3072、7680、15360(单位都是bit)。1024位的密钥已经不安全了。密钥长度越长安全性则越高。RSA算法推荐的密钥长度为2048位。

    四、RSA的数学难题

    RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积(即上面的n是公开的)公开作为加密密钥。RSA的安全性依赖于大数分解。

    参考文章如下: 翱游公钥密码算法

  • 相关阅读:
    Linux Crontab命令定时任务
    基于Java语言的网上订餐系统(附:源码 课件)
    日期时间参数,格式配置(SpringBoot)
    找不到实时聊天软件?给你推荐电商企业都在用的!
    2023年中国液压剪行业供需分析:随着基础设施建设发展,销量同比增长6.7%[图]
    超长圆钢在线直线度检测 告别手工测量时代
    维格云自定义按钮入门教程
    2022-11-14 mysql-loose scan
    电池的健康状态 SOH 估计
    安卓快速实现流式布局(RecyclerView+ FlexboxLayout)
  • 原文地址:https://blog.csdn.net/qq_43589852/article/details/127356933
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号