Benek (şifre) - Speck (cipher)

Zerre
Benek blok şifresi 0 indexing.svg
2 kelimelik anahtar takvimi ile 3 tur Speck
Genel
TasarımcılarRay Beaulieu, Douglas Shors, Jason Smith, Stefan Treatman-Clark, Bryan Weeks, Louis Wingers NSA
İlk yayınlandı2013
İle ilgiliSimon, Üç balık
Şifre ayrıntısı
Anahtar boyutları64, 72, 96, 128, 144, 192 veya 256 bit
Blok boyutları32, 48, 64, 96 veya 128 bit
YapısıARX
Mermi22–34 (blok ve anahtar boyutuna bağlı olarak)
Hız2.6 cpb (5.7 olmadan SSE ) Intel Xeon 5640 (Speck128 / 128) üzerinde
En iyi halk kriptanaliz
Tam şifrelere yönelik hiçbir saldırı bilinmemektedir, ancak azaltılmış yuvarlak sürümler saldırıya uğramıştır. Diferansiyel kriptanaliz çoğu varyantın turlarının yaklaşık% 70-75'ini kaba kuvvetten biraz daha hızlı kırabilir[1][2]; görmek #Kriptanaliz.

Zerre hafif bir ailedir blok şifreleri tarafından halka açık Ulusal Güvenlik Ajansı (NSA) Haziran 2013'te.[3] Speck, yazılım uygulamalarında performans için optimize edilmiştir, kardeş algoritması ise Simon, donanım uygulamaları için optimize edilmiştir. Speck bir ekle-döndür-xor (ARX) şifresi.

NSA, 2011 yılında Simon ve Speck şifreleri üzerinde çalışmaya başladı. Teşkilat, ABD federal hükümetindeki bazı kurumların, çeşitli koleksiyonlarda iyi işleyecek bir şifreye ihtiyaç duyacağını tahmin etti. Nesnelerin interneti kabul edilebilir bir güvenlik seviyesini korurken cihazlar.[4]

Şifre açıklaması

Speck, çeşitli blok ve anahtar boyutlarını destekler. Bir blok her zaman iki kelimedir, ancak kelimeler 16, 24, 32, 48 veya 64 bit boyutunda olabilir. Karşılık gelen anahtar 2, 3 veya 4 kelimedir. Round işlevi, soldaki sözcüğe sağ sözcüğü ekleyerek, anahtarı soldaki sözcüğe yerleştirip ardından sol sözcüğü sağ sözcüğe ayırarak iki döndürmeden oluşur. Tur sayısı aşağıdaki gibi seçilen parametrelere bağlıdır:[3]

Blok boyutu (bit)Anahtar boyutu (bit)Mermi
2×16 = 324×16 = 6422
2×24 = 483×24 = 7222
4×24 = 9623
2×32 = 643×32 = 9626
4×32 = 12827
2×48 = 962×48 = 9628
3×48 = 14429
2×64 = 1282×64 = 12832
3×64 = 19233
4×64 = 25634

anahtar program ana blok şifresiyle aynı yuvarlak işlevi kullanır.

Referans Kodu

Aşağıdakiler, tasarımcıların referans uygulamasıdır. C, 128-bit blok boyutuna ve anahtarına sahip Speck varyantının, burada anahtar = (K [1], K [0]). Onlardan uyarlanmıştır. IACR ePrint.[3]

#Dahil etmek <stdint.h># tanım ROR (x, r) ((x >> r) | (x << (64 - r)))# tanım ROL (x, r) ((x << r) | (x >> (64 - r)))# tanımla R (x, y, k) (x = ROR (x, 8), x + = y, x ^ = k, y = ROL (y, 3), y ^ = x)#define ROUNDS 32geçersiz şifrelemek(uint64_t ct[2],             uint64_t sabit pt[2],                         uint64_t sabit K[2]){   uint64_t y = pt[0], x = pt[1], b = K[0], a = K[1];   R(x, y, b);   için (int ben = 0; ben < YUVARLAKLAR - 1; ben++) {      R(a, b, ben);      R(x, y, b);   }   ct[0] = y;   ct[1] = x;}

Bu kodun yuvarlak tuşları (anahtar program ) Talep üzerine. Pratikte, diğer blok şifrelerinde olduğu gibi, uygulamaların yuvarlak anahtarları şifrelenmiş veya şifresi çözülmüş her blok için yeniden hesaplamak yerine yalnızca bir kez hesaplaması ve önbelleğe alması yaygındır. Yazarların belirttiği gibi, "Küçük kod boyutunun tasarımın ana hedeflerinden biri olduğu göz önüne alındığında, yuvarlak anahtar üretimi için yuvarlak işlevi yeniden kullanmak mantıklıydı. Bu yaklaşım, mikro denetleyici uygulamaları için anında yuvarlak anahtar oluşturmayı mümkün kılıyor, sadece yuvarlak işlev kodu, çok az ROM ve anahtarı ve düz metni tutmak için gerekenin ötesinde RAM kullanmadan. " [5]

16 bit sözcükler (Speck32) için, döndürmeler 7 bit sağa ve 2 bit soldadır; diğer tüm kelime boyutları için, burada gösterildiği gibi 8 ve 3'tür.

Anahtar 2 kelimeden uzunsa, 2 veya 3 kelime vardır a rotasyonda kullanılan değerler.

Aşk

Orijinal Speck kağıdı, endianness düz metin bloğu şifre algoritmasında kullanılan iki kelime olarak yorumlandığında bayt sayısı. Makalede verilen test vektörleri, büyük endian düzenini gösteriyor. Bununla birlikte, algoritmanın yazarları bazı uygulayıcılara[6] bu küçük endian bayt sırası anahtarlar, düz metin ve şifreli metin için kullanılacaktı ve uygulama başkaları tarafından kabul edildi.[7]

Verim

Göre ECRYPT Akış şifreleme kıyaslamaları (eBASC), Speck hem uzun hem de kısa mesajlar için mevcut en hızlı şifrelerden biridir. Uzun mesajlar için bazı ortalama performanslar (128 bit, 128 blok boyutlu versiyon): 1,99 bayt başına döngü (cpb) bir AMD Ryzen 7 1700 üzerinde; Intel Core i5-6600'de 1,27 cpb; Broadcom BCM2836 Cortex A7'de 15.96 cpb.[8] Örneğin, ARMv7 platformdan yaklaşık 3 kat daha hızlıdır. AES.[9]

8-bit AVR mikro denetleyicisine uygulandığında, 64-bit bloklar ve 128-bit anahtarlı Speck şifreleme, 192 bayt Flash tüketir, geçici değişkenler 112 bayt RAM tüketir ve bloktaki her bir baytı şifrelemek için 164 döngü alır.[10]

Salsa20 bir kesintisiz şifreleme karşılaştırılabilir performansla, ancak Speck gibi blok şifrelerinin iyi çalıştığı bazı uygulamalarda akış şifrelerini güvenli bir şekilde kullanmak zordur. Bu, Google'ın, düşük uçta disk şifreleme seçeneği olarak sunmayı planlayarak, Linux çekirdeği sürüm 4.17'de Speck'in bir uygulamasını eklemesine neden oldu. Android eksik işlemcilerdeki yavaş AES performansı nedeniyle aksi takdirde şifrelenmemiş olacak cihazlar AES talimatları.[11][12] Speck daha sonra geri tepme ve endişeler nedeniyle Linux çekirdeğinden çıkarıldı ve Google, Adiantum algoritması yerine.[13][14][15]

Güvenlik

Kriptanaliz

Tasarımcılar, Speck'in "hafif" bir şifre olmasına rağmen, standartlara kıyasla her blok ve anahtar boyutu için mümkün olan tam güvenliğe sahip olacak şekilde tasarlandığını iddia ediyor. seçili düz metin (EBM) ve seçilmiş şifreli metin (CCA) saldırılar. Karşı direnç ilgili anahtar saldırılar bu modeldeki saldırılar tipik kullanım durumlarıyla ilgili olmadığından daha az önemli olmasına rağmen, bir hedef olarak da belirtildi.[16]:2 Bölgedeki saldırılara direnmek için hiçbir çaba gösterilmedi. bilinen anahtar ayırt edici saldırı tasarımcılar da Speck'i bir Özet fonksiyonu.[3]:8

2018 itibariyle, herhangi bir varyantın tam kapsamlı Speck'ine başarılı bir saldırı bilinmemektedir. Simon ve Speck'e olan ilgiden dolayı, üzerlerinde yaklaşık 70 kriptanaliz makalesi yayınlandı.[16]:10 Tipik olduğu gibi yinelenen şifreler, azaltılmış raund varyantları başarıyla saldırıya uğradı. Standart saldırı modelinde (bilinmeyen anahtarla CPA / CCA) Speck'e yönelik yayınlanan en iyi saldırılar: diferansiyel kriptanaliz saldırılar; bunlar, çoğu varyantın turlarının yaklaşık% 70-75'ini geçmesini sağlar, ancak bu en iyi saldırılar yalnızca marjinal olarak daha hızlıdır kaba kuvvet.[1][2][16]:12 Tasarım ekibi, Speck'i tasarlarken farklı saldırıları sınırlayıcı saldırılar olarak gördüklerini, yani onu en çok tur atlatan saldırı türünü; daha sonra tur sayısını benzer bir güvenlik marjı bırakacak şekilde ayarlarlar AES-128 yaklaşık% 30'da.[16]:12–13

Speck'e yapılan en iyi bilinen saldırılar (standart saldırı modelinde)
VaryantMermiler saldırıya uğradıZaman karmaşıklığıVeri karmaşıklığıUzay karmaşıklığıSaldırı türü
Speck128 / 25625/34 (74%)2253.352125.35222diferansiyel[1]
Speck128 / 19224/33 (73%)2189.352125.35222diferansiyel[1]
Speck128 / 12823/32 (72%)2125.352125.35222diferansiyel[1]
Speck96 / 14421/29 (72%)2143.94295.94222diferansiyel[1]
Speck96 / 9620/28 (71%)295.94295.94222diferansiyel[1]
Speck64 / 12820/27 (74%)2125.56261.56222diferansiyel[1]
Speck64 / 9619/26 (73%)293.56261.56222diferansiyel[1]
Speck48 / 9617/23 (74%)295.8247.8222diferansiyel[2]
Speck48 / 7216/22 (73%)271.8247.8222diferansiyel[2]
Speck32 / 6415/22 (68%)263.39231.39222diferansiyel[2]

Speck, çok küçük bir güvenlik marjına sahip olduğu için eleştirildi, yani en iyi saldırılar ile tam şifre arasında çok az tur, gibi daha muhafazakar şifrelere kıyasla ChaCha20.[17]Küçük güvenlik marjlarına sahip şifrelerin gelecekteki ilerlemelerle kırılma olasılığı daha yüksektir. kriptanaliz. Speck'in tasarım ekibi, özellikle hafif cihazlarda gereksiz yere büyük güvenlik marjlarının gerçek dünyada bir maliyeti olduğunu, tasarım aşamasında kriptanalizin tur sayısının uygun şekilde ayarlanmasına izin verdiğini ve AES'nin güvenlik marjını hedeflediklerini söylüyor.[16]:17

