3,158 reputation
215
bio website
location
age
visits member for 1 year, 2 months
seen 2 hours ago

2h
answered Format Preserving Encryption for 32 or 64 bit plaintext values
5h
comment How are salt values more secure?
Note that "using timestamps" is very bad, unless the timestamp was an input to some function that generates the salt, then that is acceptable. A future salt should not be predictable to an attacker.
5h
comment How are salt values more secure?
\$alg\$salt\$hash is a common way of storing hashes in a database, so a typical database field may look like \$apr1\$h7Fb0iS3\$24a7435b994b0bf6ea99155ac24747ec
7h
comment Advantages of combined PRNGs
I am using a similar system, CTR mode XOR with the OS PRNG, which is then hashed. This guarantees minimum entropy per output bit (7 bits of input to hash for 1 bit out), as well as maintaining security with a potentially malicious CryptGenRandom/RDRAND
7h
comment Advantages of combined PRNGs
Only with an extremely large output sample (half a megabyte+), as compared to a large cryptographic key output which is 4096 bits or smaller in general, which should never see an even byte distribution.CTR is already good at producing statistically pseudorandom outputs, so it should not effect the bite/byte distribution of a good PRNG in a negative way. I think you may have misunderstood the OP in regards to the purpose; he will not be using the output to encrypt plaintext, rather to generate key material
12h
comment Advantages of combined PRNGs
Good PRNGs are designed to produce bitstreams that are indistinguishable from random, a large byte stream that has near equal frequencies for each byte is NOT what random behaves like
12h
comment Format Preserving Encryption for 32 or 64 bit plaintext values
Blowfish/DES are already available and tested for 64-bit blocks
12h
comment Most secure way to derive separate encryption and MAC keys from a single master key?
I assumed the initial 256-bit key was generated by a suitable KDF, which would make the last hash a final step; and yes, it only generates 512-bits of key material, but that is what was asked for.
22h
comment Most secure way to derive separate encryption and MAC keys from a single master key?
personally I would just run the thing through a 512-bit hash and split it in half
23h
comment Format Preserving Encryption for 32 or 64 bit plaintext values
I implemented a round function using AESNI instruction isolation on both 32 and 64-bit inputs, it seems to do a great job. The round count will need to be higher because of poorer subkey diffusion, but it can still use the AES key schedule without modification. The 64-bit version needs a byte swap to prevent the square attack
1d
comment Format Preserving Encryption for 32 or 64 bit plaintext values
It is not a modification to AES, rather it is using the building blocks of AES to implement a solution that can use the timing attack resistant and high speed AESNI instructions
1d
comment Format Preserving Encryption for 32 or 64 bit plaintext values
Since the competition called for a 128-bit block, they didnt even bother. But AES was based on 64-bit ciphers KHAZAD and SHARK, so it can be reduced to 32-bits the same way it was extended to 128
1d
comment Format Preserving Encryption for 32 or 64 bit plaintext values
Internally AES operates on 32-bit values when performing mixcolumns, one can modify the algorithm easily to use a 32-bit or 64-bit block size. At 32-bits, rotations may need to be added to break apart the byte oriented structure. I believe this will also allow the use of AESNI instructions, I am curious so I will test this later tonight.
1d
comment Serpent 256bit key wrong round keys
Let us continue this discussion in chat.
1d
comment Serpent 256bit key wrong round keys
No, that is not how an sbox works. it takes a 4-bit input and gives a 4-bit output, S3(5) = 9
2d
revised Serpent 256bit key wrong round keys
addiitional values of working registers
2d
comment Serpent 256bit key wrong round keys
Remember bit-sliced, so you will need the permutation to reorder the bits once the entire 128-bit subkey group has been sent through the s-box to match my values. I think if you run my subkeys through the final permutation you will get what you expect for a manual calculation. Also my key input is also big endian, treat 15FC0D48.. as a byte stream. I will update the answer with w() values
2d
comment Serpent 256bit key wrong round keys
My values are AFTER the application of the sboxes (final subkeys); before the sbox the value w(0) is EC3EB632, which will be 32b63eec in my print format (big endian). Then ffb0b08e 753dc6f2 6ad60ec8 for w(1-3)
2d
comment Where did the SHAKEs come from in SHA3?
As per the answer, they are NIST's version of an XOF. The number after SHAKE refers to the security level provided by the capacity of the sponge function.
2d
answered Serpent 256bit key wrong round keys