Şifreleme işlem modunu engelle - Block cipher mode of operation

Kriptografide, bir şifreleme işlem modunu engelle kullanan bir algoritmadır blok şifreleme sağlamak bilgi Güvenliği gibi gizlilik veya özgünlük.[1] Tek başına bir blok şifreleme, yalnızca bir sabit uzunluktaki grubun güvenli kriptografik dönüşümü (şifreleme veya şifre çözme) için uygundur. bitler deniliyor blok.[2] Bir çalışma modu, bir bloktan daha büyük veri miktarlarını güvenli bir şekilde dönüştürmek için bir şifrenin tek blok işleminin nasıl tekrar tekrar uygulanacağını açıklar.[3][4][5]

Çoğu mod, genellikle bir başlatma vektörü (IV), her şifreleme işlemi için. IV, tekrar etmeyen ve bazı modlar için rastgele olmalıdır. Başlatma vektörü, farklı olmasını sağlamak için kullanılır. şifreli metinler aynı olsa bile üretilir düz metin aynı şekilde bağımsız olarak birden çok kez şifrelenir anahtar.[6] Blok şifreler birden fazla cihazda çalışabilir blok boyutu, ancak dönüştürme sırasında blok boyutu her zaman sabittir. Blok şifreleme modları tüm bloklar üzerinde çalışır ve verilerin son kısmının yastıklı mevcut blok boyutundan daha küçükse tam bloğa.[2] Bununla birlikte, bir blok şifresini etkin bir şekilde kullandıkları için dolgu gerektirmeyen modlar vardır. kesintisiz şifreleme.

Tarihsel olarak, şifreleme modları, çeşitli veri modifikasyonu senaryoları altında hata yayılma özellikleri açısından kapsamlı bir şekilde incelenmiştir. Daha sonra gelişme dikkate alındı bütünlük koruması tamamen ayrı bir kriptografik hedef olarak. Bazı modern çalışma modları bir arada gizlilik ve özgünlük verimli bir şekilde ve şu şekilde bilinir: doğrulanmış şifreleme modlar.[7]

Tarih ve standardizasyon

En eski çalışma modları, ECB, CBC, OFB ve CFB (tümü için aşağıya bakın), 1981 yılına kadar uzanır ve FIPS 81, DES Çalışma Modları. 2001'de ABD Ulusal Standartlar ve Teknoloji Enstitüsü (NIST), onaylı çalışma modları listesini aşağıdakileri dahil ederek revize etti: AES bir blok şifresi olarak ve içinde CTR modu ekleyerek SP800-38A, Blok Şifreleme Çalışma Modları için Öneri. Son olarak, Ocak 2010'da NIST eklendi XTS-AES içinde SP800-38E, Blok Şifreleme Çalışma Modları için Öneri: Depolama Cihazlarında Gizlilik için XTS-AES Modu. NIST tarafından onaylanmamış diğer gizlilik modları mevcuttur. Örneğin, CTS şifreli metin çalma modu ve birçok popüler kriptografik kitaplıkta mevcuttur.

Blok şifreleme modları ECB, CBC, OFB, CFB, CTR ve XTS gizlilik sağlar, ancak yanlışlıkla değiştirmeye veya kötü niyetli müdahalelere karşı koruma sağlamaz. Değişiklik veya kurcalama, ayrı bir mesaj doğrulama kodu gibi CBC-MAC veya a elektronik imza. Kriptografik topluluk, adanmış bütünlük güvencelerine olan ihtiyacı anladı ve NIST, HMAC, CMAC ve GMAC ile yanıt verdi. HMAC 2002 yılında şu şekilde onaylanmıştır: FIPS 198, Anahtarlı Karma Mesaj Kimlik Doğrulama Kodu (HMAC), CMAC 2005 yılında altında yayınlandı SP800-38B, Blok Şifreleme Çalışma Modları için Öneri: Kimlik Doğrulama için CMAC Modu, ve GMAC altında 2007'de resmileştirildi SP800-38D, Blok Şifreleme Çalışma Modları için Öneri: Galois / Sayaç Modu (GCM) ve GMAC.

Kriptografik topluluk, bir gizlilik modunun bir özgünlük modu ile birleştirilmesinin (birleştirilmesinin) zor ve hataya açık olabileceğini gözlemledi. Bu nedenle, gizlilik ve veri bütünlüğünü tek bir kriptografik ilkelde (bir şifreleme algoritması) birleştiren modlar sağlamaya başladılar. Bu birleşik modlar olarak adlandırılır doğrulanmış şifreleme, AE veya "authenc". AE modlarının örnekleri şunlardır: CCM (SP800-38C ), GCM (SP800-38D ), CWC, EAX, IAPM, ve OCB.

Çalışma modları, bir dizi ulusal ve uluslararası kabul görmüş standartlar kuruluşu tarafından tanımlanır. Önemli standartlar kuruluşları şunları içerir: NIST, ISO (ISO / IEC 10116 ile[5]), IEC, IEEE, ANSI, ve IETF.

Başlatma vektörü (IV)

Bir başlatma vektörü (IV) veya başlangıç ​​değişkeni (SV)[5] şifrelemeyi rastgele hale getirmek ve dolayısıyla aynı düz metin birden çok kez şifrelenmiş olsa bile, daha yavaş bir yeniden anahtarlama işlemine gerek kalmadan farklı şifreli metinler üretmek için çeşitli modlar tarafından kullanılan bir bit bloğudur.[kaynak belirtilmeli ]

Bir başlatma vektörü, bir anahtardan farklı güvenlik gereksinimlerine sahiptir, bu nedenle IV'ün genellikle gizli olmasına gerek yoktur. Çoğu blok şifreleme modu için, bir başlatma vektörünün asla aynı anahtar altında tekrar kullanılmaması önemlidir, yani bir kriptografik nonce. Birçok blok şifreleme modunun daha güçlü gereksinimleri vardır, örneğin IV'ün rastgele veya sözde rasgele. Bazı blok şifrelerinin, tüm sıfır IV'ün şifreleme üretmemesi gibi (bazı anahtarlar için), belirli başlatma vektörleriyle belirli sorunları vardır.

İlgili spesifikasyondaki belirli blok şifreleme modu için ilgili IV gereksinimlerinin gözden geçirilmesi önerilir, örneğin SP800-38A.

