Encryption 如何在加密算法中使用密钥?

Encryption 如何在加密算法中使用密钥?,encryption,cryptography,Encryption,Cryptography,我浏览了一些关于加密的好文章。但是,它们都没有描述密钥长度为何重要,以及密钥的确切用途。我的猜测是这样的: Plaintext: 0101001101010101010 Key: 01010010101010010101 //the longer the key, the longer unique sequence XOR or smth: //result 这至少是它的工作原理还是我遗漏了什么?我的本科密码学课程已经有很长时间(超过25年)了,但我会尽力帮助你 虽然

我浏览了一些关于加密的好文章。但是,它们都没有描述密钥长度为何重要,以及密钥的确切用途。我的猜测是这样的:

Plaintext:   0101001101010101010
Key:         01010010101010010101   //the longer the key, the longer unique sequence
XOR or smth: //result
这至少是它的工作原理还是我遗漏了什么?

我的本科密码学课程已经有很长时间(超过25年)了,但我会尽力帮助你

虽然不是现代密码学中的完美例子,但考虑使用严格按字母顺序排列的纯文本和密钥,可能会更容易理解。在这样的密码中,您的密钥将是一个字母序列——通常是一个单词或短语——并用于在一系列密码中旋转以加密纯文本。例如,密钥为“cat”的纯文本“dog”将导致加密文本“foz”(假设我做得正确)


理论上,这个简单的例子是不可破解的,因为密钥和消息文本的长度相同。然而,当消息较长时,与密钥相比,统计分析将指向可用于找出密钥的模式;对于这样的双向密码,密钥直接破解加密的消息。这些模式的频率与键的长度一致,并且很容易在计算机上发现(这就是为什么现在使用xor和单向数学函数)。因此,密钥越长,破解密码就越困难。

密码系统通常比您描述的XOR系统复杂得多。事实上,XORing只有在您拥有一个至少与纯文本消息具有相同位数的密钥,并且您只使用该密钥加密一条消息时才真正起作用。这称为“一次性键盘”加密

在大多数密码系统中,密钥不直接与纯文本组合。相反,它控制加密算法执行的转换。理想情况下,算法执行的转换过于复杂,无法在不知道或猜测密钥的情况下进行反转。因此,在理想情况下,密钥中的位数决定了“暴力破解”所需的平均猜测次数

然而,实际上,密码学家可以从密文(即加密消息)中收集线索,从而减少搜索空间,因此需要使用更多的位。对于我们通常使用的公钥加密系统来说尤其如此。这些系统基于难以反转的数学计算(例如,大素数对的乘法),位数决定了执行反转计算的“问题”大小(例如,两个大素数乘积的因式分解)


您感兴趣的是如何将键“应用”到纯文本。答案是,不同密码系统的密码不同,而且过程通常相当复杂。这个问题不符合一般的答案。

让我们考虑对称加密。这就是如何将某些数据转换为不可读的数据,但那些拥有某些秘密知识的人除外,这些秘密知识可以使操作反转。这是“对称的”,因为加密所需的知识与解密所需的知识相同

从历史上看,“秘密知识”包括对数据加扰所要执行的步骤的描述。在某种程度上,将“加密方法”分为两部分变得很有趣,一部分是算法(方法步骤的一般描述),另一部分是密钥(当时使用的精确参数)。在计算机上,算法成为机器运行的程序;键是一个数字参数,一系列的0和1。计算机加剧了这种分裂的需要:计算机程序很难保密。一个程序是庞大的,它是写在硬盘上。。。另一方面,一把钥匙足够短,可以放在人脑中,使用时可以打字,可以存储在像廉价智能卡一样小巧的设备中,等等

在某种程度上,钥匙集中了秘密。加密中的所有秘密都存在于该密钥中

在您的XOR示例中,方法是:“我们用键对数据进行XOR”,键是实际的0和1序列,与之进行XOR。众所周知,XOR加密方法极难正确使用(基本上,密钥必须与要加密的数据一样长,这通常非常不切实际;但使用较短的密钥意味着重用密钥的某些部分,这会带来许多致命的弱点)。通常的对称加密系统要复杂得多,并且努力从密钥中提供“您的金钱价值”

一把钥匙值多少钱?由于密钥是整个过程中唯一的秘密部分,攻击者所要做的就是猜测密钥。猜测的最基本形式是穷举搜索:攻击者只需尝试所有可能的密钥。随着密钥长度的增加,可能的密钥数量增长得相当快。例如,一个10位密钥有1024个可能的密钥。对于20位密钥,有1048576个可能的密钥。每增加一位,可能的键数就会增加一倍

如果最著名的攻击是穷举搜索,则算法被视为“鲁棒”。从这个意义上说,鲁棒算法是一种算法,它提供的攻击路径并不比残酷的穷举搜索更好,穷举搜索总是“可行”的,但代价高昂。如果算法是健壮的,并且使用的密钥足够大,可以阻止穷举搜索,那么加密是安全的。实际上,“足够大”意味着“一百位或更多”。被穷举搜索攻击的最大密钥是64位密钥。使用现有技术可以实现的组合数量巨大(18446744073709551616)(需要几年时间和数千台计算机)。计算机速度的不断进步使得