İçeriğe atla

Speck (şifreleme)

Speck

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

NSA, 2011 yılında Simon ve Speck şifreleri üzerinde çalışmaya başlamıştır. Ajans, ABD federal hükûmetindeki bazı ajansların kabul edilebilir bir güvenlik seviyesinde, çeşitli Nesnelerin İnterneti cihazlarında iyi çalışacak bir şifreleme algoritmasına ihtiyaç duyacağını öngörmüştür.[2]

Şifrenin tanımı

Speck çeşitli blok ve anahtar boyutlarını desteklemektedir. Bir blok her zaman iki kelimeden oluşmaktadır, ancak kelime boyutları 16, 24, 32, 48 veya 64 bit olabilirler. Karşılık gelen anahtarlar 2, 3 veya 4 kelimedir. Her tur, sağ kelimenin sol kelimeye eklenmesi, anahtarın sol kelime ile XOR'lanması, sonra da sol tarafın sağ taraf ile XOR'lanması olmak üzere iki yönlüdür. Tur sayısı aşağıdaki parametrelere bağlıdır:[1]

Blok boyutu (bit) Anahtar boyutu (bit) Tur sayısı
2 × 16 = 32 4 × 16 = 64 22
2 × 24 = 48 3 × 24 = 72 22
4 × 24 = 96 23
2 × 32 = 64 3 × 32 = 96 26
4 × 32 = 128 27
2 × 48 = 96 2 × 48 = 96 28
3 × 48 = 144 29
2 × 64 = 128 2 × 64 = 128 32
3 × 64 = 192 33
4 × 64 = 256 34

Anahtar çizelgesi, ana blok şifresi ile aynı tur fonksiyonunu kullanır.

Referans Kodu

Aşağıda tasarımcıların önermiş olduğu, 128 bit blok boyutu ve anahtarı olan Speck varyantının C ile yazılmış kodu bulunmaktadır. Burada anahtar = (K [1], K [0]). IACR ePrint'lerinden uyarlanmıştır.[1]

#include <stdint.h>

#define ROR(x, r) ((x >> r) | (x << (64 - r)))
#define ROL(x, r) ((x << r) | (x >> (64 - r)))
#define R(x, y, k) (x = ROR(x, 8), x += y, x ^= k, y = ROL(y, 3), y ^= x)
#define ROUNDS 32

void encrypt(uint64_t ct[2],
       uint64_t const pt[2],      
       uint64_t const K[2])
{
  uint64_t y = pt[0], x = pt[1], b = K[0], a = K[1];

  R(x, y, b);
  for (int i = 0; i < ROUNDS - 1; i++) {
   R(a, b, i);
   R(x, y, b);
  }

  ct[0] = y;
  ct[1] = x;
}

Bu kodun tur anahtarlarını (Anahtar Çizelgesi) istek üzerine hesapladığını unutmayın. Genelde, diğer blok şifrelemelerde olduğu gibi, tur anahtarları her blok için tekrar tekrar hesaplanmak yerine, bir defa hesaplanıp gerektiğinde kullanılmak üzere saklanmaktadır.

16 bit kelimeler için (Speck32), 7 bit sağa ve 2 bit sol kaydırılmaktadır. Diğer tüm kelime boyutları için, burada kullanıldığı gibi 8 ve 3'tür.

Eğer anahtar 2 kelimeden uzunsa, kaydırmalarda kullanılan 2 veya 3 a değeri vardır.

Endian

Orijinal Speck makalesinde, düz metin bloğu, iki kelime olarak ele alındığı durumlarda bayt sırası açıkça belirtilmemiştir. Makalede verilen test vektörleri big-endian sıralamasındadır. Bununla birlikte, makalenin yazarları, bazı geliştiricilere [3] anahtarların, düz metinin ve şifreli metinin little-endian olması gerektiğini önermiştir. Bu öneri diğer geliştiriciler tarafından da dikkate alınmıştır.[4]