CBC ve CFB için, bir IV'ü yeniden kullanmak, ilk düz metin bloğu ve iki mesaj tarafından paylaşılan herhangi bir ortak önek hakkında bazı bilgileri sızdırır.

OFB ve CTR için, IV'ün yeniden kullanılması, güvenliği bozan anahtar bit akışı yeniden kullanımına neden olur.[8] Bu, her iki modun da etkili bir şekilde düz metinle XOR'lanmış bir bit akışı oluşturduğu ve bu bit akışı yalnızca anahtara ve IV'e bağlı olduğu için görülebilir.

CBC modunda, IV tahmin edilemez olmalıdır (rastgele veya sözde rasgele ) şifreleme zamanında; özellikle, bir sonraki mesaj için IV olarak bir mesajın son şifreli metin bloğunu yeniden kullanmanın (önceden) yaygın uygulaması güvensizdir (örneğin, bu yöntem SSL 2.0 tarafından kullanılmıştır). Bir saldırgan, sonraki düz metin belirtilmeden önce IV'ü (veya önceki şifreli metin bloğunu) biliyorsa, daha önce aynı anahtarla şifrelenmiş bazı blokların düz metinleri hakkındaki tahminlerini kontrol edebilir (bu, TLS CBC IV saldırısı olarak bilinir) .[9]

Bazı anahtarlar için tamamı sıfır olan bir başlatma vektörü, dahili durumu tamamen sıfıra takmak için bazı blok şifreleme modları (CFB-8, OFB-8) oluşturabilir. Tümü sıfır IV ve tümü sıfır düz metin olan CFB-8 için, anahtarların 1 / 256'sının şifreleme oluşturmamasına neden olur, şifreli metin olarak düz metin döndürülür.[10] OFB-8 için, sıfır başlatma vektörünün kullanılması anahtarların 1 / 256'sı için şifreleme oluşturmaz.[11] OFB-8 şifrelemesi, etkilenen anahtarlar için şifrelenmemiş düz metni döndürür.

Bazı modlar (AES-SIV ve AES-GCM-SIV gibi), yanlış kullanıma daha dirençli olacak şekilde tasarlanmıştır, yani rastgelelik üretiminin hatalı olduğu veya saldırganın kontrolü altında olduğu senaryolara dirençlidir.

  • Sentetik Başlatma Vektörü (SIV), bir dahili IV'ü çalıştırarak Sözde Rastgele İşlev (PRF) girişinde S2V olarak adlandırılan yapı (ek veri ve düz metin), herhangi bir harici verinin IV'ü doğrudan kontrol etmesini önler. Harici olmayanlar / IV, ek bir veri alanı olarak S2V'ye beslenebilir.
  • AES-GCM-SIV, girişte (ek veri ve düz metin) POLYVAL Galois kimlik doğrulama modunu ve ardından bir AES işlemini çalıştırarak dahili bir IV sentezler.

Dolgu malzemesi

Bir blok şifreleme sabit birimler üzerinde çalışır boyut (olarak bilinir blok boyutu), ancak mesajlar çeşitli uzunluklarda gelir. Yani bazı modlar (yani ECB ve CBC ) şifrelemeden önce son bloğun doldurulmasını gerektirir. Birkaç dolgu malzemesi şemalar var. En basit olanı eklemek boş bayt için düz metin uzunluğunu blok boyutunun katına çıkarmak için, ancak düz metnin orijinal uzunluğunun kurtarılabilmesine dikkat edilmelidir; bu önemsizdir, örneğin düz metin bir C stil dizi sonu dışında boş bayt içermeyen. Orijinal olan biraz daha karmaşık DES yöntem, tek bir tane eklemek bit ardından yeterli sıfır bitler bloğu doldurmak için; mesaj bir blok sınırında biterse, bütün bir dolgu bloğu eklenecektir. En karmaşık olanlar, CBC'ye özgü şemalardır. şifreli metin çalma veya artık blok sonlandırma, bazı ek karmaşıklık pahasına fazladan şifreli metne neden olmaz. Schneier ve Ferguson her ikisi de basit olan iki olasılık önerin: 128 (onaltılık 80) değerine sahip bir bayt ekleyin, ardından son bloğu doldurmak için gerektiği kadar sıfır bayt ekleyin veya son bloğu doldurun n tümü değer içeren bayt n.

CFB, OFB ve CTR modları, modlar şu şekilde çalıştığından, uzunlukları blok boyutunun katları olmayan mesajları işlemek için herhangi bir özel önlem gerektirmez. ÖZELLEŞTİRME blok şifresinin çıktısıyla birlikte düz metin. Düz metnin son kısmi bloğu, son satırın ilk birkaç baytı ile XORed anahtar akışı blok, son kısmi düz metin bloğu ile aynı boyutta bir son şifreli metin bloğu üretir. Akış şifrelerinin bu özelliği, onları şifrelenmiş şifreli metin verilerinin orijinal düz metin verileriyle aynı boyutta olmasını gerektiren uygulamalar için ve dolgu baytları eklemenin sakıncalı olduğu akış biçiminde veri ileten uygulamalar için uygun hale getirir.

Ortak modlar

Ek veri (AEAD) modlarıyla kimliği doğrulanmış şifreleme

Bir araya getirmek için bir dizi çalışma modu tasarlanmıştır gizlilik ve kimlik doğrulama tek bir şifreleme ilkelinde. Bu tür modların örnekleri şunlardır: genişletilmiş şifreleme bloğu zincirleme (XCBC)[açıklama gerekli ],[12] bütünlüğe duyarlı şifre bloğu zincirleme (IACBC)[açıklama gerekli ], bütünlüğe duyarlı paralelleştirilebilir mod (IAPM),[13] OCB, EAX, CWC, CCM, ve GCM. Kimliği doğrulanmış şifreleme modlar, tek geçişli modlar veya çift geçişli modlar olarak sınıflandırılır. Bazı tek geçiş doğrulanmış şifreleme gibi algoritmalar OCB modu patentler patentlerle doludur, diğerleri ise bu tür bir engelden kaçınmak için özel olarak tasarlanmış ve serbest bırakılmıştır.

Ek olarak, bazı modlar şifrelenmemiş ilişkili verilerin kimlik doğrulamasına da izin verir ve bunlara AEAD (ilişkili verilerle doğrulanmış şifreleme) şemaları. Örneğin, EAX modu çift geçişli bir AEAD şeması iken OCB modu tek geçişlidir.

