C 这个代码符合分组密码的条件吗

C 这个代码符合分组密码的条件吗,c,encryption,cryptography,block-cipher,C,Encryption,Cryptography,Block Cipher,好吧,在你们谴责我之前:我知道这是一个可怕的密码和超弱密码。我只是想弄清楚下面的内容是否符合分组密码的条件(即使是最基本、最弱的) 以下是输出: encrypted text = 878 decrypted text = 123 要创建分组密码,必须遵循某些通用规则。您显示的代码在技术上不是分组密码。概括如下: 在分组密码中,消息被分成块,然后对每个块进行加密(如对非常大的字符进行替换-64位或更多) 分组密码由两个成对的算法组成,一个用于加密E,另一个用于解密E−1。两种算法都接受两个

好吧,在你们谴责我之前:我知道这是一个可怕的密码和超弱密码。我只是想弄清楚下面的内容是否符合分组密码的条件(即使是最基本、最弱的)

以下是输出:

encrypted text  =  878
decrypted text = 123

要创建分组密码,必须遵循某些通用规则。您显示的代码在技术上不是分组密码。概括如下:

  • 在分组密码中,消息被分成块,然后对每个块进行加密(如对非常大的字符进行替换-64位或更多)
  • 分组密码由两个成对的算法组成,一个用于加密E,另一个用于解密E−1。两种算法都接受两个输入:大小为n位的输入块和大小为k位的键,产生一个n位输出块。对于任何一个固定密钥,解密是加密的反函数
分组密码模式(ECB、CBC)中的加密使用特定流:

  • 分组密码必须做的第一件事是将明文分成大小相等的块,通常为8字节,例如
    imablock的ASCII编码
  • 用密码加密明文
  • 解密消息
密码的选择取决于实现

关键是,虽然您可能遵循了加密-解密流程,但您的程序并不满足块密码的一般性。您需要将消息分成块来实现加密

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

参考文献很多:

  • -对分组密码和相关操作的简洁明了的解释
  • -明显参考..:P

希望有帮助。:)

要创建分组密码,必须遵循某些通用规则。您显示的代码在技术上不是分组密码。概括如下:

  • 在分组密码中,消息被分成块,然后对每个块进行加密(如对非常大的字符进行替换-64位或更多)
  • 分组密码由两个成对的算法组成,一个用于加密E,另一个用于解密E−1。两种算法都接受两个输入:大小为n位的输入块和大小为k位的键,产生一个n位输出块。对于任何一个固定密钥,解密是加密的反函数
分组密码模式(ECB、CBC)中的加密使用特定流:

  • 分组密码必须做的第一件事是将明文分成大小相等的块,通常为8字节,例如
    imablock的ASCII编码
  • 用密码加密明文
  • 解密消息
密码的选择取决于实现

关键是,虽然您可能遵循了加密-解密流程,但您的程序并不满足块密码的一般性。您需要将消息分成块来实现加密

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

参考文献很多:

  • -对分组密码和相关操作的简洁明了的解释
  • -明显参考..:P

希望有帮助。:)

非常感谢。。这就解决了我和我的朋友在这段代码上的争论哈哈哈。朋友们,嗯P很乐意帮忙。:)+1删除了一些用于突出显示的代码块,并添加了一些小的澄清。准确地说,分组密码只能对单个块进行加密/解密,纯文本块的划分纯粹是a的一部分。非常感谢。。这就解决了我和我的朋友在这段代码上的争论哈哈哈。朋友们,嗯P很乐意帮忙。:)+1删除了一些用于突出显示的代码块,并添加了一些小的澄清。准确地说,分组密码只能对单个块进行加密/解密,纯文本块的划分纯粹是a的一部分。如果密钥由完全随机的位组成且不可重用,则这实际上是a的实现,而不是分组密码。如果这是一个算法而不是一个示例,则可能是一个分组密码。但它也可以是一次性的平板电脑,或者别的什么。如果我把mac电脑的每个数字分开,然后像上面一样做,怎么样。它将是相同的输出,但是现在我将它们分解成单个数字的“块”,并执行XOR,然后在另一端重新组合它们,这是一个分组密码。这是一个非常糟糕的密码,但仍然如此。如果密钥由完全随机的位组成,并且没有被重用,那么这实际上是一个A的实现,而不是一个分组密码。如果这是一个算法,而不是一个示例,那么它可能是一个分组密码。但它也可以是一次性的平板电脑,或者别的什么。如果我把mac电脑的每个数字分开,然后像上面一样做,怎么样。它将是相同的输出,但是现在我将它们分解成单个数字的“块”,并执行XOR,然后在另一端重新组合它们,这是一个分组密码。真的很糟糕,但仍然如此。
encrypted text  =  878
decrypted text = 123