Dijital İmza Nedir ? RSA ve DSA nedir?
Bu yazının amacı bir sonraki yazıda işlenecek olan ECDSA ( Elliptic Curve Digital Signature Algorithm) konusu öncesinde , e-imza konularına giriş yapmaktır. Bildiğiniz üzere günlük hayatta pek çok belgeye imzamızı atarız.Bazen bankada hesap açtırmak için , bazen bir bedel karşılığında hizmet almak bu işlemi tekrarlarız. Belgede imzamızın bulunması, ilgili işlemin bizim tarafımızdan yapıldığını kanıtlar. Elektronik ortamda ise bunun yerine dijital imza kullanılır.
Dijital imzanın , ıslak imzadan farkı belgenin içeriğine göre değişmesidir. Bir başka deyişle ,e-imza sabit bir imza değildir .İmzalanan mesaja göre benzersiz bir şekilde değişir.Ülkemizde dijital imza 5070 sayılı kanun ile “Başka bir elektronik veriye eklenen veya elektronik veriyle mantıksal bağlantısı bulunan ve kimlik doğrulama amacıyla kullanılan elektronik veri” şeklinde tanımlanmıştır.

RSA Algoritması
Dijital imzanın oluşturulmasına temel hazırlayan RSA algoritması olmuştur. RSA, bir asimetrik şifreleme algoritmasıdır. Asimetrik şifreleme yönteminde genel anahtar ve özel anahtar olmak üzere iki anahtar bulunur. Adında anlaşılabileceği gibi genel anahtar herkese açıktır.Özel anahtar ise kişiye özeldir ve sadece sahibi tarafından bilinir.Genel anahtar ile özel anahtar arasında matematiksel bağ bulunur ancak herhangi bir genel anahtardan özel anahtara ulaşmak imkansızdır.Asimetrik şifreleme hakkında daha fazla bilgi edinmek için şu yazıma göz atabilirsiniz. RSA algoritması , Ron Rives, Adi Shamir ve Leonard Aldeman tarafından bulunmuştur ve adını geliştiricilerinin soy isimlerinin baş harflerinden almıştır. Algoritmanın matematiksel temelini , Dr.Şadi Evrenşeker tarafından yazılan bilgisayarkavramlari sayfasında bulabilirsiniz.
Dijital İmza Algoritması
DSA (Digital Signature Algorithm) Ağustos 1991’de National Institute of Standards and Technology (NIST) tarafından sayısal imza standardı olarak tasarlanmıştır. DSA algoritması da, RSA gibi açık anahtarlı bir kriptografik algoritmadır.
Not 1 : Firuze Taytaş tarafından hazırlanmış olan şu sayfada Dijital İmza Algoritmasının İncelenmesi isimli makaleyi okuyarak algoritmanın matematiksel temelini inceleyebilirsiniz.
Not 2 : Aşağıda wikipedia üzerinden alınmış bilgiler paylaşılmış olup,sayfa sonunda ilgili link eklenmiştir.
İmzalama
- 0 < k < q olacak şekilde her bir mesaj için rassal bir k değeri üret.
- r = (g üzeri k mod p) mod q değerini hesapla.
- r = 0, ise farklı rassal bir k değeri ile tekrar baştan başla
- s = (k üzeri -1 (H(m) + x•r)) mod q değerini hesapla
- Eğer s = 0, ise farklı rassal bir k değeri ile tekrar baştan başla.
- İmza (r, s)
Doğrulama
- Eğer 0 < r < q ya da 0 < s < q sağlanmazsa imzayı reddet.
- w = s üzeri -1 mod q değerini hesapla.
- u1 = H(m)•w mod q değerini hesapla.
- u2 = r•w mod q değerini hesapla.
- v = ((g üzeri u1•y üzeri u2) mod p) mod q değerini hesapla
- Eğer v = r ise imza kabul edilir.