Galois / sayaç (GCM)

GCM
Galois / sayaç
Paralelleştirilebilir şifrelemeEvet
Paralelleştirilebilir şifre çözmeEvet
Rastgele okuma erişimiEvet

Galois / sayaç modu (GCM), iyi bilinen sayaç modu yeni Galois kimlik doğrulama modu ile şifreleme. Anahtar özellik, paralel hesaplamanın kolaylığıdır. Galois alanı kimlik doğrulama için kullanılan çarpma. Bu özellik, şifreleme algoritmalarından daha yüksek verim sağlar.

GCM, 128 bitlik blok boyutuna sahip blok şifreleri için tanımlanmıştır. Galois ileti kimlik doğrulama kodu (GMAC), artımlı bir ileti kimlik doğrulama kodu oluşturabilen, yalnızca kimlik doğrulama amaçlı bir GCM çeşididir. Hem GCM hem de GMAC, keyfi uzunluktaki başlatma vektörlerini kabul edebilir. GCM, paralel işlemenin tüm avantajlarından yararlanabilir ve GCM'nin uygulanması, bir talimat boru hattı veya bir donanım ardışık düzeni. CBC çalışma modu ortaya çıkar boru hattı tezgahları verimliliğini ve performansını engelleyen.

CTR'de olduğu gibi, bloklar sırayla numaralandırılır ve daha sonra bu blok numarası bir IV ile birleştirilir ve bir blok şifresi ile şifrelenir E, genellikle AES. Bu şifrelemenin sonucu daha sonra şifreli metni oluşturmak için düz metinle XORlanır. Tüm sayaç modları gibi, bu da aslında bir akış şifresidir ve bu nedenle, şifrelenmiş her akış için farklı bir IV kullanılması önemlidir.

GCM şifreleme işlemi

Şifreli metin blokları, bir polinom bu daha sonra anahtara bağlı bir noktada değerlendirilir H, kullanma sonlu alan aritmetiği. Sonuç daha sonra şifrelenerek verilerin bütünlüğünü doğrulamak için kullanılabilecek bir kimlik doğrulama etiketi üretilir. Şifrelenmiş metin daha sonra IV, şifreli metin ve kimlik doğrulama etiketini içerir.

Şifre bloğu zincirleme mesaj kimlik doğrulama kodu (CCM) içeren sayaç

Şifre bloğu zincirleme mesaj kimlik doğrulama kodlu sayaç (CBC-MAC ile sayaç; CCM) bir doğrulanmış şifreleme her ikisini de sağlamak için tasarlanmış algoritma kimlik doğrulama ve gizlilik. CCM modu yalnızca 128 bitlik blok uzunluğuna sahip blok şifreleri için tanımlanmıştır.[14][15]

Sentetik başlatma vektörü (SIV)

Sentetik başlatma vektörü (SIV), hatalı kullanıma dirençli bir blok şifreleme modudur.

SIV, bir sözde rasgele işlevi S2V kullanarak dahili bir IV sentezler. S2V, CMAC'a dayalı anahtarlı bir karmadır ve işlevin girdisi şöyledir:

  • Ek kimliği doğrulanmış veriler (sıfır, bir veya birçok AAD alanı desteklenir)
  • Düz metin
  • Kimlik doğrulama anahtarı (K1).

SIV, S2V çıktısını ve düz metni AES-CTR kullanarak şifreler ve şifreleme anahtarı (K2).

SIV, harici olmayan kimlik doğrulamalı şifrelemeyi destekleyebilir, bu durumda kimliği doğrulanmış veri alanlarından biri bu amaç için kullanılır. RFC5297[16] birlikte çalışabilirlik amaçları için kimliği doğrulanmış son veri alanının harici nonce kullanılması gerektiğini belirtir.

İki anahtarın kullanılması nedeniyle, kimlik doğrulama anahtarı K1 ve şifreleme anahtarı K2, SIV AEAD varyantları için adlandırma şemaları bazı karışıklıklara yol açabilir; örneğin AEAD_AES_SIV_CMAC_256, iki AES-128 anahtarlı AES-SIV anlamına gelir ve değil AES-256.

AES-GCM-SIV

AES-GCM-SIV bir Kullanma usulü, çalışma şekli için Gelişmiş Şifreleme Standardı benzer performans sağlayan Galois / sayaç modu yanı sıra yeniden kullanılması durumunda yanlış kullanım direnci kriptografik nonce. İnşaat tanımlanmıştır RFC 8452.[17]

AES-GCM-SIV, dahili IV'ü sentezler. POLYVAL Galois karma işlevini kullanarak ek kimliği doğrulanmış verilerin ve düz metnin bir karmasını elde eder. Karma daha sonra bir AES anahtarı şifrelenir ve kimlik doğrulama etiketi ve AES-CTR başlatma vektörü olarak kullanılır.

AES-GCM-SIV çok benzer şekilde adlandırılmış algoritmaya göre bir gelişmedir GCM-SIV, birkaç çok küçük değişiklikle (ör. AES-CTR nasıl başlatılır), ancak bu, güvenliğine pratik faydalar sağlar "Bu ek, 2 adede kadar şifrelemeye olanak tanır50 yalnızca 2 önemli sınırlamaya kıyasla aynı anahtara sahip mesajlar32 GCM-SIV ile izin verilen mesajlar. "[18]

Yalnızca gizlilik modları

Birçok çalışma modu tanımlanmıştır. Bunlardan bazıları aşağıda açıklanmıştır. Şifreleme modlarının amacı, şifrelenmiş verilerde bulunan kalıpları, açıklamanın açıklamasında gösterildiği gibi maskelemektir. ECB'nin zayıflığı.

Farklı şifreleme modları, şifre bloğundan veya diğer genel belirleyici değişkenlerden gelen çıktıları sonraki şifre bloğuna basamaklayarak desenleri maskeler. Listelenen modların girdileri aşağıdaki tabloda özetlenmiştir:

