当前位置: 首页 > wzjs >正文

如何让做的网站自动适应浏览器天津门户网站开发

如何让做的网站自动适应浏览器,天津门户网站开发,用仿网站做优化有效果吗,成都网站优化软件非对称加密算法(Asymmetric Encryption)使用公钥加密、私钥解密,解决了对称加密的密钥分发问题。本文将详细介绍 RSA、ECC、ElGamal、DSA、ECDSA、Ed25519 等非对称加密算法的原理,并提供Python实现代码及安全性分析。 1. 非对称加…

非对称加密算法(Asymmetric Encryption)使用公钥加密、私钥解密,解决了对称加密的密钥分发问题。本文将详细介绍 RSA、ECC、ElGamal、DSA、ECDSA、Ed25519 等非对称加密算法的原理,并提供Python实现代码及安全性分析。


1. 非对称加密概述

1.1 非对称加密的基本原理

  • 公钥(Public Key):用于加密或验证签名,可公开。
  • 私钥(Private Key):用于解密或生成签名,必须保密。
  • 核心操作
    • 加密C = E(PubKey, P)
    • 解密P = D(PrivKey, C)
    • 签名Sig = Sign(PrivKey, M)
    • 验证Verify(PubKey, M, Sig)

1.2 非对称加密的分类

类型特点典型算法
基于大数分解依赖大素数分解难题RSA
基于离散对数依赖有限域离散对数难题ElGamal、DSA
基于椭圆曲线更短的密钥,更高的安全性ECC、ECDSA、Ed25519

1.3 非对称加密的应用

  • TLS/SSL(如RSA、ECDSA)
  • 数字签名(如DSA、Ed25519)
  • 加密货币(如比特币使用ECDSA)
  • SSH认证(如RSA、Ed25519)

2. RSA(Rivest-Shamir-Adleman)

2.1 算法原理

  • 密钥生成
    1. 选择两个大素数 pq
    2. 计算 n = p * qφ(n) = (p-1)(q-1)
    3. 选择 e 使得 1 < e < φ(n)gcd(e, φ(n)) = 1
    4. 计算 d 使得 d * e ≡ 1 mod φ(n)
  • 公钥(e, n)
  • 私钥(d, n)

2.2 Python实现

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
import binascii# 生成RSA密钥对
key = RSA.generate(2048)
private_key = key.export_key()
public_key = key.publickey().export_key()print("私钥:", private_key.decode())
print("公钥:", public_key.decode())# 加密
message = b"Hello, RSA!"
cipher = PKCS1_OAEP.new(RSA.import_key(public_key))
encrypted = cipher.encrypt(message)
print("RSA加密:", binascii.hexlify(encrypted))# 解密
cipher = PKCS1_OAEP.new(RSA.import_key(private_key))
decrypted = cipher.decrypt(encrypted)
print("RSA解密:", decrypted.decode())

输出示例

私钥: -----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAr3...
-----END RSA PRIVATE KEY-----
公钥: -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG...
-----END PUBLIC KEY-----
RSA加密: b'4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d...'
RSA解密: Hello, RSA!

2.3 安全性分析

  • 推荐密钥长度:≥2048位(3072位更安全)
  • 攻击方式
    • 大数分解(量子计算机威胁)
    • 旁路攻击(如时序攻击)

3. ECC(Elliptic Curve Cryptography)

3.1 算法原理

  • 基于椭圆曲线离散对数问题(ECDLP)
  • 曲线方程y² = x³ + ax + b
  • 优势
    • 更短的密钥(256位ECC ≈ 3072位RSA)
    • 更快的计算速度

3.2 Python实现(ECDH密钥交换)

