it-swarm-tr.com

Kriptografik kehanet nedir?

"Kriptografik Oracle" terimiyle karşılaştım ve biraz googlinge rağmen net, özlü bir tanımla karşılaşamadım. Şifreleme Oracle nedir ve ne işe yarar? Herkes bir örnek verebilir mi?

35
josh-cain

Bir Oracle bir tanrının kişisel cep telefonu numarasını bilen bir bireydir. Bu, geleceğe bakışlar gibi genellikle sadece ölümlülerin erişemeyeceği kabul edilen bazı bilgileri edinmesini sağlar. Şifrelemede bu aynı değildir, ancak hiçbir tanrı söz konusu değildir: Oracle, aksi takdirde mevcut olmayacak bir sistem hakkında ek bilgi verebilen herhangi bir sistemdir.

Örneğin, RSA ile asimetrik şifrelemeyi düşünün. Bağlantı kurduğum standart, bir veri parçasının ortak anahtarla nasıl şifrelenmesi gerektiğini belirtir. Özellikle, şifreleme, veri parçasının ilk olarak bir başlık ekleyerek genişletildiği padding işlemi ile başlar, böylece yastıklı veri uzunluğu RSA ortak anahtar uzunluğuyla eşleşir. Üstbilgi iki baytla 0x00 0x02, Ardından en az sekiz rasgele sıfır olmayan bayt ve ardından başka bir 0x00 İle başlamalıdır. Veriler bir kez doldurulduktan sonra, RSA işleminin merkezinde bulunan matematiksel işlemi uygulama zamanı gelmiştir (modüler üs alma). Dolguların ayrıntıları güvenlik için önemlidir.

Şifreleme sonucu, genel anahtarın bir parçası olan büyük bir tam sayı olan RSA modülü bir tamsayı modülosudur. 1024 bit RSA anahtarı için n modülü 2'den büyük bir tamsayı değeridir1023, ancak 2'den küçük1024. RSA ile düzgün şekilde şifrelenmiş bir veri yığını, 1 ve n-1 arasında bir tamsayı değeri verir. Ancak dolgu, yukarıda gösterildiği gibi bazı structure anlamına gelir. Şifre çözme tarafı, şifre çözme üzerine, 0x00 0x02 Bayt ile başlayan, ardından en az sekiz adet sıfır olmayan bayt ile başlayan, düzgün oluşturulmuş bir PKCS # 1 başlığı bulmalıdır ZORUNLU ve bir 0x00 başlığın sonunu işaretler. Bu nedenle, 1 ve n-1 arasındaki tüm tam sayılar geçerli RSA şifreli mesaj değildir (bu tür her 65000'de 1'den az olur) şifre çözme üzerine uygun bir dolgu verir).

Bilmek verilen bir tamsayı modülosunun n şifre çözme üzerine, geçerli bir dolgu yapısı olan, yapanlar için mümkün olmadığı varsayılır mı? özel anahtarı bilmiyorum. Özel anahtar sahibi (tanrı) bu bilgiyi ve daha fazlasını elde eder: şifre çözme çalışırsa, özel anahtar sahibi aslında şifre çözme noktası olan mesajı alır. bir yerde, belirli bir tamsayı modulo n geçerli bir şifreli veri parçası olup olmadığını söyleyebilecek bir varlık olduğunu varsayalım RSA ile; bu varlık size tam şifre çözme sonucunu vermeyecek, şifre çözmenin işe yarayıp yaramayacağını söyleyecektir. Bu tek bitlik bir bilgi, tanrının ne elde edeceğine dair azaltılmış bir bakış. Varlık sizin Oracle'ınızdır: normalde yalnızca özel anahtar sahibinin kullanabileceği bilgilerin parts değerini döndürür.

