primitives.md - Open-CP/OCP GitHub Wiki
OCP supports a wide range of cryptographic primitives, including permutations and block ciphers. For each primitive, implementations in both Python and C are provided, with support for both unrolled=True
and unrolled=False
modes, as summarized in the table below. All implementations are verified against test vectors to ensure correctness. The testing framework is located in OCP/TEST/test_implementation.py
, where users can validate existing implementations or integrate new primitives for testing.
No. | Cipher | Python Implementation | C Implementation |
---|---|---|---|
1 | SPECK (Permutation, Block_Cipher) | ✓ | ✓ |
2 | SIMON (Permutation, Block_Cipher) | ✓ | ✓ |
3 | AES (Permutation, Block_Cipher) | ✓ | ✓ |
4 | SKINNY (Permutation, Block_Cipher) | ✓ | ✓ |
5 | GIFT (Permutation, Block_Cipher) | ✓ | ✓ |
6 | PRESENT (Permutation, Block_Cipher) | ✓ | ✓ |
7 | ASCON_Permutation | ✓ | ✓ |
8 | ROCCA_AD_Permutation | ✓ | ✓ |
9 | SipHash | ✓ | ✓ |