密码学基础
密码学基础
常见加密算法
加密 Encryption
对称
IV,会加入一个随机向量,来保证密码的随机
eg. DES, IDEA, AES
非对称
哈希函数 Hash Function
数字签名 DIgital Signature
对称加密
Symmetric Cryptography
又称私钥加密
非对称加密
如RSA
哈希加密
暴力攻击
openssl库,加密算法的库,一定要用这个,不然基本上一定会有漏洞
- 需求分析
- 开发
- 测试
安全需要根据用户定义,如不同用户有不同的需求定义
密码编码学、密码分析学
密码学起源:
埃及文字
藏头诗
古希腊scytale棍子
凯撒密码,每个字母于其后第三位对应
频率分析法/词频分析,可以根据词频来推出具体的明文对应
如词频最高的是e
或遍历
卡尔达诺漏隔板
几何图形密码
Enigma密码(轮转机实现)
根据每天早上都发的早上好之类的一个固定的东西就给破获了
古典密码,容易受到频率分析法的攻击
缺点
数据的安全要基于密钥,而不是算法
算法公开,大家都用同一套算法
What is one of the requirements of secure hashing
function?
It is a one way function
It is an ECC function
It is a secret function
It is a log function
对称加密的缺点
- 需要共享同一个密钥
优点:加密非常快
公钥加密:
无需共享一个密钥,安全
公钥:加密
私钥:解密
加密慢,无法传大文件
只有我能打开,但是别人都可以往里面放
邮筒、信箱的原理
数字信封:安全传大文件的方法:
- 对称加密的密钥利用公钥加密
- 然后对文件进行对称加密
这个就是数字信封
数字信封是一种数据传输加密的方法,它使用公钥密码体制来保证只有特定的收信人才能阅读通信的内容。数字信封的工作原理如下:
- 发送方使用一个对称密钥来加密信息内容,生成密文。
- 发送方使用接收方的公钥来加密对称密钥,生成数字信封。
- 发送方将数字信封和密文一起发送给接收方。
- 接收方使用自己的私钥来解密数字信封,得到对称密钥。
- 接收方使用对称密钥来解密密文,得到信息内容。
数字信封的优点是可以利用对称加密的速度和公钥加密的安全性,缺点是需要额外传输数字信封和管理公私钥。
如果你想了解更多关于数字信封的细节,请参考以下网页:
- 数据传输加密-数字信封
- 数字信封工作原理
- 数字信封工作原理 - Crysaty
公钥加密是一种非对称加密技术,它使用两个不同的密钥来加密和解密数据。其中一个是公钥,可以公开给任何人使用,另一个是私钥,只有持有者才能使用。公钥加密的实际应用很多,例如:
- 软件商务系统中,可以使用公钥加密技术来保护用户的隐私和安全¹。
- 防盗版领域中,可以使用公钥加密技术来生成数字签名和验证软件的合法性¹。
- 软件VPN系统中,可以使用公钥加密技术来建立安全的通信隧道和认证用户的身份¹。
如果你想了解更多关于公钥加密技术的原理和细节,请参考以下网页:
- RSA公钥加密机制跨语言应用实战²
- 理解公钥与私钥³
- 图文彻底搞懂非对称加密(公钥密钥)⁵
- 公开密钥加密⁶
评判密码系统
- 实用性
- 抗攻击的能力
- 算法公开性
- 可用性
银行21天更换一次密码
增加破解密码的难度:
- 增加长度
- 所有系统的密码不一样
安全领域,所有的东西都需要设计成随机的,例如手机验证码
随机的东西,一定要放到最后才安全
如果先弄验证码,总有一次猜对,猜对以后就随便登录了
防止词频分析:每个字母出现概率都是相同的
一定要用非确定性的加密
专业术语
- 明文(plaintext):没有加密的信息(message)
- 密文(ciphertext):加密后的信息
- 加密(encryption,encipher):从明文到密文的变换,映射(函数)
- 解密(decryption,decipher):从密文到明文的变换
- 密钥(key):加密和解密是在密钥控制下进行的
- 对称key
- 非对称:公钥pk(所有人公开)、私钥sk(自己保留)
密码算法,带有秘密参数的数学函数
需求1
密码参数:密钥
- 知道密码参数,求逆非常容易
- 不知道密码参数,求逆在计算上上不可行的
密码系统模型
- 信源(source)
- 信宿(sink)
- 信道(channel)
攻击
- 重放攻击:如果是确定性的加密,别人如果窃取了信道里传送的内容,重新发给对方,
分类
对称算法
非对称算法
CA,认证中心,公钥(证书)
ukey,一个小u盘,这里面存的一些密钥,只有把这个东西插上的时候才能进入系统
对称加密:接受方、发送方共享一把钥匙
公钥加密:
密码分析
穷举攻击:通过
对抗:增大密钥空间
统计分析攻击:
对抗:设计明文和秘文的统计规律不一样,如引入随机
解密变换攻击:针对加密变换的数学基础,通过数学求解设法找到解密变换
王小云,怀孕期间把MD5破解了,现在是院士在清华
对抗:选用具有坚实的数学基础和足够复杂的加密算法
不能采用确定性的加密算法,一定要随机的方式,不然容易出错
加密过程
密钥生成,非确定性的算法
加密,非确定性的算法更安全
解密,确定性的算法
非对称加密过程:
公钥pk(所有人公开,用于加密)、私钥sk(自己保留,用于解密)
ECB,可以并行做,每一位单独加密
机密性保护很差
PRF,伪随机函数,用ECB实现,可以固定长度
CBC引入随机初始向量,CBC更安全
e是常数
OTP,
一字一密
分块再加密,