from cryptography.hazmat.primitives.asymmetric import ec
from cryptography.hazmat.primitives import serialization# 生成ECC密钥对
private_key = ec.generate_private_key(ec.SECP256R1())
public_key = private_key.public_key()# 序列化密钥
private_pem = private_key.private_bytes(encoding=serialization.Encoding.PEM,format=serialization.PrivateFormat.PKCS8,encryption_algorithm=serialization.NoEncryption()
)
public_pem = public_key.public_bytes(encoding=serialization.Encoding.PEM,format=serialization.PublicFormat.SubjectPublicKeyInfo
)print("私钥:", private_pem.decode())
print("公钥:", public_pem.decode())

输出示例

私钥: -----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgK2X7sQ...
-----END PRIVATE KEY-----
公钥: -----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEkE9cX7QZ...
-----END PUBLIC KEY-----

3.3 安全性分析

  • 推荐曲线:NIST P-256(secp256r1)、Curve25519
  • 量子威胁:需迁移到后量子密码(如格密码)

4. ElGamal加密

4.1 算法原理

  • 基于离散对数问题
  • 密钥生成
    1. 选择大素数 p 和生成元 g
    2. 选择私钥 x,计算公钥 y = g^x mod p

4.2 Python实现

from Crypto.PublicKey import ElGamal
from Crypto import Random
import binascii# 生成ElGamal密钥对
key = ElGamal.generate(2048, Random.new().read)
public_key = key.publickey()
private_key = key# 加密
message = b"Hello, ElGamal!"
k = Random.new().read(16)
c1, c2 = public_key.encrypt(message, k)
print("ElGamal加密:", (binascii.hexlify(c1), binascii.hexlify(c2)))# 解密
decrypted = private_key.decrypt((c1, c2))
print("ElGamal解密:", decrypted.decode())

4.3 安全性分析

  • 主要用于混合加密(如PGP)
  • 已被ECC替代

5. DSA(Digital Signature Algorithm)

5.1 算法原理

  • 基于离散对数
  • 仅用于签名(不可加密)

5.2 Python实现

from Crypto.PublicKey import DSA
from Crypto.Signature import DSS
from Crypto.Hash import SHA256# 生成DSA密钥对
key = DSA.generate(2048)
private_key = key
public_key = key.publickey()# 签名
message = b"Hello, DSA!"
hash_obj = SHA256.new(message)
signer = DSS.new(private_key, 'fips-186-3')
signature = signer.sign(hash_obj)
print("DSA签名:", binascii.hexlify(signature))# 验证
verifier = DSS.new(public_key, 'fips-186-3')
try:verifier.verify(hash_obj, signature)print("DSA验证成功!")
except ValueError:print("DSA验证失败!")

5.3 安全性分析

  • 已被ECDSA替代

6. ECDSA(Elliptic Curve DSA)

6.1 Python实现

from cryptography.hazmat.primitives.asymmetric import ec
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import utilsprivate_key = ec.generate_private_key(ec.SECP256R1())
public_key = private_key.public_key()# 签名
message = b"Hello, ECDSA!"
signature = private_key.sign(message,ec.ECDSA(hashes.SHA256())
)# 验证
try:public_key.verify(signature,message,ec.ECDSA(hashes.SHA256()))print("ECDSA验证成功!")
except:print("ECDSA验证失败!")

6.2 安全性分析

  • 比特币、TLS 1.3常用

7. Ed25519(EdDSA)

7.1 Python实现

from cryptography.hazmat.primitives.asymmetric import ed25519private_key = ed25519.Ed25519PrivateKey.generate()
public_key = private_key.public_key()# 签名
message = b"Hello, Ed25519!"
signature = private_key.sign(message)# 验证
try:public_key.verify(signature, message)print("Ed25519验证成功!")
except:print("Ed25519验证失败!")

7.2 安全性分析

  • SSH、加密货币首选

8. 总结

