zoukankan      html  css  js  c++  java
  • RSA

       
       

    遇见一个RSA的题,http://ctf5.shiyanbar.com/crypto/RSA ,以前见了就跑路,今天想好好搞搞

    先百度一波学习资料,

    RSA算法描述

    RSA算法涉及三个参数,n,e,d,私钥为n,d,公钥为n,e。

    其中n是两个大素数p,q的乘积。

    d是e模$ varphi(n) $的逆元,$ varphi(n) $是n的欧拉函数。

    c为密文,m为明文,则加密过程如下:

    $ cequiv m^e mod n $

    解密过程如下:

    $ mequiv c^d$ $mod$ $n$

    n,e是公开的情况下,想要知道d的值,必须要将n分解计算出n的欧拉函数值,而n是两个大素数p,q的乘积,将其分解是困难的。

    一般比赛题都是给两个文件,pem格式,pcap文件,PPC模式,

    pem文件用OpenSSL,这个工具很强大,可以读取文件内容

    openssl rsautl -encrypt -in FLAG -inkey public.pem -pubin -out flag.enc

       openssl rsa -pubin -text -modulus -in warmup -in public.pem

    pacp文件:wireshark follow

    ppc文件:这种模式是上述pcap文件的交互版,会给一个端口进行一些crypto的交互,参数会在交互中给出。

    首先

     

    红线部分即为模数,可以看出这是16进制

    Modulus 是n的值,Exponent是E的值。

    分解大数还有种方法http://factordb.com/

    msieve分解N的值,msieve.exe 0xA41006DEFD378B7395B4E2EB1EC9BF56A61CD9C3B5A0A73528521EEB2FB817A7 -v

    便得出p和q,E的值,然后知道p,q,,e,写python脚本(此脚本参考大佬 的,不过很适合收藏留着以后打比赛)

     总计,这只是到RSA入门题,基本上都是比着题解做的,接下来要多找几道练习

  • 相关阅读:
    MySQL用户管理
    MySQL函数
    MySQL数据类型
    MySQL配置
    PowerDesigner之PDM检查
    PowerDesigner之PDM(物理概念模型)
    .NET Reflector反编译的方法
    IBatis.net 输出SQL语句(七)
    SVN 记录冲突、忽略
    SQLServer 窗口函数
  • 原文地址:https://www.cnblogs.com/ls-pankong/p/9403832.html
Copyright © 2011-2022 走看看