一、计算机密码学的数学原理
什么是加密/解密?数学中的和
互为反函数,可以把
当成加密过程,
当成解密过程。
如果上述的两个函数,在运行和
时,需要使用同一个常量参数(密钥),那么可以称之为对称加密,如果
和
在运行时,使用不同的常量参数(不同的密钥),可以把这两个常量称为私钥和公钥,这样的加密就是非对称加密。
在计算机的世界中,异或运算和模运算这两种看似简单的计算,是整个体系的地基。
二、异或运算
使用异或的对称加密,比如业内号称'一次性密码本',不可破解,
A⊕B⊕B=A,A为明文,A⊕B为密文,接收方使用密文和B取异或就可以还原A
1、任何一个二进制序列和全零序列的异或等于它本身
2、异或有结合律,证明过程A⊕B⊕B=A⊕(B⊕B)=A⊕0=A
异或运算是现代密码学的核心基础之一。AES、DES这样的对称加密就使用了异或运算,对称加密和解密使用同一个密钥,又被称为'共享密钥加密'。
三、模运算
若m是质数,对于任何非零a,肯定存在唯一b,使得a*b≡1(mod m)
(a*b*c)mod m等于(c*b*a)mod m这是模运算的乘法交换律
如果a*b≡1(mod m),那么a乘以0~m-1的任何一个数,再乘以b就得到原来的数。
证明,a*x*b(mod m)= a*b*x(mod m)=(k*m+1)*x(mod m)=x(modm)
例如m=7,a=3,那么b=5,明文是123456,成以a后得到密文
明文: 1, 2, 3, 4, 5, 6,
密文: 3, 6, 9, 12,15,18,
解密: 15, 30, 45, 60, 75, 90,
模7: 1, 2, 3, 4, 5, 6,
四、总结
异或 (XOR) 是对称加密(流密码、AES)的基础,主打高效、可逆、线性。
模运算 (Mod) 是非对称加密(RSA、ECC)的基础,主打有限域、单向性、数学难题。
两者结合,才构成了现代密码学的完整攻防体系。