Speck, içinde yuvarlak bir sayaç içerir. anahtar program. Tasarımcılar bunun bloğa dahil edildiğini belirtiyor kaymak ve rotasyonel kriptanaliz saldırılar.[16]:16 Yine de, rotasyonel-XOR kriptanalizi bulmak için kullanılmıştır. ayırt ediciler Speck'in azaltılmış yuvarlak sürümlerine karşı.[18] Yazarlar, standart anahtar kurtarma saldırılarını ayırt edici özelliklerine göre tanımlamasa da, en iyi ayırt edici özellikleri, bilinen anahtar ayırt edici saldırı modelindeki Speck32 ve Speck48 zayıf anahtar sınıflar, en iyi ayırt edici ayırt edicilerden biraz daha fazla tur atlatır. Yazarlardan biri, araştırmasının kaynak kısıtlı olduğunu ve daha fazla turda rotasyonel-XOR ayırıcılarının muhtemelen mümkün olduğunu söyledi.[19] Bununla birlikte, bu tür bir kriptanaliz, ilişkili anahtar hatta bilinen anahtar saldırı modelleri[18], tipik kriptografik protokollerde ve çözümlerde sorun olmayan.[20]:8 Tasarımcılar ayrıca Speck'in bilinen anahtar ayırt etme saldırılarına (şifrelerin gizliliğini doğrudan tehlikeye atmayan) direnecek şekilde tasarlanmadığını da belirtiyorlar.[3]:8

Tasarımcılar, NSA kriptanalizinin algoritmaların zayıf yönleri olmadığını ve güvenliğin anahtar uzunluklarıyla orantılı olduğunu belirttiler.[4]:2 Tasarım ekibi, kriptanalizinin Matsui algoritması ve SAT / SMT çözücüler gibi standart teknikleri kullanan doğrusal ve diferansiyel kriptanalizi içerdiğini söylüyor, ancak kullanılan tekniklerin tam listesi verilmemiştir.[16]:10 Speck'in tasarımcıları, şifrelerin NSA kriptanalizi hakkında daha fazla ayrıntı sağlamadıkları için eleştirildi.[19]

NSA, Simon128 / 256 ve Speck128 / 256'yı ABD Ulusal Güvenlik Sistemlerinde kullanılmak üzere onaylamıştır, ancak AES-256, kısıtlanmamış uygulamalar için hala tavsiye edilmektedir.[21]

Yan kanal saldırıları

Olmak ARX ​​şifresi, Speck kullanmaz S kutuları veya diğer arama tabloları; bu nedenle doğal olarak bağışıktır önbellek zamanlama saldırıları.[4]:12 Bu, arama tabloları kullanan şifrelerle tezat oluşturuyor. AES, bu tür saldırılara karşı savunmasız olduğu görülmüştür. Bununla birlikte, çoğu blok şifresi gibi (AES dahil) Speck, güç analizi donanıma karşı önlemler alınmadığı sürece saldırılar.[22][4]:12

Blok ve anahtar boyutları

Speck şifreleme ailesi, aynı blok ve anahtar boyutlarına sahip varyantlar içermesine rağmen AES (Speck128 / 128, Speck128 / 192 ve Speck128 / 256), 32 bit kadar düşük blok boyutuna ve 64 bit kadar düşük anahtar boyutuna sahip varyantları da içerir. Bu küçük blok ve anahtar boyutları, izin verdikleri için genel kullanım için güvensizdir. doğum günü saldırıları ve kaba kuvvet saldırıları Şifrenin resmi güvenliğinden bağımsız olarak.[23] Tasarımcılar, bu blok ve anahtar boyutlarının, daha iyi hiçbir şeyin mümkün olmadığı veya yalnızca çok küçük miktarlarda verilerin şifrelenmiş olduğu, yüksek düzeyde kaynak kısıtlı cihazlar için dahil edildiğini belirtmektedir. içinde RFID protokoller.[4]:2–3 Yalnızca 128 bitlik blok boyutuna ve 256 bit anahtar boyutuna sahip varyant, ABD Ulusal Güvenlik Sistemlerinde kullanım için onaylanmıştır.[21]