Modların özeti
ModFormüllerŞifreli metin
Elektronik kod kitabı(ECB)Yben = F (Düz Metinben, Anahtar)Yben
Şifre bloğu zincirleme(CBC)Yben = Düz Metinben XOR Şifreleme Metniben−1F (Y, Anahtar); Şifreli metin0 = IV
CBC'yi yaymak(PCBC)Yben = Düz Metinben ÖZELVEYA (Şifreli Metinben−1 XOR Düz Metniben−1)F (Y, Anahtar); Şifreli metin0 = IV
Şifre geri bildirimi(CFB)Yben = Şifreli metinben−1Düz Metin XOR F (Y, Anahtar); Şifreli metin0 = IV
Çıktı geri bildirimi(OFB)Yben = F (Yben−1, Anahtar); Y0 = F (IV, Anahtar)Düz Metin XOR Yben
Sayaç(TO)Yben = F (IV + g(ben), Anahtar); IV = jeton ()Düz Metin XOR Yben

Not: g(ben) herhangi bir deterministik işlevdir, genellikle kimlik işlevi.

Elektronik kod kitabı (ECB)

ECB
Elektronik kod kitabı
Paralelleştirilebilir şifrelemeEvet
Paralelleştirilebilir şifre çözmeEvet
Rastgele okuma erişimiEvet

Şifreleme modlarının en basiti, elektronik kod kitabı (ECB) modu (geleneksel fiziksel kod kitapları[19]). Mesaj bloklara bölünmüştür ve her blok ayrı ayrı şifrelenmiştir.

ECB encryption.svgECB decryption.svg

Bu yöntemin dezavantajı, yayılma. ECB özdeş şifrelediği için düz metin özdeş bloklar şifreli metin veri kalıplarını iyi gizlemez. ECB'nin kriptografik protokollerde kullanılması önerilmez.[20][21][22]

ECB'nin şifreli metinde düz metin veri desenlerini bırakma derecesinin çarpıcı bir örneği, ECB modu bir şifrelemeyi şifrelemek için kullanıldığında görülebilir. bitmap görüntüsü Tek tip renkli geniş alanlar kullanır. Her bireyin rengi piksel şifrelenmişse, orijinaldeki aynı renkteki piksellerin modeli şifrelenmiş versiyonda kaldığından, genel görüntü hala ayırt edilebilir.

Gerçek görüntü
ECB modu kullanılarak şifrelenmiş
ECB dışındaki modlar sözde rastgelelikle sonuçlanır
Üçüncü resim, görüntünün CBC, CTR veya diğer daha güvenli modlardan herhangi biri ile nasıl şifrelenmiş görünebileceğidir - rastgele parazitten ayırt edilemez. Üçüncü görüntünün rastgele görünümünün görüntünün güvenli bir şekilde şifrelenmesini sağlamadığını unutmayın; "Rastgele görünen" çıktılar üretecek birçok güvensiz şifreleme türü geliştirilmiştir.[kaynak belirtilmeli ]

ECB modu ayrıca, bütünlük koruması olmayan protokolleri şunlara daha duyarlı hale getirebilir: tekrar saldırıları, çünkü her bloğun şifresi tamamen aynı şekilde çözülür.[kaynak belirtilmeli ]

Şifre bloğu zincirleme (CBC)

CBC
Şifre bloğu zincirleme
Paralelleştirilebilir şifrelemeHayır
Paralelleştirilebilir şifre çözmeEvet
Rastgele okuma erişimiEvet

Ehrsam, Meyer, Smith ve Tuchman, 1976'da şifreli blok zincirleme (CBC) çalışma modunu icat etti.[23] CBC modunda, her bir düz metin bloğu ÖZEL şifrelenmeden önce önceki şifreli metin bloğu ile. Bu şekilde, her şifreli metin bloğu o noktaya kadar işlenen tüm düz metin bloklarına bağlıdır. Her mesajı benzersiz kılmak için bir başlatma vektörü ilk blokta kullanılmalıdır.

Şifre bloğu zincirleme (CBC) modu şifreleme
Şifre bloğu zincirleme (CBC) modu şifre çözme

İlk bloğun indeksi 1 varsa, CBC şifrelemesinin matematiksel formülü

CBC şifre çözme için matematiksel formül ise

Misal
2 bitlik oyuncak şifreyle CBC örneği
2 bitlik oyuncak şifreyle CBC örneği

CBC, en yaygın kullanılan çalışma modu olmuştur. Başlıca dezavantajları, şifrelemenin sıralı olması (yani paralelleştirilememesi) ve mesajın, şifre bloğu boyutunun bir katına kadar doldurulması gerekliliğidir. Bu son sorunu halletmenin bir yolu olarak bilinen yöntemdir. şifreli metin çalma. Bir düz metin veya başlatma vektöründeki (IV) tek bitlik bir değişikliğin, takip eden tüm şifreli metin bloklarını etkilediğine dikkat edin.

Yanlış IV ile şifresini çözmek, ilk düz metin bloğunun bozuk olmasına neden olur, ancak sonraki düz metin blokları doğru olacaktır. Bunun nedeni, her bloğun düz metinle değil, önceki bloğun şifreli metni ile XORlanmış olmasıdır, bu nedenle, mevcut bloğun şifresini çözmek için IV olarak kullanmadan önce önceki bloğun şifresini çözmesi gerekmez. Bu, bir düz metin bloğunun iki bitişik şifreli metin bloğundan kurtarılabileceği anlamına gelir. Sonuç olarak, şifre çözme Yapabilmek paralelleştirilebilir. Şifreli metinde bir bitlik bir değişikliğin, karşılık gelen düz metin bloğunun tamamen bozulmasına neden olduğunu ve aşağıdaki düz metin bloğundaki karşılık gelen biti tersine çevirdiğini, ancak blokların geri kalanının sağlam kaldığını unutmayın. Bu özellik farklı şekilde sömürülüyor oracle saldırıları dolgu, gibi KANİŞ.

Açık başlatma vektörleri[24] düz metne tek bir rastgele blok ekleyerek bu özellikten yararlanır. IV'ün şifre çözme rutinine iletilmesine gerek olmaması dışında şifreleme normal şekilde yapılır. IV şifre çözme ne kullanırsa kullansın, sadece rastgele blok "bozuktur". Güvenli bir şekilde atılabilir ve şifre çözme işleminin geri kalanı orijinal düz metindir.

Yayılma şifreli blok zincirleme (PCBC)
PCBC
Şifreleme bloğu zincirleme yayılıyor
Paralelleştirilebilir şifrelemeHayır
Paralelleştirilebilir şifre çözmeHayır
Rastgele okuma erişimiHayır

