Предложен в 1986 году Ленор и Мануэлем Блюм и Майклом Шубом.
BBS заключается в применении следующей формулы :
xn+1 = (xn)2 mod M,
где M=p*q является произведением двух больших простых p и q.
На каждом шаге алгоритма выходные данные получаются из xn путём взятия либо бита чётности, либо одного или больше наименее значимых бит xn.
Два простых числа, p и q, должны быть оба сравнимы с 3 по модулю 4 и НОД(φ(p-1), φ(q-1)) должен быть мал.
Интересной особенностью этого алгоритма является то, что для получения xn необязательно вычислять все n - 1 предыдущих чисел, если известно начальное состояние генератора x0 и числа p и q. n-ное значение может быть вычислено "напрямую" используя формулу :
xn = x0 (2 ^ n) mod ((p-1)(q-1)) mod M
Надёжность
Этот генератор подходит для криптографии, но не для моделирования, потому что он недостаточно быстр. Однако, он имеет необычно высокую стойкость, которая обеспечивается качеством генератора исходя из вычислительной сложности задачи факторизации чисел. Когда простые числа выбраны осторожно, и O (loglogM) бит каждого xn являются выходными данными, тогда предел взятый как M быстро растёт, и вычисление выходных бит будет настолько же трудно, как и факторизация M.
Если факторизация целых чисел так трудна, тогда BBS с большим M будет иметь выход, свободный от любых неслучайных шаблонов, которые могут быть выявлены при достаточном объёме вычислений. Однако, возможно появление быстрого алгоритма для факторизации, и вследствие этого BBS не является гарантированно надёжным.