4、RSA&终端指令

RSA总结

  • 加密算法,都是数学知识
  • 对称加密(传统加密算法)
  • RSA(三个人的名字)非对称加密(现代加密算法)
    • 原根
    • 欧拉函数、欧拉定理(费马小定理)
    • 模反元素
      • m^(e * d) mod n  ≡ m
    • 迪菲赫尔曼密钥交换
  • RSA算法
    • RSA: 拆解两个(大)质数的乘积很难!所以RSA想对安全.
    • 加密: M ^e % N = C
    • 解密: C ^ d % N = M
    • 明文 : M; 密文: C ;
    • 公钥: N和E
    • 私钥: N和d
    • 条件(总共有六个数字)
      • N是由两个很大的质数(P1、P2)相乘得到! 为了方便求出φ(N).
      • D是E(65537)相对于φ(N)的模反元素

1.1 RSA的特点

  • RSA的安全系数非常高(因为整个业务逻辑非常安全)
  • 加密效率非常低(不能做大数据加密)
  • 用来加密关键数据

1.2 终端演示

  • Mac的终端可以直接使用OpenSSL进行RSA的命令运行
  • OpenSSL中RSA算法常用指令主要有三个:

命令

含义

genrsa

生成并输入一个RSA私钥

rsautl / pkeyutl

使用RSA密钥进行加密、解密、签名和验证等运算, pkeyutl公钥解密时需要签名

rsa

处理RSA密钥的格式转换等问题

  • 生成RSA私钥,密钥长度为1024bit

openssl genrsa -out private.pem 1024

  • 从私钥中提取公钥

openssl rsa -in private.pem -pubout -out public.pem

  • 生成的文件如下

4、RSA&终端指令_第1张图片

  • 将私钥转换成为明文并打开

openssl rsa -in private.pem -text -out private.txt && open private.txt writing RSA key

    • 查看文本信息也可以使用

cat private.txt

  • 通过公钥加密数据,私钥解密数据
//生成明文文件
$ vi message.txt 
//查看自己输入的文件内容 
$ cat message.txt 
密码是: 654321 
//通过公钥进行加密 
$ openssl rsautl -encrypt -in message.txt -inkey public.pem -pubin -out enc.txt 
//查看加密后的文本 
$ cat enc.txt Df;�cb�
  • 通过私钥加密数据,公钥解密数据
//通过私钥进行加密 
$ openssl pkeyutl -sign -in message.txt -inkey private.pem -out enc.txt 
$ cat enc.txt 
P�ƕ|_]}lӭ׈ČP����Ǎ(+�i��#�P���~{�+����G;ػP�b�?~L�z^�)��MX'`)ƛ�h�0�o�� ��6A~6��R���G U�y܏2�)���|#wCg�A4a�% 
//通过公钥进行解密 
$ openssl pkeyutl -verify -in enc.txt -inkey public.pem -pubin -out dec.txt 
pkeyutl: No signature file specified for verify 
$ openssl rsautl -verify -in enc.txt -inkey public.pem -pubin -out dec.txt 
The command rsautl was deprecated in version 3.0. Use 'pkeyutl' instead.
$ cat dec.txt 
密码是: 654321

 

你可能感兴趣的:(iOS逆向,RSA特点,RSA终端命令,pkeyutl,rsautl)