Goldwasser-Micali şifreleme sistemi

***Goldwasser–Micali (GM) kriptosistemi*** 1982 yılında  Shafi Goldwasser ve Silvio Micali tarafından geliştirilmiş bir asimetrik anahtar şifreleme algoritmasıdır. GM  standart kriptografik varsayımlar altında güvenliği kanıtlanmış ilk probabilistik açık anahtar şifreleme yöntemidir. Bununla birlikte başlangıç düz metinden yüzlerce kez daha geniş olan şifreli metinler olduğundan verimli bir kriptosistem değildir. Kriptosistemin güvenlik özelliğini kanıtlamak için  Shafi Goldwasser ve Silvio Micali anlamsal güvenliğin geniş alanda  kullanılan bir tanımını önerdiler.

## Temelleri
GM kriptosistemi kuadratik kalan probleminin p ve q büyük asal sayılar olmak üzere, N=p.q modunun zorluğunun varsayımına dayanan anlamsal güvenliktir. Bu varsayım verilen(x,N)'nin  x'in, +1 için bir Jacobi sembolü olduğunda, N(x=y^2 mod N bazı y'ler için) modulüne göre kuadratik bir kalan olup olmadığını belirleme zorluğunu ifade eder. Kuadratik kalan problemi  yeni kuadratik kalanlar  herhangi bir kısım tarafından üretilebiliyorken verilen  N nin çarpanlara ayırımını  bu çarpanla ayrım bilgisi verilemese bile kolayca çözebilir. GM kriptosistemi birbirinden ayrı düz metin bitlerini ya rastgele kuadratik kalanlar ya da tüm kuadratik sembol +1 ile birlikte  modül N'ye göre kalmayanları alıp şifreleyerek bu asimetrikliği sağlamış olur. Alıcılar N'nin çarpanlarını gizli anahtar olarak kullanır ve mesajı aldığı  şifreli metnin değerlerinin  kuadratik kalanını test ederek deşifrelerler.

Çünkü Goldwasser–Micali düz metnin her tek bitini şifrelemek için yaklaşık olarak |N| boyutunda bir değer  üretir. GM şifreleme sağlam ölçüde  şifreli metin genişlemesini sonucunu verir. Çarpanlara ayırmaya çalışma ataklarını önlemek için, |N| nin  yüzlerce bit ya da daha fazla olması tavsiye edilmiştir. Bu yüzden yöntem temelde bir kavram kanıtı olarak hizmet eder ve Elgamal gibi daha etkili kanıtlanabilir güvenlik yöntemleri  geliştirilmiştir. Çünkü şifreleme probabilistik algoritma kullanılarak şifrelenmiştir. Verilen bir düzmetin her bir zamanda şifrelediği birbirinden çok  farklı şifrelimetinleri üretebilir. Bu hasımın bilinen şifrelimetinleri sözlükle  karşılaştırarak haberleşmeler arasında müdahale edip eriştiği mesajlardan herhangi bir benzerlik bulup düz metne erişmeye çalışmasını önleme avantajı demektir.

## Yöntemin Tanıtılması

Goldwasser–Micali 3 algoritma içerir: açık ve gizli anahtar üreten probabilistik anahtar üretimi algoritması, probabilistik kriptosistem algoritması ve bir deterministik deşifreleme algoritması.

Bu yöntem verilen bir x değerinin kare mod N, ((p,q) N nin çarpanları)  olup olmadığına karar vermenin zorluğuna güvenmektedir. Bu aşağıdaki prosedürü kullanarak başarılır:

1.	*x<sub>p</sub>* = *x* mod *p*, *x<sub>q</sub>* = *x* mod *q* Hesapla
2.	EĞER x_p^{(p-1)/2} \equiv 1\pmod{p} VE x_q^{(q-1)/2} \equiv 1\pmod{q} ise *x* mod&nbsp;*N*. ye göre  bir kuadratik kalandır.
## Anahtar üretimi

GM içindeki kullanılan mod alma işlemi RSA kriptosistem içerisindeki aynı yöntemle gerçekleştirilir. (ayrıntılar için RSA anahtar üretimine bakınız)

1.Alice 2 farklı büyük *p* ve *q* asal sayılarını rastgele ve her biri bir birinden bağımsız olacak şekilde üretir.
2.Alice *N* = *p q*. yu hesaplar
3.Alice   \left(\frac{x}{p}\right)=\left(\frac{x}{q}\right)=-1  olacak şekilde bir x bulur ve bundan dolayı  Jacobi sembolü \left(\frac{x}{N}\right) is&nbsp;+1  dir.

X değeri rastgele sayılar seçerek ve 2 Legendre sembolünü  test ederek bulunabilir. Eğer (p,q) =3 mod 4 (N Blum Tam sayısı) ise  o zaman N-1 değeri gereken özelliği karşılıyor anlamına gelir.
Açık anahtar (*x*,*N*) den oluşur. Gizli anahtar (*p*,*q*) çarpanlarından oluşur.

## Mesaj Şifreleme

Varsayalım ki Bob Alice e m mesajını göndermeyi istesin:

Bob ilk önce *m* i (*m*1, ..., *m<sub>n</sub>*) bitlerinden oluşan bir string olarak çözecektir.

1.Her *m**i*, biti için, Bob modulo&nbsp;*N* den birimler halinde rastgele *y* değeri üretir veya
 GCD(*y*,*N*) = 1. olacak şekilde rastgele değerler üretir.
   c_i = y^2 x^{m_i}\pmod{N}. değerlerini sonuç olarak üretir.

Bob (*c*1, ..., *c**n*). Şifreli metinlerini gönderir.

## Mesaj Deşifreleme

Alice  (*c*1, ..., *c**n*)   i alır. Aşağıdaki prosedürü kullanarak *m* yi geri elde edebilir.

1.Asal çarpan (p,q) kullanan Her bir   i   için, Alice ci değerinin kuadratik kalan olup olmadığını belirler eğer öyle ise *m**i* = 0, değilse *m**i* = 1. dir.

Alice *m* = (*m*1, ..., *m**n*). Mesajını çıktı olarak üretir.

## Güvenlik özellikleri

Burada basitçe bu kriptosistemi Jacobi sembolü *+1* ile rastgele modül  *N* değerinin kuadratik kalan olup olmadığını belirleme problemine dönüştürerek kırmaya çalışma vardır. Eğer verilen bir *A* algoritması kriptosistemi kırarsa, ardından verilen bir 'x' değerinin kuadratik modül N kalanı olup olmadığını belirlemek için, biz *A*'yı (*x*,*N*) açık anahtarlarını kullanarak kırabildiğini anlamak için test ederiz. Eğer 'x' bir kalan değilse o zaman 'A' doğru olarak çalışacaktır. Ancak eğer 'x' bir kalansa o zaman her şifreli metin basitçe rastgele kuadratik kalan olabilir, bu yüzden 'A'  zamanın yarısından daha doğru olamaz. Bundan başka bu problem verilen bir 'B' için her açık anahtarı tıpkı diğer açık anahtar gibi güvenli kılan rastgele kendini dönüştürme  problemidir.

GM kriptosistemi homomorfik özelliklere sahiptir. Eğer *c*0, *c*1    *m*0, *m*1, bitlerinin şifrelenmiş halleriyse o zaman *c*0*c*1 mod&nbsp;*N*, in şifrelenmiş halleri olacaktır. Bu sebebten dolayı GM kriptosistemi bazen daha karmaşık kriptografik ilkel yapılarla birlikte kullanılır.
   
## Kaynakça

* 
* 
## Dış bağlantılar