一、前言
由于工作原因涉及到国密算法,加上自身对密码学的相关知识又不是很了解。经过一段时间的查找资料、请教公 司同事之后,诞生了这篇对密码学的知识梳理。
首先我们先回答一个问题信息
二、为什么要进行加密?
所谓加密,就是对信息进行重新编码,从而达到隐藏信息内容,使非法用户无法获取信息真实内容的一种技术手段。发送方用加密密钥,通过算法(或加密设备),将信息加密后发送出去。接收方在收到密文后,用解密密钥将密文解密,恢复为明文。即使信息在传输过程中被窃取,窃取者也只能得到无法理解的密文,从而对信息起到保密作用。任何一个加密系统至少包括四个组成部分:未加密的报文(明文)、加密后的报文(密文)、用于加解密的设备或算法和用于加解密的密钥。
加密技术用于提供以下功能:
• 机密性。确保数据的保密性。机密性通常是使用加密实现的。可以使用加密算法(使用加密密钥)将明文转换为密文,并使用相应的解密算法将密文转换回明文。对称加密算法使用相同的密钥进行加密和解密,而非对称算法则使用公钥/私钥对。
• 数据完整性。确保数据免受意外或者故意(恶意)的修改。完整性通常是由消息身份验证代码或哈希值提供的。哈希值是从数据序列导出的固定长度的数值。哈希值用于验证通过非安全通道传送的数据的完整性。可以将收到的数据的哈希值与传送时数据的哈希值进行比较,以确定数据是否被篡改。
• 身份验证。保证数据来自某一方。数字证书用于提供身份验证。数字签名通常应用于哈希值,因为这些值比它们所代表的源数据小得多。
加密技术分为两类:即对称加密(私人密钥加密)和非对称加密(公开密钥加密)。对称加密以数据加密标准(DES,Data Encryption Standard)算法为典型代表,非对称加密通常以RSA(Rivest Shamir Ad1eman)算法为代表。对称加密的加密密钥和解密密钥相