Standardizasyon çabaları ve tartışmalar

Simon ve Speck'i standartlaştırmaya yönelik ilk girişimler karşılanamadı Uluslararası Standardizasyon Örgütü sürecin gerektirdiği süper çoğunluk ve şifreler kabul edilmedi.[24][19] ISO'nun Almanya, Japonya ve İsrail de dahil olmak üzere birçok ülkeden uzman delegeleri, NSA'nın standartlaştırma çabalarına karşı çıktılar. Simon ve Speck şifreleri, NSA'nın şifrelerdeki istismar edilebilir zayıflıklar bilgisiyle standardizasyonu için bastırdığına dair endişelerini aktarıyor. Pozisyon, şifrelerdeki zayıflıkların kısmi kanıtlarına, yeni şifrelerin standartlaştırılmasına yönelik net bir ihtiyaç olmamasına ve NSA'nın arka kapıların oluşturulması ve tanıtılmasına önceki katılımına dayanıyordu. Dual_EC_DRBG kriptografik algoritma.[25]

Endişelere yanıt olarak, NSA, dünyanın önde gelen kriptograflarından bazılarının 70'den fazla güvenlik analizi belgesinin, NSA'nın algoritmaların güvenli olduğu sonucunu desteklediğini ve NSA, kendilerine veya başkalarına izin verecek herhangi bir kriptanalitik tekniğin farkında olmadığını doğruladığını belirtti. Simon veya Speck'i sömürmek[26][kaynak belirtilmeli ]

Şifreleri standartlaştırma girişimleri başarısız olduktan sonra, ISO Simon ve Speck'i diğer çalışma gruplarında standartlaştırdı. Ekim 2018 itibarıyla Simon ve Speck şifreleri, RFID hava arayüzü standardının, Uluslararası Standart ISO / 29167-21 (Simon için) ve Uluslararası Standart ISO / 29167-22'nin (Speck için) bir parçası olarak ISO tarafından standardize edilmiştir. ticari kuruluşlar tarafından kullanılabilir.[kaynak belirtilmeli ]

7 Ağustos 2018'de Speck, Linux çekirdeği 4.20 tamamen yayın.[15]

