Rabin şifreleme sistemi - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 Tarihçe
  • 2 Şifreleme algoritması
    • 2.1 Anahtar üretimi
    • 2.2 Şifreleme
    • 2.3 Şifre çözme
      • 2.3.1 Karekökleri hesaplama
    • 2.4 Örnek
  • 3 Dijital İmza Algoritması
    • 3.1 İmzalama
    • 3.2 İmzanın doğrulanması
  • 4 Algoritmanın değerlendirilmesi
    • 4.1 Etkinlik
    • 4.2 Verimlilik
    • 4.3 Güvenlik
  • 5 Notlar
  • 6 Ayrıca bakınız
  • 7 Kaynakça
  • 8 Dış bağlantılar

Rabin şifreleme sistemi

  • Deutsch
  • English
  • Español
  • Français
  • עברית
  • İtaliano
  • 日本語
  • 한국어
  • Lietuvių
  • Polski
  • Português
  • Русский
  • Українська
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi
(Rabin Şifreleme sayfasından yönlendirildi)

Rabin şifreleme sistemi, Rabin kriptoloji veya Rabin kriptosistemi, güvenliği RSA'daki gibi tam sayı çarpanlarına ayırmanın zorluğu üzerine kurgulanmış olan asimetrik bir kriptografik tekniktir. Bununla birlikte, Rabin kriptosisteminin avantajı, saldırgan tam sayıları verimli bir şekilde çarpanlarına ayıramadığı sürece, seçilmiş bir düz metin saldırısına karşı hesaplama açısından güvenli olduğu matematiksel olarak kanıtlanmıştır, oysa RSA için bilinen böyle bir kanıt yoktur.[1]:145 Rabin fonksiyonunun her çıktısının dört olası girdiden herhangi biri tarafından üretilebilmesi dezavantajı; her çıktı bir şifreli metinse, olası dört girdiden hangisinin gerçek düz metin olduğunu belirlemek için şifre çözmede ekstra karmaşıklık gerekir.

Tarihçe

[değiştir | kaynağı değiştir]

Algoritma Ocak 1979'da Michael O. Rabin tarafından yayınlandı.[2] Rabin şifreleme sistemi, şifreli metinden düz metni kurtarmanın çarpanlara ayırma kadar zor olduğu kanıtlanabilen ilk asimetrik şifreleme sistemiydi.

Şifreleme algoritması

[değiştir | kaynağı değiştir]

Tüm asimetrik şifreleme sistemleri gibi, Rabin şifreleme sistemi de bir anahtar çifti kullanır: şifreleme için genel anahtar ve şifre çözme için özel anahtar. Genel anahtar, herkesin kullanması için yayınlanırken, özel anahtar yalnızca mesajın alıcısı tarafından bilinir.

Anahtar üretimi

[değiştir | kaynağı değiştir]

Rabin şifreleme sisteminin anahtarları şu şekilde oluşturulur:

  1. İki tane çok büyük ve farklı p {\displaystyle p} {\displaystyle p}, q {\displaystyle q} {\displaystyle q} asal sayıları seçilir. Kare kökün hesaplanmasını basitleştirmek için bir tanesini p ≡ q ≡ 3 ( mod 4 ) {\displaystyle p\equiv q\equiv 3{\pmod {4}}} {\displaystyle p\equiv q\equiv 3{\pmod {4}}} yöntemi ile seçebiliriz. Fakat yöntem herhangi daha büyük asal sayılarla çalışır.
  2. n = p ⋅ q {\displaystyle n=p\cdot q} {\displaystyle n=p\cdot q} hesaplanır. Burada n {\displaystyle n} {\displaystyle n} açık anahtar, asal sayılardan oluşan ( p , q ) {\displaystyle (p,q)} {\displaystyle (p,q)} ise özel anahtardır.

Şifreleme

[değiştir | kaynağı değiştir]

Bir M {\displaystyle M} {\displaystyle M} mesajı, önce tersine çevrilebilir bir eşleme kullanılarak m < n {\displaystyle m<n} {\displaystyle m<n} sayısına dönüştürülerek ve ardından c = m 2 ( mod n ) {\displaystyle c=m^{2}{\pmod {n}}} {\displaystyle c=m^{2}{\pmod {n}}} hesaplanarak şifrelenebilir. Şifreli metin, c {\displaystyle c} {\displaystyle c}'dir.

Şifre çözme

[değiştir | kaynağı değiştir]

m {\displaystyle m} {\displaystyle m} mesajı, şifreli c {\displaystyle c} {\displaystyle c} metninden karekök modül n {\displaystyle n} {\displaystyle n}'si aşağıdaki gibi alınarak elde edilebilir.

  1. Aşağıdaki formülleri kullanarak c {\displaystyle c} {\displaystyle c} modül p {\displaystyle p} {\displaystyle p} ve q {\displaystyle q} {\displaystyle q}'nun karekökünü hesaplayın;
    m p = c 1 4 ( p + 1 ) ( mod p ) m q = c 1 4 ( q + 1 ) ( mod q ) {\displaystyle {\begin{aligned}m_{p}&=c^{{\frac {1}{4}}(p+1)}{\pmod {p}}\\m_{q}&=c^{{\frac {1}{4}}(q+1)}{\pmod {q}}\end{aligned}}} {\displaystyle {\begin{aligned}m_{p}&=c^{{\frac {1}{4}}(p+1)}{\pmod {p}}\\m_{q}&=c^{{\frac {1}{4}}(q+1)}{\pmod {q}}\end{aligned}}}
  2. y p ⋅ p + y q ⋅ q = 1 {\displaystyle y_{p}\cdot p+y_{q}\cdot q=1} {\displaystyle y_{p}\cdot p+y_{q}\cdot q=1} olacak şekilde y p {\displaystyle y_{p}} {\displaystyle y_{p}} ve y q {\displaystyle y_{q}} {\displaystyle y_{q}}'i bulmak için Genişletilmiş Öklid algoritması kullanın.
  3. c {\displaystyle c} {\displaystyle c} modül n {\displaystyle n} {\displaystyle n}'nin dört karekökünü bulmak için Çin kalan teoremi'ni kullanın:
    r 1 = ( y p ⋅ p ⋅ m q + y q ⋅ q ⋅ m p ) ( mod n ) r 2 = n − r 1 r 3 = ( y p ⋅ p ⋅ m q − y q ⋅ q ⋅ m p ) ( mod n ) r 4 = n − r 3 {\displaystyle {\begin{aligned}r_{1}&=\left(y_{p}\cdot p\cdot m_{q}+y_{q}\cdot q\cdot m_{p}\right){\pmod {n}}\\r_{2}&=n-r_{1}\\r_{3}&=\left(y_{p}\cdot p\cdot m_{q}-y_{q}\cdot q\cdot m_{p}\right){\pmod {n}}\\r_{4}&=n-r_{3}\end{aligned}}} {\displaystyle {\begin{aligned}r_{1}&=\left(y_{p}\cdot p\cdot m_{q}+y_{q}\cdot q\cdot m_{p}\right){\pmod {n}}\\r_{2}&=n-r_{1}\\r_{3}&=\left(y_{p}\cdot p\cdot m_{q}-y_{q}\cdot q\cdot m_{p}\right){\pmod {n}}\\r_{4}&=n-r_{3}\end{aligned}}}

Bu dört değerden biri orijinal düz metin m {\displaystyle m} {\displaystyle m}'dir, ancak dördünden hangisinin doğru olduğu ek bilgi olmadan belirlenemez.

Kesin anahtar üretimi süreci aşağıdaki gibidir:

Karekökleri hesaplama

[değiştir | kaynağı değiştir]

Yukarıdaki 1. adımdaki formüllerin aslında c {\displaystyle c} {\displaystyle c}'in kareköklerini aşağıdaki gibi ürettiğini gösterebiliriz. İlk formül için, m p 2 ≡ c ( mod p ) {\displaystyle m_{p}^{2}\equiv c{\pmod {p}}} {\displaystyle m_{p}^{2}\equiv c{\pmod {p}}} olduğunu kanıtlamak istiyoruz. p ≡ 3 ( mod 4 ) {\displaystyle p\equiv 3{\pmod {4}}} {\displaystyle p\equiv 3{\pmod {4}}} olduğundan, 1 4 ( p + 1 ) {\textstyle {\frac {1}{4}}(p+1)} {\textstyle {\frac {1}{4}}(p+1)} üssü bir tam sayıdır. c ≡ 0 ( mod p ) {\displaystyle c\equiv 0{\pmod {p}}} {\displaystyle c\equiv 0{\pmod {p}}} ise ispat önemsizdir, bu nedenle p {\displaystyle p} {\displaystyle p}'nin c {\displaystyle c} {\displaystyle c}'yi bölmediğini varsayabiliriz. c ≡ m 2 ( mod p q ) {\displaystyle c\equiv m^{2}{\pmod {pq}}} {\displaystyle c\equiv m^{2}{\pmod {pq}}} ögesinin c ≡ m 2 ( mod p ) {\displaystyle c\equiv m^{2}{\pmod {p}}} {\displaystyle c\equiv m^{2}{\pmod {p}}} anlamına geldiğini unutmayın, dolayısıyla c {\displaystyle c} {\displaystyle c} modül p {\displaystyle p} {\displaystyle p}'ye göre bir kuadratik kalıntıdır (rezidü). Buradan;

m p 2 ≡ c 1 2 ( p + 1 ) ≡ c ⋅ c 1 2 ( p − 1 ) ≡ c ⋅ 1 ( mod p ) {\displaystyle m_{p}^{2}\equiv c^{{\frac {1}{2}}(p+1)}\equiv c\cdot c^{{\frac {1}{2}}(p-1)}\equiv c\cdot 1{\pmod {p}}} {\displaystyle m_{p}^{2}\equiv c^{{\frac {1}{2}}(p+1)}\equiv c\cdot c^{{\frac {1}{2}}(p-1)}\equiv c\cdot 1{\pmod {p}}}

yazılabilir. Son adım Euler ölçütü tarafından doğrulanır.

Deşifreleme şifreli metninin kare köklerini hesaplamak için c {\displaystyle c} {\displaystyle c} mod asal sayı p {\displaystyle p} {\displaystyle p} ve q {\displaystyle q} {\displaystyle q}'yu gerektirir.

m p = c ( p + 1 ) 4 ( mod p ) {\displaystyle m_{p}=c^{\frac {(p+1)}{4}}\,{\pmod {p}}} {\displaystyle m_{p}=c^{\frac {(p+1)}{4}}\,{\pmod {p}}} ve
m q = c ( q + 1 ) 4 ( mod q ) {\displaystyle m_{q}=c^{\frac {(q+1)}{4}}\,{\pmod {q}}} {\displaystyle m_{q}=c^{\frac {(q+1)}{4}}\,{\pmod {q}}} olur.

Biz bu metodun p {\displaystyle p} {\displaystyle p} için çalışmasını aşağıdaki gibi gösterebiliriz. İlk ( p + 1 ) 4 {\displaystyle {\frac {(p+1)}{4}}} {\displaystyle {\frac {(p+1)}{4}}}'ün, p ≡ 3 ( mod 4 ) {\displaystyle p\equiv 3\!\!\!{\pmod {4}}} {\displaystyle p\equiv 3\!\!\!{\pmod {4}}} bir tam sayı olduğunu gösterir. c ≡ 0 ( mod p ) {\displaystyle c\equiv 0{\pmod {p}}} {\displaystyle c\equiv 0{\pmod {p}}} için varsayım basittir. Bu yüzden biz p {\displaystyle p} {\displaystyle p}'nin c {\displaystyle c} {\displaystyle c}'ye bölünmediğini varsayabiliriz. O zaman:

m p 2 ≡ c ( p + 1 ) 2 ≡ c ⋅ c ( p − 1 ) 2 ≡ c ⋅ ( c p ) ( mod p ) , {\displaystyle m_{p}^{2}\equiv c^{\frac {(p+1)}{2}}\equiv c\cdot c^{\frac {(p-1)}{2}}\equiv c\cdot \left({c \over p}\right){\pmod {p}},} {\displaystyle m_{p}^{2}\equiv c^{\frac {(p+1)}{2}}\equiv c\cdot c^{\frac {(p-1)}{2}}\equiv c\cdot \left({c \over p}\right){\pmod {p}},}
( c p ) {\displaystyle \left({c \over p}\right)} {\displaystyle \left({c \over p}\right)} Legendre sembolüdür.
c ≡ m 2 ( mod p q ) {\displaystyle c\equiv m^{2}{\pmod {pq}}} {\displaystyle c\equiv m^{2}{\pmod {pq}}}'dan aşağıdaki gibi
c ≡ m 2 ( mod p ) {\displaystyle c\equiv m^{2}{\pmod {p}}} {\displaystyle c\equiv m^{2}{\pmod {p}}} olarak hesaplanır.

Bu yüzden x {\displaystyle x} {\displaystyle x}, modül p {\displaystyle p} {\displaystyle p}'nin kuadratik kalanıdır. Buradan;

( c p ) = 1 {\displaystyle \left({c \over p}\right)=1} {\displaystyle \left({c \over p}\right)=1} ve
m p 2 ≡ c ( mod p ) {\displaystyle m_{p}^{2}\equiv c{\pmod {p}}} {\displaystyle m_{p}^{2}\equiv c{\pmod {p}}} elde edilir.
p ≡ 3 ( mod 4 ) {\displaystyle p\equiv 3{\pmod {4}}} {\displaystyle p\equiv 3{\pmod {4}}} ilişkisi bir gereksinim değildir. Çünkü kare kökler in diğer asal sayılarla modülü de hesaplanabilir.

Rabin kare köklerin asal sayılarla modlarını bulmak için Berlekamp algoritmasının özel bir durumunu kullanmayı önerir.

Örnek

[değiştir | kaynağı değiştir]

Örnek olarak, p = 7 {\displaystyle p=7} {\displaystyle p=7} ve q = 11 {\displaystyle q=11} {\displaystyle q=11} olarak alalım, ardından n = 77 {\displaystyle n=77} {\displaystyle n=77} olur (Elbette burada anahtarların seçimi kötüdür. 77'nin çarpanlarına ayrılması basittir gerçek örneklerde çok çok daha büyük sayılar kullanılır). Düz metnimiz olarak m = 20 {\displaystyle m=20} {\displaystyle m=20} alalım. Şifreli metin bu şekilde

c = m 2 ( mod n ) = 400 ( mod 77 ) = 15 {\displaystyle c=m^{2}{\pmod {n}}=400{\pmod {77}}=15} {\displaystyle c=m^{2}{\pmod {n}}=400{\pmod {77}}=15} olarak elde edilir.

Bizim basit örneğimizde P = { 0 , … , 76 } {\displaystyle P=\{0,\dots ,76\}} {\displaystyle P=\{0,\dots ,76\}} bizim düz metin uzayımızdır. Biz m = 20 {\displaystyle m=20} {\displaystyle m=20}'yi bizim düz metnimiz olarak alacağız. Bu yüzden şifreli metin, c = m 2 ( mod n ) = 400 ( mod 77 ) = 15 {\displaystyle c=m^{2}\,{\pmod {n}}=400\,{\pmod {77}}=15} {\displaystyle c=m^{2}\,{\pmod {n}}=400\,{\pmod {77}}=15}'dir. Açıkça m {\displaystyle m} {\displaystyle m}'nin 4 farklı değeri m ∈ { 13 , 20 , 57 , 64 } {\displaystyle m\in \{13,20,57,64\}} {\displaystyle m\in \{13,20,57,64\}} için, şifreli metin 15 üretilir. Bu Rabin algoritması tarafından üretilen çoğu şifreli metinler için geçerlidir.

Şifre çözme işlemi şu şekilde ilerler:

  1. m p = c 1 4 ( p + 1 ) ( mod p ) = 15 2 ( mod 7 ) = 1 {\displaystyle m_{p}=c^{{\frac {1}{4}}(p+1)}{\pmod {p}}=15^{2}{\pmod {7}}=1} {\displaystyle m_{p}=c^{{\frac {1}{4}}(p+1)}{\pmod {p}}=15^{2}{\pmod {7}}=1} ve m q = c 1 4 ( q + 1 ) ( mod q ) = 15 3 ( mod 11 ) = 9 {\displaystyle m_{q}=c^{{\frac {1}{4}}(q+1)}{\pmod {q}}=15^{3}{\pmod {11}}=9} {\displaystyle m_{q}=c^{{\frac {1}{4}}(q+1)}{\pmod {q}}=15^{3}{\pmod {11}}=9} hesaplanır.
  2. y p = − 3 {\displaystyle y_{p}=-3} {\displaystyle y_{p}=-3} ve y q = 2 {\displaystyle y_{q}=2} {\displaystyle y_{q}=2}'yi hesaplamak için genişletilmiş Öklid algoritması kullanılır. y p ⋅ p + y q ⋅ q = ( − 3 ⋅ 7 ) + ( 2 ⋅ 11 ) = 1 {\displaystyle y_{p}\cdot p+y_{q}\cdot q=(-3\cdot 7)+(2\cdot 11)=1} {\displaystyle y_{p}\cdot p+y_{q}\cdot q=(-3\cdot 7)+(2\cdot 11)=1} olduğunu doğrulayabiliriz.
  3. Dört düz metin adayını hesaplayın:
    r 1 = ( − 3 ⋅ 7 ⋅ 9 + 2 ⋅ 11 ⋅ 1 ) ( mod 77 ) = 64 r 2 = 77 − 64 = 13 r 3 = ( − 3 ⋅ 7 ⋅ 9 − 2 ⋅ 11 ⋅ 1 ) ( mod 77 ) = 20 r 4 = 77 − 20 = 57 {\displaystyle {\begin{aligned}r_{1}&=(-3\cdot 7\cdot 9+2\cdot 11\cdot 1){\pmod {77}}=64\\r_{2}&=77-64=13\\r_{3}&=(-3\cdot 7\cdot 9-2\cdot 11\cdot 1){\pmod {77}}=\mathbf {20} \\r_{4}&=77-20=57\end{aligned}}} {\displaystyle {\begin{aligned}r_{1}&=(-3\cdot 7\cdot 9+2\cdot 11\cdot 1){\pmod {77}}=64\\r_{2}&=77-64=13\\r_{3}&=(-3\cdot 7\cdot 9-2\cdot 11\cdot 1){\pmod {77}}=\mathbf {20} \\r_{4}&=77-20=57\end{aligned}}}

ve r 3 {\displaystyle r_{3}} {\displaystyle r_{3}}'in istenen düz metin olduğunu görüyoruz. Dört adayın hepsinin 15 mod 77'nin karekökleri olduğuna dikkat edin. Yani, her aday için r i 2 ( mod 77 ) = 15 {\displaystyle r_{i}^{2}{\pmod {77}}=15} {\displaystyle r_{i}^{2}{\pmod {77}}=15}, böylece her r i {\displaystyle r_{i}} {\displaystyle r_{i}} aynı değere (15) şifreler.

Eğer c {\displaystyle c} {\displaystyle c} ve r {\displaystyle r} {\displaystyle r} bilinirse düz metin m 2 ≡ c ( mod r ) {\displaystyle m^{2}\equiv c{\pmod {r}}} {\displaystyle m^{2}\equiv c{\pmod {r}}} ile m ∈ { 0 , … , n − 1 } {\displaystyle m\in \{0,\dots ,n-1\}} {\displaystyle m\in \{0,\dots ,n-1\}} olacaktır. r {\displaystyle r} {\displaystyle r} bir kompozit sayıdır kompozit sayı asal olmayan herhangi bir pozitif sayıdan daha büyük pozitif sayı demektir. Eğer N > 0 {\displaystyle N>0} {\displaystyle N>0} bir tam sayı ise ve N = a × b {\displaystyle N=a\times b} {\displaystyle N=a\times b} gibi 1 < a , b < N {\displaystyle 1<a,b<N} {\displaystyle 1<a,b<N} sayısı var ise o zaman N {\displaystyle N} {\displaystyle N} kompozit sayı demektir (yani Rabin algoritmasının n = p ⋅ q {\displaystyle n=p\cdot q} {\displaystyle n=p\cdot q} formülüne benzer). m {\displaystyle m} {\displaystyle m}'yi bulmak için bilinen daha etkili bir metot yoktur. Eğer asal ise (Rabin algoritmasındaki p {\displaystyle p} {\displaystyle p} ve q {\displaystyle q} {\displaystyle q} gibi) Çin kalan teoremi m {\displaystyle m} {\displaystyle m}'nin çözümü için başvurulabilecek bir metottur. Bu yüzden kare kökler;

m p = c ( mod p ) {\displaystyle m_{p}={\sqrt {c}}\,{\pmod {p}}} {\displaystyle m_{p}={\sqrt {c}}\,{\pmod {p}}} ve
m q = c ( mod q ) {\displaystyle m_{q}={\sqrt {c}}\,{\pmod {q}}} {\displaystyle m_{q}={\sqrt {c}}\,{\pmod {q}}} hesaplanmış olmalıdır.

Bizim örneğimizde m p = 1 {\displaystyle m_{p}=1} {\displaystyle m_{p}=1} ve m q = 9 {\displaystyle m_{q}=9} {\displaystyle m_{q}=9} alalım, Genişletilmiş Öklid Algoritması uygulanarak biz y p {\displaystyle y_{p}} {\displaystyle y_{p}} ve y q {\displaystyle y_{q}} {\displaystyle y_{q}}'yu bulmak isteyelim. y p ⋅ p + y q ⋅ q = 1 {\displaystyle y_{p}\cdot p+y_{q}\cdot q=1} {\displaystyle y_{p}\cdot p+y_{q}\cdot q=1} ile bulunur. Bizim örneğimizde y p = − 3 {\displaystyle y_{p}=-3} {\displaystyle y_{p}=-3} ve y q = 2 {\displaystyle y_{q}=2} {\displaystyle y_{q}=2} bulunur.

Şimdi, Çin kalan teoremi yardımıyla, c + n Z ∈ Z / n Z {\displaystyle c+n\mathbb {Z} \in \mathbb {Z} /n\mathbb {Z} } {\displaystyle c+n\mathbb {Z} \in \mathbb {Z} /n\mathbb {Z} }'nin dört karekökü + r {\displaystyle +r} {\displaystyle +r}, − r {\displaystyle -r} {\displaystyle -r}, + s {\displaystyle +s} {\displaystyle +s} ve − s {\displaystyle -s} {\displaystyle -s} şeklinde hesaplanır (burada Z / n Z {\displaystyle \mathbb {Z} /n\mathbb {Z} } {\displaystyle \mathbb {Z} /n\mathbb {Z} }, mod n {\displaystyle {\bmod {n}}} {\displaystyle {\bmod {n}}} uyum sınıfları halkası [ring of congruence classes] anlamına gelir.) 4 kare kök { 0 , … , n − 1 } {\displaystyle \{0,\dots ,n-1\}} {\displaystyle \{0,\dots ,n-1\}} kümesi içindedir:

r = ( y p ⋅ p ⋅ m q + y q ⋅ q ⋅ m p ) ( mod n ) − r = n − r s = ( y p ⋅ p ⋅ m q − y q ⋅ q ⋅ m p ) ( mod n ) − s = n − s {\displaystyle {\begin{matrix}r&=&(y_{p}\cdot p\cdot m_{q}+y_{q}\cdot q\cdot m_{p})\,{\pmod {n}}\\-r&=&n-r\\s&=&(y_{p}\cdot p\cdot m_{q}-y_{q}\cdot q\cdot m_{p})\,{\pmod {n}}\\-s&=&n-s\end{matrix}}} {\displaystyle {\begin{matrix}r&=&(y_{p}\cdot p\cdot m_{q}+y_{q}\cdot q\cdot m_{p})\,{\pmod {n}}\\-r&=&n-r\\s&=&(y_{p}\cdot p\cdot m_{q}-y_{q}\cdot q\cdot m_{p})\,{\pmod {n}}\\-s&=&n-s\end{matrix}}}'dir.

Bu kare köklerin bir tanesi mod n {\displaystyle {\bmod {n}}} {\displaystyle {\bmod {n}}} orijinal düz metin m {\displaystyle m} {\displaystyle m}'dir. Bizim örneğimizde m ∈ { 64 , 20 , 13 , 57 } {\displaystyle m\in \{64,\mathbf {20} ,13,57\}} {\displaystyle m\in \{64,\mathbf {20} ,13,57\}}'dir.

Rabin kendi makalesinde eğer bir kişi hem r {\displaystyle r} {\displaystyle r} hem de s {\displaystyle s} {\displaystyle s}'yi hesaplayabilirse o zaman n {\displaystyle n} {\displaystyle n}'nin çarpanlarını da hesaplayabileceğini bize şöyle gösteriyor;

ya gcd ( | r − s | , n ) = p {\displaystyle \gcd(|r-s|,n)=p} {\displaystyle \gcd(|r-s|,n)=p} ya gcd ( | r − s | , n ) = q {\displaystyle \gcd(|r-s|,n)=q} {\displaystyle \gcd(|r-s|,n)=q}, burada gcd {\displaystyle \gcd } {\displaystyle \gcd } (Greatest Common Divisor) yani en büyük ortak bölen (EBOB) anlamına gelir.

Çünkü eğer bir kişi r {\displaystyle r} {\displaystyle r} ve s {\displaystyle s} {\displaystyle s}'yi biliyorsa, en büyük ortak bölen n {\displaystyle n} {\displaystyle n}'nin çarpanlarını bulmak için etkili bir hesaplama yöntemidir bizim örneğimizde ( 57 {\displaystyle 57} {\displaystyle 57} ve 13 {\displaystyle 13} {\displaystyle 13}'ü r {\displaystyle r} {\displaystyle r} ve s {\displaystyle s} {\displaystyle s} olarak alalım):

gcd ( 57 − 13 , 77 ) = gcd ( 44 , 77 ) = 11 = q {\displaystyle \gcd(57-13,77)=\gcd(44,77)=11=q} {\displaystyle \gcd(57-13,77)=\gcd(44,77)=11=q} bulunur.

Dijital İmza Algoritması

[değiştir | kaynağı değiştir]

Rabin şifreleme sistemi, dijital imza'lar oluşturmak ve doğrulamak için kullanılabilir. İmza oluşturmak için ( p , q ) {\displaystyle (p,q)} {\displaystyle (p,q)} özel anahtarı gerekir. Bir imzanın doğrulanması için n {\displaystyle n} {\displaystyle n} ortak anahtarı gerekir.

İmzalama

[değiştir | kaynağı değiştir]

Bir m < n {\displaystyle m<n} {\displaystyle m<n} mesajı, bir özel anahtar ( p , q ) {\displaystyle (p,q)} {\displaystyle (p,q)} ile aşağıdaki gibi imzalanabilir.

  1. Rastgele bir u {\displaystyle u} {\displaystyle u} değeri oluşturun.
  2. c = H ( m | u ) {\displaystyle c=H(m|u)} {\displaystyle c=H(m|u)}'i hesaplamak için bir H {\displaystyle H} {\displaystyle H} kriptografik özet fonksiyonunu kullanın, buradaki | notasyonu birleştirmeyi (İngilizce: concatenation) gösterir. c {\displaystyle c} {\displaystyle c}, n {\displaystyle n} {\displaystyle n} değerinden küçük bir tam sayı olmalıdır.
  3. c {\displaystyle c} {\displaystyle c}'yi Rabin tarafından şifrelenmiş bir değer olarak ele alın ve özel anahtarı ( p , q ) {\displaystyle (p,q)} {\displaystyle (p,q)} kullanarak şifresini çözmeye çalışın. Bu, olağan şekilde dört r 1 , r 2 , r 3 , r 4 {\displaystyle r_{1},r_{2},r_{3},r_{4}} {\displaystyle r_{1},r_{2},r_{3},r_{4}} sonucunu üretecektir.
  4. Her bir r i {\displaystyle r_{i}} {\displaystyle r_{i}} şifrelemenin c {\displaystyle c} {\displaystyle c} üreteceği beklenebilir. Ancak, bu yalnızca c {\displaystyle c} {\displaystyle c} bir kuadratik kalıntı mod p {\displaystyle p} {\displaystyle p} ve q {\displaystyle q} {\displaystyle q} olursa doğru olacaktır. Durumun böyle olup olmadığını belirlemek için, ilk şifre çözme sonucunu r 1 {\displaystyle r_{1}} {\displaystyle r_{1}} şifreleyin. c {\displaystyle c} {\displaystyle c} olarak şifrelemezse, bu algoritmayı yeni bir rastgele u {\displaystyle u} {\displaystyle u} ile tekrarlayın. Uygun bir c {\displaystyle c} {\displaystyle c} bulmadan önce bu algoritmanın tekrarlanması gereken beklenen tekrar sayısı 4'tür.
  5. c {\displaystyle c} {\displaystyle c} olarak şifreleyen bir r 1 {\displaystyle r_{1}} {\displaystyle r_{1}} bulduktan sonra, imza ( r 1 , u ) {\displaystyle (r_{1},u)} {\displaystyle (r_{1},u)} olur.

İmzanın doğrulanması

[değiştir | kaynağı değiştir]

m {\displaystyle m} {\displaystyle m} mesajı için bir ( r , u ) {\displaystyle (r,u)} {\displaystyle (r,u)} imzası, n {\displaystyle n} {\displaystyle n} genel anahtarı kullanılarak aşağıdaki gibi doğrulanabilir.

  1. c = H ( m | u ) {\displaystyle c=H(m|u)} {\displaystyle c=H(m|u)}'yi hesapla.
  2. r {\displaystyle r} {\displaystyle r}'yi n {\displaystyle n} {\displaystyle n} ortak/açık anahtarını kullanarak şifrele.
  3. İmza, ancak ve ancak r {\displaystyle r} {\displaystyle r} şifrelemesinin c {\displaystyle c} {\displaystyle c}'ye eşit olması durumunda geçerlidir.

Algoritmanın değerlendirilmesi

[değiştir | kaynağı değiştir]

Etkinlik

[değiştir | kaynağı değiştir]

Şifre çözme, doğru sonuca ek olarak üç yanlış sonuç üretir, böylece doğru sonucun tahmin edilmesi gerekir. Bu, Rabin şifreleme sisteminin en büyük dezavantajıdır ve yaygın pratik kullanım bulmasını engelleyen faktörlerden biridir.

Düz metnin bir metin mesajını temsil etmesi amaçlanıyorsa, tahmin etmek zor değildir; bununla birlikte, eğer düz metin sayısal bir değeri temsil etmeyi amaçlıyorsa, bu konu, bir tür belirsizliği giderme şemasıyla çözülmesi gereken bir problem haline gelir. Bu problemi ortadan kaldırmak için özel yapılara sahip düz metinler seçmek veya dolgu eklemek mümkündür. Tersine çevirmenin belirsizliğini ortadan kaldırmanın bir yolu Blum ve Williams tarafından önerilmiştir: kullanılan iki asal sayı, 3 modül 4 ile uyumlu asal sayılarla sınırlandırılmıştır ve kare alma alanı, ikinci dereceden kalıntılar kümesiyle sınırlandırılmıştır. Bu kısıtlamalar, kare alma fonksiyonunu bir tuzak kapı permütasyonuna dönüştürerek belirsizliği ortadan kaldırır.[3]

Verimlilik

[değiştir | kaynağı değiştir]

Şifreleme için bir kare modül n hesaplanmalıdır. Bu, en az bir küpün hesaplanmasını gerektiren RSA'dan daha verimlidir.

Şifre çözme için, iki modüler üsle birlikte Çin kalan teoremi uygulanır. Burada verimlilik RSA ile karşılaştırılabilir.

Belirsizliği giderme, ek hesaplama maliyetleri getirir ve Rabin şifreleme sisteminin yaygın pratik kullanım bulmasını engelleyen şeydir.[kaynak belirtilmeli]

Güvenlik

[değiştir | kaynağı değiştir]

Rabin ile şifrelenmiş bir değerin şifresini çözen herhangi bir algoritmanın n {\displaystyle n} {\displaystyle n} modülünü çarpanlara ayırmak için kullanılabileceği kanıtlanmıştır. Bu nedenle, Rabin şifre çözme en az tam sayı çarpanlarına ayırma problemi kadar zordur, bu RSA için kanıtlanmamış bir şeydir. Genellikle çarpanlara ayırma için polinom-zaman algoritması olmadığına inanılır, bu da özel anahtar ( p , q ) {\displaystyle (p,q)} {\displaystyle (p,q)} olmadan Rabin ile şifrelenmiş bir değerin şifresini çözmek için verimli bir algoritma olmadığı anlamına gelir.

Rabin şifreleme sistemi, şifreleme süreci deterministik olduğu için seçilen düz metin saldırılarına karşı ayırt edilemezlik sağlamaz. Bir şifreli metin ve bir aday mesaj verilen bir rakip, şifreli metnin aday mesajı kodlayıp kodlamadığını kolayca belirleyebilir (sadece aday mesajı şifrelemenin verilen şifreli metni verip vermediğini kontrol ederek).

Rabin şifreleme sistemi, seçilen bir şifreli metin saldırısına karşı güvensizdir (sorgulama mesajları, mesaj uzayından homojen bir biçimde rastgele seçilse bile).[1]:150 Fazlalıklar, örneğin son 64 bitin tekrarı eklenerek, sistem tek bir kök üretmek için yapılmıştır. Bu, seçilen şifreli metin saldırısını engeller, çünkü şifre çözme algoritması yalnızca saldırganın zaten bildiği kökü üretir. Eğer bu teknik uygulanırsa, çarpanlara ayırma problemi ile denkliğin ispatı başarısız olur, bu yüzden bu varyantın güvenli olup olmadığı 2004 itibarıyla belirsizdir. Menezes, Oorschot ve Vanstone tarafından hazırlanan Handbook of Applied Cryptography,[4] köklerin bulunması iki parçalı bir süreç olduğu sürece (1. mod p {\displaystyle {\bmod {p}}} {\displaystyle {\bmod {p}}} ve mod q {\displaystyle {\bmod {q}}} {\displaystyle {\bmod {q}}} kökleri ve 2. Çin kalan teoreminin uygulaması) bu eşdeğerliğin muhtemel olduğunu düşünmektedir.

Notlar

[değiştir | kaynağı değiştir]
  1. ^ a b Stinson, Douglas (1995). Cryptography: Theory and Practice. CRC Press LLC. 
  2. ^ Rabin, Michael (Ocak 1979). "Digitalized Signatures and Public-Key Functions as Intractable as Factorization" (PDF). MIT Laboratory for Computer Science. 12 Temmuz 2010 tarihinde kaynağından (PDF) arşivlendi. 
  3. ^ Shafi Goldwasser and Mihir Bellare "Lecture Notes on Cryptography" 21 Nisan 2012 tarihinde Wayback Machine sitesinde arşivlendi.. Summer course on cryptography, MIT, 1996-2001
  4. ^ Alfred J. Menezes; Paul C. van Oorschot; Scott A. Vanstone (Ağustos 2001) [1996], Handbook of Applied Cryptography (5 bas.), CRC Press, ISBN 0-8493-8523-7, 3 Şubat 2021 tarihinde kaynağından arşivlendi14 Mart 2020 

Ayrıca bakınız

[değiştir | kaynağı değiştir]
  • Kriptografi konuları
  • Blum Blum Shub
  • Shanks–Tonelli algoritması
  • Schmidt-Samoa şifreleme sistemi
  • Blum-Goldwasser şifreleme sistemi

Kaynakça

[değiştir | kaynağı değiştir]
  • Buchmann, Johannes (2001), Einführung in die Kryptographie (Almanca) (2. bas.), Berlin: Springer, ISBN 3-540-41283-2 
  • Rabin, Michael (Ocak 1979), Digitalized Signatures and Public-Key Functions as Intractable as Factorization (PDF), MIT Bilgisayar Bilimi Laboratuvarı, 12 Temmuz 2010 tarihinde kaynağından arşivlendi (PDF)14 Mart 2020 
  • Scott Lindhurst (Ağustos 1999), R. Gupta & K. S. Williams (Ed.), "An analysis of Shank's algorithm for computing square roots in finite fields", CRM Proc. & Lec. Notes, AMS, 19 KB1 bakım: Editörler parametresini kullanan (link)
  • R. Kumanduri; C. Romero (1997), Alg 9.2.9"İkinci dereceden bir kalan modülasının kare kökü için bir olasılık", Number Theory w/ Computer Applications, Prentice Hall 

Dış bağlantılar

[değiştir | kaynağı değiştir]
  • Alfred J. Menezes; Paul C. van Oorschot; Scott A. Vanstone (Ağustos 2001) [1996], "Bölüm 8", Handbook of Applied Cryptography (PDF) (5. bas.), CRC Press, ISBN 0-8493-8523-7, 3 Şubat 2021 tarihinde kaynağından arşivlendi14 Mart 2020 
  • g
  • t
  • d
Açık anahtarlı şifreleme
Algoritmalar
Sabit çarpanlara ayırma
  • Benaloh
  • Blum–Goldwasser
  • Cayley–Purser
  • Damgård–Jurik
  • GMR
  • Goldwasser–Micali
  • Naccache–Stern
  • Paillier
  • Rabin
  • RSA
  • Okamoto–Uchiyama
  • Schmidt–Samoa
Ayrık logaritma
  • BLS
  • Cramer–Shoup
  • DH
  • DSA
  • ECDH
  • ECDSA
  • EdDSA
  • EKE
  • ElGamal
    • imza çizelgesi
  • MQV
  • Schnorr
  • SPEKE
  • SRP
  • STS
Diğerleri
  • AE
  • CEILIDH
  • EPOC
  • HFE
  • IES
  • Lamport
  • McEliece
  • Merkle–Hellman
  • Merkle İmzası
  • Naccache–Stern
  • Naccache–Stern knapsack kriptosistemi
  • NTRUEncrypt
  • NTRUSign
  • Üç geçişli protokol
  • XTR
Kuram
  • Ayrık logaritma
  • Eliptik eğrisel şifreleme
  • Değişken olmayan şifreleme
  • RSA problemi
  • Trapdoor fonksiyonu
Standartlaştırma
  • CRYPTREC
  • IEEE P1363
  • NESSIE
  • NSA Suite B
Konular
  • Elektronik imza
  • OAEP
  • Fingerprint
  • PKI
  • Güven ağları
  • Anahtar boyutu
  • Kuantum sonrası şifreleme
"https://tr.wikipedia.org/w/index.php?title=Rabin_şifreleme_sistemi&oldid=35606875" sayfasından alınmıştır
Kategoriler:
  • Elektronik ticaret
  • Kriptografik algoritmalar
  • Açık anahtarlı şifreleme programları
Gizli kategoriler:
  • Webarşiv şablonu wayback bağlantıları
  • Kaynaksız anlatımlar içeren maddeler
  • KB1 bakım: Editörler parametresini kullanan
  • Sayfa en son 00.27, 8 Temmuz 2025 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
Rabin şifreleme sistemi
Konu ekle