Diyelim ki Alice ve Peter her birinde 4GB'lık bir USB flash bellek çubuğu var. Her iki çubukta rastgele oluşturulmuş bitler içeren alice_to_peter.key
(2GB) ve peter_to_alice.key
(2GB) adlı iki dosyayı karşılar ve saklarlar. Bir daha asla buluşmazlar, ancak elektronik olarak iletişim kurarlar. Alice aynı zamanda denilen bir değişkeni korur alice_pointer
ve Peter peter_pointer
, her ikisi de başlangıçta sıfıra ayarlanan denilen değişkeni korur .
Alice'in Peter'a bir mesaj göndermesi gerektiğinde, bunu yapar ( n
mesajın 10. baytı nerede ):
encrypted_message_to_peter[n] = message_to_peter[n] XOR alice_to_peter.key[alice_pointer + n]
encrypted_payload_to_peter = alice_pointer + encrypted_message_to_peter
alice_pointer += length(encrypted_message_to_peter)
(ve maksimum güvenlik için, anahtarın kullanılan kısmı silinebilir)
Peter mesajın başında saklanır encrypted_payload_to_peter
, okur alice_pointer
ve şunu yapar:
message_to_peter[n] = encrypted_message_to_peter[n] XOR alice_to_peter.key[alice_pointer + n]
Maksimum güvenlik için, mesajı okuduktan sonra anahtarın kullanılmış kısmını da silin.
- EDIT: Aslında bu basit algoritma ile bu adım (bütünlük kontrolü ve doğrulama olmadan) güvenliği azaltır, aşağıdaki Paŭlo Ebermann yazısına bakınız.
Peter'ın Alice'e bir mesaj göndermesi gerektiğinde, bu kez peter_to_alice.key
ve ile tersini yapıyorlar peter_pointer
.
Bu önemsiz şema ile, her iki yöne 2GB / (50 * 365) = ~ 115kB şifreli veri her gün gönderebilirler. Göndermek için daha fazla veriye ihtiyaç duyarlarsa, daha büyük tuşlar kullanabilirler; örneğin, bugünün 2 TB HD'leri (1 TB tuşları) ile, önümüzdeki 50 yıl boyunca 60 MB / gün alışverişi yapmak mümkün olacak! Uygulamada çok fazla veri var; örneğin, sıkıştırma kullanarak bir saatten fazla kaliteli sesli iletişim söz konusudur.
Bana öyle geliyor ki bir saldırganın şifreli mesajları anahtarsız okumanın bir yolu yok, çünkü sonsuz derecede hızlı bir bilgisayar olsalar bile, kaba kuvvetle mümkün olan her mesajı limit altında alabilirler, ancak bu astronomik bir sayıdır. mesajların ve saldırganın hangisinin asıl mesaj olduğunu bilmiyor.
Haklı mıyım Bu iletişim programı gerçekten kesinlikle güvenli mi? Ve eğer güvenli ise, kendi adı var mı? XOR şifrelemesi iyi bilinir, ancak her iki taraftaki büyük tuşları kullanarak bu pratik pratik uygulamanın adını arıyorum. Bu uygulamanın benden önce birisini icat ettiğini bekliyorum. :-)
Not: Kesinlikle güvenliyse şaşırtıcıdır, çünkü günümüzün düşük maliyetli büyük depolama aygıtlarıyla, güvenli iletişim kurmak pahalı kuantum şifrelemeden çok daha ucuz olacaktır ve bu da eşit güvenlik sağlar!
EDIT:
Bunun gelecekte depolama maliyetleri azaldıkça daha pratik olacağını düşünüyorum.Sonsuza kadar güvenli iletişim çözebilir.Bugün birisi bir yıl sonra bile mevcut şifrelere başarılı bir şekilde saldırırsa ve genellikle pahalı uygulamalarını güvensiz hale getirirse, hiçbir şüpheniz yoktur. İletişim kurulmadan önce birçok durumda, her iki taraf da kişisel olarak buluştuğunda, anahtarları oluşturma zamanı gelmiştir. Askeri iletişim için mükemmel olduğunu düşünüyorum, örneğin büyük anahtarlara sahip HD'lere sahip denizaltılar ve askeri merkezde her denizaltı için bir HD olabilir. Günlük hayatta da, örneğin banka hesabınızı kontrol etmek pratik olabilir, çünkü hesabınızı oluştururken banka ile tanışırsınız.