Šifrovací systém Bloom-Goldwasser je jedním ze schémat šifrování s veřejným klíčem založeným na obtížnosti faktorizace velkých celých čísel . Tento šifrovací algoritmus navrhli Manuel Blum a Shafi Goldwasser v roce 1984.
Nechť m 1 , m 2 , ... , m m je posloupnost bitů otevřeného textu . Jako parametry kryptosystému zvolíme n=pq - Bloomovo číslo, x 0 - náhodné číslo ze Z n spojené s N.
Veřejný klíč pro šifrování je n a pár (p, q) je tajný klíč pro dešifrování.
Pro zašifrování otevřeného textu zvolí držitel veřejného klíče x 0 . Na základě generátoru BBS je inicializační vektor x 0 použit k získání sekvence čtverců x 1 , x 2 , … , x m , která se používá k získání sekvence nízkých bitů b 1 , b 2 , …, b m . Hraním s touto posloupností bitů otevřeného textu získáte šifrový text c i = m i ⊕b i , i=1,2,…,m.
Šifrogram, který je zaslán vlastníkovi tajného klíče, je (c 1 ,c 2 ,…,c m , x m+1 ). Po vytvoření šifry je sekvence x i , i=0,1,…,m zničena a při další komunikační relaci si odesílatel zvolí nové x 0 .
Příjemce šifrového textu obnoví x m+1 posloupnost hlavních kořenů x m , … , x 1 a posloupnost jejich nejméně významných bitů b 1 , b 2 , …, b m a poté šifrovaný text dešifruje: m i = c i ⊕b i , i= 1,2,…,m.
Předpokládejme, že Bob chce poslat zprávu „m“ Alici:
Alice přijímá . Může obnovit "m" pomocí následujícího postupu:
Alice obnovila původní text
V závislosti na velikosti prostého textu může BG využívat více nebo méně výpočetních zdrojů než RSA . RSA používá optimalizovanou metodu šifrování pro minimalizaci doby šifrování, šifrování RSA obecně překoná BG ve všech zprávách kromě nejkratších. Protože čas dešifrování RSA není stabilní, umocnění modulo může vyžadovat stejné množství zdrojů jako dešifrování šifrovaného textu BG stejné délky. BG je efektivnější pro delší šifrované texty, kde RSA vyžaduje více samostatných šifrování. V těchto případech je BG účinnější.