【问题标题】:Decryption algorithm of a substitution cipher替代密码的解密算法
【发布时间】:2021-11-26 08:49:29
【问题描述】:

令 Z_10 = {0,1,2,3,4,5,6,7,8,9}
我这里有一个对称加密方案,其中
一条消息 M = M[1]M[2]M[3]M[4] 在 Z_10 中,是一个四位数的字符串,
密钥 π 密文 C = C[1]C[2]C[3]C[4] = E_π(M) 在 Z_10 中,计算如下:

Alg E_π(M)
For i=1,...,4 do
    P[i] <- (M[i] + i) mod 10
    C[i] <- π(P[i])
Return C

这是正确的解密算法吗?

Alg D_π(M)
For i=1,...,4 do
    P[i] <- (C[i] - i) mod 10
    M[i] <- π^(-1)(P[i])
Return M

我相信这是一个替代密码,但我不确定。它是替代密码吗?我们怎么知道的?

【问题讨论】:

    标签: security cryptography


    【解决方案1】:

    加密算法似乎有一个错误:要么你需要mod 11,要么更可能的是Z_10 = {0,...9}。否则,操作

    P[i] <- (M[i] + i) mod 10
    

    010 都翻译成1,使其不可逆转。

    除此之外,是的,它是定义上的替换密码,因为输入字母表的每个字符总是被相同的相应输出字符替换。您甚至可以将加密逻辑替换为表格。

    您还需要在解密部分反转操作顺序:首先反转排列,然后进行模加。

    【讨论】:

    • 你是对的,我犯了一个错误。 Z_10={0,...,9}。谢谢!
    最近更新 更多