Yazan: Şadi Evren ŞEKER

Asimitrik şifreleme yöntemlerinden birisidir. Anahtar üretimi ve şifreleme / açma olarak iki aşamadan oluşur. Dayandığı matematiksel zorluk, dairesel gruplar (cyclic group) üzerindeki ayrık logaritmadır (discrete logarithm).

Anahtar üretme aşaması:

El Gamal şifrelemesinde dairesel gruplardan (cyclic group) faydalanılmaktadır. Alice q derecesinde bir G grubunu g üreticisi (Generator) ile üretir. Alice bu gruptan { 0 , … , q-1 } rasgele bir x değerini seçer. Alice h = gx değerini hesaplar.

Bu işlemler sonucunda Alice , g, G , q ve h değerlerini umumî anahtar (public key) olarak yayınlar.

Şifreleme aşaması (encryption):

Bob, göndermek istediği mesajı şifrelemek için Alice tarafından yayınlanan G grubundan faydalanır. Buna göre şifreli metin (cipher text) aşağıdaki şekilde adım adım hesaplanır:

Bob öncelikle Alice tarafından açık olarak yayınlanan G grubundan rasgele bir sayı seçer (bu örnekte y olarak geçecektir)

Bob iki adet sayıyı hesaplayarak Alice’e gönderir bunlar:

c1 = gy ve

c2 = m hy değerleridir. Dolayısıyla Bob, Alice’e (c1 , c2 ) çiftini yollar.

Şifre açma aşaması (decryption):

Alice, Bob’dan aldığı (c1 , c2 ) çiftini açmak için kendi hususî anahtarı olan x değerinden faydalanır.

Alice mesaja ulaşmak için basitçe ( c2 / c1x ) bölümünü hesaplar.

Bu şifreleme yönteminde G grubundan daha büyük mesajların gönderilmesi durumunda mesajı alt parçalara bölerek göndermek de mümkündür.

Yorumlar

  1. Hadi Borozan

    Merhaba, bir kaynakta plaintext’in (c2 / (c1^x)) formülüyle elde edilmesi yerine c2.(c1^(p-1-x)) şeklinde açılacağı gözüküyordu (p ile ifade edilen üzerinde çalışılan mod). Teyit etmek için soruyorum, bu iki ifade matematiksel olarak eşittir öyle değilmi. Şayet evetse 2 satır denklem çözümü ile gösterebilirseniz çok sevinirim.

    Kaynak: Menezes, Applied Cryptography sf. 295

    Teşekkürler.

  2. Şadi Evren ŞEKER Article Author

    eşittir. Ama gereksizdir 🙂

    bakın ikinci denklem gereksiz yere karmaşıklaştırılmış.

    c1^-x değerinin 1/c1^x olduğunu biliyoruz.

    bu değer modüler aritmetikte olduğumuz için -x yerine p-1-x olarak yazılmış. Sebebi modüler aritmetikte – değerlerin moduloya tamamlanması. Örneğin -3 mod 5 = 2 olarak alınabilir.

    Dolayısıyla denklemimiz

    c1^p-1-x olarak yazılmış. Elbette algoritmada (El Gamal) bu değerin c2 ile çarpılması gerekiyor (ki benim yazımda da c2/c1^x formülünün payında olan c2 bu anlama gelmektedir. Denklemin son hali aşağıdaki şekilde oluyor:

    c2(c1^(p-1-x))

    başarılar

  3. Hadi Borozan

    c2 / c1^x = c2.(c1^(-x)) 1. denklemimiz bu

    c2.c1^(p-1-x) 2. denklemde bu

    Dolayısıyla

    c2.(c1^(-x)) = c2.c1^(p-1-x)

    c2’ler sadeleştirilirse

    (c1^(-x)) = c1^(p-1-x)

    Tabanlar eşit olması sebebiyle üstlerde birbirlerine eşit olacaktır

    (-x) = (p-1-x)

    Denklemde bir eşitsizlik var sanki

    Örneğin -3 mod 5 =2 örneğini vermişsiniz. p-1-x=5-1-3 ve -3 + 5 = 2 değerleri birbirlerine eşit değildir. Sizin denklemin doğru olduğu aşikar ancak menezes’in kaynağında bir yanlış noktamı var acaba?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir