密码学
本专栏主要介绍了一些密码学基础
孟诸
coding
展开
-
密码学学习七-非对称加密(java)
import com.sun.org.apache.xml.internal.security.utils.Base64;import javafx.util.Pair;import org.junit.Before;import org.junit.Test;import javax.crypto.Cipher;import java.security.*;import java.security.spec.PKCS8EncodedKeySpec;import java.security.原创 2020-09-20 15:06:22 · 418 阅读 · 0 评论 -
密码学学习六-消息摘要
1 说明消息摘要(Message Digest)又称为数字摘要(Digital Digest) 它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生 使用数字摘要生成的值是不可以篡改的,为了保证文件或者值的安全2 特点无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。例如应用MD5算法摘要的消息有128个比特位,用SHA-1算法摘要的消息最终有160比特位的输出只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产原创 2020-09-20 14:49:38 · 1024 阅读 · 0 评论 -
密码学学习五-加密模式和填充模式
1 加密模式ECB : Electronic codebook, 电子密码本. 需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密优点 : 可以并行处理数据 缺点 : 同样的原文生成同样的密文, 不能很好的保护数据 同时加密,原文是一样的,加密出来的密文也是一样的CBC : Cipher-block chaining, 密码块链接. 每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块优点 : 同样的原文生成的密文不原创 2020-09-18 23:16:10 · 3014 阅读 · 0 评论 -
密码学学习四-DES和AES代码实现
1 DES代码实现import com.sun.org.apache.xml.internal.security.utils.Base64;import org.junit.Before;import org.junit.Test;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;/** * @author huwenlong * @date 2020/9/18 20:22 */public cla原创 2020-09-18 22:52:15 · 759 阅读 · 0 评论 -
密码学学习三-现代密码学简介
1 散列函数散列函数,也见杂凑函数、摘要函数或哈希函数,可将任意长度的消息经过运算,变成固定长度数值,常见的有MD5、SHA-1、SHA256,多应用在文件校验,数字签名中。MD5 可以将任意长度的原文生成一个128位(16字节)的哈希值SHA-1可以将任意长度的原文生成一个160位(20字节)的哈希值2 对称密码对称密码应用了相同的加密密钥和解密密钥。对称密码分为:序列密码(流密码),分组密码(块密码)两种。流密码是对信息流中的每一个元素(一个字母或一个比特)作为基本的处理单元进行加密原创 2020-09-18 22:42:19 · 610 阅读 · 0 评论 -
密码学学习二-近代密码学
古典密码的安全性受到了威胁,外加使用便利性较低,到了工业化时代,近现代密码被广泛应用。恩尼格玛机恩尼格玛机是二战时期纳粹德国使用的加密机器,后被英国破译,参与破译的人员有被称为计算机科学之父、人工智能之父的图灵。恩尼格玛机恩尼格玛机使用的加密方式本质上还是移位和替代,只不过因为密码表种类极多,破解难度高,同时加密解密机器化,使用便捷,因而在二战时期得以使用。...原创 2020-09-18 22:35:44 · 919 阅读 · 0 评论 -
密码学学习一-古典密码学
1 替换法使用固定信息,将原文替换成密文1.1 单表替换单表替换的原文和密文是同一张表如原文密文关系如下a->bb->cc->dd->ee->f则bee的密文就是cff1.2 多表替换多表替换的原文和密文存在多张表中表1:a->bb->cc->dd->ee->f表2:a->cb->dc->ed->fe->g原文:bee密钥:122密文:cgg2 移位法原创 2020-09-18 22:33:54 · 909 阅读 · 0 评论