İçeriğe atla

CBC-MAC

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.

m mesajı için CBC-MAC hesaplarken m CBC kipinde ilklendirme vektörü ile şifrelenir ve son blok tutulur. Aşağıdaki şekil, bloklarından oluşan bir mesaj için, gizli anahtar k ve bir blok şifre E kullanarak CBC-MAC hesaplamasını göstermektedir.

Sabit ve değişken uzunluklu mesajlarda güvenlik

Eğer kullanılan blok şifreleme güvenliyse (pseudorandom bir permütasyon ise),CBC-MAC sabit uzunluktaki mesajlar için güvenlidir.[1] Ancak, tek başına, değişken uzunluklu mesajlar için güvenli değildir. . Nitekim, herhangi tek anahtar sadece sabit ve bilinen uzunluktaki mesajlar için kullanılmalıdır. . Bunun sebebi ise, İki mesaj için doğru mesaj-etiket çiftlerini bilen saldırgan, ve , CBC-MAC'i olan üçüncü bir mesaj üretebilir. Bu, ilk bloğunu t ile xorladıktan sonra m mesajını değiştirilmiş ile birleştirilerek yapılır; diğer bir deyişle ile yapılır. mesajı için MAC hesaplanırken, öncelikle m için Mac'i t deki gibi klasik şekilde hesaplanır, ama bu değer ilerideki hesaplayan bir adıma zincirlendiğinde, ilk mesajdaki macten ürettilen değer ile birlikte özel or operasyonu gerçekleştirilir. Yeni mesajda etiketin var olması, ilk m mesajındaki şifresiz metin bloklarından üretilen mac'e etki bırakmadan iptal edileceği anlamına gelir:böylece için etiket dir.

Bu problem, sona mesaj boyutunda blok eklemek ile çözülemez.[2] CBC-MAC in değişken uzunluklu mesajlar için güvenli yapabilecek şekilde değiştirildiği üç ana yöntem vardır; 1) Girdi boyutlu anahtar ayırmak; 2) başa uzunluk eklemek; 3) son bloğu şifrelemek. Öyle bir durumda, farklı bir blok şifre çalışma kipi kullanılması önerilebilir, örneğin, değişken boyutlu mesajın bütünlüğünü korumak için CMAC veya HMAC.

Uzunluğu başa eklemek

Bir çözüm yöntemi olarak, mesaj uzunluğunu ilk blokta bulundurmaktır;[3] herhangi iki birbirinin prefixi olan mesaj kullanılmadığı sürece CBC-MAC'in güvenli olduğu kanıtlanmıştır ve uzunluğu başa eklemek bunun özel bir durumudur.[4] İşlem başladığında mesajın uzunluğu bilinmiyorsa problemler oluşabilir.

Son bloğu şifrelemek

CBC-MACte son bloğu şifrelemek (ECBC-MAC),[5] CBC-MAC-ELB(m, (k1, k2)) = E(k2, CBC-MAC(k1, m))[2] şeklinde tanımlanır. Bahsedilen diğer yöntemlerden olan CBC-MAC'i değişken uzunluklu mesajlar için uzatmaya göre, son bloğu şifrelemenin avantajı hesaplama bitene kadar mesaj uzunluğunun bilinmesinin gerekmemesidir.

CBC-MAC Encrypt-last-block'un hesaplanması.

Saldırı yöntemleri

Birçok kriptografik şemada olduğu gibi, şifrelerin ve protokollerin naif kullanımı, kriptografik korumanın etkenliğini düşürüp (hatta işe yaramaz hale getirip) saldırıları mümkün kılabilir. CBC-MAC'in yanlış kullanımından kaynaklanan saldırılardan bahsedeceğiz.[6]

Şifreleme ve kimlik doğrulama için aynı anahtarı kullanma

Aynı anahtar k'yi CBC şifreleme ve CBC-MAC için yeniden kullanmak yaygın bir hatadır. Her ne kadar bir anahtarın farklı amaçlar için yeniden kullanılması genel olarak kötü bir uygulama olsa da, bu özel durumda bir saldırıya sebep olur:

Diyelim ki Alice Bob'a şifre metin blokları göndermiş olsun. Aktarma işlemi sırasında Eve, son metin bloğu aynı kalacak şekilde, şifre metni bloklarından herhangi birini karıştırabilir ve seçtiği bitleri istediği gibi ayarlayabilir. Bu örneğin amaçları doğrultusunda başlangıç vektörünün sıfırlar vektörü olduğunu varsayıyoruz.

Bob mesajı aldığında, şifre metin bloklarını kullanarak, Alice'in uyguladığı şifleme işlemi tersine çevirerek mesajın şifresini çözecektir. Bob'a gelen, Alice'in orijinal mesajı yerine karıştırılmış olan mesaj .

Bob önce, şifresiz metni elde etmek için paylaşılan gizli anahtar K kullanarak mesajın şifresini çözer. Eve sonuncu hariç bütün şifreli metin bloklarını değiştirdiği için, üretilen bütün şifresiz metin Alice'in gönderdiğinden farklı olacak. Özellikle, son şifresiz metin, , Alice'in gönderdiği orijinal 'den farklıdır; aynı olsa da, bu nedenle şifre çözme işleminden sonra önceki şifre bloğunu özel OR'a zincirlerken farklı üretilir.

Bob, çözdüğü tüm düz metin değerleri üzerinden CBC-MAC kullanarak kimlik doğrulama etiketini hesaplar. Yeni mesajın etiketi olan , şu şekilde elde edilir:

Bu ifadeler eşittir,

tam olarak hangisi  :

buradan çıkarılır.

Bu nedenle Eve, iletilmekte olan şifre metnini (hangi şifresiz metne karşılık geldiğini bilmeden) değiştirebildi, öyle ki tamamen farklı bir mesaj, , üretildi ama bu mesajın etiketi orijinal mesajın etiketiyle eşleşti ve Bob iletim aşamasında mesajın içeriğinin değiştirildiğinden habersizdi. Tanım olarak, önceki mesajla (P) aynı etiketi üreten farklı bir mesaj (şifresiz metin dizisi ve ) bulabilirsek mesaj kimlik doğrulama kodu bozuktur deriz. Bu senaryoda, mesaj kimlik doğrulama protokolünün bozulduğu ve Bob'un Alice'in üretmediği bir mesaj gönderdiğine inanmak için aldatılmıştır.

Bunun yerine, şifreleme ve kimlik doğrulama aşamaları için farklı anahtarlar kullanırsak, ve , saldırı başarısız olurdu. Değiştirilmiş şifreli metin bloklarının,, şifresinin çözülmesi şifresiz metin dizisi, , sağlar. Ancak, MACin farklı bir anahtarını kullanması nedeniyle, aynı etiketi üretmek için ileti kimlik doğrulama kodunun hesaplanmasının ileri adımında şifre çözme işlemini "geri çeviremeyiz"; değiştirilmiş her  artık CBC-MAC işleminde ile değerine şifrelenecek.

Bu örnek aynı zamanda CBC-MAC'in çarpışmaya dayanıklı tek yönlü bir fonksiyon olarak kullanılamayacağını da göstermektedir: bir anahtar verildiğinde, aynı etikete "özet"(hash?) yapan farklı bir mesaj oluşturmak önemsizdir.

Başlangıç vektörünün değerinin değişmesine izin verme

Şifreleme bloğu zincirleme (veya bir başka) kip içinde bir blok şifreleyici kullanarak verileri şifrelerken, şifreleme işleminin ilk aşamasına bir başlatma vektörü eklemek yaygındır.

Tipik olarak bu vektörün rastgele seçilmesi (tek seferlik anahtar) ve blok şifresinin çalıştığı herhangi bir gizli anahtar için tekrar edilmemesi gerekir. Bu, aynı düz metnin aynı şifre metnine şifrelenmemesini sağlayarak, saldırganın bir ilişki oluşturmasına izin verir semantik güvenlik sağlar.

Bir başlatma vektörünün CBC-MAC gibi bir mesaj kimlik doğrulama kodu hesaplanırken kullanılması olası bir saldırı vektörüdür.

Bir şifre bloğu zincirleme şifresinin çalışmasında, düz metnin ilk bloğu başlatma vektörü ile özel OR kullanılarak karıştırılır (). Bu işlemin sonucu, şifreleme işlemi için blok şifrelemenin girdisidir.

Ancak, şifreleme ve şifre çözme işlemleri gerçekleştirilirken, ilklendirme vektörü şifresiz metinle göndermekle yükümlüyüz -tipik olarak şifreli metnin ilk bloğundan önceki blok olarak- bu şekilde şifresiz metnin ilk bloğunun şifresi çözülebilir ve başarıyla kurtarılabilir. Eğer bir MAC hesaplıyorsanız, mesajdaki etiketin hesaplanan değer ile eşleştiğini doğrulayabilmek için ilklendirme vektörünü diğer tarafa şifresiz metin ile iletmemiz gerekecektir.

Eğer ilklendirme vektörünün keyfi olarak seçilmesine izin verilirse, aynı mesaj etiketi oluşturulurken ilk şifresiz metin bloğu değiştirilebilir (farklı bir mesaj ileterek).

