PROBABILISTIC ENCRYPTION
Merhaba Arkadaşlar,
Bugün enterasan bir konu ile karşınızdayım..
Malumunuz bilginin elde edilmesi zor olduğu kadar mevcut bilginin korunması ve ilgili yere transfer edilmesi günümüzde önemli bir yer teşkil ediyor. Kriptografi, KriptoAnaliz gibi kavramlar bu noktada karşımıza çıkıyor. Kısaca bu ikisini ayırmakta yarar var. Kriptografi bilginin güvenliği ve dış etkenlerden izole edilmeye çalışılması , Analiz tarafı güvenliği sağlanmaya çalışılan bilginin elde edilmeye çalışılması, güvenlik bakımından güçlülüğü, bu noktada işlemsel hızlılığı ve verimlilik gibi alanlarda değerlendirilmesini kapsar diyebiliriz. Bu yazımızda ağırlıkta ilgili konunun Kriptografik bakımından değerlendirmesini yapacağız.
Gelelim konumuza.. Öncelikli olarak yazımızda kullanacağımız genel kriptoloji terimlerden biraz bahsedelim.
PlainText: Salt bilgi olarak düşünebilinir. Güvenliği sağlanması istenen bilgidir.
Encrypt: Bilginin dış etkenlerden korunması amacı ile öncelikle okunabilinirliğinin yok edilmeye çalışılması akabinde sadece hedef kişiye özel olarak yada eski mantıkla genel bir anhatar ile gönderilmesi.
Decrypt: Hedef kişi tarafından okunabilirliği yok edilen bilginin EKSİKSİZ elde edilmesi.
Public Key: Bilgi hedef kişiye gönderilmeden önce,yani bilginin okunabilirliği yok edilirken, matematiksel çeşitli işlemlerde kullanılması amacıyla üretilen bit düzeyinde data dır. Bu key asymteric encryptionlarda kullanılmaktadır.(Public <-> Private ) Yani datanın public key ile encrypt edilmesi private key ile decrypt operasyonudur.
Private Key: Encryption işlemi symetric veya asymetric olsun sadece bilginin kişiye özel olarak symmetric için (encrypt/decrypt),asymmetric için ise decrypt amacıyla üretien bit düzeyinde data dır.
Bu kısa bilgileri verdikten sonra asıl konumuza gelelim. Konumuzun mantığını açıklayabilmek için mevcut krypto mantığına biraz dokunmamız lazım. Günümüzdeki krypto sistemlerinde DES,AES gibi genel olarak sistemler 56 bit lik veya boyut olarak daha fazla olan data ların public key olarak crypto lanması ve private key ile bunların çözümlenmesi mantığı ile çalışmaktadır. (Ekstra önlemlerde mevzu bahisdir. (Bunlara örnek olarak DES algoritmasının triple olarak çalıştırılması ve dijital sertifikaları verebiliriz.) Ancak analiz tarafının gelişmesi ile yani çeşitli ataklar (özelikle predicate atakları) bilginin tamamıyla veya çoğunlukla partial olarak ele geçirilmesi durumu oluşmuştur. (Burada kullanıcı bazlı hataları göz ardı etmeyelim.) Ve şu gerçek ortaya çıkmıştır. Eldeki bilgi ve kullanılan key değişmediği sürüce ki algoritma çözülürse (ki bu durumda key in pek kıymeti de kalmıyor :( ) encrypted olan değerimiz değişmeyecek! İşte konumuz bu duruma parmak basmakta...
Evet acaba herhangi bir şart bağlı olmaksızın sadece sayıların randomizasyonuna dayalı olarak plaintext imiz sabit olmak şartıyla çok büyük olasılıkla her seferinde nasıl farklı encrpyted text elde edinimi sağlayabiliriz? Hepiniz aklına gelen MAN IN THE MIDDLE ataklarının bu durumda nerdeyse tamamen etkisiz hale geldiğini anlamak güç değil.. Yani encrypted data yı dinleyen adversary algoritma konusunda herhangi bir fikri yok ise hiç dinlemese de zaten bir şey kaybetmiş olmuyor... Peki algoritmamız bize neden bahsediyor çok derinlemesine girmeden bir bakalım..
Öncelikle algoritma GOLDWASSER ve MICALI tarafından öne çıkartılan üzülerek söylemek lazım ki herhangi bir şekilde application a dökülememiş olan bir algoritma. (Bu noktada analiz olarak algoritma yavaşlılığı ve salt data nın büyümesi sebep gösterilebilinir.) Peki nasıl oluyor kriptonun random hale getirilmesi ancak yavaşlaması ve cryptolanan datanın büyümesi.
Öncelikli olarak algoritma bitsel noktada predicate saldırılarını göz önüne aldığımızda (yani dinlenen data üzerinde algoritmalar uygulanarak bitsel dönüşüme gidilmesi ve partial data elde edilmesi örneği verilebilir) decrypt edilen bit in doğruluk seviyesinin % 50 de tutulmasına yoğunlaşmıştır. ( Diğer algoritmalarda belirli tekniklerle tahmin oranı %50 nin üzerine çıkmaktadır.). Her bit için ,Matematiksel bir problem olan "The Quadratic Residuosity Problem" e temellendirerek, random gelen asal sayılara göre (bu noktada RSA algoritmasını incelemekte yarar var ) ilgili sayıları kullanarak problem üzerinde bir uygulama yapıp fonksiyon tanımlaması ile RSA da yapılan modula işlemlerine denk gelen değerler (0 veya 1) yerine yazılır. Bu noktada cryptolanan text büyümüş olur. Sonuçta karşımızda her bit için karşılığı boyut olarak belli olmayan abuk subuk bir bit dizini çıkarki bu da tam istediğimiz şeydir. Decrypt işlemi ise her bit için karşılık gelen bit dizinlerinin teker teker alınarak o sayıların daha önce belirlenen fonksiyonda hangi bit e karşılık geldiğinin yazılması ile olur.
Umarım faydalı olmuştur.
Kaynaklar : 1-) Goldwasser,Micali, (1983) - Probabilistic Encryption
2-) Fuchsbauer (2006) - An Introduction to Probabilistic Encryption
Bugün enterasan bir konu ile karşınızdayım..
Malumunuz bilginin elde edilmesi zor olduğu kadar mevcut bilginin korunması ve ilgili yere transfer edilmesi günümüzde önemli bir yer teşkil ediyor. Kriptografi, KriptoAnaliz gibi kavramlar bu noktada karşımıza çıkıyor. Kısaca bu ikisini ayırmakta yarar var. Kriptografi bilginin güvenliği ve dış etkenlerden izole edilmeye çalışılması , Analiz tarafı güvenliği sağlanmaya çalışılan bilginin elde edilmeye çalışılması, güvenlik bakımından güçlülüğü, bu noktada işlemsel hızlılığı ve verimlilik gibi alanlarda değerlendirilmesini kapsar diyebiliriz. Bu yazımızda ağırlıkta ilgili konunun Kriptografik bakımından değerlendirmesini yapacağız.
Gelelim konumuza.. Öncelikli olarak yazımızda kullanacağımız genel kriptoloji terimlerden biraz bahsedelim.
PlainText: Salt bilgi olarak düşünebilinir. Güvenliği sağlanması istenen bilgidir.
Encrypt: Bilginin dış etkenlerden korunması amacı ile öncelikle okunabilinirliğinin yok edilmeye çalışılması akabinde sadece hedef kişiye özel olarak yada eski mantıkla genel bir anhatar ile gönderilmesi.
Decrypt: Hedef kişi tarafından okunabilirliği yok edilen bilginin EKSİKSİZ elde edilmesi.
Public Key: Bilgi hedef kişiye gönderilmeden önce,yani bilginin okunabilirliği yok edilirken, matematiksel çeşitli işlemlerde kullanılması amacıyla üretilen bit düzeyinde data dır. Bu key asymteric encryptionlarda kullanılmaktadır.(Public <-> Private ) Yani datanın public key ile encrypt edilmesi private key ile decrypt operasyonudur.
Private Key: Encryption işlemi symetric veya asymetric olsun sadece bilginin kişiye özel olarak symmetric için (encrypt/decrypt),asymmetric için ise decrypt amacıyla üretien bit düzeyinde data dır.
Bu kısa bilgileri verdikten sonra asıl konumuza gelelim. Konumuzun mantığını açıklayabilmek için mevcut krypto mantığına biraz dokunmamız lazım. Günümüzdeki krypto sistemlerinde DES,AES gibi genel olarak sistemler 56 bit lik veya boyut olarak daha fazla olan data ların public key olarak crypto lanması ve private key ile bunların çözümlenmesi mantığı ile çalışmaktadır. (Ekstra önlemlerde mevzu bahisdir. (Bunlara örnek olarak DES algoritmasının triple olarak çalıştırılması ve dijital sertifikaları verebiliriz.) Ancak analiz tarafının gelişmesi ile yani çeşitli ataklar (özelikle predicate atakları) bilginin tamamıyla veya çoğunlukla partial olarak ele geçirilmesi durumu oluşmuştur. (Burada kullanıcı bazlı hataları göz ardı etmeyelim.) Ve şu gerçek ortaya çıkmıştır. Eldeki bilgi ve kullanılan key değişmediği sürüce ki algoritma çözülürse (ki bu durumda key in pek kıymeti de kalmıyor :( ) encrypted olan değerimiz değişmeyecek! İşte konumuz bu duruma parmak basmakta...
Evet acaba herhangi bir şart bağlı olmaksızın sadece sayıların randomizasyonuna dayalı olarak plaintext imiz sabit olmak şartıyla çok büyük olasılıkla her seferinde nasıl farklı encrpyted text elde edinimi sağlayabiliriz? Hepiniz aklına gelen MAN IN THE MIDDLE ataklarının bu durumda nerdeyse tamamen etkisiz hale geldiğini anlamak güç değil.. Yani encrypted data yı dinleyen adversary algoritma konusunda herhangi bir fikri yok ise hiç dinlemese de zaten bir şey kaybetmiş olmuyor... Peki algoritmamız bize neden bahsediyor çok derinlemesine girmeden bir bakalım..
Öncelikle algoritma GOLDWASSER ve MICALI tarafından öne çıkartılan üzülerek söylemek lazım ki herhangi bir şekilde application a dökülememiş olan bir algoritma. (Bu noktada analiz olarak algoritma yavaşlılığı ve salt data nın büyümesi sebep gösterilebilinir.) Peki nasıl oluyor kriptonun random hale getirilmesi ancak yavaşlaması ve cryptolanan datanın büyümesi.
Öncelikli olarak algoritma bitsel noktada predicate saldırılarını göz önüne aldığımızda (yani dinlenen data üzerinde algoritmalar uygulanarak bitsel dönüşüme gidilmesi ve partial data elde edilmesi örneği verilebilir) decrypt edilen bit in doğruluk seviyesinin % 50 de tutulmasına yoğunlaşmıştır. ( Diğer algoritmalarda belirli tekniklerle tahmin oranı %50 nin üzerine çıkmaktadır.). Her bit için ,Matematiksel bir problem olan "The Quadratic Residuosity Problem" e temellendirerek, random gelen asal sayılara göre (bu noktada RSA algoritmasını incelemekte yarar var ) ilgili sayıları kullanarak problem üzerinde bir uygulama yapıp fonksiyon tanımlaması ile RSA da yapılan modula işlemlerine denk gelen değerler (0 veya 1) yerine yazılır. Bu noktada cryptolanan text büyümüş olur. Sonuçta karşımızda her bit için karşılığı boyut olarak belli olmayan abuk subuk bir bit dizini çıkarki bu da tam istediğimiz şeydir. Decrypt işlemi ise her bit için karşılık gelen bit dizinlerinin teker teker alınarak o sayıların daha önce belirlenen fonksiyonda hangi bit e karşılık geldiğinin yazılması ile olur.
Umarım faydalı olmuştur.
Kaynaklar : 1-) Goldwasser,Micali, (1983) - Probabilistic Encryption
2-) Fuchsbauer (2006) - An Introduction to Probabilistic Encryption
Yorumlar
Yorum Gönder