Project

General

Profile

Bug #600

Updated by profmakx about 9 years ago

What is the point of keeping/using the in-kernel arc4 
 
 random number generator when you already have a very 
 
 good/superior IBAA/L15 random number generator. 

 

 If you need a u_int32_t quantity then simply add a 
 
 function to /sys/kern/kern_nrandom.c to produce a 
 
 u_int32_t. 

 

 -- 

 

 Some issues with /sys/libkern/karc4random.c : 

 

 (a) If you intend to keep /sys/libkern/karc4random.c I 
 
 recommend you make a modification to it to improve 
 
 performance: Every time the karc4_random() function is 
 
 called it calls getmicrotime(), to check the time, and 
 
 it also checks the number of runs made, to see if it 
 
 should reseed itself. You can make a big performance 
 
 improvement by removing this call to getmicrotime() 
 
 and instead simply checking the number of runs to 
 
 determine when it should reseed itself. 

 

 (b) The karc4random.c file uses u_int8_t types for 
 
 arc4_i, arc4_j and arc4_t so there is no need for the 
 
 % 256 operation - another performance improvement. 

 

 (c) In arc4_init() you are throwing away 256*4 bytes 
 
 of output, when you only need to throw away the first 
 
 256 bytes of output. 

 

 Sincerely, 
 
 R Carey. 

       

       ___________________________________________________________ 
 
 Yahoo! Answers - Got a question? Someone out there knows the answer. Try it 
 
 now. 
 
 http://uk.answers.yahoo.com/

Back