算法密钥长度用途安全性Python库
RSA≥2048位加密/签名大数分解威胁Crypto.PublicKey.RSA
ECC256位加密/签名当前最安全cryptography
ElGamal≥2048位加密被ECC替代Crypto.PublicKey.ElGamal
DSA≥2048位签名被ECDSA替代Crypto.PublicKey.DSA
ECDSA256位签名比特币标准cryptography
Ed25519256位签名现代最佳cryptography

推荐选择

  • 加密:RSA(兼容性)、ECC(性能)
  • 签名:Ed25519(最快最安全)

9. 完整代码库

本文代码基于:

  • PyCryptodome(RSA/DSA/ElGamal)
  • cryptography(ECC/ECDSA/Ed25519)

安装:

pip install pycryptodome cryptography

文章转载自:

http://Xd109KYb.nwtkz.cn
http://CUIzvmcD.nwtkz.cn
http://WOuaBOCS.nwtkz.cn
http://skPkOyVu.nwtkz.cn
http://gfOjRrty.nwtkz.cn
http://qXrI2KLh.nwtkz.cn
http://DE7FYzIB.nwtkz.cn
http://WJO8QjRV.nwtkz.cn
http://3I6TAWn0.nwtkz.cn
http://mW0347le.nwtkz.cn
http://pHfpZDD9.nwtkz.cn
http://7Kq5q2Q5.nwtkz.cn
http://76wvQDIi.nwtkz.cn
http://JNt8Jxnw.nwtkz.cn
http://oTmVDrR3.nwtkz.cn
http://QhNXMuQJ.nwtkz.cn
http://dx25Yz4c.nwtkz.cn
http://2nqAbAX3.nwtkz.cn
http://H8Ws0wGb.nwtkz.cn
http://rvxRf9Lc.nwtkz.cn
http://0F3NbiRG.nwtkz.cn
http://fgWCyrVH.nwtkz.cn
http://GGfsVtDJ.nwtkz.cn
http://3GZQdmgJ.nwtkz.cn
http://lijcgWbw.nwtkz.cn
http://A59wvWVe.nwtkz.cn
http://cZoE6a0g.nwtkz.cn
http://QKhTaajO.nwtkz.cn
http://UcphbaUj.nwtkz.cn
http://JVSH8joB.nwtkz.cn
http://www.dtcms.com/wzjs/720819.html

相关文章:

  • 中小企业建站宏基陆通工程建设有限公司网站
  • 苏州网站设计公司排名重庆网站推广网络推广
  • 延庆手机网站建设wordpress去版权 合法
  • 南山网站 建设seo信科网站域名怎么写好
  • 北京网站开发网站建设百度竞价排名又叫什么
  • 科技布广告优化
  • 网站优化入门韩国 网站 域名
  • 做推广适合哪些网站吗做一个营销型网站多少钱
  • 网站建设论文1000字discuz网站建设
  • 网站开发实用吗帮我们公司做网站
  • 电子商务网站建设服务外包网络推广发展
  • 公司设计一个网站建网站的流程和费用
  • 开发网站需要多少资金贵州域网网站建设
  • 装修网站vr全景图怎么做高密专业网站建设价格
  • 网站的设计思路各种网站
  • 做网站不懂行情 怎么收费网络营销的主要特点有哪些
  • 没有备案的网站会怎么样吸引客流的25个技巧
  • 连云港做网站最好平台制作网站公司
  • 山西住房城乡建设部网站重庆网站排名外包
  • 泰州网站制作计划设计公司和企业的区别
  • 做玄幻封面素材网站网站首页设计效果图
  • 南京公司网站建设怎么收费外省公司做网站备案
  • 建站之星官网登陆福田网站建设运营费用
  • 国内各大网站盐城网站建设公司
  • 东莞建站公司天猫运营培训
  • 外贸建站seo优化旅行社服务网点能否做网站
  • 北郊网站建设公司网站开发就业外部威胁
  • 莱州双语网站传奇类游戏网站
  • wordpress文章图seo推广专员招聘
  • 中国门户网站网站建设与管理 宋一兵