RSA签名 - ZhouYetao

RSA签名

RSA签名

前言

有位在国外留学的朋友扔给我题,做了一上午,结果到最后发现是自己的思路跑偏了,,,,
把rsa签名当作是rsa加密一直在分解N,各种分解:

  • Gimmicky Primes method
  • Wiener's attack
  • factordb在线分解N
  • Small q (q < 100,000)
  • 费马分解(p&q相近时)
  • Boneh Durfee Method (d < n^0.292)
  • Small fractions method when p/q is close to a small fraction。

结果都不是!!!!他是个签名,也就是直接openssl能秒的那种,2333

question.rar

openssl的使用

这个题目其实一个是考察了ctf冷门知识签名的作用,还考察了openssl工具的使用。
openssl使用签名的命令是:openssl rsautl

ZhouYetao@ubuntu:~/Desktop/Jason/biubiubiu/rsa/1$ openssl rsautl -h
Usage: rsautl [options]
-in file        input file
-out file       output file
-inkey file     input key
-keyform arg    private key format - default PEM
-pubin          input is an RSA public
-certin         input is a certificate carrying an RSA public key
-ssl            use SSL v2 padding
-raw            use no padding
-pkcs           use PKCS#1 v1.5 padding (default)
-oaep           use PKCS#1 OAEP
-sign           sign with private key
-verify         verify with public key
-encrypt        encrypt with public key
-decrypt        decrypt with private key
-hexdump        hex dump output
-engine e       use engine e, possibly a hardware device.
-passin arg    pass phrase source

通过-h看一眼,然后介绍下每个的作用:

  • -in file 选择输入的文件
  • -out file 输出文件
  • -inkey file 指定密钥文件,格式必须是.pem
  • -keyform arg 证书私钥的格式(注意是私钥!)
  • -pubin 后面跟上公钥,也就是pulic_key
  • -certin 后面跟上证书
  • -ssl 用SSL v2填充
  • -raw 不用填充
  • -pkcs 用PKCS#1 v1.5填充(默认)
  • -oaep 用PKCS#1 OAEP填充
  • -sign 用私钥进行签名(今天的题目就用到了这个)
  • -verify 用公钥进行验证
  • -encrypt 用公钥加密
  • -decrypt 用私钥解密
  • -hexdump 输出16进制型
  • -engine e 用一个硬件
  • -passin arg 给私钥设置一个密码,可以存放在文件中

看题目

有时候题目的命名格式也很关键!!!!!
这次的命名直接就是FLag.signed,所以这个题目明说了就是一个签名,结果我还傻福福地去找rsa的解密算法。
这个FLag.signed就是在信息传输中用私钥进行了签名,所以用openssl一步到位:

ZhouYetao@ubuntu:~/Desktop/Jason/biubiubiu/rsa/1$ openssl rsautl -inkey "public_key.pem"  -pubin -in "Flag.signed" 
Lab-Flag{I_have_@_secret}

如果说一定看上去牛逼一点的话,也可以out一下:

ZhouYetao@ubuntu:~/Desktop/Jason/biubiubiu/rsa/1$ openssl rsautl -inkey "public_key.pem"  -pubin -in "Flag.signed" -out flag
ZhouYetao@ubuntu:~/Desktop/Jason/biubiubiu/rsa/1$ cat flag
Lab-Flag{I_have_@_secret}

好了,没了,就是没了,一个能秒的题,做了一上午,哎,,,,,醉了

Leave a Comment

@author:ZhouYetao
© 2020 Copyright.  | Power by Mijiu                                                                                               
本站已安全运行 700 天