一、密码技术笔记-常见的密码加密技术
1、什么是密码
说起密码,你首先想到的是什么?银行卡取钱时输入的密码、某平台登录时输入的密码......这或许是我们基于日常生活中最容易想到的密码。那么这些是密码吗?是也不是。举个栗子:
当我们去银行取钱时所输入的密码只是一种身份验证的凭据,换句换来说,当输入正确的密码时,只是向系统证明你才是这个银行卡的主人,你也就可以取钱。若别人知道了你的密码,并拿到了你的银行卡,然后去ATM取钱,输入的“密码”正确,系统就会认为你是这张卡的主人,因为你的凭据通过了系统的认证。
这就是我们平常所理解的密码。但下面学习的密码并非此“密码”。
2、为什么需要密码
先来举个栗子:张三要给李四发送一封电子邮件。邮件在传输的过程中可能存在被窃取的风险,原本只在李四才能看到的邮件内容,结果被窃取者偷看了,这并不是我们想要的。为了解决这个问题,张三对信息进行加密,接收者李四收到邮件后对其进行解密,然后才能看到正确的内容。
3、常见的6种基本密码技术
密码技术基本的有6种:对称密码、公钥密码、单向散列函数、消息认证码、数字签名、伪随机数生成器。
对称密码
对称密码(symmetric cryptography)是指在加密和解密时使用同一种密钥的方式。
公钥密码
公钥密码(public-key cryptography)是指在加密和解密时使用不同密钥的方式。
单向散列函数
单向散列函数(one-way hash function)是一种保证完整性的密码技术。单向散列函数所保证的并不是机密性,而是完整性(integrity)。完整性指数据是否被篡改过。
消息认证码
消息认证码(message authentication code)是一种能够保证完整性和提供认证的密码技术。通过消息认证,不但能够确定消息是否被篡改过,还能确认消息是否来自所期待的通信对象。
数字签名
数字签名(digital signature)是一种能够确保完整性、提供认证并防止否认的密码技术。
伪随机数生成器
伪随机数生成器(Pseudo Random Number Generator,PRNG)是一种能够模拟产生随机数列的算法。