Kaynakça

  1. ^ a b c "The SIMON and SPECK Families of Lightweight Block Ciphers". 19 Haziran 2013. 3 Eylül 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Eylül 2016. 
  2. ^ "Simon and Speck: Block Ciphers for the Internet of Things" (PDF). 9 Temmuz 2015. 1 Aralık 2017 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 23 Kasım 2017. 
  3. ^ "Re: [PATCH 0/5] crypto: Speck support". www.mail-archive.com (İngilizce). 13 Nisan 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Nisan 2018. 
  4. ^ "SPECK – Crypto++ Wiki". www.cryptopp.com (İngilizce). 13 Nisan 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Nisan 2018. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">AES</span> Şifreleme standartı

AES, elektronik verinin şifrelenmesi için sunulan bir standarttır. Amerikan hükûmeti tarafından kabul edilen AES, uluslararası alanda da defacto şifreleme (kripto) standardı olarak kullanılmaktadır. DES'in yerini almıştır. AES ile tanımlanan şifreleme algoritması, hem şifreleme hem de şifreli metni çözmede kullanılan anahtarların birbiriyle ilişkili olduğu, simetrik-anahtarlı bir algoritmadır. AES için şifreleme ve şifre çözme anahtarları aynıdır.

<span class="mw-page-title-main">Şifre</span> bilginin şifrelenmesi ve şifresinin çözülmesi için algoritma

Kriptografide, bir şifre şifreleme veya şifre çözme—bir prosedür olarak izlenebilen bir dizi iyi tanımlanmış adım gerçekleştirmek için bir algoritmadır. Alternatif, daha az yaygın bir terim şifrelemedir. Şifrelemek veya kodlamak, bilgiyi şifreye veya koda dönüştürmektir. Yaygın kullanımda "şifre", "kod" ile eş anlamlıdır, çünkü her ikisi de bir mesajı şifreleyen bir dizi adımdır; ancak kriptografide, özellikle klasik kriptografide kavramlar farklıdır.

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

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">Dizi şifresi</span> simetrik anahtar şifreleme metodu

Kriptografide, bir kesintisiz şifreleme, dizi şifresi veya akış şifresi bir simetrik anahtardır. Düz metin bitlerinin bir exclusive-or (XOR) işlemi kullanılarak bir sözde rastgele şifre bit akışı ile birleştirildiği şifrelemedir. Bir akış şifresinde düz metin sayısal basamakları her seferinde bir tane şifrelenir ve ardışık basamakların dönüşümü şifreleme durumu sırasında değişir. Her bir basamağın şifrelenmesi mevcut duruma bağlı olduğundan alternatif bir isim durum şifresidir. Pratikte, basamaklar tipik olarak tek bitler veya baytlardır.

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.

<span class="mw-page-title-main">Uluslararası Veri Şifreleme Algoritması</span>

Uluslararası Veri Şifreleme Algoritması (IDEA), 1991 yılında Xuejia Lai ve James Massey tarafından tasarlanmış bir blok şifreleme algoritmasıdır. Bilinen en güçlü algoritmalardandır.

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.

Kriptografide En İyi Asimetrik Şifreleme Doldurması (OAEP), bir doldurma (padding) şemasıdır ve sık sık RSA şifreleme ile birlikte kullanılır. OAEP, Bellare ve Rogaway tarafından tanıtılmıştır, ve daha sonra standart olarak PKCS#1 v2 ve RFC 2437'de yer verildi.

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

Kriptografide, ilklendirme vektörü kısaca İV ya da ilklendirme değişkeni, tipik olarak rastgele veya sözde rassal olması gereken bir şifreleme temelinin sabit boyuta sahip olan girdisidir. Bu rastgelelik, şifreleme işlemlerinde anlamsal güvenliği sağlamak için çok önemlidir. Anlamsal güvenlik tek bir şifreleme yönteminin aynı anahtar ile tekrar tekrar kullanılmasının şifrelenmiş mesajın bölümleri arasındaki ilişkileri çıkarmasına izin vermediği bir özelliktir. Blok şifreleri için, İV kullanımı çalışma kipleri ile açıklanmaktadır. Ayrıca, evrensel hash fonksiyonları ve buna dayanan mesaj kimlik doğrulama kodları gibi diğer temel öğeler için de rastgeleleştirme gereklidir.

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

