常见加密算法格式

 

1657210147556

本文适合大概了解常见加密算法,以备逆向时快速确定加密方式。基本 Android 逆向时常见的就是 RSA 和 AES CBC,想要解密出明文,除了密钥外,还需要知道 padding 模式,等

首先介绍下 padding

Padding

在书面语中,明文经常以可预测的方式开始和结束。例如:尊敬的、此敬等等。为了防止已知明文攻击,随机长度的填充来防止攻击者知道明文的长度。

分为以下几种:PKCS5(openssl 分组密码默认),PKCS7,NOPADDING,Zero padding,ISO 10126 , ANSI X.923

常见词:

  • S 盒——(Substitution-box)是对称密钥算法执行置换计算的基本结构,S 盒的功能就是一种简单的“代替”操作
  • PKCS——(Public Key Cryptography Standards)

非对称

RSA

  • 密钥长度目前有 1024、2048、3072、4096bits,密文长度和密钥长度相等
  • 实际可加密的明文长度最大也是 1024bits,而且只要用到 padding,就要占用实际的明文长度。PKCS#1 建议的 padding 就占用了 11 个字节,所以实际明文 117 字节

ECC

椭圆曲线密码(Elliptic Curves Cryptography)

对称

分组密码

DES

数据加密标准(Data Encryption Standard)

  • 密钥 56 位
  • 数据 64 位

AES

高级加密标准(Advanced Encryption Standard),数据量大可以选择。有 AES128,192,256

  • 密钥的长度可以使用 128 位、192 位或 256 位。密钥的长度不同,推荐加密轮数也不同
  • 加密的数据块,IV 都和密钥长度相同
  • 如果数据块,IV 及密钥长度不足时会补齐

AES 模式

CBC

Cipher-block Chaining,该模式使用了 IV 更安全常用

  • IV(Initialization Vector),解密该模式不仅需要密钥 key,还需要 IV 值

1657210171957

Refer

[1]十分钟读懂 AES 加密算法_Lee.rw 的博客-CSDN 博客_aes 加密