Skip to main content
16 events
when toggle format what by license comment
Jan 5, 2022 at 18:27 comment added Sam Ginrich Wonder, whether there are asymmetric cryptosystems without finite field models.
Sep 29, 2017 at 4:42 history edited fgrieu CC BY-SA 3.0
Allude to how issuses 3 and 5 can be taken care of, by example of IDEA
Sep 28, 2017 at 13:19 comment added otus @Fanael most ciphers and such have some parallelism by design. E.g. if you look at argon2's permutation in appendix 2 of the specification, you can see that 16 64-bit words are mixed in sets of 4 so that computations from different $G$ can also be interleaved.
Sep 28, 2017 at 5:50 history edited fgrieu CC BY-SA 3.0
Add 5 per comment
Sep 28, 2017 at 5:38 history edited fgrieu CC BY-SA 3.0
Link to x64 source
Sep 28, 2017 at 5:11 comment added otus As for a source, I recommend agner.org/optimize/instruction_tables.pdf
Sep 28, 2017 at 5:09 comment added otus @Fanael, like fgrieu basically wrote it depends on whether you mean reciprocal throughput or latency. Modern x86 execution units typically have 1 cycle reciprocal throughput for multiplication, but e.g. Ryzen has 3-cycle latency. That is, if you are doing independent multiplies you get a similar throughput as with simpler ops, but if the next instruction needs the result you are slowed down. Anyway, with truly fast ciphers you need to also consider vectorization and things get more complicated.
Sep 28, 2017 at 5:03 history edited fgrieu CC BY-SA 3.0
"extremely uncommon"
Sep 28, 2017 at 4:58 history edited fgrieu CC BY-SA 3.0
Polish
Sep 28, 2017 at 4:52 history edited fgrieu CC BY-SA 3.0
Polish
Sep 28, 2017 at 4:46 history edited fgrieu CC BY-SA 3.0
Latency
Sep 27, 2017 at 20:26 vote accept EPICI
Sep 27, 2017 at 17:06 comment added Ella Rose (+1) There's also the matter of the existence of the modular inverse: If you want to have an inverse permutation, you require multiplication by the modular inverse. Since the multiplier operates modulo machine sized words, multiplication via a number that possesses 2 as a factor is not efficiently invertible. The words of the state cannot be guaranteed to not possess 2 as a factor (and almost certainly will at some point), and so using words of the state as inputs to the multiplier is not as straightforward as just using addition or xor.
Sep 27, 2017 at 11:42 comment added Samuel Neves Two AES finalists used multiplications not by constants: RC6 and MARS. The eSTREAM finalist Rabbit does as well. Today, Lyra2 and Argon2 use multiplications in their BLAKE2-derived round function BlakMka. Multiplication as a primitive gives a nice amount of 'mixing', but it makes the cipher harder to analyze.
Sep 27, 2017 at 7:33 history edited fgrieu CC BY-SA 3.0
Add reference
Sep 27, 2017 at 7:08 history answered fgrieu CC BY-SA 3.0