yayılan şifre bloğu zinciri[25] veya düz metin şifre bloğu zincirleme[26] kip, şifreli metinde küçük değişikliklerin, şifre çözme sırasında ve şifreleme sırasında süresiz olarak yayılmasına neden olacak şekilde tasarlanmıştır. PCBC modunda, her bir düz metin bloğu, şifrelenmeden önce hem önceki düz metin bloğu hem de önceki şifreli metin bloğu ile XORlanır. CBC modunda olduğu gibi, ilk blokta bir başlatma vektörü kullanılır.

Şifreleme bloğu zincirleme (PCBC) modu şifrelemesini yayma
Yayılma şifreleme bloğu zincirleme (PCBC) modu şifre çözme

Şifreleme ve şifre çözme algoritmaları aşağıdaki gibidir:

PCBC kullanılır Kerberos v4 ve ATIK, en önemlisi, ancak başka türlü yaygın değildir. PCBC modunda şifrelenmiş bir mesajda, iki bitişik şifreli metin bloğu değiş tokuş edilirse, bu sonraki blokların şifresinin çözülmesini etkilemez.[27] Bu nedenle, PCBC Kerberos v5'te kullanılmamaktadır.

Şifre geri bildirimi (CFB)

Basitleştirilmiş CFB
CFB
Şifre geri bildirimi
Paralelleştirilebilir şifrelemeHayır
Paralelleştirilebilir şifre çözmeEvet
Rastgele okuma erişimiEvet

şifre geri bildirimi (CFB) modu, en basit varyasyonunda blok şifresinin tüm çıktısını kullanmaktır. Bu varyasyonda, CBC'ye çok benzer, kendi kendini senkronize eden bir blok şifresi yapar kesintisiz şifreleme. Bu varyasyondaki CFB şifre çözme, ters yönde gerçekleştirilen CBC şifrelemesiyle neredeyse aynıdır:

CFB encryption.svgCFB decryption.svg

CFB-1, CFB-8, CFB-64, CFB-128 vb.

NIST SP800-38A, CFB'yi bit genişliğiyle tanımlar. [28] CFB modu ayrıca 1 ≤ s ≤ b olacak şekilde s ile gösterilen bir tamsayı parametresi gerektirir. Aşağıdaki CFB modunun spesifikasyonunda, her bir düz metin bölümü (Pj) ve şifreli metin bölümü (Cj) s bitlerinden oluşur. S'nin değeri bazen modun adına dahil edilir, örneğin 1 bitlik CFB modu, 8 bitlik CFB modu, 64 bitlik CFB modu veya 128 bitlik CFB modu.

Bu modlar, temeldeki blok şifresinin çıktısını kesecektir.

CFB-1, kendi kendini senkronize eden ve şifreli metin kaybına dayanıklı olarak kabul edilir; "1 bitlik CFB modu kullanıldığında, senkronizasyon, eklenen veya silinen bitten sonra otomatik olarak b + 1 konumlarına geri yüklenir. CFB modundaki diğer s değerleri ve bu önerideki diğer gizlilik modları için senkronizasyon harici olarak geri yüklenmelidir. " (NIST SP800-38A). Yani AES gibi 128 bit genişliğindeki bir blok şifresindeki 1 bitlik kayıp, geçerli bitleri yayınlamadan önce 129 geçersiz bit oluşturur.

CFB, belirtilenler dışındaki bazı özel durumlarda da kendi kendini senkronize edebilir. Örneğin, 128 bitlik bir blok şifrelemeyle CFB-128'deki bir bitlik değişiklik, iki bloktan sonra yeniden senkronize edilecektir. (Bununla birlikte, CFB-128 vb. Bit kaybını düzgün bir şekilde ele almaz; bir bitlik bir kayıp, şifre çözücünün şifreleyiciyle hizasını kaybetmesine neden olur)

Diğer modlara kıyasla CFB

CBC modunda olduğu gibi, düz metindeki değişiklikler şifreli metinde sonsuza kadar yayılır ve şifreleme paralelleştirilemez. Ayrıca CBC gibi, şifre çözme paralelleştirilebilir.

CFB, OFB ve CTR, CBC moduna göre iki avantajı paylaşır: blok şifreleme her zaman yalnızca şifreleme yönünde kullanılır ve mesajın, şifre bloğu boyutunun çoğuna doldurulması gerekmez (ancak şifreli metin çalma dolgu gereksiz hale getirmek için de kullanılabilir).

Çıktı geri bildirimi (OFB)

OFB
Çıktı geri bildirimi
Paralelleştirilebilir şifrelemeHayır
Paralelleştirilebilir şifre çözmeHayır
Rastgele okuma erişimiHayır

çıktı geri bildirimi (OFB) modu, eşzamanlı bir kesintisiz şifreleme. Üretir anahtar akışı bloklar, o zaman ÖZEL şifreli metni almak için düz metin blokları ile. Tıpkı diğer akış şifrelerinde olduğu gibi, şifreli metinde bir bit çevirmek, aynı konumda düz metinde ters çevrilmiş bir bit üretir. Bu özellik birçok hata düzeltme kodları Şifrelemeden önce uygulandığında bile normal şekilde çalışması için.

XOR işleminin simetrisi nedeniyle, şifreleme ve şifre çözme tamamen aynıdır:

OFB encryption.svgOFB decryption.svg

Her çıkış geri besleme bloğu şifreleme işlemi önceki tüm işlemlere bağlıdır ve bu nedenle paralel olarak gerçekleştirilemez. Bununla birlikte, düz metin veya şifreli metin yalnızca son XOR için kullanıldığından, blok şifreleme işlemleri önceden gerçekleştirilebilir ve düz metin veya şifreli metin mevcut olduğunda son adımın paralel olarak gerçekleştirilmesine izin verir.

Giriş olarak sabit bir sıfır dizisiyle CBC modunu kullanarak bir OFB modu anahtar akışı elde etmek mümkündür. Bu yararlı olabilir, çünkü OFB modu şifrelemesi için CBC modunun hızlı donanım uygulamalarının kullanımına izin verir.

OFB modunu CFB modu gibi geri bildirim olarak kısmi blokla kullanmak, ortalama döngü uzunluğunu 2 kat azaltır32 yada daha fazla. Davies ve Parkin tarafından önerilen ve deneysel sonuçlarla doğrulanan matematiksel bir model, yalnızca tam geri besleme ile elde edilebilir maksimuma yakın bir ortalama döngü uzunluğunun elde edilebileceğini gösterdi. Bu nedenle, kesilmiş geri bildirim desteği OFB'nin belirtiminden kaldırılmıştır.[29]

