İçeriğe geç

Blum Blum Shub Algoritması

Uyarı: İlgili yazı 60 günden daha uzun bir süre önce yayınlandığı için güncelliğini yitirmiş olabilir.

Adi rastgele sayı üretme algoritmaların dan biri olan Blum Blum Shub algoritması, ismini algoritmayı yaratan Lenore BlumManuel Blum ve Michael Shub kişilerinin soy adlarından alır.

BBS, beslemeden aldığı veriyi çeşitli modüler fonksiyonlar ile işleyerek bir birinden farklı sonuçlar üretir. Ancak bu sonuçlar belirli bir periyota göre ilerler.

p ve q asal sayılar olmak üzere m = p.q

Algoritma yukarıda ki gibidir. Sabitleri kısaca görelim.

M, p ve q gibi iki asal sayının çarpılması ile oluşur. (Örnek: p = 11 ve q = 19)
X, herhangi bir sayıdır. Aynı zamanda algoritmanın beslemesidir.

x1 değeri belirlendikten sonra değerin karesi alınarak m ile bölümünden kalanı x2 değişkenine aktarılır. Daha sonra x2 değişken değerinin karesi alınarak tekrar m ile bölümünden kalanı x3 değişkenine aktarılır. Böylece her sonuç tekrar tekrar x değişkenine aktarılarak bir sayı dizisi oluşturulur.

Burada dikkat edilmesi gereken nokta algoritmada modüler aritmetik kullanılmasıdır. Şayet sadece X sabitinin karesi alınsaydı ve sürekli sonraki X sabitine aktarılsaydı iyi bir programcı yada kriptograf algoritmayı hemen çözebilirdi. Ancak M ile kalanının sonuç olarak alınması sayıların birbiri ile alakasız şekilde çıkmasını sağlamıştır. Buda algoritmayı gizlemeyi kolaylaştırmıştır.

Python İle Blum Blum Shub

Python üzerinde eğer BBS algoritmasını kodlamak isterseniz basitçe aşağıda ki gibi bir program yazabilirsiniz.

Burada bbs fonksiyonu iki asal sayının çarpımını, beslemeden gelen x değeri ile işleyerek belirli periyotta değer döndürmekte. Döngünün amacı işlemi 10 farklı sonuç vermesi.

Basit ve kullanışlı bir algoritma. Yardımcı olması dileklerim ile.

Tarih:Genel ProgramlamaPython Programlama

İlk Yorumu Siz Yapın

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir