You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Z_10置换对称加密的解密正确性及代换密码属性判定

问题1:给定的解密算法是否正确?

结论:不正确,解密步骤的运算顺序完全错误。
推导过程:
加密的执行顺序是:

  1. 对每个位置i的明文M[i],先做偏移运算得到中间值:P[i] = (M[i] + i) mod 10
  2. 再对P[i]做置换得到密文:C[i] = π(P[i])
    解密需要倒推加密逻辑,逆操作的顺序必须和加密顺序相反,正确步骤应为:
  3. 先对密文C[i]做逆置换,还原中间值:P[i] = π⁻¹(C[i])
  4. 再做反向偏移还原明文:M[i] = (P[i] - i) mod 10
    你给出的解密算法把「逆置换」和「减i偏移」的顺序搞反了,无法得到正确明文。
    可通过简单测试用例验证:假设i=1,M[1]=3,置换π满足π(4)=7
    加密时:P[1]=(3+1)mod10=4,C[1]=π(4)=7
    按你给出的解密算法计算:P[1]=(7-1)mod10=6,M[1] = π⁻¹(6),显然和原明文3不符。

问题2:该加密方案是否属于代换密码?

结论:属于代换密码,具体为多表代换密码
判定依据:
代换密码的核心特征是:每个明文单元(本方案中是单个十进制数字)被独立映射为密文单元,映射过程不涉及不同位置明文单元的混合运算,也不改变明文单元的位置。
本方案完全符合该特征:

  • 每一位密文C[i]仅和对应位置的明文M[i]相关,不存在跨位的运算
  • 不同位置使用不同的映射规则:第i位的映射为f_i(x) = π( (x+i) mod 10 ),同一个明文字符在不同位置会被加密为不同的密文字符,因此属于多表代换,而非单表代换。

内容的提问来源于stack exchange,提问作者Lilith X

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:45:06