Bir mesaj düşünün . Özellikle, CBC-MAC için mesaj etiketini hesaplarken, bir ilklendirme vektörü seçtiğimizi varsayalım, öyle ki MAC'ın hesaplanması ile başlasın. Bu bir (mesaj, etiket) çifti üretir .

Şimdi mesajı üret. içindeki değiştirilmiş her bit için, ilklendirme vektöründe karşılık gelen bitler çevirilir ve ilklendirme vektörü üretilir. Bu mesaj için MAC'ı hesaplarken şu işlem ile başlıyoruz: . Hem şifresiz metin hem ilklendirme vektörü bitleri aynı yerde değiştirildiği için, ilk aşamada değişiklik iptal edilir, yani blok şifre girişi için olan ile aynıdır. Eğer şifresiz metinde başka değişiklik yapılmazsa, farklı bir mesaj iletiliyor olsa dahi aynı etiket üretilir.

İlklendirme vektörü seçme özgürlüğü kaldırılırsa ve tüm CBC-MAC implementasyonları belirli bir ilklendirme vektörüne sabitlenirse(genelde sıfır vektörü ancak herhangi bir şey olabilir) bu saldırı devam edemez.

Özetlemek gerekirse, saldırgan MAC doğrulaması için kullanılacak IV'ü belirleyebiliyorsa, MAC'i geçersiz kılmadan ilk veri bloğunda keyfi değişiklik yapabilir.

Öngörülebilir ilklendirme vektörü kullanma

Bazen IV, mesaj tekrar saldırılarını önlemek için bir sayaç olarak kullanılır. Ancak, saldırgan MAC doğrulaması için hangi IV'ün kullanılacağını tahmin edebiliyorsa, doğrulama için kullanılacak IV'deki değişikliği telafi etmek için ilk veri bloğunu değiştirerek önceden gözlemlenen mesajı tekrar dinleyebilir. Örneğin saldırgan ile birlikte mesajını gözlemlemişse ve biliyorsa üretebilir, ile MAC doğrulamasını geçer.

