· kaynak dev.to (home feed)
Anthropic'a göre Claude, NIST P-256 eğri seed'lerini 1997 tarihli bir saate ve lrand48'e izledi
Anthropic'a göre şirket içi bir araştırma modeli, NIST P-256 eğri seed'lerini 1997 Unix timestamp'leriyle tohumlanmış lrand48 koşularına kadar izledi ve Filippo Valsorda'nın ödülünü kazandı. Anahtarların veya eğrilerin döndürülmesi gerekmiyor.

Kriptografinin uzun süredir çözülemeyen küçük gizemlerinden biri — NIST'in eliptik eğrilerinin ardındaki seed'lerin nereden geldiği — artık bir cevabı var ve bu cevap son derece sıradan. 16 Ekim'de yayımlanan ve Gabriel Anhaia tarafından dev.to'da aktarılan bir Anthropic yazısına göre, P-256 ve kardeş eğrilerinin seed'leri, 1990'ların C kütüphaneleriyle gelen lrand48 adlı sözderastgele üreteçten geliyordu; her koşu, Mayıs 1997 ile Nisan 1998 arasındaki bir Unix timestamp ile tohumlanmıştı. Soru üzerine 2023'ten beri kamuya açık bir ödül koyan kriptografıcı Filippo Valsorda, iddiayı algoritmayı Go ile yeniden uygulayarak doğruladığını söylüyor. P-256'da döndürülmesi gereken bir şey yok.
2000'den beri açık kalan bir bilmece
NIST, ECDSA'yı 2000'de FIPS 186-2 ile standartlaştırdığında, P-192'den P-521'e kadar her eğri bir seed'den türetilmişti. Anthropic'a göre NSA bu seed'leri hiçbir açıklama yapmadan sunmuştu ve öne çıkan teori, bunların kimsenin çıkaramadığı esprili bir parola ifadesinin hash'i olduğuydu. Bu boşluk şüphe besledi: Seed'i seçen kişi, ilke olarak, sonuçtaki eğri yalnızca kendisinin bildiği bir özelliğe sahip olana kadar denemeye devam edebilir ve Anthropic, insanların uzun süre seed'lerin kasıtlı arka kapılar saklayıp saklamadığını merak ettiğini belirtiyor. BleepingComputer 2023'te bir arka kapı kanıtı olmadığını, ama bir kanıtın varlığını da dışlayan bir şey bulunmadığını yazdı. O yıl Valsorda ve bir grup kriptografıcı, orijinal cümleler için 12.288 dolar teklif etti; kazanan parayı hayır kurumuna bağışlarsa bu tutar üç katına çıkarak 36.864 dolar olacaktı.
Araştırma modelinin buldukları
Anthropic, cevabı bir şirket içi araştırma modeline atfediyor; şirketin bir iç koşuya dair kendi anlatımına göre model cevaba yarım saatten kısa sürede ulaştı. Model, önce 1990'ların bir C kütüphanesi PRNG'sinin devrede olduğunu tahmin etti, ardından yayımlanmış seed'lerden üretecin iç durumunu kurtardı — Anthropic'in ders kitabı niteliğinde bir lattice alıştırması olarak nitelediği bir problem.
dev.to gönderisinde aktarılan bulgular:
- P-192, P-224, P-256, P-384 ve P-521'in seed'leri lrand48 çıktısıdır ve her biri bir Unix timestamp ile tohumlanmış bir koşudan gelir; P-256'nın koşusu Ağustos 1997'ye çözülüyor.
- Dört binary eğri seed'i — B-233, B-283, B-409 ve B-571 — aynı şemaya uyuyor; saat değeri ikiye bölünmüş görünüyor.
- Yayımlanan P-256 seed'i o koşunun 1842. adayıdır; ancak 876. aday da asal mertebeden bir eğri verir; 876'nın neden atlandığı bilinmiyor.
- P-192'nin taban noktası ile beş ANSI X9.62 örnek eğrisi, küçük tamsayılarla tohumlanmış farklı bir üreteçten, FreeLIP'den geldi.
Bir isim uyuşmazlığı var: Anthropic lrand48 diyor, Valsorda ise drand48. İkisi de aynı POSIX ailesine, 48 bitlik aritmetik üzerinde bir doğrusal eşleşkili üretece ait — tek motor, farklı çıktı biçimleri.
Anthropic ayrıca, seed'leri ve seçili taban noktalarını yeniden üreten iki Python betiğini CC0 altında kamu malı olarak yayımladı. Ekip ödülü kazandığını açıkladı ve parayı, Let' Encrypt'ün arkasındaki kâr amacı gütmeyen kuruluş olan Internet Security Research Group'a yönlendirdi; Valsorda'ya göre bu, üç katına çıkan 36.864 dolar tutarını tetikliyor.
Arka kapı sorusu, bit cinsinden
Valsorda'nın argümanı niceliksel. Bernstein ve Lange'ın 2017 tarihli tekniği, zayıf eğriler sınıfına yönelmek için seed seçiminde kabaca 70 bit özgürlüğe ihtiyaç duyacaktı. 1997–98'deki herhangi bir timestamp ve ilk on altı asal mertebe adayından herhangi biriyle sınırlı olduğunda NSA'nın elinde ancak 30 bit olurdu — Valsorda'ya göre bu tekniği tamamen dışlamaya yetiyor. Anthropic daha temkinli; bulguların bir arka kapıyı çok daha az inandırıcı kıldığını söylüyor ve bunun bir kriptografik kırılma, yeni bir saldırı ya da ECDSA eğrilerinde bir zayıflık olmadığının altını çiziyor. Valsorda daha da ileri giderek sonucu NIST eğrilerinin rehabilitesinin tamamlanması olarak nitelendiriyor ve artık kişisel olarak bunları Curve25519, Ed25519 ve X25519'a tercih edeceğini söylüyor.
Hâlâ açıklanmamış olanlar
Bilmece tam olarak kapanmadı. Anthropic, beşinci binary seed olan B-163'ün modelin denediği hiçbir şeyle eşleşmediğini ve P-224, P-256, P-384 ve P-521'in taban noktalarının nasıl üretildiğinin hâlâ bilinmediğini yazıyor. Valsorda, iki ek seçim ölçütünden birinin hâlâ araştırmacıların elinden kaçtığını ekliyor.
Neden önemli
P-256, bir JWT üzerindeki her ES256 imzasının arkasındaki eğridir ve kullanıcıları için cevap hiçbir şey yapmamaktır. Anthropic bunu açıkça söylüyor: döndürülecek anahtar, değiştirilecek eğri yok.
İki şey bunu önemsiz bir ayrıntının üzerine çıkarıyor. Birincisi, 1990'ların sonundan beri var olan bir güven sorunu, eski C kütüphanelerine dair bir tahmin artı standart bir lattice tekniğiyle çözüldü ve sonuç bağımsız olarak doğrulanabilir: Anthropic'in betikleri kamuya açık ve Valsorda'nın Go yeniden uygulaması GitHub'da. İkincisi, asıl ders üretecin kendisi. 1997 tarihli bir program, kriptografik olmayan bir PRNG'yi saatle tohumladı ve on yıllar sonra çıktısı, çalıştığı saniyeye kadar geri izlenebiliyor. POSIX, drand48 ailesinin güvenlik önemli olduğunda kaçınılması gerektiği konusunda uyarıyor; Python'un random modülü ve JavaScript'in Math.random() işlevi de aynı uyarıyı taşır. Oturum kimliği, sıfırlama token'ı, API anahtarı veya davet kodu üreten her şey, bunun yerine işletim sisteminin kriptografik üretecinden beslenmelidir — Python'da secrets, Node.js'te crypto.randomBytes, Go'da crypto/rand veya tarayıcıda crypto.getRandomValues().
- #cryptography
- #ecdsa
- #p-256
- #randomness
- #security
- #ai