SPECK is a lightweight block cipher. It’s an ARX cipher, making it easy to implement in constant-time code.
Encryption round
Here’s one round of encryption with SPECK.
fn ernd(x: u64, y: u64, k: u64) -> (u64, u64) {
let mut x = x;
let mut y = y;
x = x.rotate_right(8);
x = x.wrapping_add(y);
x ^= k;
y = y.rotate_left(3);
y ^= x;
(x, y)
}
Key schedule
Citation
If you find this work useful, please cite it as:
@article{yaltirakli,
title = "SPECK cipher",
author = "Yaltirakli, Gokberk",
journal = "gkbrk.com",
year = "2024",
url = "https://www.gkbrk.com/speck-cipher"
}
Not using BibTeX? Click here for more citation styles.
IEEE Citation Gokberk Yaltirakli, "SPECK cipher", November, 2024. [Online]. Available: https://www.gkbrk.com/speck-cipher. [Accessed Nov. 12, 2024].
APA Style Yaltirakli, G. (2024, November 12). SPECK cipher. https://www.gkbrk.com/speck-cipher
Bluebook Style Gokberk Yaltirakli, SPECK cipher, GKBRK.COM (Nov. 12, 2024), https://www.gkbrk.com/speck-cipher