Böyle bir Oracle'a erişim verildiğinde, özel hazırlanmış tamsayılar göndererek özel anahtarı yeniden oluşturmanın mümkün olduğu çıkıyor modulo n (sürer bu değerlerin bir milyon kadarı ve biraz matematik, ama yapılabilir). Ayrıca o zamanın en çok SSL/TLS uygulamasının (1999'da olduğu gibi) istemsiz olarak oracles olarak davrandığı ortaya çıkıyor: bir istemci olarak, geçersiz bir RSA şifreli ClientKeyExchange mesajı, sunucu gönderdiyseniz belirli bir hata mesajıyla ("duh, ClientKeyExchange mesajınız kokuyor") yanıt verirken, şifre çözme işe yaradıysa, sunucu şifresini çözdüğü değeri kullanarak (istemci rasgele bir değer gönderdiyse genellikle istemcinin bilmediği biliniyorsa) , böylece protokol daha sonra başarısız oldu, ancak istemci geçerli ve geçersiz bir dolgu arasındaki farkı görebiliyordu). Bu nedenle, böyle bir uygulamada, bir saldırgan (bir milyon kadar başarısız bağlantıdan sonra) genellikle özel bir şey olarak kabul edilen sunucu özel anahtarını yeniden oluşturabilir.

Orasles işte budur: güvenlik kanıtlarında kullanılacak bir veri sızıntısının matematiksel açıklaması. RSA durumunda bu, bir değerin uygun bir dolguya sahip olup olmadığını bilmenin bir şekilde özel anahtarı öğrenmeye eşdeğer olduğunu gösterir (özel anahtarı biliyorsanız, şifre çözmeyi deneyebilir ve yastığı kendiniz görebilirsiniz; Bleichenbacher saldırısı gösterir bunun tersi de işe yaradığını).

67
Thomas Pornin

Oracle, hemen (O(1)) size, genellikle mümkün olmayan veya imkansız bir soruna cevap verebilecek bir şeydir. Örneğin, bir "Duruş sorunu Oracle" , durma sorunu olsa bile, belirli bir girişteki belirli bir programın durup durmadığını hemen söyleyebilir. hesaplanamaz bize sadece ölümlüler. Bununla birlikte, bazen bazı kehanetlerin var olduğunu iddia ederek bazı yararlı özellikleri kanıtlayabiliriz.

Örneğin, kriptografik belgelerde, oracles, if saldırganlarımızın görünüşte imkansız görünen bir Oracle'a erişebildiklerini bile, still güvenliğimizi kırmada herhangi bir (önemli) avantaja sahip olmak. Örneğin, şifreleme algoritmalarının önemli bir özelliği (bilinen bilinen düz metin saldırılarına direnç denir ) , bir saldırgana şifreli bir mesaj verilirse m' anahtarınızla ve orijinal mesajı bilmek istiyorlar m (veya anahtarınızı anlayın) , sonra onlara başka bir mesaj veriyor n ve n' anahtarınızla şifrelemesi, hiçbir şekilde yapmalarına yardımcı olmamalıdır.

Bunu aşırı ( seçilen düz metin saldırısı ) : bir saldırgana şifreleyebilen veya şifresini çözebilen bir Oracle verin m ve m' için hariç anahtarınızla mesajınız. Bu zorlu koşullar altında bile, şifrelememiz için Oracle ile saldırganın m (veya anahtarınız) bulmada hiçbir avantajı olmayacağını göstermek istiyoruz. = Oracle olmayan saldırgandan. Bu, şifrelememizin seçilen düz metin saldırılarından korunduğu anlamına gelir.


[Düzenle]
İşte başka bir pratik örnek. Sorusunda bir program başka bir programın satranç oynayıp oynamadığını söyleyebilir mi? İlk önce olduğunu varsayarak böyle bir program olmadığını gösteririz. bir satranç tespit Oracle'ı varlığını göstermek mantıklı bir imkansızlığa yol açar.

Şifreleme oracles bir kara kutu giriş/çıkış yöntemidir.

Sahte rasgele yanıtı olan herhangi bir girdiye yanıt verir, ancak belirli bir girdi için her zaman aynı çıktıyı verir.

Genellikle daha yüksek güvenlik için rasgeleliğin önemli olduğu karma fonksiyonlar için kullanılırlar.

Açıkçası, görünüşe göre sahte rastgele sayılar döndüren matematiksel bir işlev olduğu için güvenlik sorunları olmaya devam edecektir, ancak açıkçası daha az rastgele meslektaşlarından daha güçlüdürler.

İşte onlar ve tasarımları hakkında sağlam bir makale - http://cseweb.ucsd.edu/users/mihir/papers/ro.pdf

1
doyler