İçeriğe atla

Tek anahtarlı mesaj doğrulama kodu

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

Resmi olarak, küçük bir değişiklik dışında her ikisi de esasen aynı olan iki OMAC algoritması (OMAC1 ve OMAC2) vardır. Mayıs 2005'te NIST tarafından önerilmiş olan OMAC1, CMAC algoritmasına eşdeğerdir.

Algoritma, herhangi bir patent kapsamında olmadığından her kullanıcı için ücretsizdir. Kriptografide CMAC (Cipher-based Message Authentication Code, Şifre Tabanlı Mesaj Kimlik Doğrulama Kodu)[1] bir çeşit blok şifreleme tabanlı mesaj kimlik doğrulama kodu algoritmasıdır. İkili verilerin kimliğinin doğruluğunu ve dolayısıyla da bütünlüğünü garanti etmek için kullanılabilir. Bu çalışma kipi, CBC-MAC'in güvenlik eksikliklerini giderir (CBC-MAC sadece sabit uzunluktaki mesajlar için güvenlidir).

CMAC algoritmasının temeli, Black ve Rogaway tarafından önerilmiş ve XCBC[2] adı altında analiz edilip NIST'e gönderilmiş[3] olan bir CBC-MAC varyasyonudur. XCBC algoritması, CBC-MAC'in güvenlik eksikliklerini etkili bir şekilde gidermektedir, ancak üç anahtar gerektiriyor. Iwata ve Kurosawa, XCBC için bir iyileştirme sunmuş ve elde ettikleri algoritmayı makalelerinde One-Key CBC-MAC (OMAC) olarak adlandırmış,[4] ardından OMAC üzerine bir iyileştirme ve ilave güvenlik analizi olan OMAC1'i yayımlamışlardır.[5][6] OMAC algoritması, XCBC için gereken anahtar miktarını azaltır. CMAC, OMAC1'e eşdeğerdir.

