Research Article
CFA: A New Family of Hybrid CA-Based PRNGs
| Input: seed | | Output: Random bits (256 bits) | | Begin | | Let j ← (-sizeOf(seed)-2) mod 256 | | Let ruleSet ← {30, 90, 150, 30, 110, 30, 90, 150} | | Let keyAES ← ThreadedSeedGenerator(256) | | paddedSeed ← seed || 1||0j|| 1 | | s ← SHA3(paddedSeed, 256) | | s[0] ← s[256] | | s[257] ← s [1]. | | For it from 1 to 128 | | For i from 1 to 256 | | k ← i−1 modulo sizeOf(ruleSet) | | If ((k = = 0) || (k = = 3) || (k = 5)) then//30 | | evolution[i] ← s[i−1] (s[i]+s[i+1]) | | Else if ((k = = 1) || (k = = 6)) then | | evolution[i] ← s[i−1] s[i+1] | | Else if ((k = = 2) || (k = = 7)) then//150 | | evolution[i] ← s[i−1] s[i] s[i+1] | | Else//110 | | evolution[i] ← s[i−1] s[i+1] s[i−1]. s[i+1] s[i−1]. s[i]. s[i+1] | | End if | | End for | | End for | generated_bits ← AES256 (evolution, keyAES, CTR) | | End |
|