gpt4 book ai didi

c - 此代码是否有资格成为 block 密码

转载 作者:太空宇宙 更新时间:2023-11-04 06:01:21 25 4
gpt4 key购买 nike

好吧,在你们谴责我之前:我知道这是一个可怕的代码和 super 弱的密码。我只是想找出以下是否有资格成为分组密码(即使是非常基本和弱的密码)

int main(){
int mac = 123;
int key = 789;

int enc = mac^key;
printf("encrypted text = %d\n",enc);

int plain = enc^key;
printf("decrypted text = %d\n",plain);

return 0;
}

这是输出:

encrypted text  =  878
decrypted text = 123

最佳答案

为了创建 block 密码,必须遵循某些一般性原则。您显示的代码在技术上不是分组密码。概论如:

  • 在 block 密码中,消息被分成 block 每个然后加密(即像对非常大的字符的替换- 64 位或更多)
  • 分组密码由两个配对算法组成,一个用于加密,E,另一个用于解密,E−1。两种算法都接受两个输入:一个大小为 n 位的输入 block 和一个大小为 k 位的 key ,从而产生一个 n 位输出 block 。对于任何一个固定 key ,解密是加密的逆函数

block 密码模式(ECB、CBC)中的加密使用特定的流程:

  • 分组密码必须做的第一件事是将明文分成大小相同的 block ,通常为 8 个字节,例如 imablock 的 ASCII 编码.
  • 使用密码对明文进行加密。
  • 解密消息。

密码的选择取决于实现。

重点是,虽然您可能遵循了加密-解密流程,但您的程序并不满足 block 密码的一般性。您需要将消息分成 block 实现 symmetric cipher .

您实现的是简单加密而非分组密码

引用了这么多:

希望对您有所帮助。 :)

关于c - 此代码是否有资格成为 block 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19108352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com