You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

挂锁类比存晦涩问题,请求生成简单公钥加解密详细示例

简化版公钥加密解密示例(类比RSA核心逻辑)

先明确所有设定

  • 要加密的5字符消息:HELLO
  • 公钥(两个1位数字):(e=3, n=10),其中e是加密指数,n是模数
  • 私钥(两个1位数字):(d=7, n=10),其中d是解密指数,和公钥共用模数n
  • 字符转数字规则:取每个字符ASCII码的最后一位(比如H的ASCII是72→取2,E是69→取9,以此类推)

第一步:把明文消息转成数字序列

先把HELLO的每个字符转成数字:

  • H → 72 → 2
  • E → 69 → 9
  • L → 76 → 6
  • L → 76 → 6
  • O → 79 → 9
    得到明文数字序列:[2, 9, 6, 6, 9]

第二步:用公钥加密消息

加密规则很简单:密文数字 = (明文数字)^e mod n^表示次方,mod是取余数)
咱们逐个计算:

  • 第一个数字2:2^3 = 88 mod 10 = 8
  • 第二个数字9:9^3 = 729729 mod 10 = 9
  • 第三个数字6:6^3 = 216216 mod 10 = 6
  • 第四个数字6:和上面一样,结果是6
  • 第五个数字9:和第二个一样,结果是9
    得到密文数字序列:[8, 9, 6, 6, 9]

第三步:用私钥解密消息

解密规则是加密的逆操作:明文数字 = (密文数字)^d mod n
同样逐个计算:

  • 第一个密文8:8^7 = 20971522097152 mod 10 = 2
  • 第二个密文9:9^7 = 47829694782969 mod 10 = 9
  • 第三个密文6:6^7 = 279936279936 mod 10 = 6
  • 第四个密文6:结果是6
  • 第五个密文9:结果是9
    解密后得到数字序列:[2, 9, 6, 6, 9],再转回到字符就是HELLO,完美还原!

为什么这对密钥能工作?

这里的核心逻辑和RSA一致:公钥的加密指数e和私钥的解密指数d满足 (e*d) mod φ(n) = 1,其中φ(n)是欧拉函数(简单说就是1到n-1里和n互质的数的个数)。
对于n=10,φ(10)=4(1、3、7、9这四个数和10互质),我们选的e=3,d=7,3*7=21,21 mod4=1,刚好符合条件,所以加密解密能互相逆推。


内容的提问来源于stack exchange,提问作者Paul Palmer

火山引擎 最新活动