Eliptik eğri dijital imza algoritması - 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 DSA ile anahtar ve imza boyut karşılaştırması
  • 2 İmza oluşturma algoritması
  • 3 İmza doğrulama algoritması
  • 4 Algoritmanın doğruluğu
  • 5 Güvenlik
  • 6 Endişeler
  • 7 Uygulamalar
  • 8 Kaynakça

Eliptik eğri dijital imza algoritması

  • Čeština
  • Deutsch
  • English
  • Español
  • Suomi
  • Français
  • İtaliano
  • 日本語
  • 한국어
  • Português
  • Русский
  • Slovenčina
  • Українська
  • Tiếng Việt
  • 中文
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

Kriptografide Eliptik Eğri Dijital İmza Algoritması (ECDSA), eliptik eğri şifrelemesi kullanan birçok çeşit Dijital İmza Algoritması (DSA) sunar.

DSA ile anahtar ve imza boyut karşılaştırması

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

Genel olarak eliptik eğri kriptografisinde olduğu gibi, açık anahtarın bit boyutu ECDSA için yeterli olduğu düşünülen güvenlik seviyesinin bitlerin yaklaşık iki katı kadardır. Örneğin, 80 bitlik bir güvenlik düzeyinde bir ECDSA' nın (yani saldırganın gizli anahtarı bulmak için maksimum 2 80 {\displaystyle 2^{80}} {\displaystyle 2^{80}}operasyon deneme yapması gerektiği anlamına gelir) genel anahtarının boyutu 160 bit olurken, bir DSA genel anahtarının boyutu en az 1024 bit'tir. Öte yandan, güvenlik seviyesinin t {\displaystyle {t}} {\displaystyle {t}} uzunluğunda olduğu hem DSA hem de ECDSA için imza boyutu yaklaşık 4 t {\displaystyle 4t} {\displaystyle 4t}olur, başka bir deyişle 80 bit güvenlik düzeyi için yaklaşık 320 bitlik imza gerekir.

İmza oluşturma algoritması

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

Diyelim ki Alice, Bob'a imzalı bir mesaj göndermek istiyor. İlk olarak, eğri parametreleri olan ( CURVE , G , n ) {\displaystyle {\displaystyle ({\textrm {CURVE}},G,n)}} {\displaystyle {\displaystyle ({\textrm {CURVE}},G,n)}}üzerinde anlaşmalıdırlar. Cisme ve eğri eşitliğine ek olarak, eğri üzerinde asal mertebenin temel noktası olan G ve G' nin çarpımsal mertebesi olan n' ye ihtiyaç vardır.

Parametre
EĞRİ eliptik eğri alanı ve kullanılan denklem
G, eliptik eğri taban noktası, ör: y 2 = x 3 + 7 {\displaystyle y^{2}=x^{3}+7} {\displaystyle y^{2}=x^{3}+7}, n. mertebeden çok büyük bir asal ile eliptik eğri üreticisi.
n G' nin tam sayı mertebesi, yani n x G = O {\displaystyle nxG=O} {\displaystyle nxG=O}, burada O {\displaystyle O} {\displaystyle O}tanımlayıcı elemandır.
dA Rastgele seçilmiş gizli anahtar
Qa Eliptik eğriden hesaplanmış açık anahtar
m mesaj

n {\displaystyle n} {\displaystyle n} asal bir sayı olmak zorundadır. Aslında, Z / n Z {\displaystyle \mathbb {Z} /n\mathbb {Z} } {\displaystyle \mathbb {Z} /n\mathbb {Z} }halkasının sıfırdan farklı her elemanının tersine olduğunu varsayarız, yani Z / n Z {\displaystyle \mathbb {Z} /n\mathbb {Z} } {\displaystyle \mathbb {Z} /n\mathbb {Z} } cisim olmak zorundadır. Buda bize n {\displaystyle n} {\displaystyle n}' nin asal olması gerektiğini gösterir. (bkn. Bézout Teoremi[1])

Alice, [ 1 , n − 1 ] {\displaystyle [1,n-1]} {\displaystyle [1,n-1]} aralığından rastgele seçilmiş özel anahtar olan d A {\displaystyle d_{A}} {\displaystyle d_{A}} 'yı ve eğrinin public keyi olan Q A = d A × G {\displaystyle Q_{A}=d_{A}\times G} {\displaystyle Q_{A}=d_{A}\times G} içeren bir anahtar çifti oluşturur. × {\displaystyle \times } {\displaystyle \times }, eliptik eğri skaler nokta çarpımını temsil eder.

Alice, m {\displaystyle m} {\displaystyle m}mesajını imzalayabilmesi için aşağıdaki adımları takip etmelidir:

  1. e = H A S H ( m ) {\displaystyle e=HASH(m)} {\displaystyle e=HASH(m)}'yi hesaplar. (Burada HASH Kriptografik özet fonksiyonu temsil eder.)
  2. z {\displaystyle z} {\displaystyle z}, e {\displaystyle e} {\displaystyle e} 'in en solundaki bitleri olan L n {\displaystyle L_{n}} {\displaystyle L_{n}} olsun; burada L n {\displaystyle L_{n}} {\displaystyle L_{n}} n. mertebeden bir grubun mertebesi olsun.
  3. [ 1 , n − 1 ] {\displaystyle [1,n-1]} {\displaystyle [1,n-1]} arasından kriptografik olarak güvenli rastgele bir tam sayı k {\displaystyle k} {\displaystyle k} seçer.
  4. Eğri noktaları olan ( x 1 , y 1 ) = k × G {\displaystyle (x_{1},y_{1})=k\times G} {\displaystyle (x_{1},y_{1})=k\times G} hesaplar.
  5. r = x 1 mod n {\displaystyle r=x_{1}{\bmod {n}}} {\displaystyle r=x_{1}{\bmod {n}}} hesaplanır. Eğer r = 0 {\displaystyle r=0} {\displaystyle r=0} ise 3. adıma geri dönülür.
  6. s = k − 1 ( z + r d A ) mod n {\displaystyle s=k^{-1}(z+rd_{A}){\bmod {n}}} {\displaystyle s=k^{-1}(z+rd_{A}){\bmod {n}}} hesaplanır. Eğer s = 0 {\displaystyle s=0} {\displaystyle s=0} ise 3.adıma geri dönülür.
  7. İmza çifte ( r , s ) {\displaystyle (r,s)} {\displaystyle (r,s)} olur. Ayrıca ( r , − s mod n ) {\displaystyle (r,-s{\bmod {n}})} {\displaystyle (r,-s{\bmod {n}})} de uygun bir imza çiftidir.

Standartların belirttiği gibi, k {\displaystyle k} {\displaystyle k}' nın sadece gizli olması yeterli değildir, aynı zamanda farklı imzalar için farklı k {\displaystyle k} {\displaystyle k} seçilmesi de önemlidir, aksi takdirde 6. adımdaki denklemde d A {\displaystyle d_{A}} {\displaystyle d_{A}} özel anahtarını çözülebilir: Bilinmeyen aynı k {\displaystyle k} {\displaystyle k} değeri ve bilinen iki farklı m {\displaystyle m} {\displaystyle m} ve m ′ {\displaystyle m'} {\displaystyle m'} kullanılarak üretilen farklı iki imza olan ( r , s ) {\displaystyle (r,s)} {\displaystyle (r,s)} ve ( r , s ′ ) {\displaystyle (r,s')} {\displaystyle (r,s')} için saldırgan z {\displaystyle z} {\displaystyle z} ve z ′ {\displaystyle z'} {\displaystyle z'} hesaplayabilir ve saldırgan s − s ′ = k − 1 ( z − z ′ ) {\displaystyle s-s'=k^{-1}(z-z')} {\displaystyle s-s'=k^{-1}(z-z')} formülünden k = z − z ′ s − s ′ {\displaystyle k={\frac {z-z'}{s-s'}}} {\displaystyle k={\frac {z-z'}{s-s'}}} hesaplayabilir. Şimdi ise saldırgan s = k − 1 ( z + r d A ) {\displaystyle s=k^{-1}(z+rd_{A})} {\displaystyle s=k^{-1}(z+rd_{A})} formülü üzerinde düzenleme yaparak özel anahtar olan d A = s k − z r {\displaystyle d_{A}={\frac {sk-z}{r}}} {\displaystyle d_{A}={\frac {sk-z}{r}}}' yı elde edebilir. Bu uygulama hatası, örneğin PlayStation 3 oyun konsolu için kullanılan imzalama anahtarını çıkarmak için kullanıldı. ECDSA imzasının özel anahtarları sızdırabilmesinin bir başka yolu, k {\displaystyle k} {\displaystyle k} hatalı bir rastgele sayı üreteci tarafından üretilir. Rastgele sayı üretmedeki bu tür bir başarısızlık, Android Bitcoin Cüzdan kullanıcılarının Ağustos 2013'te fonlarını kaybetmelerine neden oldu.[2] k {\displaystyle k} {\displaystyle k} 'nın her mesaj için benzersiz olmasını sağlamak için, bir kişi rastgele sayı üretimini tamamen atlayabilir ve k {\displaystyle k} {\displaystyle k} 'yı hem mesajdan hem de özel anahtardan türeterek deterministik imzalar oluşturabilir.[3]

İmza doğrulama algoritması

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

Bob'un Alice'in imzasını doğrulaması için açık anahtar eğri noktası olan Q A {\displaystyle Q_{A}} {\displaystyle Q_{A}} bir kopyasına sahip olması gerekir. Bob, Q A {\displaystyle Q_{A}} {\displaystyle Q_{A}} 'nun geçerli bir eğri noktası olduğunu şu şekilde doğrulayabilir:

  1. Q A {\displaystyle Q_{A}} {\displaystyle Q_{A}} nın O {\displaystyle O} {\displaystyle O} kimlik elemanına eşit olmadığını kontrol eder.
  2. Q A {\displaystyle Q_{A}} {\displaystyle Q_{A}} nın eğri üzerinde olduğunu kontrol eder.
  3. n × Q A = O {\displaystyle n\times Q_{A}=O} {\displaystyle n\times Q_{A}=O} olduğunu kontrol eder.

Ardından Bob şu adımları izler:

  1. r {\displaystyle r} {\displaystyle r} ve s {\displaystyle s} {\displaystyle s} 'nin [ 1 , n − 1 ] {\displaystyle [1,n-1]} {\displaystyle [1,n-1]} aralığında tam sayılar olduğunu doğrular. Değilse, imza geçersizdir.
  2. e = H A S H ( m ) {\displaystyle e=HASH(m)} {\displaystyle e=HASH(m)} 'yi hesaplar. Burada HASH imza üretirken kullanılan ile aynı kriptografik özet fonksiyonu temsil eder.
  3. z {\displaystyle z} {\displaystyle z}, e {\displaystyle e} {\displaystyle e}'in en solundaki bitleri olan L n {\displaystyle L_{n}} {\displaystyle L_{n}} olsun
  4. w = s − 1 mod n {\displaystyle w=s^{-1}{\bmod {n}}} {\displaystyle w=s^{-1}{\bmod {n}}} hesaplar.
  5. u 1 = z w mod n {\displaystyle u_{1}=zw{\bmod {n}}} {\displaystyle u_{1}=zw{\bmod {n}}} ve u 2 = r w mod n {\displaystyle u_{2}=rw{\bmod {n}}} {\displaystyle u_{2}=rw{\bmod {n}}}' yi hesaplar.
  6. ( x 1 , y 1 ) = u 1 × G + u 2 × Q A {\displaystyle {\displaystyle (x_{1},y_{1})=u_{1}\times G+u_{2}\times Q_{A}}} {\displaystyle {\displaystyle (x_{1},y_{1})=u_{1}\times G+u_{2}\times Q_{A}}}eğri noktalarını hesaplar. Eğer ( x 1 , y 1 ) = O {\displaystyle {\displaystyle (x_{1},y_{1})=O}} {\displaystyle {\displaystyle (x_{1},y_{1})=O}} ise imza geçersizdir.
  7. Eğer r ≡ x 1 ( mod n ) {\displaystyle r\equiv x_{1}{\pmod {n}}} {\displaystyle r\equiv x_{1}{\pmod {n}}} ise imza geçerli, değilse geçersizdir.

Shamir' in numarasını kullanarak, iki skaler çarpımın toplamını yani u 1 × G + u 2 × Q A {\displaystyle u_{1}\times G+u_{2}\times Q_{A}} {\displaystyle u_{1}\times G+u_{2}\times Q_{A}}, bağımsız olarak yapılan iki skaler çarpımından daha hızlı hesaplanabileceğini unutmayın.

Algoritmanın doğruluğu

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

Doğrulamanın neden doğru şekilde çalıştığı çok belli değildir. Nedenini görmek için, doğrulamanın 6. adımında hesaplanan eğri noktasını C {\displaystyle C} {\displaystyle C} olarak belirtelim:

C = u 1 × G + u 2 × Q A {\displaystyle C=u_{1}\times G+u_{2}\times Q_{A}} {\displaystyle C=u_{1}\times G+u_{2}\times Q_{A}}

Açık anahtarın Q A = d A × G {\displaystyle Q_{A}=d_{A}\times G} {\displaystyle Q_{A}=d_{A}\times G} tanımından,

C = u 1 × G + u 2 d A × G {\displaystyle C=u_{1}\times G+u_{2}d_{A}\times G} {\displaystyle C=u_{1}\times G+u_{2}d_{A}\times G}

elde edilir. Eliptik eğride skaler çarpımın toplama üzerine dağılma özelliğinden,

C = ( u 1 + u 2 d A ) × G {\displaystyle C=(u_{1}+u_{2}d_{A})\times G} {\displaystyle C=(u_{1}+u_{2}d_{A})\times G}

u 1 {\displaystyle u_{1}} {\displaystyle u_{1}}ve u 2 {\displaystyle u_{2}} {\displaystyle u_{2}}' nin doğrulamanın 5.adımındaki tanımını açarsak,

C = ( z s − 1 + r d A s − 1 ) × G {\displaystyle C=(zs^{-1}+rd_{A}s^{-1})\times G} {\displaystyle C=(zs^{-1}+rd_{A}s^{-1})\times G}

buradan s − 1 {\displaystyle s^{-1}} {\displaystyle s^{-1}} parantezine alındığında,

C = ( z + r d A ) s − 1 × G {\displaystyle C=(z+rd_{A})s^{-1}\times G} {\displaystyle C=(z+rd_{A})s^{-1}\times G}

s' nin imzanın 6. adımdaki tanımını açarsak,

C = ( z + r d A ) ( z + r d A ) − 1 ( k − 1 ) − 1 × G {\displaystyle C=(z+rd_{A})(z+rd_{A})^{-1}(k^{-1})^{-1}\times G} {\displaystyle C=(z+rd_{A})(z+rd_{A})^{-1}(k^{-1})^{-1}\times G}

Bir elemanın tersinin tersi kendisini verir ve bir elemanın tersi ile kendisinin çarpımı birim elemanı vereceğinden,

C = k × G {\displaystyle C=k\times G} {\displaystyle C=k\times G}

r {\displaystyle r} {\displaystyle r}' nin tanımından bu, doğrulama adımı 7'dir.

Güvenlik

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

Aralık 2010'da, kendini "fail0verflow" diye adlandıran bir grup, Sony tarafından üretilen PlayStation 3 oyun konsolunun yazılımını imzalamak için kullanılan ECDSA özel anahtarının kırıldığını duyurdu ancak bu saldırı yalnızca Sony algoritmayı düzgün şekilde uygulamadığı için gerçekleşti çünkü k {\displaystyle k} {\displaystyle k} rastgele değil sabit seçilmişti. Yukarıdaki İmza oluşturma algoritması bölümünde belirtildiği gibi, bu, d A {\displaystyle d_{A}} {\displaystyle d_{A}} 'yı çözülebilir hale ve tüm algoritmayı işe yaramaz hale getirir.[4]

29 Mart 2011 tarihinde, iki araştırmacı, bir zamanlama saldırısı yaparak binary alan üzerinden ECDSA ile kimlik doğrulaması yapan OpenSSL kullanarak sunucunun TLS özel anahtarını almanın mümkün olduğunu gösteren bir IACR makalesi yayınladı.[5][6] Güvenlik açığı, OpenSSL 1.0.0e' de düzeltildi.[7]

Ağustos 2013'te, Java SecureRandom sınıfının bazı uygulamalarındaki hataların bazen k {\displaystyle k} {\displaystyle k} değerinde çakışma(collision) ürettiği ortaya çıktı. Bu, bilgisayar korsanlarının, kendilerine ait anahtarların sahiplerinin sahip olduğu bitcoin işlemleri üzerinde aynı kontrolü sağlayan özel anahtarı kırma izin verdi; aynı şekilde, Java kullanan ve ECDSA' nın kimliğini doğrulamak için kullanan ve bazı Android uygulama uygulamalarında PS3 imzalama anahtarını ortaya çıkarmak için kullanıldı.

Bu sorun, RFC 6979 tarafından tanımlandığı gibi deterministik k {\displaystyle k} {\displaystyle k} üretimi ile önlenebilir.

Endişeler

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

ECDSA ile ilgili iki tür endişe vardır:

  1. Politik kaygılar: NIST'in ürettiği eğrilerin güvenilirliği, NSA' nın yazılımlarına, donanım bileşenlerine ve yayınlanmış standartlarına bilinçli bir şekilde arka kapı koymasının ardından, tanınmış kriptograflar[8], NIST eğrilerinin nasıl tasarlandığına dair şüphelerini dile getirdiler.[9][10][11][12]
  2. Teknik kaygılar: Standartın doğru uygulama zorluğu,[13] yavaşlığı ve Dual EC DRBG rastgele sayı üretecinin yetersiz savunma uygulamalarında güvenliği azaltan kusurların tasarlanması.[14]

Bu sorunların her ikisi de libssh curved25519 giriş bölümünde özetlenmiştir.[15]

Uygulamalar

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

Aşağıda, ECDSA'ya destek sağlayan şifreleme kütüphanelerinin bir listesi bulunmaktadır:

  • Botan
  • Bouncy Castle
  • cryptlib
  • Crypto++
  • libgcrypt
  • OpenSSL
  • wolfCrypt

Kaynakça

[değiştir | kaynağı değiştir]
  1. ^ "Arşivlenmiş kopya" (PDF). 29 Ekim 2019 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 7 Nisan 2019. 
  2. ^ "Arşivlenmiş kopya". 7 Nisan 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Nisan 2019. 
  3. ^ rfc:6979
  4. ^ "Arşivlenmiş kopya". 7 Nisan 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Nisan 2019. 
  5. ^ "Arşivlenmiş kopya". 7 Nisan 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Nisan 2019. 
  6. ^ "Arşivlenmiş kopya". 8 Aralık 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Nisan 2019. 
  7. ^ "Arşivlenmiş kopya". 26 Şubat 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Nisan 2019. 
  8. ^ "Arşivlenmiş kopya". 15 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Nisan 2019. 
  9. ^ "Arşivlenmiş kopya" (PDF). 28 Mayıs 2019 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 7 Nisan 2019. 
  10. ^ "Arşivlenmiş kopya". 7 Nisan 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Nisan 2019. 
  11. ^ "Arşivlenmiş kopya". 7 Nisan 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Nisan 2019. 
  12. ^ "Arşivlenmiş kopya". 23 Nisan 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Nisan 2019. 
  13. ^ "Arşivlenmiş kopya". 23 Mart 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Nisan 2019. 
  14. ^ "Arşivlenmiş kopya". 19 Ağustos 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Nisan 2019. 
  15. ^ "Arşivlenmiş kopya". 23 Mart 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Nisan 2019. 
  • 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=Eliptik_eğri_dijital_imza_algoritması&oldid=34550206" sayfasından alınmıştır
Kategoriler:
  • Dijital imza şemaları
  • Eliptik eğri kriptografisi
  • Sayfa en son 13.14, 27 Aralık 2024 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
Eliptik eğri dijital imza algoritması
Konu ekle