Bir adet -bitlik blok şifresi ve bir adet gizli anahtar kullanarak, bir mesaja ait -bitlik bir CMAC etiketi oluşturmak için; öncelikle aşağıdaki algoritma kullanılarak iki adet -bitlik alt-anahatlar ( ve ) türetilir (Bu işlem, sonlu alan üzerinde ve 'nin çarpımına eşdeğerdir). sembolü standart sola-kaydırma operatörü ve sembolü ise dışlayıcı veya işlemini, fonksiyonu ise sayının en anlamlı bitini (most significant bit) belirtmek üzere:

  1. Geçici bir değeri hesaplanır.
  2. Eğer ise, ; aksi halde olur. Burada, yalnızca 'ye bağlı belirli bir sabittir. (Spesifik olarak, değeri, indirgenemeyen dereceden ikili polinomlar arasında en az sayıda içeren ilk polinomun baş katsayısı haricindeki diğer katsayılarıdır: Mesela, 64 bit için 0x1B, 128 bit için 0x87 ve 256 bit bloklar için 0x425.)
  3. Eğer ise, , aksi halde olur.
  4. MDK hesaplama işlemi için gerekli bu alt anahtarlar döndürülür.

Küçük bir örnek olarak, , ve olarak varsayılsın. O halde ve olarak hesaplanmış olur.

CMAC etiketi oluşturma süreci aşağıdaki gibidir:

  1. Mesaj olacak şekilde bitlik bloklara ayrılır. Burada tam bloktur. (Boş mesaj ise tamamlanmamış bir tane blok olarak değerlendirilir.)
  2. Eğer tam bloksa , aksi halde olur.
  3. olsun.
  4. Her için, değeri hesaplanır.
  5. olur.
  6. Çıktı olarak bulunmuş olur.

Doğrulama işlemi ise aşağıdaki gibidir:

  1. Etiketi oluşturmak için yukarıdaki algoritma kullanılır.
  2. Oluşturulan etiketin alınan etikete eşit olup olmadığı kontrol edilir.

Uygulamalar

Kaynakça

  1. ^ Dworkin (2016). "Recommendation for block cipher modes of operation" (PDF). 9 Mayıs 2020 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 5 Nisan 2020. 
  2. ^ Mihir Bellare (26 Haziran 2003). Advances in Cryptology - CRYPTO 2000 (İngilizce). Springer. ISBN 978-3540445982. 
  3. ^ Black. "A Suggestion for Handling Arbitrary-Length Messages with the CBC MAC" (PDF). 30 Ağustos 2017 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 5 Nisan 2020. 
  4. ^ FSE 2003 (16 Ekim 2003). Fast Software Encryption (İngilizce). Springer Science & Business Media. ISBN 978-3-540-20449-7. 
  5. ^ Iwata (2003). "OMAC: One-Key CBC MAC – Addendum" (PDF). 4 Mart 2016 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 5 Nisan 2020. 
  6. ^ Thomas Johansson; Subhamoy Maitra (25 Kasım 2003). Progress in Cryptology -- INDOCRYPT 2003 (İngilizce). Springer Science & Business Media. ISBN 9783540206095. 
  7. ^ "Impacket is a collection of Python classes for working with network protocols.: SecureAuthCorp/impacket". 15 Aralık 2018. 19 Kasım 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Nisan 2020 – GitHub vasıtasıyla. 
  8. ^ "Ruby C extension for the AES-CMAC keyed hash function (RFC 4493): louismullie/cmac-rb". 4 Mayıs 2016. 11 Haziran 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Nisan 2020 – GitHub vasıtasıyla. 

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.

<span class="mw-page-title-main">Transport Layer Security</span> Internet Şifreleme Protokolü

Taşıma Katmanı Güvenliği (TLS) ve onun öncülü/selefi olan Güvenli Soket Katmanı (SSL), bilgisayar ağı üzerinden güvenli haberleşmeyi sağlamak için tasarlanmış kriptolama protokolleridir. X.509 sertifikalarını kullanırlar ve bundan dolayı karşı tarafla iletişime geçeceklerin kimlik doğrulaması asimetrik şifreleme ile yapılır ve bir simetrik anahtar üzerinde anlaşılır. Bu oturum anahtarı daha sonra taraflar arasındaki veri akışını şifrelemek için kullanılır. Bu, mesaj/veri gizliliğine ve mesaj kimlik doğrulama kodları için mesaj bütünlüğüne izin verir. Protokollerin birçok versiyonu ağ tarama, elektronik mail, İnternet üzerinden faks, anlık mesajlaşma ve İnternet üzerinden sesli iletişim gibi uygulamalarda yaygın olarak kullanılmaktadır. Bu durumda/içerikte/bağlamda en önemli özellik iletme gizliliğidir. Bundan dolayı kısa süreli oturum anahtarı, uzun süreli gizli simetrik anahtardan türetilememelidir.

Döngüsel artıklık denetimi, çoğunlukla sayısal şebekelerde ve depolama cihazlarında kullanılan ve ham veride yapılan hatalı değişimleri algılayan, uygulaması kolay ve güvenliği güçlü bir hata bulma yöntemidir.

<span class="mw-page-title-main">Simetrik anahtar algoritmaları</span>

Simetrik anahtar algoritmaları aynı ya da benzer kripto-grafik şifreleri kullanarak hem şifreleme hem de deşifreleme yapan bir kripto-grafik algoritma grubudur. Şifreler ya birebir aynı ya da basit bir yöntemle birbirine dönüştürülebilir olmalıdır. Pratikte anahtarlar gizli bağlantının devam ettirilmesinde kullanılan iki ya da daha fazla taraf ile paylaşılmış bir şifreyi temsil ederler. Açık anahtarlı şifrelemeye göre ana dezavantajlarından biri iki partinin de gizli anahtara erişiminin olması gerekliliğidir.

Kriptografide çalışma kipleri, bir blok şifrenin tek bir anahtar altında güvenli bir şekilde tekrarlı kullanımına olanak veren yöntemlerdir. Değişken uzunluktaki mesajları işlemek için veriler ayrı parçalara bölünmelidir. Son parça şifrenin blok uzunluğuna uyacak şekilde uygun bir tamamlama şeması ile uzatılmalıdır. Bir çalışma kipi bu bloklardan her birini şifreleme şeklini tanımlar ve genellikle bunu yapmak için ilklendirme vektörü (IV) olarak adlandırılan rastgele oluşturulmuş fazladan bir değer kullanır.

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

Kriptografide blok şifreleme, blok olarak adlandırılmış sabit uzunluktaki bit grupları üzerine simetrik anahtar ile belirlenmiş bir deterministik algoritmanın uygulanmasıdır. Blok şifreleme birçok kriptografik protokol tasarımının önemli temel bileşenlerindendir ve büyük boyutlu verilerin şifrelemesinde yaygın biçimde kullanılmaktadır.

Sayı teorisinde, asal çarpanlara ayırma bir bileşik sayının, çarpıldıklarında yine aynı sayıyı verecek şekilde, bir ve kendisi dışındaki bölenlerine ayrılması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.

Kriptolojide padding oracle atağı kriptografik bir mesaja padding(doldurma) denilen yöntemin uygulanması sonucunda ortaya çıkmaktadır. Padding (cryptography) kriptografide özellikle blok şifrelemelerde değişken uzunluktaki mesajların uzatılarak aynı blok uzunluğuna gelmesi için doldurulmasını sağlamaktadır. Açık anahtarlamalı yapılarda da kullanılmaktadır. Oracle, kriptografide bir testin başarılı olup olmadığını gösteren mekanizmaya denir. Bu mekanizma genellikle karşımıza sunucu olarak çıkmaktadır. Padding oracle atağı da, mesaj bloklarının doldurulmasının doğru olup olmamasına cevap verilmesi özelliğine dayanmaktakdır. Bu atak genellikle blok şifrelemelerde kullanılan CBC moduyla ilişkilendirilir. Ayrıca asimetrik algoritmalarda padding oracle zafiyeti olabilir.

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

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.

HMAC Tabanlı Tek Seferlik Parola algoritması (HOTP), özet-tabanlı mesaj doğrulama kodlarına (HMAC) dayanan tek seferlik parola (OTP) algoritmasıdır. Açık Kimlik Doğrulama Girişiminin (OATH) bir temel taşıdır.

<span class="mw-page-title-main">CBC-MAC</span> Doğrulama kodu oluşturma sistemi

Kriptografide, CBC-MAC, bir blok şifreleme ile mesaj kimlik doğrulama kodu oluşturmak için kullanılır. Mesaj, her blok önceki bloğun düzgün şifrelenmesine bağlı olacak şekilde, bir blok zinciri oluşturmak için CBC kipinde bir blok şifreleme algoritmasıyla şifrelenir. Bu bağlılık sayesinde, şifresiz metnin herhangi bir bitinde yapılan değişikliğin, şifrelenmiş son bloğun, blok şifreleme anahtarı bilinmeden tahmin edilmesini veya etkisiz hale getirilmesini engeller.

Kriptografide Galois / Sayaç Modu (GCM), performansı sayesinde yaygın olarak benimsenen simetrik anahtar şifreleme blok şifrelemeleri için bir çalışma modudur. Son teknoloji ürünü olan GCM, yüksek hızlı iletişim kanalları için ucuz donanım kaynakları ile üretim hızlandırabilir. Bu operasyon, hem veri doğruluğu (bütünlük) hem de gizlilik sağlamak için tasarlanmış kimliği doğrulanmış bir şifreleme algoritmasıdır. GCM, 128 bit blok boyutuna sahip blok şifreleri için tanımlanmıştır. Galois İleti Kimlik Doğrulama Kodu (GMAC), arttırımlı ileti doğrulama kodu olan GCM'in sadece kimlik doğrulama türüdür. Hem GCM hem de GMAC, başlatma vektörleri keyfi uzunlukta kabul edebilir.

<span class="mw-page-title-main">Simon (şifreleme)</span>

Simon, Haziran 2013'te Ulusal Güvenlik Ajansı (NSA) tarafından halka açık bir şekilde yayınlanmış bir hafif blok şifreleme ailesidir. Simon, donanım uygulamaları için optimize edilmişken, kardeş algoritması Speck, yazılım uygulamaları için optimize edilmiştir.

LEA, Hafif şifreleme algoritması(lea olarak da bilinir), 2013 yılında Güney Kore tarafından büyük veri ve bulut bilişim gibi yüksek hızlı ortamlarda ve ayrıca IoT cihazları ve mobil cihazlar gibi hafif ortamlarda gizlilik sağlamak için geliştirilen 128 bitlik bir blok şifrelemedir. LEA'nın 3 farklı anahtar uzunluğu vardır. 128,192 ve 256 bit. LEA, verileri çeşitli yazılım ortamlarında en yaygın olarak kullanılan blok şifresi olan AES'ten yaklaşık 1,5 ila 2 kat daha hızlı şifreler.