Sayaç (TO)

TO
Sayaç
Paralelleştirilebilir şifrelemeEvet
Paralelleştirilebilir şifre çözmeEvet
Rastgele okuma erişimiEvet
Not: TO modu (CM) aynı zamanda tam sayı sayacı modu (ICM) ve parçalı tamsayı sayacı (SIC) modu.

OFB gibi, sayaç modu bir blok şifreleme içine kesintisiz şifreleme. Bir sonrakini üretir anahtar akışı bir "sayacın" ardışık değerlerini şifreleyerek engelleyin. Sayaç, uzun süre tekrarlamaması garanti edilen bir dizi oluşturan herhangi bir işlev olabilir, ancak gerçek bir artımlı sayaç en basit ve en popüler olanıdır. Basit deterministik bir girdi fonksiyonunun kullanımı tartışmalıydı; eleştirmenler, "bir şifreleme sistemini bilinen bir sistematik girdiye kasıtlı olarak maruz bırakmanın gereksiz bir risk oluşturduğunu" savundu.[30] Bununla birlikte, bugün CTR modu geniş çapta kabul görmektedir ve herhangi bir sorun, girdisindeki sistemik önyargıdan bağımsız olarak güvenli olması beklenen temel blok şifresinin bir zayıflığı olarak kabul edilmektedir.[31] CBC ile birlikte, CTR modu, Niels Ferguson ve Bruce Schneier tarafından önerilen iki blok şifreleme modundan biridir.[32]

TO modu, Whitfield Diffie ve Martin Hellman 1979'da.[31]

CTR modu, OFB'ye benzer özelliklere sahiptir, ancak aynı zamanda şifre çözme sırasında rastgele erişim özelliğine de izin verir. CTR modu, blokların paralel olarak şifrelenebildiği çok işlemcili bir makinede çalışmak için çok uygundur. Dahası, OFB'yi etkileyebilecek kısa döngü probleminden muzdarip değildir.[33]

IV / nonce rastgele ise, şifreleme için gerçek benzersiz sayaç bloğu üretmek için herhangi bir ters çevrilebilir işlem (birleştirme, ekleme veya XOR) kullanılarak sayaçla birlikte birleştirilebilirler. Rastgele olmayan bir nonce (paket sayacı gibi) durumunda, nonce ve sayaç birleştirilmelidir (ör., Bir 128-bitlik sayaç bloğunun üst 64 bitinde ve sayacı alt 64 bitinde depolanarak) . Basitçe nonce ve sayacı tek bir değere eklemek veya XORlamak, bir seçilmiş düz metin saldırısı çoğu durumda, saldırgan bir çarpışmaya neden olmak için tüm IV-sayaç çiftini manipüle edebilir. Bir saldırgan, IV sayacı çiftini ve düz metni kontrol ettiğinde, şifreli metnin XOR'u, aynı IV-sayaç çiftini paylaşan diğer bloğun şifreli metniyle XORlandığında, bu bloğun şifresini çözecek bir değer verir.[34]

Unutmayın ki nonce bu diyagramdaki eşdeğerdir başlatma vektörü (IV) diğer diyagramlarda. Ancak, ofset / konum bilgisi bozuksa, bayt ofsetine bağımlılık nedeniyle bu tür verilerin kısmen kurtarılması imkansız olacaktır.

CTR şifreleme 2.svgTO şifre çözme 2.svg

Hata yayılımı

"Hata yayma" özellikleri, bit hataları sırasında bir şifre çözme işleminin nasıl davrandığını, yani bir bitteki hatanın farklı şifresi çözülmüş bitlere nasıl kademeli olduğunu açıklar.

İletim hataları nedeniyle rastgele bit hataları oluşabilir.

Saldırılarda kasıtlı olarak bit hataları meydana gelebilir.

  • Akış şifreleme modlarındaki (OFB, CTR, vb.) Belirli bit hataları önemsizdir, yalnızca amaçlanan belirli biti etkiler.
  • Daha karmaşık modlarda (örneğin CBC) belirli bit hataları: uyarlanabilir seçilmiş şifreli metin saldırısı şifre modunu kırmak için birçok farklı belirli bit hatasını akıllıca birleştirebilir. İçinde Dolgu oracle saldırısı CBC, saldırıda hata yanıtlarına dayalı şifreleme sırlarını tahmin ederek çözülebilir. Dolgu Oracle saldırı çeşidi "CBC-R" (CBC Tersi), saldırganın herhangi bir geçerli mesaj oluşturmasını sağlar.

Modern için doğrulanmış şifreleme (AEAD) veya protokoller mesaj doğrulama kodları MAC-Then-Encrypt sırasına göre zincirlenmişse, herhangi bir bit hatası, şifre çözmeyi tamamen iptal etmeli ve şifre çözücüye belirli bir bit hatası oluşturmamalıdır. Yani şifre çözme başarılı olursa, herhangi bir bit hatası olmamalıdır. Bu tür bir hata yayılımı, modern şifreleme modlarında geleneksel yalnızca gizlilik modlarına göre daha az önemli bir konudur.

ModC'deki bit hatalarının etkisibenIV'de Bit Hatalarının Etkisi
ECBP'de rastgele bit hatalarıbenUygulanamaz
CBCP'de rastgele bit hatalarıben
P'deki belirli bit hatalarıi + 1
C'nin çözülmesindeki belirli bit hataları1
CFBP'deki belirli bit hatalarıben
Sonraki tüm bloklarda rastgele bit hataları
C'nin şifresini çözmede rastgele bit hataları1, C2, .., Cj 1 ile b / s arasında bazı j için
OFBP'deki belirli bit hatalarıbenC'nin şifresini çözmede rastgele bit hataları1, C2, .., Cn
TOP'deki belirli bit hatalarıbenUygulanamaz * (*: jth sayaç bloğu, Tj, C'nin şifresinin çözülmesinde rastgele bit hatalarına neden olurj)

(Kaynak: SP800-38A Tablo D.2: Bit Hatalarının Şifre Çözme Üzerindeki Etkisinin Özeti)


