栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

ConstantTimeByteEq如何工作?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ConstantTimeByteEq如何工作?

x ^ y
x XOR y
,对于x和y位不同,结果为1,对于相同位,结果为0:

x = 01010011y = 00010011x ^ y        = 01000000

^(x ^ y)对此取反,即对于不同的位,您得到0,否则得到1:

^(x ^ y)     = 10111111 => z

然后,我们开始将z右移以掩盖其位。移位用零位填充数字的左侧:

z >> 4       = 00001011

为了将任何零传播

z
到结果中,请开始执行ANDing:

z = 10111111z >> 4       = 00001011z & (z >> 4) = 00001011

还要折叠新值以将任何零向右移动:

z = 00001011z >> 2       = 00000010z & (z >> 2) = 00000010

进一步折叠到最后一位:

z = 00001010z >> 1       = 00000001z & (z >> 1) = 00000000

另一方面,如果您

x == y
最初拥有的话,它将像这样:

z = 11111111z (& z >> 4) = 00001111z (& z >> 2) = 00000011z (& z >> 1) = 00000001

因此,当它真正返回1时

x == y
,否则返回0。

通常,如果x和y均为零,则比较所需的时间将少于其他情况。该函数试图使之不顾其输入值而使所有调用花费相同的时间。这样,攻击者无法使用基于定时的攻击。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/440303.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号