İçeriğe atla

Merkle imza algoritması

Merkle imzası, anahtarlama ağaçları ve sayısal imza şemalarını birleştiren bir veri doğrulama yapısıdır. Özet değeri tabanlı kriptografidir ve Merkle ağacı da denen özet değeri ağacını kullanmaktadır. Verileri Lampart imza algoritması gibi tek kullanımlık şekilde imzalar. Ralph Merkle tarafından 1970 sonu itibarıyla geliştirilmiştir ve RSA, Dijital İmza Algoritması gibi geleneksel dijital imzalara alternatif olmuştur.

Merkle imza algoritmasının avantajı kuantum bilgisayarı algoritmalarına karşı dirençli olduğuna inanılıyor olmasıdır. Geleneksel açık anahtar algoritmaları olan RSA ve ElGamal gibi algoritmalar efektif kuantum bilgisayarlarının tasarlanabilir olmasıyla birlikte (Shor'un algoritmasına dayanarak) güvensiz hale geldi. Merkle imza algoritması sadece güvenilir bir özet değeri fonksiyonunun varlığına dayanmaktadır. Bu özelliği de Merkle imza algoritmasının çok esnek ve kuantum bilgisayarlarına dirençli olmasını sağlamaktadır. Merkle imzasının sonlu imza potansiyeli olan tek kullanımlık bir imza olduğu unutulmamalıdır; Moni Maor ve Moti Yung'un imza tabanlı tek yölü permütasyonlar üzerindeki çalışması ve fonksiyonlar (ve evrensel tek yönlü özet değeri fonskiyonunun icadı), Merkle benzeri imzaların tam bir imza algoritmasına dönüşmesine yol açmıştır.

Anahtar Oluşturma

Merkle imza algoritması tek açık anahtar olan pub ile sınırlı sayıda mesajın imzasında kullanılabilir. Muhtemel mesajların sayısı ikinin katı olmalıdır, dolayısıyla olası mesajların sayısını N = 2n ile gösterelim.

Ortak anahtar olan pub oluşturulması için ilk aşama N tane tek kullanımlık imza algoritmalarının (Lamport imza algoritması gibi) özel/açık anahtar çifti (Xi,Yi) üretilmelidir. Her 1<= I <= 2n  için, ortak anahtarın özet değeri hi = H(Yi)  hesaplanır.

8 yapraklı Merkle Ağacı

Bütün  yaprak özet değeri özyineli bir şekilde özet değerleri alınarak ikili ağaç formasyonunda Merkle ağacı oluşturulur.   ifadesinde yükseklik için  ve sağ sol pozisyonu göstermek içinse . Buna istinaden,  özet değerleri yaprakları temsil etmektedir. Her iç düğümlerin değeri, kendi alt 2 çocuğunun değerlerinin birleşiminin özet değerlerinin alınması ile belirlenir. Örneğin,  ve . Bu şekilde,  yapraklı bir ağaçta  düğüm oluşturulmaktadır.

Merkle imza algoritmasının özel anahtarı bütün (Xi,Yi) çiftleridir. Algoritmanın en büyük problemlerinden birisi bu özel anahtar kümesinin boyutunun mesaj sayısıyla doğrusal oranda büyüyor olmasıdır.

Açık anahtar pub ağacın kökü olan =an,0  değeridir. Tek açık anahtar Yi 'nin genele açılması güvenliği kırmayacaktır. Ancak, bunların kullanımı genel için bir ihtiyaç değildir ve boyutlarını da küçültmek adına gizli tutmak mantıklı olacaktır.

İmza Oluşturma

Merkle imza algoritması ile M mesajını imzalamak için imzalayan bir (Xi,Yi) anahtar çifti seçer, tek kullanımlık imza algoritması kullanarak imzalar ve ardından ek bilgileri ekleyerek aslında onun orijinal anahtar çiftlerinden biri olduğunu kanıtlar (bir sahtekar tarafından yeni yaratılanın yerine).

İlk olarak, imzalayıcı daha önce başka bir mesajı imzalamak için kullanılmamış (Xi,Yi) çifti seçer ve tek kullanımlık imza algoritmasını mesajı imzalamak için kullanarak sig' imzasını ve karşılık gelen Yi açık anahtarını elde eder. Mesaj alıcısına (Xi,Yi) çiftinin orijinal anahtar çiftlerinden biri olduğunu kanıtlamak için Merkle ağacının ara düğümlerini dahil ederek alıcının hi=a0,i değerinin ağacın kökünde bulunan an,o açık anahtarını hesaplamak için kullanıldığını doğrulamasını sağlar . a0,i değerinden kök değerine giden yolda n+1 düğüm bulunur ve bunların her birini A0,...., An şeklinde ifade ederiz. A0 = a0,i = H(Yi) yaprak değeri ve An = an,0 = pub ise kök değeri olmuş olur.

Merkle ağacında i = 2 için A ve kimlik doğrulama yolu

 düğümünün .Alıcının önceki verilmiş olanla bir sonraki düğüm  .Bu düğüme , böylece . Bu sebeple, bir kimlik doğrulama yolu sağ taraftaki şekilde gösterilmektedir.

Bu düğümler auth0,…,authn-1, Yi ve tek kullanımlık imza olan sig' birlikte Merkle imza algoritması kullanarak bir M imzası oluştururlar:

sig = (sig' || Yi || auth0|| auth1 ||…|| authn-1)

Ayrıca unutulmamalıdır ki Lamport imza algoritması imza için kullanılırken, sig' özel anahtar Xi'nin bir bölümünü içerir.

İmza doğrulaması

Alıcı açık anahtar pub, mesaj M ve imza sig = (sig' || Yi || auth0|| auth1 ||…|| authn-1) bilmektedir.İlk olarak alıcı tek kullanımlık imza açık anahtarı Yi kullanarak mesaja ait olan tek kullanımlık imza sig' doğrular. Eğer sig' M mesajına ait geçerli bir imza ise, alıcı tek kullanımlık imzanın açık anahtarının özet değerini alarak A0 = H(Yi) hesaplar.  j = 1,…, n-1  değerleri için, yol üzerindeki Aj düğümleri Aj = H(Aj-1 || authj-1) ile hesaplanır. Eğer An Merkle anahtar algoritmasına ait açık anahtar pub’a eşit ise  imza geçerlidir.

Kaynakça

  • G. Becker. "Merkle Signature Schemes, Merkle Trees and Their Cryptanalysis", seminar 'Post Quantum Cryptology' at the Ruhr-University Bochum, Germany.
  • E. Dahmen, M. Dring, E. Klintsevich, J. Buchmann, L.C. Coronado Garca. "CMSS - an improved merkle signature scheme". Progress in Cryptology - Indocrypt 2006, 2006.
  • E. Klintsevich, K. Okeya, C.Vuillaume, J. Buchmann, E.Dahmen. "Merkle signatures with virtually unlimited signature capacity". 5th International Conference on Applied Cryptography and Network Security - ACNS07, 2007.
  • Ralph Merkle. "Secrecy, authentication and public key systems / A certified digital signature". Ph.D. dissertation, Dept. of Electrical Engineering, Stanford University, 1979. [1] 14 Ağustos 2018 tarihinde Wayback Machine sitesinde arşivlendi.
  • Moni Naor, Moti Yung: Universal One-Way Hash Functions and their Cryptographic Applications .STOC 1989: 33-43
  • S. Micali, M. Jakobsson, T. Leighton, M. Szydlo. "Fractal merkle tree representation and traversal". RSA-CT 03, 2003

Dış bağlantılar

İlgili Araştırma Makaleleri

RSA, güvenliği tam sayıları çarpanlarına ayırmanın algoritmik zorluğuna dayanan bir tür açık anahtarlı şifreleme yöntemidir. 1978’de Ron Rivest, Adi Shamir ve Leonard Adleman tarafından bulunmuştur. Bir RSA kullanıcısı iki büyük asal sayının çarpımını üretir ve seçtiği diğer bir değerle birlikte ortak anahtar olarak ilan eder. Seçilen asal çarpanları ise saklar. Ortak anahtarı kullanan biri herhangi bir mesajı şifreleyebilir, ancak şu anki yöntemlerle eğer ortak anahtar yeterince büyükse sadece asal çarpanları bilen kişi bu mesajı çözebilir. RSA şifrelemeyi kırmanın çarpanlara ayırma problemini kırmak kadar zor olup olmadığı hala kesinleşmemiş bir problemdir.

MD5, yaygın olarak kullanılan bir kriptografik özet fonksiyonudur. Girilen verinin boyutundan bağımsız olarak, 128-bit özet değeri üretir. MD5 ilk olarak kriptografik özet fonksiyonu olarak tasarlanmış olmasına rağmen geniş çaplı güvenlik açıkları tespit edilmiştir. Veri bütünlüğünün sağlandığını kontrol etmek için sağlama değeri üretmek amacıyla kullanılır. Ancak sadece kasıtsız yapılan değişiklere karşı kullanışlıdır.

ElGamal şifrelemesi, Diffie-Hellman anahtar alış-verişi'ne dayanan bir asimetrik şifreleme algoritması olup Taher Elgamal tarafından 1984 yılında önerilmiştir.

<span class="mw-page-title-main">Dijital İmza Algoritması</span>

Dijital İmza Algoritması dijital imza için bir FIPS standardıdır. Ağustos 1991'de National Institute of Standards and Technology (NIST) tarafından tasarlanmıştır. Dijital imza algoritması, ElGamal İmza Algoritması'nın bir varyantıdır.

ElGamal imza şeması Ayrık Logaritmanın hesaplanmasının zorluğuna dayanan bir dijital imzadır. Tahir el-Cemal tarafından 1984 yılında bulunmuştur. Açık anahtarlı kriptosistemi ve imza şeması ayrık logaritmaya dayanmaktadır.

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. 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.

<span class="mw-page-title-main">Kriptografik özet fonksiyonu</span>

Kriptografik özet fonksiyonu çeşitli güvenlik özelliklerini sağlayan bir özet fonksiyonudur. Veriyi belirli uzunlukta bir bit dizisine, (kriptografik) özet değerine, dönüştürür. Bu dönüşüm öyle olmalıdır ki verideki herhangi bir değişiklik özet değerini değiştirmelidir. Özetlenecek veri mesaj, özet değeri ise mesaj özeti veya kısaca özet olarak da adlandırılır.

Mesaj doğrulama kodu kriptografi biliminde bir mesajın doğruluğunu kanıtlamak için kullanılan küçük boyutlu bilgilerdir.

Blum–Goldwasser Kriptosistem veya Blum-Goldwasser şifreleme sistemidir. 1984 yılında Manuel Blum ve Şafi Goldwasser tarafından önerilen bir asimetrik anahtar şifreleme algoritmasıdır. Bulum-Goldwasser bilinen en verimli kripto sistemlerden biridir. RSA ile hız ve mesaj genişlemesi açısından kıyaslanabilir. Bu şifreleme algoritmasında rastgele sayı üretmek için Blum Blum Shub rastgele sayı üretme algoritması kullanılır. Büyük sayıların asal çarpanlarına ayrılma probleminin çözülemezliği kabulüne dayanan bir şifreleme algoritmasıdır.

Probabilistik kriptosistem şifreleme algoritması içinde rastgeleselliğin kullanımıdır böylece aynı mesaj birçok kez şifrelendiğinde genel olarak farklı şifreli metinler üretecektir.

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.

<span class="mw-page-title-main">Diffie-Hellman anahtar değişimi</span> dünyanın enyuksek dagı

Diffie-Hellman anahtar değişimi (D-H), kriptografik anahtarların değişiminde kullanılan özel bir yöntemdir. Bu kriptografi alanında uygulanan ilk pratik anahtar değişimi örneklerinden biridir. Diffie-Hellman anahtar değişimi metodu, güvenilmeyen bir sistem üzerinden iletişim kurmak isteyen karşılıklı iki tarafın ortaklaşa bir anahtar üzerinde karar kılabilmesine olanak sağlar. Böylece, iki tarafın da karar kıldığı bir simetrik anahtar, güvenli olmayan sistem üzerinden iletişimi şifrelemek için kullanılabilir. Diffie-Hellman protokolünde amaç, iletişim kurmak isteyen iki taraf arasındaki anahtar değişim prosedürünü, anahtarın kötü tarafların eline geçmediğine emin olacak şekilde güvenli bir şekilde gerçekleştirmektir. Bu işlem bir defa yapıldığında ve taraflar bir anahtar üzerinde ortaklaştığında her iki taraf da kendi mesajını paylaşılan anahtarla şifreleyebilir, böylece taraflar arasındaki iletişim güvenli bir şekilde sağlanmış olur.

Merkle-Hellman kripto sistemi, 1978 yılında Martin Hellman ve Ralph Merkle tarafından geliştirilen ilk açık anahtarlı kriptosistemlerden biridir. RSA'dan daha hızlı gerçekleştirilebilmesine rağmen Adi Shamir tarafından 1982'de güvensiz olduğu gösterilmiştir.

SHA-2, ABD Ulusal Güvenlik Ajansı (NSA) tarafından tasarlanmış kriptografik özet (hash) fonksiyonları kümesidir. Kriptografik özet fonksiyonları, hesaplanmış “özet” ile bilinen ve beklenen özet değerinin karşılaştırılmasıyla, dijital veri üzerinde yürüyen matematiksel operasyonlardır. Özet fonksiyonları ile bir kişi verinin bütünlüğüne karar verebilir. Örneğin, yüklenmiş bir dosyanın özet değerini hesaplamak ve sonucu önceden açıklanmış özet sonucu ile karşılaştırmak, yüklemenin değiştirilip değiştirilmediğini veya üzerinde oynama yapılıp yapılmadığını gösterebilir. Kriptografik Hash fonksiyonlarının kilit noktası çakışma dirençleridir: hiç kimse aynı özet çıktısı veren iki farklı girdi bulamamalıdır.

<span class="mw-page-title-main">Eliptik eğri kriptografisi</span>

Eliptik Eğri Kriptolojisi, sonlu cisimler üzerindeki eliptik eğrilerin cebirsel topolojisine dayanan bir açık anahtar şifrelemesidir. Eliptik Eğri Kriptolojisi, diğer şifrelemeler göre daha küçük anahtar boyuna ihtiyaç duyar.

<span class="mw-page-title-main">HMAC</span>

Kriptografide, HMAC, kriptografik özet fonksiyonu ve gizli bir kriptografik anahtar içeren bir mesaj doğrulama kodu türüdür. Diğer MAC türleri gibi, HMAC de hem veri bütünlüğünü kontrol etmek hem de mesaj içeriğini onaylamakta kullanılabilir. HMAC in hesaplanmasında herhangi bir kriptografik özet fonksiyonu kullanılabilir. Örneğin, HMAC in hesaplanmasında MD5 veya SHA-1 özet fonksiyonu kullanılması durumunda, ilgili MAC algoritması da buna uygun olarak HMAC-MD5 veya HMAC-SHA1 olarak isimlendirilebilir. HMAC'in kriptografik saldırılara karşı dayanıklılığı, kullanılan özet fonksiyonunun dayanıklılığına, elde edilen özetin boyutuna, kullanılan kriptografik anahtarın boyutuna ve kalitesine bağlıdır.

Kriptografi 'de bir 'Lamport imzası' veya 'Lamport bir defalık imza şeması' dijital imza oluşturmak için kullanılan bir yöntemdir. Lamport imzaları, kriptografik olarak güvenli herhangi bir tek yönlü fonksiyon ile oluşturulabilir; genellikle bir Kriptografik özet fonksiyonu kullanılır.

<span class="mw-page-title-main">Merkle ağacı</span>

Kriptografi ve bilgisayar bilimlerinde, Hash ağacı ya da Merkle ağacında her yaprak düğümü veri blokunun özet değerini, her yaprak olmayan düğüm ise kendi alt düğümlerinin kriptografik özet değerlerini içerir. Merkle ağacı büyük veri yapılarının verimli ve güvenli bir şekilde doğrulanmasını sağlar. Merkle ağaçları, özet listeleri ve özet zincirlerinin genelleştirilmiş halidir. Aynı isimdeki Merkle İmza Algoritması, Merkle özet değeri ağacını kullanmaktadır.

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

<span class="mw-page-title-main">Tek anahtarlı mesaj doğrulama kodu</span>

Tek anahtarlı mesaj doğrulama kodu, CBC-MAC algoritmasına benzer bir blok şifresinden oluşturulan bir mesaj kimlik doğrulama kodudur.