我基本上是想把置换应用到字符串上。如果字符串的长度与置换长度不同,我想添加一个'Z‘,使长度成为置换长度的倍数。问题是,如果置换长度为4,字符串长度为8,如何将置换应用到字符串的后半部分?apply(L,P): for i in range(len(L)): A[i] = L[P[i]]为了进行简单的加密,我想将置换应用于字符串。但是,如果字符串比置换</em
置换共轭搜索问题容易吗?如果是,如何从x和z找到y?设a是爱丽丝的密钥作为大号,X,Y,A=XaYX−a是公钥。加密鲍勃选择随机数r,S和B=XrYX−r,C=XrAsX−r,和c=H( c) +m,和(B,c)是密码文本发送给爱丽丝。由于置换群的离散对数问题是弱的,所以爱丽斯可以从B中计算出C,最终得到C=XaBX−a为m=H(C)+c的纯文本。
假设X的置换维数为1988,置换表示为数组形式,X的阶数为256位整数。
我必须构造对称密钥加密的密钥恢复攻击,使用公开的置换\Pi在O(2^\frac{n}{2})时间使用2^\frac{n}{2}查询加密甲骨文。加密是以\Pi ( m \oplus K) \oplus K 的形式完成的,其中K是密钥。m和K都属于{0, 1}^{n}
我不知道如何使用查询进行密钥恢复攻击。