密码学基本概念
一、密码学作用
信息加密
用M、P表示明文,用C表示密文,用E表示加密函数,用D表示解密函数。
加密过程公式:C = E(M)
解密过程公式:M = D©
加解密函数必须满足关系:M = D(E(M))
设计密码算法地技术称为密码编码技术;研究从密文中恢复出明文的技术称为密码分析技术。密码编码学和密码分析学统称为密码学。
鉴别
鉴别能力就是指消息的接收者应该能够确认消息的发送者确实为发送者本身,入侵者不可能伪装称他人。我们称鉴别的对象为实体(可能是一个人、应用程序、一台计算机或数字终端)。解决方案是密码协议。
完整性
完整性用来确保信息没有被修改,也可以防止假冒的信息。解决方案是单向散列函数和加密算法。
抗抵赖
抗抵赖的基本特定是能够向第三方证明消息发送者确实发送了该消息。解决方案是数字签名技术。
二、密码数学
素数
如果a = mb成立,其中a,b和m都为整数,当b ≠ 0时,称b能整除a,用符号b|a表示。此时称b为a的一个因子。
如果整数p是大于1且因子仅为±1和±p,则p为素数。
如果a和b的美誉共同的素数因子,即最大公因子为1,那么a和b互素。
模运算
模运算mod:a = qn + r, 0 ≤ r <n
模运算性质:
等式(a×b)≡(a×c)mod n,则b≡ c mod n不恒成立,只有a与n互素时等式成立。
如果(a mod n)=(b mod n),则称a和b模n同余,记做a ≡ b mod n。
数学定理
费马定理
欧拉定理
欧拉定理时RSA算法的来源根据。
异或运算
疑惑运算操作符:“^”,使用xor作为标记。
随机数
好的随机数时生成安全的密钥的基础。
事实上,计算机上不可能产生正在的随机序列,因为计算机的状态总是有限的,所以必然存在周期性,周期性在一定程度上都是可预测的,所以就不是真正意义上的随机数。
要产生真正的随机数序列,需要找到真正随机的输入序列,这在计算机