-
区块链中的密码学系列之非对称密码ELGamal算法(十一)
1. 前言 2. ELGamal加解密算法 3. ELGamal算法细节 4. ELGamal密码的安全性 5. 基于ELGamal的java源码的实现1. 前言ELGamal密码是除了RSA之外最有代表性的公开密钥密码之一,它的安全性建立在离散对数问题的困难性之上,是一种公认安全的公钥密码。我们再来回顾下离散对数问题:设p为素数,若存在一个正整数α,使得α、α2、…、αp-1关于模p互不同余,则称α为模p的一个原根。于是有如下运算:α的幂乘运算:y=αx(mod p),1...…
-
区块链中的密码学系列之非对称密码RSA算法(十)
1. 前言 2. RSA的密钥生成过程 3. RSA解密正确性证明 4. RSA算法细节 4.1 对大数的素数判定 4.1.1 Miller算法 4.2 模逆运算 4.3 模指运算 5. 实际编程中存在的缺陷 5.1 缺陷1:使用相同的N。 5.2 缺陷2:e和d的值设置的过小。 5.3 缺陷3:选择密文攻击 6. ...…
-
区块链中的密码学系列之非对称密码概述(九)
1. 前言 2. 数学基础 2.1 欧几里得算法 2.2 欧拉函数 2.3 平方剩余 2.4 中国剩余定理CRT 2.5 离散对数 2.6 幂模 3. DH密钥交换 4. RSA密码体制 5. 数字签名方案DSA 6. Rabin密码体制 7. ELGamal密码 8. 椭圆曲线密码体制1. 前言非对称加密是现代密码学历史上最为伟大的发明,可以很好的解决对称加密需要的提前分发密钥问题。...…
-
区块链中的密码学系列之对称加密算法流密码(八)
1. 前言 2. 流密码的基本原理 3. 密钥流生成器1. 前言2. 流密码的基本原理流密码:也称序列密码 (Stream Cipher) ,是指明文消息按字符(如二元数字)逐位地、对应地加密的一类密码算法。流密码的强度依赖于密钥序列,什么样的密钥序列是安全的?随机,周期性大,统计特性良好。随机数的性质:伪随机序列:流密码的密钥序列应该是变长、随机、 不可预测的。关键技术:通信双方的精确同步。伪随机数生成器:3. 密钥流生成器1.伪随机数生成器(prng):线性同余法伪随机数发生器...…
-
区块链中的密码学系列之加密算法AES(七)
1. 前言 2. 数学基础 2.1 有限域GF(p^n) 2.2 Rijndael的数学基础 2.3 Rijndael的设计思想 3. AES的整体框架 4. AES参数 4.1 数据块字数Nb 4.2 密钥字数Nk 4.3 迭代轮数Nr 4.4 不可约多项式m(x) 5. AES算法详细实现过程 5.1 S盒替换 5.2 行移位变换 ...…
-
区块链中的密码学系列之对称加密算法DES(六)
1. 前言 2. Feistel网络 3. DES算法框架 4. DES加密模块 4.1 初始置换IP 4.2 DES的轮结构 4.3 子密钥生成算法 5. DES的加解密过程 6. DES的安全性 7. DES加密的一个例子 8. java版的DES算法 9. 3DES 10. 结束语1. 前言DES是一种数据加密标准( Data Encryption Standard) , 有30多年历史,是一种对称密码算法,是第...…
-
区块链中的密码学之对称密码的分组模式(五)
1. 前言 2. 分组密码系统模型 3. 分组密码的设计思想 4. SP网络 5. Feistel密码结构 6. 分组密码的工作模式 6.1 分组密码的填充 6.2 分组密码的工作模式 6.3 分组密码运行模式比较 6.4 分组密码的分析 1. 前言众所周知,由于对称加密算法只能加密固定长度的明文。如果我们想加密任意长度的明文,则需要对明文进行分组,然后对每组进行加密。在密码学中,被称为分组加密(Block c...…
-
区块链中的密码学系列之对称密码概述(四)
1. 前言 2. 置换密码 2.1 栅栏技术 2.2 周期置换 2.3 列置换 2.4 多次列置换 3. 替换密码 3.1 凯撒密码 3.2 维吉尼亚密码 3.3 弗纳姆密码 4. 乘积密码 4.1 迭代密码体制 4.2 混淆和扩散 5. 分组密码 6. DES 7. AES 8. 流密码1. 前言对称密码概述:**P 明文...…
-
区块链中的密码学系列之SHA256算法(三)
1. 前言 2. 什么是SHA ? 3. SHA256算法的特点 4. SHA256算法的底层原理 4.1 MD5的原理和SHA原理的对比 4.2设置初始值 4.3 数据预处理 4.4 循环加工 5. java实现SHA256算法 6. 总结1. 前言SHA系列算法是一种密码散列函数,由美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。现在已经被破解。我们本文主要研究SH...…
-
区块链中的密码学系列之MD5算法(二)
前言 1. 什么是MD5 ? 2. MD5算法的特点 3. MD5的应用 4. MD5算法的底层原理 4.1 原文处理 4.2 设置初始值 4.3 循环加工 4.4 拼接结果 5. md5加密字符串实例 6. java实现MD5算法 7. 总结前言MD5算法在90年代被广泛使用在各种程序语言中,用以确保资料传递无误等。但是在1996年被证明存在弱点,是可以被破解的。但是其优势是十分的明显的,比如说稳定和快速,所...…
-
区块链中的密码学系列之Hash算法概要(一)
前言 1. 什么是hash算法? 2. Hash算法的特点 3. 流行的hash算法 4. hash算法的缺点 5. Hash算法与数字摘要之间的关系 6. 总结前言Hash算法我们可能早就听过,不仅仅应用在密码学领域。由于hash算法所体现的思想十分的满足我们的需求,比如可以把一个十分复杂的东西映射到另外一个较为简单的地方,所以很多地方都有应用。# 1. 什么是hash算法?Hash(哈希或散列,Hash Algorithm)算法是信息技术领域非常基础也非常重要的技术。它...…