It's our wits that make us men.

2019/5/27 《图解密码技术》第十一章

Posted on By LuLu

  • Diffie-Hellman密钥交换:Diffie-Hellman key exchange;生成元:generator;字典攻击:dictionary attack
  • 拉伸:stretching

保存密钥

对密钥进行加密的方法可以减少需要保管的密钥数量,在现实中是一个非常有效的方法

img

作废密钥

要完全删除密钥,不单要用到密码软件,还需要在涉及计算机系统时,对信息安全进行充分考虑

Diffie-Hellman密钥交换

一种解决密钥配送问题的方法

什么是Diffie-Hellman密钥交换

通过这种算法,通信双方通过交换一些可以公开的信息就能够生成共享的秘密数字,这串数字作为共享密钥

Diffie-Hellman密钥交换的步骤

img

  • P是一个非常大的质数,G是一个与P相关的数,称为生成元
  • Alice生成A,在1~p-2之间,Bob生成B,在1~p-2之间

Eve能计算出密钥吗

解决这个问题的有效算法还没有找到,这个问题称为有限域的离散对数问题

生成元的意义

P的生成怨的乘方结果与1~p-1中的数字是一一对应的,所以Alice能在1~p-2中随意选数字,不能选p-1是因为结果永远为1

椭圆曲线Diffie-Hellman密钥交换

Diffie-Hellman密钥交换利用的是“离散对数问题”,如果是“椭圆曲线上的离散对数问题”,就是椭圆曲线Diffie-Hellman密钥交换

基于口令的密码PBE

什么是PBE

password based encryption: 根据口令生成密钥,并用该密钥进行加密的方法,加密和解密使用同一个

PBE加密

img

PBE解密

img

盐的作用

盐是由伪随机数生成的随机数,在生成密钥KEK时,会和口令一起输入单向散列函数

盐是用来防御字典攻击的

字典攻击:事先生成的KEK能够大幅缩短尝试的时间。加入盐之后,候选KEK的数量变得非常巨大

口令的作用

通过口令生成KEK,通过这个密钥来加密会话密钥.

需要将盐和加密后的CEK通过物理的方式进行保护.

通过拉伸来改良PBE

将单向散列函数进行多次迭代的方法称为拉伸

如何生成安全的口令

使用只有自己才能知道的信息

使用只有自己才能知道的信息是一个大原则,因为口令不能够被别人推测出来

  • 不要使用自己重要的信息
  • 不要使用关于自己的信息
  • 不要使用别人见过的信息:e.g. 名言名句

将多个不同的口令分开使用

不将同一个口令用于不同的用途

有效利用笔记

应该将笔记与物理的钥匙同样对待

理解口令的局限性

可以被暴力破解

使用口令生成和管理工具

一些工具通过伪随机数生成器生成口令,但是工具及其开发者是否可信是非常重要的