前言据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话 保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机, 密码学在战争中起着非常重要的作用。 随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高, 于是在1997年,美国国家标准局公布实施了“美国数据加密标准(DES)”, 民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DES、RSA、SHA等。 随着对加密强度需求的不断提高,近期又出现了AES、ECC等。 使用密码学可以达到以下目的: 保密性:防止用户的标识或数据被读取。 数据完整性:防止数据被更改。 身份验证:确保数据发自特定的一方。 加密算法分类对称加密算法: 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥 发送方和接收方需要持有同一把密钥,发送消息和接收消息均使用该密钥。 相对于非对称加密,对称加密具有更高的加解密速度,但双方都需要事先知道密钥,密钥在传输过程中可能会被窃取,因此安全性没有非对称加密高。 常见的对称加密算法:DES,AES,3DES等等 非对称加密算法: 文件加密需要公开密钥(publickey)和私有密钥(privatekey)。 接收方在发送消息前需要事先生成公钥和私钥,然后将公钥发送给发送方。发送放收到公钥后,将待发送数据用公钥加密,发送给接收方。接收到收到数据后,用私钥解密。 在这个过程中,公钥负责加密,私钥负责解密,数据在传输过程中即使被截获,攻击者由于没有私钥,因此也无法破解。 非对称加密算法的加解密速度低于对称加密算法,但是安全性更高。 非对称加密算法:RSA、DSA、ECC等算法 消息摘要算法: 消息摘要算法可以验证信息是否被篡改。 在数据发送前,首先使用消息摘要算法生成该数据的签名,然后签名和数据一同发送给接收者。 接收者收到数据后,对收到的数据采用消息摘要算法获得签名,最后比较签名是否一致,以此来判断数据在传输过程中是否发生修改。 Python加密库PyCrypto是 Python 中密码学方面最有名的第三方软件包。可惜的是,它的开发工作于2012年就已停止。 其他人还在继续发布最新版本的 PyCrypto,如果你不介意使用第三方的二进制包,仍可以取得Python 3.5 的相应版本。 比如,可以在 Github 上找到了对应Python3.5的PyCrypto 二进制包。 幸运的是,有一个该项目的分支PyCrytodome 取代了 PyCrypto 。为了在 Linux 上安装它, 你可以使用以下pip 命令: pip3 install -ipycryptodome 在Windows 系统上安装则稍有不同: pip3 install -ipycryptodomex DES加密 全称为Data EncryptionStandard,即数据加密标准,是一种使用密钥加密的块算法 入口参数有三个:Key、Data、Mode Key为7个字节共56位,是DES算法的工作密钥; Data为8个字节64位,是要被加密或被解密的数据; Mode为DES的工作方式,有两种:加密或解密 3DES(即Triple DES)是DES向AES过渡的加密算法, 使用两个密钥,执行三次DES算法, 加密的过程是加密-解密-加密 解密的过程是解密-加密-解密 AES加密 高级加密标准(英语:Advanced EncryptionStandard,缩写:AES),这个标准用来替代原先的DES AES的区块长度固定为128 比特,密钥长度则可以是128,192或256比特(16、24和32字节) 大致步骤如下: 1、密钥扩展(KeyExpansion), 2、初始轮(Initial Round), 3、重复轮(Rounds),每一轮又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey, 4、最终轮(Final Round),最终轮没有MixColumns。 普通方式 面向对象方式 RSA加密 公钥加密算法,一种非对称密码算法 公钥加密,私钥解密 3个参数: rsa_n, rsa_e,message rsa_n, rsa_e 用于生成公钥 message: 需要加密的消息 安装 pip install rsa 使用 |
|
来自: 昵称16619343 > 《区块链》