码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【密码学】RSA密码体制存在的问题


    目录

    1 直接分解N

    1.1 介绍

    1.2 防御措施

    2 低指数攻击

    2.1 介绍

    2.2 防御措施

    3 模不互素

    3.1 介绍

    3.2 防御措施

    4 共模攻击

    4.1 介绍

    4.2 防御措施

    5 迭代攻击

    5.1 介绍

    5.2 防御措施

    6 伪造签名

    6.1 介绍

    6.2 防御措施


    1 直接分解N

    1.1 介绍

    虽然RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。如果随着数学研究的发展,发现“大数分解”问题能够解决,则RSA系统将不再安全。随着计算机处理能力的不断提升,包括量子计算机的加持,特别是通过Internet使大量计算机协同工作,解决一个具体的“大数分解”问题需要的时间越来越短。

    1.2 防御措施

    为了应对直接分解N的安全问题,可以选取较高的公钥模长来提升系统安全强度。理论上来讲N越大,安全强度越高,算法运算速度越慢。另外p和q需要足够大,使N的分解更加困难;其次p和q之差也尽量大,否则容易根据N猜测p和q的规模。

    2 低指数攻击

    2.1 介绍

    加密指数指的是e,当e很小,可直接破解。例如e=3时,

    2.2 防御措施

    加密指数e应该尽量避免选取得太小的情况发生,一般情况下e选取65535。

    3 模不互素

    3.1 介绍

    如果在多次RSA加密中选取了不同的模数,存在两个或更多模数 ,且gcd(N1,N2)!=1,多个模数N共用质数,则可以很容易利用欧几里得算法求得他们的质因数之一exgcd(N1,N2) ,然后这个最大公约数可用于分解模数分别得到对应的p和q,即可进行解密。

    3.2 防御措施

    在模数N的选取上要注意避免上述情况的发生,邻近的RSA加密的模N尽量互素。

    4 共模攻击

    4.1 介绍

    对同一明文的多次加密使用相同的模数和不同的公钥指数可能导致共模攻击。即为在两次RSA加密中,明文m和模数n相同,公钥指数e和密文c不同,且gcd(e1,e2)==1。

    4.2 防御措施

    密钥产生中心(KGC)应该采取相应方法避免共模攻击,例如不定时更新使用的模数N,当然这意味着要消耗一些额外的资源。

    5 迭代攻击

    5.1 介绍

    5.2 防御措施

    Rivest证明,当p-1和q-1中含有大素数因子,且n足够大时,这种攻击法成功的概率趋于0。

    6 伪造签名

    6.1 介绍

    对于想要伪造签名的消息Mtarget,根据在模N数域上的乘法同态原理,如果我们能从已知消息中找到M1和M2满足条件

    Mtarget=M1M2(mod N)

    及其对应的数字签名

    sig(M1)=M1d(mod N)

    sig(M2)=M2d(mod N)

    进而可得

    sig(Mtarget)=(M1M2)d(mod N)=M1dM2d(mod N)=sig(M1)sig(M2)

    所以我们的目标就明确了,只要找到符合条件的M1和M2及二者对应的签名,就可以利用公式推导的结果伪造出目标消息Mtarget的RSA电子签名sig(Mtarget)。

    6.2 防御措施

    签名者对消息的哈希值进行数字签名而非直接对消息本身进行签名,将伪造签名的困难基于Hash算法的抗碰撞性。

  • 相关阅读:
    基于 SpringBoot 的智慧养老平台,附源码、教程
    上周热点回顾(6.20-6.26)
    视频汇聚/视频云存储/视频监控管理平台EasyCVR分发rtsp流起播慢优化步骤详解
    Android APT
    APS高级排程软件显着提升您企业的管理效益
    [附源码]Python计算机毕业设计高校辅导员工作管理系统
    Python爬虫:下载4K壁纸
    【Docker/K8S/Racher】Docker/K8S/Racher安装Redis-20220817
    IO模型 阻塞IO,非阻塞IO,IO多路复用,信号驱动IO,异步IO详解
    windows安装pytorch
  • 原文地址:https://blog.csdn.net/Mitchell_Donovan/article/details/127349270
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号