Skip to main content

密码学基础

David LiuAbout 6 min

密码学基础

常见加密算法

加密 Encryption

  • 对称

    IV,会加入一个随机向量,来保证密码的随机

    eg. DES, IDEA, AES

  • 非对称

哈希函数 Hash Function

数字签名 DIgital Signature

对称加密

Symmetric Cryptography

又称私钥加密

非对称加密

如RSA

哈希加密

暴力攻击

openssl库,加密算法的库,一定要用这个,不然基本上一定会有漏洞

  1. 需求分析
  2. 开发
  3. 测试

安全需要根据用户定义,如不同用户有不同的需求定义

密码编码学、密码分析学

密码学起源:

埃及文字

藏头诗

古希腊scytale棍子

凯撒密码,每个字母于其后第三位对应

y=x+3mod26y=x+3 \mod26

  • 频率分析法/词频分析,可以根据词频来推出具体的明文对应

    如词频最高的是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破解了,现在是院士在清华

对抗:选用具有坚实的数学基础和足够复杂的加密算法

不能采用确定性的加密算法,一定要随机的方式,不然容易出错

加密过程

  • 密钥生成,非确定性的算法

    keuGen(λ)kkeuGen(\lambda)\rightarrow k

  • 加密,非确定性的算法更安全

    Enc(m,k)CEnc(m,k)\rightarrow C

  • 解密,确定性的算法

    Dec(c,k)mDec(c,k)\rightarrow m

非对称加密过程:

公钥pk(所有人公开,用于加密)、私钥sk(自己保留,用于解密)

keuGen(λ)(pk,sk)keuGen(\lambda)\rightarrow (pk,sk)

Enc(m,pk)CEnc(m,pk)\rightarrow C

Dec(c,sk)mDec(c,sk)\rightarrow m

ECB,可以并行做,每一位单独加密

机密性保护很差

PRF,伪随机函数,用ECB实现,可以固定长度

CBC引入随机初始向量,CBC更安全

C=MeC=M^e

e是常数

OTP,

一字一密

分块再加密,