| 05-17-2004, 11:17 PM | #1 |
I need to know the bitsizes that are needed. Note: Rijndael is processed in 32 bit chunks, so 64 is bare minimum. I will be doing Rijndael with 128 bit key/block and 96 bit key/block. Are there requests for any others? The algorithm is almost done, except for any customization. Note: 128 is not divisible by 6 into an integer, so in displaying it as a base-64 string you will waste most of one of the letters. 96 is divisible by 6 so there are no wasted bits. |
| 05-23-2004, 03:58 PM | #2 |
I attempted to implement Rijndael in java a while back, but I've completely forgotten most of the details. How on earth are you doing modular polynomial arithmetic? I think youy can find the official specs fairly easily using a google search. |
| 05-24-2004, 12:50 AM | #3 |
Well polynomial arithmatic is a load of bullshit (can I say that?). He uses polynomial arithmatic a ton, but really its just bitwise manipulation. For example, multiplying by the field GF(2^8) is really just a matter of multiplying two integers (which happen to be bytes), xoring together the answers (rather than addition) and then repeatedly xoring that result by 283 (or 284 or some similar number). What it does is something like this GF(2^8) multiplication of 1000 0000 (128) by 0000 00011 (3) 1000 0000 0000 0011 so you have: 1 0000 0000 0 1000 0000 Result: 1 0000 0000 xor by 283: 1 0001 1011 0 0001 1011 The polynomial thing, I learned, was just an excuse to make it more complicated. In reality, none of the operations require polynomials. The polynomials are just an obscenely complicated way of expressing simple bitwise arithmatic. Oh yeah, my function will support variable block sizes, from 64 bits to 256 bits. The 64 bit and 96 bit setups use custom shiftrow setups, which are not guarunteed to be secure. In 96bit, two rows will always shift the same, and in 64bit the 2nd and 4th rows always shift by one. The 64 bit is likely more secure than the 96 bit, but I'm not a cryptographer. |
| 05-24-2004, 09:02 AM | #4 |
The polynomial arithmetic was used to have a mathematic foundation of the algortithm and the way the algorithm for AES was chosen required it to have such a foundation. But you are right, it is pretty pointless. |
