1600’lerde Pierre de Fermat tarafından geliştirilen çarpanlara ayırma yöntemi, günümüzde yazıcıya gönderilen veriler gibi şifrelenmiş bilgileri çözmede etkili oluyor.
Günümüzde dizüstü bilgisayarlar, yazıcılara gönderdikleri belgeleri genellikle ağ üzerinden RSA ile şifreliyor. Ancak araştırmacı Hanno Böck, 2022’de bazı yazıcı üreticilerinin yeterince rastgele olmayan asal sayılar kullandığını ortaya çıkardı. Bu zayıf seçimler, Fermat’nın yüzyıllar önce geliştirdiği yöntemle sayıları kolayca asal çarpanlarına ayırmayı mümkün kılıyor.
Matematikçiler uzun süredir Fermat’nın çalışmalarını şifreleme sistemlerini kırmak için kullanabileceğini düşünüyordu. Böck, bunun gerçekten işe yaradığını kanıtladı.
Güvenliğimiz İçin Karmaşık Problemler Gereklidir
Modern şifreleme sistemleri, çözülmesi zor matematik problemlerine dayanır. Bu problemleri, ek bilgi yani anahtar olmadan çözmek mümkün değildir. Yaygın yöntemlerden biri, asal sayılara dayalı RSA şifrelemesidir. Büyük sayıların asal çarpanlarına ayrılması zor olduğu için bu sayılar anahtar olarak oldukça kullanışlıdır.
Diyelim ki bir kişi SCIENCE kelimesini, yani yedi harften oluşan bu kelimeyi, alıcıya şifreli biçimde göndermek istiyor. Bunun için 6.743.214 gibi yedi basamaklı büyük bir sayı kullanıyor. SCIENCE kelimesindeki her harfi, bu sayının ilgili basamağı kadar kaydırıyor. Örneğin S harfini 6 harf kaydırarak Y’ye, C harfini 7 harf kaydırarak J’ye dönüştürüyor. Bu şekilde devam ederek kelimenin tamamını şifreliyor.
Sonuçta ortaya CJMHPDI gibi bir kelime çıkıyor. Gönderici bu veriyi karşı tarafa ilettiğinde, arada dinleme yapan biri mesajın ne olduğunu anlayamaz. Ancak alıcının, orijinal SCIENCE kelimesini çözebilmesi için ya doğrudan 6.743.214 anahtarına ya da bu anahtarı hesaplamasını sağlayacak bir ipucuna ihtiyacı var. Fakat anahtarın doğrudan gönderilmesi her zaman güvenlik riski taşır.
İşte RSA şifreleme, anahtarı güvenli şekilde yeniden üretmeyi sağlayan bir yöntem sunar. Temel fikir, mesaj gönderilmeden önce gönderen ve alıcının kamuya açık bilgileri kullanarak ortak bir anahtar üretmesidir. Güvenlik, her iki tarafın da kendi içinde büyük asal sayılar seçip bunları çarpmasından kaynaklanır. İki taraf yalnızca bu çarpımların sonucunu birbirine iletir.
Bir dinleyicinin anahtarı üretebilmesi için bu asal sayılara ihtiyacı vardır. Ancak elinde yalnızca çarpım sonucu vardır. Bu sayıları asal çarpanlarına ayıramadığı sürece anahtarı elde edemez. (Gerçek RSA protokolü bundan daha karmaşıktır; ancak genel mantık bu şekildedir.)
Fermat’ın çarpanlara ayırma yöntemi nedir?
Yaklaşık dört yüzyıl önce Pierre de Fermat, sayıların asal çarpanlarına nasıl ayrılabileceğini araştırıyordu. Bu süreçte, iki asal sayının çarpımından oluşan büyük sayıları bile çarpanlarına ayırmanın basit bir yolunu buldu. Meslektaşlarını etkilemek için yöntemi n = 2.027.651.281 sayısını örnek alarak gösterdi.
Fermat’ın çarpanlara ayırma yöntemi, verilen sayının kareköküne en yakın tam sayıyı bularak başlar.
Örneğin n = 2.027.651.281 için karekök yaklaşık 45.029,45’tir; bunu yukarı yuvarladığımızda 45.030 elde ederiz. Bu sayının karesi ile n arasındaki fark 49.619 çıkar, fakat bu bir tam kare değildir.
Bir sonraki adımda 45.031 sayısını deneriz. Fark 139.680 olur; bu da tam kare değildir. Ardından 45.032 sayısını deneriz. Fark bu kez 229.743 çıkar, yine tam kare değildir.
Bu denemelere devam ettiğimizde, 12. adımda başarıya ulaşırız: 45.041 sayısının karesi ile n arasındaki fark 1.040.400’dür ve bu sayı 1.020² olarak tam karedir. Böylece çarpanlara ayırma işleminin ana adımı tamamlanmış olur.
Peki bu yöntem nasıl işe yarıyor? Yukarıdaki örnekte, bir kare sayı y² (bu örnekte 45.041²) ile n arasındaki fark, başka bir kare sayı x²’ye (bu örnekte 1.020²) eşittir. Bu ilişkiyi şu şekilde yazabiliriz: y² − n = x²
Bu ifadeyi yeniden düzenleyerek y² − x² = n şeklinde yazmak mümkündür. Matematikte kareler farkı kuralına göre: y² − x² = (y − x)(y + x) olur. Bu dönüşüm sayıyı otomatik olarak iki çarpanına ayırır: y − x ve y + x. Örneğimizde n = 2.027.651.281 için:
- y − x = 45.041 − 1.020 = 44.021
- y + x = 45.041 + 1.020 = 46.061 olacaktır ve her iki sayı da asaldır.
Fermat’ın çarpanlara ayırma yöntemi, n tek sayı olduğu sürece teorik olarak her zaman çalışır. Bilgisayarlar ise bu yöntemi yalnızca, n’i oluşturan iki asal sayı birbirine yakınsa hızlı biçimde uygular.
Sonuç Olarak
Hanno Böck, 2022’de bu durumu istismar edebilecek bir güvenlik açığı buldu. Bazı şirketlerin kullandığı yazılım kütüphanesi, şifreleme için yeterince rastgele asal sayılar üretmiyordu ve sık sık birbirine yakın çiftler seçiyordu. Bu zayıflık, Fermat’ın yüzyıllar önce geliştirdiği yöntemi kullanarak RSA şifrelemesini kırmayı mümkün kılıyordu.
Böck, özellikle bazı yazıcıların ağ üzerinden gönderilen belgeleri bu yetersiz şifreleme ile koruduğunu fark etti. Uyarısından sonra ilgili şirketler güvenlik yamaları yayınladı. Ancak benzer sorunlar başka cihazlarda da görülebileceği için tüm üreticilerin sistemlerini gözden geçirmesi gerekiyor.
Yakın gelecekte kuantum bilgisayarlar, bugün klasik bilgisayarların başaramadığı asal çarpan bulma işlemini kolayca yapabilecek. Fermat, 380 yıl önce geliştirdiği yönteminin bir gün kuantum teknolojisiyle birleşerek modern şifrelemeyi tehdit edebileceğini muhtemelen hiç düşünmemişti.
Kaynaklar ve ileri okumalar
This More Than 380-Year-Old Trick Can Crack Some Modern Encryption. Kaynak site: Scientific American. Yayınlanma tarihi: 9 Nisan 2025. Bağlantı: This More Than 380-Year-Old Trick Can Crack Some Modern Encryption
Matematiksel