Örneğin, iletilen şifreli metindeki tek bloklu bir hatanın, ECB modu şifreleme için yeniden yapılandırılmış düz metinde bir blok hatasına yol açacağı, CBC modunda ise böyle bir hatanın iki bloğu etkileyeceği gözlemlenebilir. Bazıları, rastgele hatalar (örneğin, hat gürültüsü) karşısında böyle bir esnekliğin arzu edildiğini düşünürken, diğerleri, hata düzeltmenin saldırganların bir mesajı kötü niyetle kurcalaması için kapsamını artırdığını savundu.

Bununla birlikte, uygun bütünlük koruması kullanıldığında, bu tür bir hata tüm mesajın reddedilmesiyle sonuçlanacaktır (yüksek olasılıkla). Rastgele hataya direnç isteniyorsa, hata düzeltme kodları iletimden önce şifreli metne uygulanmalıdır.

Diğer modlar ve diğer şifreleme ilkelleri

Blok şifreleri için daha birçok çalışma modu önerilmiştir. Bazıları kabul edilmiş, tamamen tanımlanmış (hatta standartlaştırılmış) ve kullanımdadır. Diğerleri güvensiz bulundu ve asla kullanılmamalıdır. Yine de diğerleri gizlilik, özgünlük veya doğrulanmış şifreleme olarak kategorize etmez - örneğin anahtar geri bildirim modu ve Davies-Meyer hashing.

NIST adresinde blok şifreleri için önerilen modların bir listesini tutar Mod Geliştirme.[28][35]

Disk şifreleme genellikle uygulama için özel olarak tasarlanmış özel amaçlı modları kullanır. Değiştirilebilir dar blok şifreleme modları (LRW, XEX, ve XTS ) ve geniş blok şifreleme modları (CMC ve EME ) bir diskin sektörlerini güvenli bir şekilde şifrelemek için tasarlanmıştır (bkz. disk şifreleme teorisi ).

Çoğu mod, moda bağlı olarak, yalnızca bir kez kullanılması (tek seferde) veya yayınlanmadan önce tahmin edilemez olması gibi gereksinimleri olan bir başlatma vektörü (IV) kullanır. CTR, GCM'de aynı anahtarla IV'yi yeniden kullanma veya OFB modu, aynı anahtar akışını iki veya daha fazla düz metinle XORing'e, bir akışın açık bir şekilde kötüye kullanılmasına ve feci bir güvenlik kaybına neden olur. NIST gibi deterministik kimliği doğrulanmış şifreleme modları Anahtar Sarma algoritması ve SIV (RFC 5297 ) AEAD modu, giriş olarak bir IV gerektirmez ve belirli bir düz metin ve anahtar için her seferinde aynı şifreli metni ve kimlik doğrulama etiketini döndürür. Gibi diğer IV yanlış kullanıma dayanıklı modlar AES-GCM-SIV bir IV girişinden yararlanın, örneğin bir anahtarla güvenli bir şekilde şifrelenebilen maksimum veri miktarında, aynı IV birden çok kez kullanılırsa feci bir şekilde başarısız olmaz.

Blok şifreleri, diğerlerinde de kullanılabilir. kriptografik protokoller. Genellikle burada açıklanan blok modlarına benzer çalışma modlarında kullanılırlar. Tüm protokollerde olduğu gibi, kriptografik olarak güvenli olmak için, bu çalışma modlarının doğru şekilde tasarlanmasına dikkat edilmelidir.

Bir blok şifresi oluşturmak için birkaç şema vardır. kriptografik karma işlevi. Görmek tek yönlü sıkıştırma işlevi bu tür birkaç yöntemin açıklamaları için.

