【问题标题】:What is the difference between ⊕ and + here?这里的⊕和+有什么区别?
【发布时间】:2017-05-20 07:49:40
【问题描述】:
A = A + S[0];
B = B + S[1];

for i = 1 to r do
    A = ((A ⊕ B) <<< B) + S[2i];
    B = ((B ⊕ A) <<< A) + S[2i + 1];

RC5 encryption algorithm,这里的⊕和+有什么区别?

【问题讨论】:

    标签: bit-manipulation bitwise-operators addition


    【解决方案1】:

    + 是加法; 是按位异或。

    参见例如https://en.wikipedia.org/wiki/RC5#Encryption 表示使用 ^(C 风格 XOR)。

    有关该符号的说明,请参阅https://en.wikipedia.org/wiki/Exclusive_or#Alternative_symbols

    【讨论】:

    • @RicardodaRochaVitor 什么,在 RC5 中?怎么样?
    • RC5 是一种非常简单的加密算法。可以看到,A = A + S[0]; B = B + S[1]; for i = 1 to r do A = ((A ⊕ B) &lt;&lt;&lt; B) + S[2i]; B = ((B ⊕ A) &lt;&lt;&lt; A) + S[2i + 1];是逻辑运算
    【解决方案2】:
    A = A OR S[0]; 
    B = B OR S[1]; 
    
    for i = 1 to r do 
    A = ((A XOR B) <<< B) OR S[2i]; 
    B = ((B XOR A) <<< A) OR S[2i OR 1];
    

    &lt;&lt;&lt; 表示按位运算

    【讨论】:

      猜你喜欢
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-10
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 2020-06-28
      相关资源
      最近更新 更多