export <blum-blum-shub> in random.blum-blum-shub

db4
Eric Mertens 2008-04-15 01:00:37 -07:00
parent aae907d5e1
commit 9f46b534e9
2 changed files with 6 additions and 7 deletions

View File

@ -12,17 +12,16 @@ TUPLE: blum-blum-shub x n ;
: generate-bbs-primes ( numbits -- p q )
[ [ random-prime ] curry [ 4 mod 3 = ] generate ] dup bi ;
: next-bbs-bit ( bbs -- bit )
[ [ x>> 2 ] [ n>> ] bi ^mod dup ] keep (>>x) 1 bitand ;
PRIVATE>
: <blum-blum-shub> ( numbits -- blum-blum-shub )
generate-bbs-primes *
[ find-relative-prime ] keep
blum-blum-shub boa ;
: next-bbs-bit ( bbs -- bit )
[ [ x>> 2 ] [ n>> ] bi ^mod ] keep
over >>x drop 1 bitand ;
PRIVATE>
M: blum-blum-shub random-32* ( bbs -- r )
0 32 rot
[ next-bbs-bit swap 1 shift bitor ] curry times ;