Referanslar

  1. ^ a b c d e f g h ben Ling, Şarkı; Huang, Zhangjie; Yang, Qianqian (2016-06-30). "SPECK ve LEA'ya Uygulama ile ARX Blok Şifrelerinin Otomatik Diferansiyel Analizi" (PDF). Alındı 2018-05-06.
  2. ^ a b c d e Lee, HoChang; Kim, Seojin; Kang, HyungChul; Hong, Deukjo; Sung, Jaechul; Hong, Seokhie (Şubat 2018). "SAT Çözücü Kullanarak ARX Tabanlı Şifreleme için Diferansiyellerin Yaklaşık Olasılığını Hesaplama". Kore Bilgi Güvenliği ve Kriptoloji Enstitüsü Dergisi (Korece'de). 28 (1): 15–24. doi:10.13089 / JKIISC.2018.28.1.15.
  3. ^ a b c d e Beaulieu, Ray; Shors, Douglas; Smith, Jason; Treatman-Clark, Stefan; Haftalar, Bryan; Wingers, Louis (2013-06-19). "Hafif Blok Şifrelerin SIMON ve SPECK Aileleri". Alındı 2016-09-20.
  4. ^ a b c d e Beaulieu, Ray; Shors, Douglas; Smith, Jason; Treatman-Clark, Stefan; Haftalar, Bryan; Kanat, Louis (2015-07-09). "Simon and Speck: Nesnelerin İnterneti için Blok Şifreleri" (PDF). Alındı 2017-11-23.
  5. ^ "Simon and Speck'in tasarımı ve analizi üzerine notlar" (PDF). eprint.iacr.org. Alındı 2018-04-26.
  6. ^ "Re: [PATCH 0/5] kripto: Speck desteği". www.mail-archive.com. Alındı 2018-04-12.
  7. ^ "SPECK - Crypto ++ Wiki". www.cryptopp.com. Alındı 2018-04-12.
  8. ^ "Akım Şifrelerinin ECRYPT Kıyaslaması". Alındı 22 Haziran 2017.
  9. ^ "Linux Şifreleme - Re: [PATCH v2 0/5] kripto: Speck desteği". www.spinics.net. Alındı 2018-08-06.
  10. ^ "The Simon and Speck Block Ciphers on AVR 8-bit Microcontrollers" (PDF). Alındı 25 Eylül 2017.
  11. ^ "crypto: speck - Speck blok şifresi için destek ekleyin". 2018-02-14. Alındı 2019-01-11.
  12. ^ "NSA'nın Linux Kernel 4.17'deki Şifreleme Algoritması Kullanıcıları Karışık Bırakıyor | FOSS". Bu FOSS. 2018-08-04. Alındı 2018-08-06.
  13. ^ "Tartışmalı Speck Şifreleme Kodu Gerçekten de Linux Çekirdeğinden Çıkarılacak - Phoronix". www.phoronix.com. 2018-09-04. Alındı 2018-12-08.
  14. ^ "Adiantum, Google'ın Speck Değişimi Olarak Linux 4.21'in Önünde Sıraya Aldı". www.phoronix.com. 2018-11-29. Alındı 2019-01-11.
  15. ^ a b "kernel / git / herbert / cryptodev-2.6.git - Crypto API Dev". git.kernel.org. Alındı 2018-12-08.
  16. ^ a b c d e f g "Simon and Speck'in tasarımı ve analizi üzerine notlar" (PDF). 2018-01-19. Alındı 2018-06-13.
  17. ^ Bernstein, Daniel J. [@hashbreaker] (2016-04-12). "NSA, Simon + Speck'in% 70'inin kırılmasının sorun olmadığını iddia ediyor" (Cıvıldamak). Alındı 2018-06-13 - üzerinden Twitter.
  18. ^ a b Liu, Yunwen; De Witte, Glenn; Ranea, Adrián; Ashur, Tomer (2017). "Reduced-round SPECK'in Rotasyonel-XOR Kriptanalizi" (PDF). Alındı 2018-06-13.
  19. ^ a b c Ashur, Tomer. "[PATCH v2 0/5] kripto: Speck desteği".
  20. ^ Bernstein, Daniel J. (2015-04-27). "Salsa20 güvenliği" (PDF). Alındı 2018-06-13.
  21. ^ a b Ulusal Güvenlik Teşkilatı (2016-11-18). "Bilgi Güvencesi İhtiyaçlarının Evrimini Destekleyecek Algoritmalar".
  22. ^ Gamaarachchi, Hasindu; Ganegoda, Harsha; Ragel, Roshan (2017-07-20). "Korelasyon gücü analizi saldırısını kullanan Breaking Speck şifreleme sistemi". Sri Lanka Ulusal Bilim Vakfı Dergisi. 45 (4): 393–404. doi:10.4038 / jnsfsr.v45i4.8233. Alındı 2018-06-13.
  23. ^ Bhargavan, Karthikeyan; Leurent, Gaëtan (2016). 64-bit Blok Şifrelerin Pratik (İç) Güvenliği Hakkında: TLS ve OpenVPN üzerinden HTTP'de Çarpışma Saldırıları (PDF). Bilgisayar ve İletişim Güvenliği ACM Konferansı. s. 456–467. doi:10.1145/2976749.2978423.
  24. ^ Speck ve Simon'ın ISO standardizasyonundan neden reddedildiğine dair bir bakış açısı
  25. ^ "Güvenmeyen ABD müttefikleri, casus teşkilatını şifreleme savaşında geri adım atmaya zorluyor".
  26. ^ Simon and Speck Bilgi Kağıdı