RSA算法实践教程

RSA算法是一种非对称加密算法,广泛应用于数据加密和数字签名。本教程将为您介绍RSA算法的基本原理和实践步骤。

基本原理

RSA算法基于数论中的欧拉定理和模运算。以下是RSA算法的简要步骤:

  1. 选择两个大质数 ( p ) 和 ( q )。
  2. 计算乘积 ( n = p \times q )。
  3. 计算欧拉函数 ( \phi(n) = (p-1) \times (q-1) )。
  4. 选择一个整数 ( e ),满足 ( 1 < e < \phi(n) ) 且 ( e ) 与 ( \phi(n) ) 互质。
  5. 计算 ( e ) 的模逆元 ( d ),满足 ( (e \times d) \mod \phi(n) = 1 )。
  6. 公开 ( n ) 和 ( e ),作为公钥;保密 ( d ),作为私钥。

实践步骤

以下是一个简单的RSA加密和解密示例:

  1. 生成密钥对:使用在线工具或编程库生成密钥对。
  2. 加密:使用公钥对数据进行加密。
  3. 解密:使用私钥对加密数据进行解密。

示例代码


from Crypto.PublicKey import RSA

# 生成密钥对
key = RSA.generate(2048)
private_key = key.export_key()
public_key = key.publickey().export_key()

# 加密
def encrypt(public_key, message):
    public_key = RSA.import_key(public_key)
    encrypted_message = public_key.encrypt(message.encode(), None)
    return encrypted_message

# 解密
def decrypt(private_key, encrypted_message):
    private_key = RSA.import_key(private_key)
    decrypted_message = private_key.decrypt(encrypted_message)
    return decrypted_message.decode()

# 使用示例
message = "Hello, RSA!"
encrypted_message = encrypt(public_key, message)
decrypted_message = decrypt(private_key, encrypted_message)

print("Original message:", message)
print("Encrypted message:", encrypted_message)
print("Decrypted message:", decrypted_message)

扩展阅读

更多关于RSA算法的细节和实践,请参考本站的RSA算法深入解析

[中心图片:RSA算法原理图](https://cloud-image.ullrai.com/q/RSA_Principle Diagram/)