En basit karşı tedbir, IV kullanmadan önce şifrelemektir (yani IV'ü veriler için hazırlamak). Alternatif olarak CFB kipindeki MAC kullanılabilir, çünkü CFB kipinde IV verilerle XOR edilmeden önce şifrelenir.

Başka bir çözüm olarak (mesaj tekrarı saldırıları koruması gerekli değilse) her zaman sıfır vektörü IV kullanılır.[7] Yukarıdaki formül için haline gelir. ve aynı mesaj olduğu için, tanım gereği aynı etikete sahip olurlar. Bu bir sahtecilik değildir, CBC-MAC'in amaçlanan kullanımıdır.

Algoritmayı tanımlayan standartlar

FIPS PUB 113 Bilgisayar Verileri Kimlik Doğrulaması, CBC-MAC algoritmasını blok şifre olarak DES kullanarak belirleyen bir ABD hükûmet standardıdır (artık kullanılmamaktadır) .

CBC-MAC algoritması ISO / IEC 9797-1 MAC 1 Algoritması'na eşdeğerdir.

Ayrıca bakınız

  • CMAC - Farklı uzunluklardaki mesajlar için güvenli olan (NIST tarafından önerilen) blok şifreleme tabanlı bir MAC algoritması.
  • OMAC ve PMAC - Blok şifrelemeleri mesaj kimlik doğrulama kodlarına (MAC) dönüştürmenin diğer yöntemleri.
  • Tek yönlü sıkıştırma işlevi - Karma işlevler blok şifrelerden yapılabilir. Ancak, MAC'lar (CBC-MAC gibi) ve karmalar arasında güvenlik için işlev ve kullanımlarda önemli farklılıklar olduğunu unutmayın.

Kaynakça

  1. ^ M. Bellare, J. Kilian and P. Rogaway. The security of the cipher block chaining message authentication code. 12 Ağustos 2020 tarihinde Wayback Machine sitesinde arşivlendi. JCSS 61(3):362–399, 2000.
  2. ^ a b See Section 5 of Bellare, et al.
  3. ^ ISO/IEC 9797-1:1999 Information technology – Security techniques – Message Authentication Codes (MACs) – Part 1: Mechanisms using a block cipher 9 Nisan 2016 tarihinde Wayback Machine sitesinde arşivlendi., clause 6.1.3 Padding Method 3
  4. ^ C. Rackoff and S. Gorbunov. On the Security of Block Chaining Message Authentication Code.
  5. ^ "Arşivlenmiş kopya". 22 Nisan 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Nisan 2020. 
  6. ^ Why I hate CBC-MAC 14 Mayıs 2020 tarihinde Wayback Machine sitesinde arşivlendi. by Matthew D. Green
  7. ^ Introduction to Modern Cryptography, Second Edition by Jonathan Katz and Yehuda Lindell

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

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

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.

Tek kullanımlık şifre, Gilbert Vernam tarafından keşfedilmiş bir kripto sistemi. Kullanılacak anahtar şifrelenecek metnin boyutu kadar olmalıdır ve yalnız bir kereye mahsus üretilip kullanılmalıdır. Böylece şifrelenmiş metni ele geçiren saldırgana hiçbir bilgi verilmemiş olunur.

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.

Paillier şifrelemesi , 1999’da Pascal Paillier tarafından geliştirilen olasılıksal açık anahtarlı şifreleme yöntemidir. n’inci kök sınıflarını hesaplamanın zorluğunu kullanan Paillier şifreleme sistemi, kararsal bileşik kök sınıfı varsayımı üzerine kurulmuştur. Sistem, toplama işlemine göre homomorfik özellik gösterir; yani sadece açık anahtarı, ve ’nin şifrelemesini kullanarak ’nin şifrelenmiş hâli hesaplanabilir.

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.

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.

Schmidt-Samoa şifreleme, Alman araştırmacı Katja Schmidt-Samoa tarafından 2005’te oluşturulan asimetrik kriptografi yöntemidir. Bu şifrelemenin güvenilirliği Rabin'deki gibi çarpanlara ayırma probleminin zorluğuna dayanmaktadır. Bu algoritma, Rabin'in aksine şifreleme hızı pahasına, şifre çözmede belirsizlik oluşturmamaktadır.

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">Vigenère şifrelemesi</span> bir kriptoloji yöntemi

Vigenère şifrelemesi, alfabetik bir şifreleme metni kullanarak bir dizi farklı Sezar şifrelemesine dayalı harfleri kullanan bir şifreleme yöntemidir. Bu bir çeşit poli alfabetik ikame tablosudur.

Kriptografide, IBM (ABD) için çalışırken öncü araştırmalar yapan Almanya doğumlu fizikçi ve kriptograf Horst Feistel'in ismiyle anılan Feistel şifresi blok şifrelerin yapımında kullanılan simetrik bir yapıdır; aynı zamanda Feistel ağı olarak da bilinir. Blok şifreler, DES(Data Şifreleme Standardı) dahil, büyük oranda bu şemayı kullanır. Feistel yapısı, şifreleme ve şifre çözme işlemlerinin çok benzer olması, hatta bazı durumlarda aynıdır, sadece anahtar sırasının tersine çevrilmesini gerektirme avantajına sahiptir. Bu nedenle, böyle bir şifreyi uygulamak için gereken kod veya devrenin büyüklüğü neredeyse yarıya inmiştir.

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

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.

Kriptografide, biçim korumalı şifreleme, çıktı ve giriş aynı formatta olacak şekilde şifreleme anlamına gelir. "Biçim" in anlamı değişir. Biçimin anlamı için tipik olarak sadece sonlu alanlar tartışılır, örneğin:

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">Şifreli metin</span> şifrelenmiş bilgi

Kriptografide, şifreli metin, şifreleme adı verilen bir algoritma kullanılarak düz metin üzerinde gerçekleştirilen şifreleme işleminin sonucunda elde edilen çıktıdır. Şifreli metin, aynı zamanda şifrelenmiş veya kodlanmış bilgi olarak da bilinir çünkü orijinal düz metnin, şifresini çözmek için uygun şifre olmadan bir insan veya bilgisayar tarafından okunamayan bir biçimini içerir. Bu işlem, hassas bilgilerin bilgisayar korsanlığı yoluyla kaybolmasını önler. Şifrelemenin tersi olan Şifre çözme, şifreli metni okunabilir düz metne dönüştürme işlemidir. Şifreli metin, kod metni ile karıştırılmamalıdır çünkü ikincisi bir şifrenin değil bir kodun sonucudur.

Affine şifreleme veya Doğrusal şifreleme, bir tür monoalfabetik ikame şifresi olup, bir alfabedeki her harf sayısal eşdeğeriyle eşleştirilir, basit bir matematiksel fonksiyon kullanılarak şifrelenir ve tekrar bir harfe dönüştürülür. Kullanılan formül, her harfin başka bir harfe şifrelendiği ve tekrar geri döndüğü anlamına gelir, yani şifre esasen hangi harfin hangisine gideceğini düzenleyen bir kurala sahip standart bir ikame şifresidir. Bu nedenle, tüm ikame şifrelerinin zayıflıklarına sahiptir. Her harf (ax + b) mod 26 fonksiyonu ile şifrelenir, burada b kaydırmanın büyüklüğüdür.

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.