济南网站建设运营,做PPT的网站canva,WordPress建立电商网站,渭南网站建设公司电话Public-key Crytography简介Public-key cryptography (公开密钥加密) 又称 asymmetric cryptography (非对称加密)#xff0c;即存在两把不同的密钥#xff0c;分别称为公钥 Pu 和私钥 Pr#xff0c;公钥通常用来加密明文 M#xff0c;只有私钥才能解密密文 C#xff0c;如… Public-key Crytography简介Public-key cryptography (公开密钥加密) 又称 asymmetric cryptography (非对称加密)即存在两把不同的密钥分别称为公钥 Pu 和私钥 Pr公钥通常用来加密明文 M只有私钥才能解密密文 C如果用 E 和 D 分别表示加密和解密算法那么有C E(Pu, M)M D(Pr, C)下图(摘自维基百科)形象的表述了加密和解密流程 传统的对称加密需双方共享相同的密钥通信安全很大程度依赖双方是否能妥善的管理密钥。公开密钥加密发明是密码学最为重要的里程碑之一它从数学的角度保证了通信安全。公开密钥加密体系有三大范畴1、Encryption/Decryption即加密与解密发送方用接收方的公钥加密消息;2、Digital Signature数字签名发送方用私钥加密消息摘要生成签名保证消息的完整性和可靠性3、Key Exchange安全的交换密钥通常用于交换对称加密的密钥。公钥加密有多种算法最有名的的是 RSA 和 DH 等如下------------------------------------------------------------------------| Algorithm | Encryption/Decryption | Digital Signature | Key Exchange |------------------------------------------------------------------------| RSA | Yes | Yes | Yes |------------------------------------------------------------------------| Deffie-Hellman | No | No | Yes |------------------------------------------------------------------------| Elliptic Curve | Yes | Yes | Yes |------------------------------------------------------------------------| DSS | No | Yes | No |------------------------------------------------------------------------数论知识理解 RSA 算法前先介绍一些必要的数论领域知识。欧拉函数对正整数 n欧拉函数 指小于 n 且与 n 互质的正整数数目通常用 φ(n) 表示。对于素数 p有φ(p) p - 1对于素数 p, q 有φ(p * q) φ(p) * φ(q) (p - 1) * (q - 1)如 φ(21) 2 * 6 12欧拉定理对于正整数 a 和 n欧拉定理有a^φ(n) mod n 1即a^(φ(n) 1) mod n a mod n模反元素当 a, n 互质一定存在模仿元素 b使得a * b mod n 1由欧拉定理可知1 a^φ(n) mod n a * a^(φ(n) - 1) mod n可求得一个 b a^(φ(n) - 1)满足 a * b mod n 1RSA算法原理RSA 简介RSA 算法于 1977 由 Ron RivestAdi Shamir 和 Leonard Adleman 提出是目前应用最为广泛的非对称加密算法。极大数分解难题是 RSA 算法可靠性的根基即给定两个大素数 p 和 q其中 n p * q有已知 p、q求 n p * q 很容易已知 n求 p、q并且 p * q n 很困难RSA 原理对于明文 M 和 密文 C且 M n, C n其加密和解密过程如下C M^e mod nM C^d mod n上述公式可表述为M M^(e * d) mod n根据欧拉定理可知:只需 e * d mod φ(n) 1即可满足上式如果我们选取素数 p, q那么n p * q 容易计算φ(n) (p - 1) * (q - 1) 容易计算很容易选取一个正整数 ee 和 φ(n) 互质当 e 和 φ(n) 互质时由欧拉定理可很容易算出一个模反元素 d满足 e * d mod φ(n) 1RSA 流程Cryptography and Network Security 形象的描述了 RSA 流程-------------------------------------------------------------------------------| Key Generation || || Select p, q p and q both prime, p ! q || Calculate n p * q || Calculate φ(n) (p - 1) * (q - 1) || Select integer e e is relatively primte to φ(n) || Calculate d (d * e) mod n 1 || Public key PU {e, n} || Private key PR {d, n} |--------------------------------------------------------------------------------------------------------------------------------------------------------------| Encryption || || Plaintext M M n || Ciphertext C C M^e mod n |--------------------------------------------------------------------------------------------------------------------------------------------------------------| Decryption || || Ciphertext C C || Plaintext M M C^d mod n |-------------------------------------------------------------------------------欢迎关注交流探讨