64位现代处理器如何处理128位/ 256位加密?

问题描述 投票:0回答:1

从我所教到的,对我而言,这意味着64位计算机将具有64位寄存器,但如果是这样,那么如何处理需要128位或更多处理或其他操作的加密等需要比处理器寄存器更高的位来处理?

encryption cpu-registers processor
1个回答
1
投票

阅读此Q/A以了解如何处理任意大小(无符号)整数。

然而,对于简单的2或4倍大小,它更可能具有更简单的组合。例如,对于128位(模块化)添加Z = X + Y (mod 2^128)

  1. lowZ = lowX + lowY (mod 2 ^ 64);
  2. lowC = lowZ < lowX ? 1 : 0(换句话说:如果携带不是直接可用的,你需要计算它);
  3. hiZ = hiX + hiY + lowC(mod 2 ^ 64);
  4. hiC = hiZ < hiX ? 1 : 0(但通常只丢弃进位)。

lowXlowYlowZ只是值XYZ的64个最低位。然后hiXhiYhiZ只是值XYZ的64个最重要的位。

您也可以为其他操作执行此操作。比特操作,轮班等等都很简单。乘法更难,除法/余数是一个婊子。我怎么知道?好吧,here is an example of 32 bit calculations for Java Card, a system that basically assumes 16 bit operations。由于Java不使用无符号计算,因此编程有点困难。

有趣的是,Java Card本身通常运行在8位CPU上(虽然这种情况正在迅速改变)。实际上,有一个双位转换8位到16位和16位到32位正在进行。 8位处理器架构足够恰当,是袖珍计算器中使用的CPU的直接前身。自IT开始以来,这种转换就已为人所知。

© www.soinside.com 2019 - 2024. All rights reserved.