İlk önce Havva'nın sadece pasif olduğunu varsaymalıyız. Bununla, kartı doğru bir şekilde Bob'a gönderdiğini ve Alice'e geri getirdiği şeyin gerçekte Bob'un tepkisi olduğunu kastediyorum. Eğer Havva, verileri her iki yönde ya da her iki yönde de değiştirebilirse (ve eylemi tespit edilmeden kalırsa), her şey yolunda gider.
(Uzun süredir devam eden gelenekleri onurlandırmak için, sohbete katılan iki dürüst partiye Alice ve Bob denir. Metninizde "siz" dedin. Gerçek adım "Alice" değil, ama aynen yazmışsınız gibi cevaplayacağım. o Alice Bob'un telefon numarasını doğrulamak istiyor.)
Basit (ama zayıf) cevap karma fonksiyon kullanmaktır. Alice kartta yazıyor: "bana telefon numaranızın SHA-256 hashini döndürün". SHA-256 , karma işlevleri devam ettiği sürece güvenli olduğuna inanılan bir şifreleme karma işlevidir. Elle hesaplama yapmak sıkıcı olabilir ancak yine de yapılabilir (bu, her işlemin bir ekleme, bir sözcük kayması veya döndürme veya bitlerin bit bir birleşimi olduğu yaklaşık 2500 32 bitlik işlemdir; Bob bir günde yapabilir. yani).
Şimdi bunun nesi zayıf? Kriptografik bir karma işlevi olan SHA-256, "ön görüntülere" dirençlidir: bu, bir karma çıktısı verildiğinde karşılık gelen bir girişi kurtarmak için çok zor olduğu anlamına gelir (Eve'in karşılaştığı sorun budur). Bununla birlikte, "çok zor", "en kolay yöntem kaba kuvvet:" bir eşleşme bulunana kadar olası girdileri denemek "anlamına gelir. Sorun şu ki, kaba kuvvet burada kolay: Çok fazla olası telefon numarası yok (Kuzey Amerika'da, 10 basamak, yani sadece 10 milyar). Bob işleri el ile yapmak istiyor, ancak Havva'nın bu kadar sınırlı olduğunu kabul edemeyiz. Temel bir PC saniyede birkaç milyon SHA-256 karma deneyebilir, böylece Havva bir saatten az bir sürede (GPU kullanıyorsa 5 dakikadan az bir sürede) yapılır.
Bu genel bir sorundur: Bob deterministik ise (yani Alice'in verdiği bir mesaj için, her zaman aynı cevabı verir), Eve onu taklit edebilir. Yani, Havva Bob ile ilgili telefon numarası dışındaki her şeyi bilir, bu yüzden neredeyse sadece varsayılan telefon numaralarına göre farklılık gösteren 10 milyar Bobs çalıştırır; ve gerçek Bob’lardan birinin gerçek Bob’un gerçekte ne getirdiğini geri getirmesini bekler. Kusur, rastgele olmayan bağları ve simetrik şifrelemeyi içeren ve pek çok farklı türde "akıllı" çözümü etkiler. Güçlü bir kusur olduğunu ve Bob eğer şimdi Havva ve Bob (arasında işlem gücünün devasa fark kök yalanları da Eve'in büyüklüğünde bir bilgisayar vardı, sonra bir kullanabiliriz yavaşbirçok yinelemenin kullanımıyla karma fonksiyonu; Bu, şifre yerine telefonun şifrelenmiş olduğu, aşağı yukarı ne olduğu; bkz Bcrypt ve ayrıca bu cevabı ).
Dolayısıyla, olmayan bir zayıf çözüm gerekir Bob'un kısmında bazı rastgeleliğine içerir: Bob yazı tura veya art arda zar atmak ve onun hesaplamalarda değerleri enjekte edilmelidir. Dahası, Havva Bob’un yaptıklarını çözemez, ancak Alice’in yapabilmesi gerekir, bu yüzden bazı bilgiler Bob’dan Alice’e gizlilikle aktarılır . Buna asimetrik şifreleme veya en azından asimetrik anahtar anlaşması denir . Bu sınıfın hesaplanması, ancak yine de makul olarak güvenli olması için en basit algoritması , PKCS # 1 v1.5 dolgusu ile RSA'dır . RSA, genel üs olarak kullanabilir . Böylece protokol böyle gider:e=3
Alice , ve benzer büyüklükte bir tamsayı olduğu büyük bir tamsayısı üretir , böylece güvenliği sağlamak için yeterlidir (yani 2012'den itibaren en az 1024 bit). Ayrıca, Alice, ve 3'ün katları olmayacak şekilde ayarlamalıdır.p q n p - 1 q - 1n=pqpqnp−1q−1
Alice kartta yazar .n
Bob, ilk olarak telefon numarasını , PKCS # 1 ile tanımlandığı şekilde kadar bir byte dizisine doldurur (bu, 00 02 xx xx ... xx 00 bb bb .. bb'dir, burada 'bb', kodlanan on bayttır) telefon numarası ve 'xx', , 1024 bitlik bir tamsayıysa, toplam 128 bayt uzunluk için rastgele sıfır olmayan bayt değerleridir ).nnn
Bob, bayt sırasını büyük bir tamsayı değeri (big-endian kodlaması) olarak yorumlar ve değerini hesaplar (yani bu çok büyük tamsayılarla bir çift çarpma, sonra bir bölmedir, sonuç bölümün kalanı). Bu hala elle yapılabilir (ancak yine orada bir günün daha iyi bir parçası olacak). Sonuç, Bob'un Alice'e geri gönderdiği şey.m 3 m o d nmm3 mod n
Alice bilgisini kullanır ve kurtarmak gelen Bob gönderdiği. RSA'daki Wikipedia sayfası , bu işlem hakkında oldukça açık açıklamalar içeriyor. Alice'in , dolguyu kaldırabilir ('xx' sıfır değildir, bu nedenle ilk 'bb' baytı açık bir şekilde yerleştirilebilir) ve sonra sahip olduğu telefon numarasıyla karşılaştırabilir.q m m 3 m o d n mpqmm3 mod nm
Bir bilgisayar gerektirecektir Alice'in hesaplama (bilgisayar yaptığı iştir hep elle ilk ve yapılabilir, ancak "yapılabilir" pratikte yapmak için çok fazla zaman alabilir bu yüzden bir bilgisayar, ona hızlı devilishly olduğu; RSA şifre çözme elle birçok alacaktı haftalar).
(Aslında , McEliece şifrelemesini kullanarak elle daha hızlı bir hesaplama yapabilirdik , ama sonra genel anahtar - Alice'in kartta yazdığı şey çok büyük olurdu ve bir kart yapmazdı; Eve tam bir kitap taşımak zorunda kalacaktı. basamak.)