Kriptografik olarak güvenli sözde rasgele sayı üreteçleri (CSPRNG'ler) blok şifreleri kullanılarak da oluşturulabilir.

Mesaj kimlik doğrulama kodları (MAC'ler) genellikle blok şifrelerinden oluşturulur. CBC-MAC, OMAC ve PMAC örneklerdir.

Ayrıca bakınız

Referanslar

  1. ^ NIST Bilgisayar Güvenliği Bölümü (CSD) Güvenlik Teknolojisi Grubu (STG) (2013). "Şifreleme modlarını engelle". Şifreleme Araç Seti. NIST. Arşivlendi 6 Kasım 2012'deki orjinalinden. Alındı 12 Nisan, 2013.
  2. ^ a b Ferguson, N .; Schneier, B .; Kohno, T. (2010). Kriptografi Mühendisliği: Tasarım İlkeleri ve Pratik Uygulamalar. Indianapolis: Wiley Publishing, Inc. s. 63, 64. ISBN  978-0-470-47424-2.
  3. ^ NIST Bilgisayar Güvenliği Bölümü (CSD) Güvenlik Teknolojisi Grubu (STG) (2013). "Önerilen modlar". Şifreleme Araç Seti. NIST. Arşivlendi orijinalinden 2 Nisan 2013. Alındı 14 Nisan 2013.
  4. ^ Alfred J. Menezes; Paul C. van Oorschot; Scott A. Vanstone (1996). Uygulamalı Kriptografi El Kitabı. CRC Basın. pp.228–233. ISBN  0-8493-8523-7.
  5. ^ a b c "ISO / IEC 10116: 2006 - Bilgi teknolojisi - Güvenlik teknikleri - Bir için çalışma modları n-bit blok şifresi ". ISO Standartları Kataloğu. 2006. Arşivlendi 2012-03-17 tarihinde orjinalinden.
  6. ^ Conrad, Eric; Misenar, Seth; Feldman, Joshua (2017/01/01), Conrad, Eric; Misenar, Seth; Feldman, Joshua (ed.), "Bölüm 3 - Alan 3: Güvenlik mühendisliği", Onbirinci Saat CISSP® (Üçüncü Baskı), Syngress, s. 47–93, doi:10.1016 / b978-0-12-811248-9.00003-6, ISBN  978-0-12-811248-9, alındı 2020-11-01
  7. ^ NIST Bilgisayar Güvenliği Bölümü (CSD) Güvenlik Teknolojisi Grubu (STG) (2013). "Mevcut modlar". Şifreleme Araç Seti. NIST. Arşivlendi orijinalinden 2 Nisan 2013. Alındı 12 Nisan, 2013.
  8. ^ "Akış Şifresinin Yeniden Kullanımı: Bir Grafik Örneği". Cryptosmith LLC. 31 Mayıs 2008. Arşivlendi 25 Ocak 2015 tarihinde orjinalinden. Alındı 7 Ocak 2015.
  9. ^ B. Moeller (20 Mayıs 2004), CBC Şifrelerinin SSL / TLS'de Güvenliği: Sorunlar ve Karşı Tedbirler, arşivlendi 30 Haziran 2012 tarihli orjinalinden
  10. ^ Tervoort, Tom. "Zerologon: Netlogon şifrelemesini bozarak kimliği doğrulanmamış etki alanı denetleyicisinin güvenliğini ihlal (CVE-2020-1472)". Secura. Alındı 14 Ekim 2020.
  11. ^ Blaufish. "Netlogon CFB8 zararlı olarak kabul edildi. OFB8 de". Alındı 14 Ekim 2020.
  12. ^ Gligor, Virgil D.; Donescu, Pompiliu (2002). Matsui, M. (ed.). Hızlı Şifreleme ve Kimlik Doğrulama: XCBC Şifreleme ve XECB Kimlik Doğrulama Modları (PDF). Fast Software Encryption 2001. Bilgisayar Bilimi Ders Notları. 2355. Berlin: Springer. s. 92–108. doi:10.1007/3-540-45473-X_8. ISBN  978-3-540-43869-4.
  13. ^ Jutla, Charanjit S. (May 2001). Encryption Modes with Almost Free Message Integrity (PDF). Eurocrypt 2001. Lecture Notes in Computer Science. 2045. Springer. doi:10.1007/3-540-44987-6_32.
  14. ^ Dworkin, Morris (Mayıs 2004). Blok Şifreleme Çalışma Modları için Öneri: Kimlik Doğrulama ve Gizlilik için CCM Modu (PDF) (Teknik rapor). NIST Özel Yayınları. NIST. doi:10.6028 / NIST.SP.800-38C. 800-38C.
  15. ^ Mezgit, D .; Housley, R .; Ferguson, N. (Eylül 2003). CBC-MAC (CCM) ile Sayaç. IETF. doi:10.17487 / RFC3610. RFC 3610.
  16. ^ Harkins, Dan. "Synthetic Initialization Vector (SIV) Authenticated Encryption Using the Advanced Encryption Standard (AES)". Alındı 21 Ekim 2020.
  17. ^ Gueron, S. (April 2019). AES-GCM-SIV: Nonce Misuse-Resistant Authenticated Encryption. IETF. doi:10.17487/RFC8452. RFC 8452. Alındı 14 Ağustos 2019.
  18. ^ Gueron, Shay; Langley, Adam; Lindell, Yehuda (14 Dec 2018). "AES-GCM-SIV: Specification and Analysis". Cryptology ePrint Arşivi. Report (2017/168). Alındı 19 Ekim 2020.
  19. ^ "Recommendation for Block Cipher Modes of Operation" (PDF). NIST.gov. NIST. s. 9. Arşivlendi (PDF) 29 Mart 2017'deki orjinalinden. Alındı 1 Nisan 2017.
  20. ^ Menezes, Alfred J .; van Oorschot, Paul C .; Vanstone, Scott A. (2018). Uygulamalı Kriptografi El Kitabı. s. 228.
  21. ^ Dam, Kenneth W.; Lin, Herbert S. (1996). Cryptography's Role in Securing the Information Society. s. 132.
  22. ^ Schneier Bruce (2015). Applied Cryptography: Protocols, Algorithms and Source Code in C. s. 208.
  23. ^ William F. Ehrsam, Carl H. W. Meyer, John L. Smith, Walter L. Tuchman, "Message verification and transmission error detection by block chaining", US Patent 4074066, 1976.
  24. ^ "The Transport Layer Security (TLS) Protocol Version 1.1". s. 20. Arşivlenen orijinal 2015-01-07 tarihinde. Alındı 7 Ocak 2015.
  25. ^ "Kryptographie FAQ: Frage 84: What are the Counter and PCBC Modes?". www.iks-jena.de. Arşivlendi 16 Temmuz 2012 tarihinde orjinalinden. Alındı 28 Nisan 2018.
  26. ^ Kaufman, C.; Perlman, R.; Speciner, M. (2002). Ağ güvenliği (2. baskı). Upper Saddle River, NJ: Prentice Hall. s. 319. ISBN  0130460192.
  27. ^ Kohl, J. (1990). "The Use of Encryption in Kerberos for Network Authentication" (PDF). Proceedings, Crypto '89. Berlin: Springer. ISBN  0387973176. Arşivlenen orijinal (PDF) 2009-06-12 tarihinde.
  28. ^ a b (NIST), Author: Morris Dworkin (2001). "SP 800-38A, Recommendation for Block Cipher Modes of Operation: Methods and Techniques" (PDF). csrc.nist.gov. doi:10.6028/NIST.SP.800-38A. Arşivlendi (PDF) 28 Ağustos 2017'deki orjinalinden. Alındı 28 Nisan 2018.
  29. ^ Davies, D. W.; Parkin, G. I. P. (1983). "The average cycle size of the key stream in output feedback encipherment". Advances in Cryptology, Proceedings of CRYPTO 82. New York: Plenum Basın. s. 263–282. ISBN  0306413663.
  30. ^ Jueneman, Robert R. (1983). "Analysis of certain aspects of output feedback mode". Advances in Cryptology, Proceedings of CRYPTO 82. New York: Plenum Basın. pp. 99–127. ISBN  0306413663.
  31. ^ a b Lipmaa, Helger; Wagner, David; Rogaway, Phillip (2000). "Comments to NIST concerning AES Modes of Operations: CTR-Mode Encryption" (PDF). Arşivlendi (PDF) 2015-02-26 tarihinde orjinalinden.
  32. ^ Ferguson, Niels; Schneier, Bruce; Kohno, Tadayoshi (2010). Kriptografi Mühendisliği. s. 71.
  33. ^ "Basic Block Cipher Modes". www.quadibloc.com. Arşivlendi 24 Ekim 2017 tarihinde orjinalinden. Alındı 28 Nisan 2018.
  34. ^ "Cryptography I". Coursera. Arşivlendi 23 Mart 2018 tarihli orjinalinden. Alındı 28 Nisan 2018.
  35. ^ "Modes Development – Block Cipher Techniques – CSRC". Computer Security Division, Information Technology Laboratory, National Institute of Standards and Technology, U.S. Department of Commerce. 4 Ocak 2017. Arşivlendi 4 Eylül 2017'deki orjinalinden. Alındı 28 Nisan 2018.