我正在尝试在 c# 中实现 Speck 32/64 块密码我被困在加密解密算法中。我知道我应该根据算法将纯文本分成 2 个单词
x,y = plaintext words
--------------------------- key expansion --------------------------
for i = 0..T-2
[i+m-1] ← (k[i] + S−α
[i]) ⊕ i
k[i+1] ← S
β k[i] ⊕ `[i+m-1]
end for
---------------------------- encryption ----------------------------
for i = 0..T-1
x ← (S−α x + y) ⊕ k[i]
y ← S
βy ⊕ x
end for
参考
轻量级分组密码的 SIMON 和 SPECK 系列 https://eprint.iacr.org/2013/404
我的问题是明文应该是字符串然后我转换为二进制或什么并在上面的算法中使用它?该算法没有说明文的类型,并且有示例加密
Key: 1918 1110 0908 0100
Plaintext: 6574 694c
Ciphertext: a868 42f2