Kriptografide RC5, basitliği ile dikkat çeken simetrik - anahtar blok şifresidir. 1994 yılında Ronald Rivest tarafından tasarlanmıştır. RC, "Rivest Cipher" veya bir başka seçenek olarak "Ron's Code" anlamına gelmektedir. Gelişmiş Şifreleme Standardı(AES) adayı RC6 ve RC5 blok şifrelerine dayanıyordu.

<span class="mw-page-title-main">GOST (blok şifresi)</span>

GOST 28147-89 standardında tanımlanan GOST blok şifresi (Magma), blok boyutu 64 bit olan bir Sovyet ve Rus hükûmeti standardı simetrik anahtar blok şifresidir. 1989'da yayınlanan orijinal standart, şifreye herhangi bir isim vermemiştir, ancak standardın en son revizyonu olan GOST R 34.12-2015, bunun Magma olarak adlandırılabileceğini belirtir. GOST karma işlevi bu şifreye dayanmaktadır. Yeni standart ayrıca Kuznyechik adlı yeni bir 128 bitlik blok şifrelemeyi de belirtir.

Prince (şifre), düşük gecikmeli, kontrolsüz donanım uygulamalarını hedefleyen bir blok şifredir. Sözde FX yapısına dayanmaktadır. En dikkate değer özelliği "alfa yansımasıdır": Şifre çözme, hesaplanması çok ucuz olan bir anahtarla şifrelemedir. Diğer "hafif" şifrelerin çoğundan farklı olarak az sayıda tura sahiptir ve bir turu oluşturan katmanların mantık derinliği düşüktür. Sonuç olarak, tamamen kontrolsüz uygulama AES veya PRESENT'ten çok daha yüksek frekanslara ulaşabilir. Yazarlara göre aynı zaman kısıtlamaları ve teknolojiler için Prince, PRESENT- 80'den 6-7 kat ve AES 128' den 14-15 kat daha az alan kullanır.

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

Kriptografide RC6, RC5'ten türetilen simetrik bir anahtar bloğu şifresidir. Gelişmiş Şifreleme Standardı AES yarışmasının gerekliliklerini karşılamak için Ron Rivest, Matt Robshaw, Ray Sidney ve Yiqun Lisa Yin tarafından tasarlanmıştır. Algoritma bu yarışmada beş finalistten biriydi ve NESSIE ve CRYPTREC projelerine de gönderilmişti. RSA Security'nin patenti olan tescilli bir algoritmadır. Yapısal olarak basit ve günümüzde hala güvenli olarak nitelendirilmektdir.

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

Kriptografide DES-X, DES simetrik anahtar blok şifresinin, anahtar beyazlatma adı verilen bir teknik kullanarak kaba kuvvet saldırısının karmaşıklığını artırmayı amaçlayan bir varyantıdır.

Kriptografide, bilinir anahtarlı ayırt edici saldırı, simetrik/bakışımlı şifrelemelere karşı bir saldırı modelidir; böylece anahtarı bilen bir saldırgan, düz metinden şifreleme metnine dönüşümün rastgele olmadığı şifrelemede yapısal bir özellik bulabilir. Böyle bir dönüşümün ne olabileceğine dair ortak bir biçimsel tanım yoktur. Seçilmiş anahtarlı ayırt edici saldırı, saldırganın bu tür dönüşümleri tanıtmak için bir anahtar seçebileceği kuvvetle ilişkilidir.

Kriptografide Lucifer, Horst Feistel ve IBM'deki meslektaşları tarafından geliştirilen en eski sivil blok şifrelerin birçoğuna verilen addı. Lucifer, Veri Şifreleme Standardının doğrudan öncüsüydü. Alternatif olarak DTD-1 olarak adlandırılan bir sürüm, 1970'lerde elektronik bankacılık için ticari kullanım gördü.

Kriptografide klasik şifre, tarihsel olarak kullanılmış ancak çoğunlukla kullanımdan kalkmış bir şifre türüdür. Modern kriptografik algoritmaların aksine, klasik şifrelerin çoğu pratik olarak hesaplanabilir ve elle çözülebilir. Bununla birlikte, modern teknoloji ile kırılmaları da genellikle çok basittir. Bu terim Yunan ve Roma dönemlerinden beri kullanılan basit sistemleri, ayrıntılı Rönesans şifrelerini, Enigma makinesi gibi II. Dünya Savaşı kriptografisini ve sonrasını içerir.