İçeriğe atla

RSA (şifreleme yönetimi)

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.[1]

Tarihi

Birleşik Krallık haber alma teşkilatı GCHQ’da çalışan İngiliz matematikçi Clifford Cocks 1973’te kurum içi bir dokümanda eşdeğer bir sistemi açıkladı. Fakat bu sistemi hayata geçirmek için epeyce pahalı bilgisayarların kullanılması gerekiyordu ve bilindiği kadarıyla hiç kullanılmadı. Fakat Cocks’un buluşu 1998’e kadar çok gizli olduğu gerekçesiyle açığa çıkarılmadı. Rivest, Shamir ve Adleman RSA yöntemini Cocks’un çalışmasından bağımsız olarak tasarladılar.[2]

RSA algoritması 1978’de MIT’de Ron Rivest, Adi Shamir ve Leonard Adleman tarafından açıklandı. RSA harfleri soyisimlerinin baş harflerini temsil etmektedir.

Patent

MIT'e 20 Eylül 1983'te algoritmayı kullanan bir "Şifreleme iletişim sistemi ve yöntemi" için ABD Patenti 4,405,829 verildi.Patent 21 Eylül 2000'de sona erecek olsa da (patent süresi 17 yıldır), algoritma iki hafta önce 6 Eylül 2000'de RSA Security tarafından kamuya açıklandı. Algoritmanın ayrıntılı bir açıklaması Scientific American'ın Ağustos 1977 sayısında Matematik Oyunları sütununda yayınlandığından, patent başvurusunun Aralık 1977 dosyalama tarihinden önce dünyanın geri kalanının çoğunda düzenlemeler başka yerlerde ve sadece ABD patenti verildi. Cocks'un çalışmaları herkes tarafından biliniyor olsaydı, ABD'deki bir patent de yasal olmayacaktı.[2]

DWPI'nin patent özetinden,

Sistem bir kodlama cihazına sahip en az bir terminale ve bir kod çözme cihazına sahip en az bir terminale bağlanmış bir iletişim kanalı içerir. Aktarılacak bir mesaj, önceden belirlenmiş bir kümede M sayısı olarak kodlanarak kodlama terminalindeki şifreli metne şifrelenir. Bu sayı daha sonra önceden belirlenmiş bir güce (istenen alıcı ile ilişkili) yükseltilir ve son olarak hesaplanır. Kalan veya kalıntı C, ... üssel sayı, önceden belirlenmiş iki asal sayının çarpımına (hedeflenen alıcı ile ilişkili) bölündüğünde hesaplanır.

İşlemler

RSA algoritması anahtar üretimi, şifreleme ve şifre çözme olmak üzere 3 basamaktan oluşmaktadır.[1]

Anahtar Üretimi

RSA için bir ortak anahtar bir de özel anahtar gerekir. Ortak anahtar herkes tarafından bilinir ve mesajı şifrelemek için kullanılır. Bir ortak anahtarla şifrelenmiş mesaj sadece özel anahtarla çözülebilir. RSA anahtarları şu şekilde oluşturulur:

  1. İki adet birbirinden değişik asal sayı seçin, bunların adını da ve koyalım.
    • Güvenlik amacıyla p ve q sayıları rastgele seçilmeli ve yakın uzunlukta olmalıdırlar. Bu sayılar asallık testi kullanılarak etkin bir şekilde bulunabilir.
  2. hesaplayın.
    • özel ve ortak anahtarlar için mod değeri olarak kullanılacaktır.
  3. Bu sayıların totientı olan hesaplayın.
  4. Bir tam sayı üretin ve adını da koyun. Bu sayı, koşuluna uygun olmalı ve ile en büyük ortak böleni 1 olmalıdır (başka bir deyişle ve kendi aralarında asal olmalıdır).
    • ortak anahtar olarak açıklanır.
    • Bit uzunluğu kısa olan ve küçük Hamming Ağırlığına sahip değerleri (yaygın olarak 0x10001 = 65,537) daha verimli şifreleme sağlarlar. Fakat küçük değerleri (örneğin 3) bazı durumlarda güvenliği azaltabilir.
  5. olacak şekilde bir 'yi belirleyin.
    • özel anahtar üssü olarak saklanır.
    • değeri genellikle Genişletilmiş Öklid Algoritması kullanılarak hesaplanır.

Ortak anahtar mod değeri olan ’den ve ortak üs olan ’den oluşur. Özel anahtar ise mod değeri olan ’den ve özel üs olan ve gizli kalması gereken ’den oluşur. (, ve değerleri de gizli kalmalıdır çünkü ’yi hesaplamada kullanılırlar.)

Şifreleme

Alice ortak anahtarı (, )’yi Bob’a gönderir, özel anahtarını gizli tutar. Bob mesajını Alice’e göndermek istediği zaman ilk olarak ’yi ters çevrilebilir bir protokol ile (dolgu şeması) olacak şekilde bir tam sayısına dönüştürür. Daha sonra şifrelenmiş mesaj ’yi olacak şekilde hesaplar. Bunu karesini alarak üs alma yöntemiyle hızlı bir şekilde hesaplayabilir. Bob ’yi Alice’e iletir.

Şifre Çözme

Alice mesajını özel anahtarı olan ’yi kullanarak şifreli mesaj ’den şu şekilde hesaplar:

Alice ’yi bulduktan sonra dolgu şemasının tersini alarak orijinal mesaj ’yi elde eder.

Örnek

  1. İki farklı asal sayı seçelim. ve olsun.
  2. değerini hesaplayalım. 61 × 53 = 3233.
  3. Totient değerini hesaplayalım. .
  4. 1 ile 3120 arasında 3120 ile aralarında asal olan bir değeri seçelim. değerini asal seçersek sadece 3120’nin böleni olup olmadığını kontrol etmemiz gerekir. olsun.
  5. ’yi ’nin mod ’deki çarpmaya gore tersi olarak hesaplayalım. .

Ortak Anahtar: . Herhangi bir mesajı için şifreleme fonksiyonu (mod 3233).

Özel Anahtar: . Herhangi bir şifreli mesajı için şifre çözme fonksiyonu (mod 3233).

Örneğin ’i şu şekilde şifreleriz: .

’ın şu şekilde şifresini çözebiliriz:

Tüm bu hesaplamalar karesini alarak üs alma yöntemiyle hızlı bir şekilde gerçekleştirilebilir.

Düz RSA karşısındaki Saldırılar

  • Küçük şifreleme üssü (örn. = 3) kullanıldığında şifrelenen mesajı da küçükse , değeri ’den küçük bir değere karşılık gelir. Bu durumda şifreli mesajlar tam sayılardaki dereceden kökleri alınarak kolayca çözülebilirler.
  • Eğer bir mesaj aynı şifreleme üssü ve farklı değerleri ile birden çok kişiye gönderiliyorsa, bu mesaj Çin Kalan Teoremi kullanılarak kolayca çözülebilir.
  • RSA algoritması herhangi bir rastsallık içermediği için bazı düz mesajlar şifrelenip herhangi bir şifreli mesaja eşit olup olmadığı kontrol edilebilir. Dolayısıyla dolgu kullanılmayan RSA anlamsal güvenliğe sahip değildir.
  • RSA yönteminde iki şifreli mesajın çarpımı, kendilerine karşılık gelen düz mesajların çarpımının şifrelenmiş haline eşittir. Yani, Bu çarpımsal özelliğinden dolayı RSA’e seçilmiş şifreli mesaj atağı gerçekleştirilebilir. Örneğin, bir şifreli mesaj olan 'nin çözümünü elde etmek isteye bir saldırgan rastgele bir değeri seçip, özel anahtara sahip kişiye şüpheli gözükmeyen mesajını gönderip deşifre etmesini isteyebilir. Çarpımsal özellikten dolayı , 'in şifreli halidir. Eğer saldırgan atakta başarılı olursa değerini elde eder ve ile çarpıp kolayca m değerini bulur.

Dolgu Şemaları

Tüm bu problemleri ortadan kaldırmak için kullanılan RSA uygulamaları şifrelemeden önce düz mesaj olan ’ye rastsallaştırılmış dolgu uygularlar. Bu dolgu ’yi güvensiz düz metin aralığında olmaktan korur ve ’in sabit bir şifreli mesajı olmasını engeller. Dolgulama için tasarlanan PKCS#1 standardının ilk versiyonlarının adaptif seçilmiş şifreli mesaj atağına karşı dayanıksızlığı ortaya çıkınca sonraki versiyonlar bu atağı engellemek için OAEP içermekteler.

Mesaj İmzalama

RSA ayrıca mesajları imzalamak için de kullanılabilir. Alice’in Bob’a imzalanmış bir mesaj göndermek istediğini düşünelim. Alice kendi özel anahtarını kullanarak bunu gerçekleştirebilir. Mesajın özet değerini hesaplayıp mod ’de kuvvetini alır ve imza olarak mesaja iliştirir. Bob mesajı aldığı zaman aynı özetleme algoritmasıyla mesajın özetini hesaplar. Bob ayrıca mesajın imzasının mod ’de kuvvetini alır ve mesajın özetiyle karşılaştırır. Eğer iki değer birbirine eşitse mesajın Alice’den geldiğini anlar. RSA ile imza gerçekleştirilirken de RSA-PSS gibi güvenli dolgu şemaları kullanılması gereklidir. Ayrıca güvenlik açısında şifrelemede ve imzada aynı anahtar kullanılmamalıdır.

Doğruluk İspatları

Fermat’nın Küçük Teoremi ile İspatı

Fermat'nın küçük teoremi asalı ve ’nin bölmediği bir tam sayısı için denkliğinin doğru olduğunu belirtir.

Her mesajı için (me)d m denkliğinin doğru olduğunu göstermek istiyoruz.

olduğunu biliyoruz. Yani negatif olmayan bir tam sayısı için yazabiliriz. Eğer med m mod p ve med m mod q olduğunu gösterirsek Çin Kalan Teoreminden med m mod pq olduğunu ispatlamış oluruz.

med m mod p olduğunu göstermek için m 0 mod p ve m 0 mod p durumlarına bakalım. İlk durumda med, p 'nin katı olduğundan med 0 m mod p. İkinci durumda da mp-1' ‘in Fermat’nın küçük teoreminden dolayı 1’e denk olmasını kullanarak ispatı yapabiliriz:

.

med m mod q olduğunu da benzer şekilde gösterip algoritmanın doğruluğunu ispatlamış oluruz.

Euler teoremi ile ispatı

Rivest, Shamir ve Adleman orijinal makalelerinde RSA yönteminin çalışmasını açıklarken Fermat’nın küçük teoremini kullanmalarına rağmen genellikle ispatlarda Euler teoremi kullanılır.

Her mesajı için (me)d m denkliğinin doğru olduğunu göstermek istiyoruz. ed 1 mod olduğunu biliyoruz. Dolayısıyla negatif olmayan bir tam sayısı için çarpımını şeklinde yazabiliriz. ve ’nin aralarında asal olduğunu varsayarsak

Son eşitlik Euler teoremi’nin bir sonucudur. Eğer ve aralarında asal değilse bu argüman doğru olmaz. m 0 mod p vem 0 mod q durumları yukarıdaki ispatta olduğu gibi gösterilebilir.

RSA algoritması

RSA çok büyük tam sayılarla işlem yapmanın zorluğuna dayanan bir tekniktir. Yani, RSA algoritmasını kullanan kişi 2 büyük asal sayı seçer ve bunları saklar. Bu iki asal sayının çarpımı elde edip, rastgele seçtiği başka bir değer ile birlikte ortak anahtar olarak belirler. Ortak anahtarı kullanan başka bir kullanıcı şifreleme yapabilir bu durumda bu mesajın şifresinin çözülüp anlamlı hale getirilebilmesi için ortak anahtar yeterince büyük olduğundan bu büyük sayının ortak çarpanlarının bilinmesi gerekir. Yani aslında RSA çarpanlara ayırma ile birebir ilişkilidir ki bu algoritma açık anahtarlı şifrelemeyi kullanır. Açık anahtarlı şifrelemede (asimetrik şifreleme) açık anahtarla şifreleme ve gizli anahtarla deşifreleme yapılmasını kolayca gerçekleştirilirken; yalnızca açık anahtarı (iki sayının çarpımını) bilerek gizli anahtarın bulunmasını zor kılar (büyük olan bu sayının çarpanlarının bilinmesi gerekir). RSA 3 basamakta gerçekleştirilir. Bunlar: anahtar üretimi (2 büyük asal sayının çarpımı ve random seçilmiş bir sayı ile ortak anahtar üretilmesi), şifreleme (Oluşan ortak anahtarı kullanan başka bir kullanıcı şifreleme yapabilir) ve şifre çözmedir (Şifrenin çözülmesi için ortak anahtarın çarpanlarının bilinmesi gerekir). Özet olarak; tamamen random olarak ve birbirine yakın iki asal sayı seçilir. Bu sayılar tutulur. Mod n olacak şekilde ; n=p*q ve m(=(p-1)*(q-1) çarpımları hesaplanır. 1<e<m arasında bir e tam sayısı seçilir. Öyle ki e ve m’nin en büyük ortak böleni 1 olsun. Genel üs olarak kullandığımız e ve m sayıları kullanılarak gizli üs d hesaplanır (1<d<m) (Örneğin ed≡1(mod m)). Genel anahtar (n,e) ve özel anahtar (n,d)’dir. p,q ve m değerleri de gizli tutulmalıdır. .NET framework teknolojisinde kullanan RSA algoritmasına bakacak olursak:[3]

   byte[] dataToEncrypt = ByteConverter.GetBytes("Sifrelenecek Veri");

Şifrelenmiş ve deşifrelenmiş olan verilerin tutulduğu veri tanımları yapılır.

   byte[] encryptedData;
   byte[] decryptedData;

1024 uzunluğunda RSACryptoServiceProvider sınıfından nesne üretilir.

   RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider(1024);

Aşağıdaki RSAEncrypt metodu veriyi şifrelemeyi sağlar. Metottaki ilk parametre şifrelenecek veridir. Byte array şeklindedir. Metottaki ikinci parametre (RSAalg.ExportParameters(false)) anahtar bilgisinin dışa verilip verilmeyeceğini ifade eder. False olarak değer atanmışsa public anahtar dışa verilir, true olarak değer atanmışsa public ve private anahtarlar dışa verilir. Kodumuzda false olarak değer atandığı için sadece public anahtar dışa verilir. Metottaki üçüncü parametre boolean bir değerdir. Padding mode olarak isimlendirilir. Padding boolean değerinin kullanılması gereklidir çünkü metoda gönderilen verinin şifrelenecek verinin tamamının olup olmadığını bu flag değerinden anlarız. Şifrelenecek veri çok büyük boyutlarda olabilir bu da verinin bloklara bölünmesini gerektirir. Bloklara bölünen verinin tamamının şifrelendiği bu flag değerden anlaşılır. Eğer padding değeri true ise bu halde gelişmiş OAEP 16 kullanılır. Aksi takdirde geleneksel PKCS 1 v1.5 kullanılır.

   encryptedData = RSAEncrypt(dataToEncrypt, RSAalg.ExportParameters(false), false);

Aşağıdaki decryptedData metodu veriyi deşifrelemeye sağlar. Metottaki ilk parametre deşifrelenecek veridir. Byte array şeklindedir. Metottaki ikinci parametre (RSAalg.ExportParameters(true))anahtar bilgisinin dışa verilip verilmeyeceğini ifade eder. False olarak değer atanmışsa public anahtar dışa verilir, true olarak değer atanmışsa public ve private anahtarlar dışa verilir. Kodumuzda true olarak değer atandığı için private ve public anahtar dışa verilir. Metottaki üçüncü parametre boolean bir değerdir. Padding mode olarak isimlendirilir. Padding boolean değerinin kullanılması gereklidir çünkü metoda gönderilen verinin şifrelenecek verinin tamamının olup olmadığını bu flag değerinden anlarız. Şifrelenecek veri çok büyük boyutlarda olabilir bu da verinin bloklara bölünmesini gerektirir. Bloklara bölünen verinin tamamının şifrelendiği bu flag değerden anlaşılır. Eğer padding değeri true ise bu halde gelişmiş OAEP 16 kullanılır. Aksi takdirde geleneksel PKCS 1 v1.5 kullanılır.

   decryptedData = RSADecrypt(encryptedData, RSAalg.ExportParameters(true), false);

Kaynakça

  1. ^ a b MOLLIN, RICHARD A. (2019). Rsa And Publıc-Key Cryptography. [S.l.]: CRC PRESS. ISBN 0-367-39565-7. OCLC 1112201971. 
  2. ^ a b Prodhan, Georgina (4 Ekim 2010). "Secret coding inventors finally win recognition". Reuters (İngilizce). 13 Ocak 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ocak 2021. 
  3. ^ dotnet-bot. "RSACryptoServiceProvider Class (System.Security.Cryptography)". docs.microsoft.com (İngilizce). 31 Aralık 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ocak 2021. 

İlgili Araştırma Makaleleri

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

Totient sayılar teorisinde, bir tam sayının o sayıdan daha küçük ve o sayı ile aralarında asal olan sayma sayı sayısını belirten fonksiyondur. Genellikle Euler Totient ya da Euler'in Totienti olarak adlandırılan Totient, İsviçreli matematikçi Leonhard Euler tarafından yaratılmıştır. Totient fonksiyonu, Yunan harflerinden ile simgelendiği için Fi fonksiyonu olarak da anılabilir.

Matematikte karmaşık sayı, bir gerçel bir de sanal kısımdan oluşan bir nesnedir. a ve b sayıları gerçek olursa karmaşık sayılar şu biçimde gösterilirler:

<span class="mw-page-title-main">Güç (elektrik)</span>

Elektriksel güç, elektrik enerjisinde elektrik devresi tarafından taşınan güç olarak tanımlanır. Gücün SI birimi watt'tır. Elektrikli cihazların birim zamanda harcadığı enerji miktarı olarak da bilinir. 1 saniyede 1 joule enerji harcayan elektrikli alet 1 watt gücündedir.

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

ElGamal imza şeması Ayrık Logaritmanın hesaplanmasının zorluğuna dayanan bir dijital imzadır. Tahir el-Cemal tarafından 1984 yılında bulunmuştur. Açık anahtarlı kriptosistemi ve imza şeması ayrık logaritmaya dayanmaktadır.

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.

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.

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.

<span class="mw-page-title-main">Çarpanlara ayırma</span>

Çarpanlara ayırma, bir polinomun, tam sayının ya da matrisin kendisini oluşturan bileşenlerin çarpımı şeklinde yazılmasıdır. Örneğin 15 sayısı 3 ve 5 asal sayılarının çarpımı şeklinde yazılabilir: 3 × 5 ya da x2 − 4 polinomu (x − 2)(x + 2) şeklinde yazılabilir.

Blum–Goldwasser Kriptosistem veya Blum-Goldwasser şifreleme sistemidir. 1984 yılında Manuel Blum ve Şafi Goldwasser tarafından önerilen bir asimetrik anahtar şifreleme algoritmasıdır. Bulum-Goldwasser bilinen en verimli kripto sistemlerden biridir. RSA ile hız ve mesaj genişlemesi açısından kıyaslanabilir. Bu şifreleme algoritmasında rastgele sayı üretmek için Blum Blum Shub rastgele sayı üretme algoritması kullanılır. Büyük sayıların asal çarpanlarına ayrılma probleminin çözülemezliği kabulüne dayanan bir şifreleme algoritmasıdır.

Goldwasser–Micali (GM) kriptosistemi 1982 yılında Shafi Goldwasser ve Silvio Micali tarafından geliştirilmiş bir asimetrik anahtar şifreleme algoritmasıdır. GM standart kriptografik varsayımlar altında güvenliği kanıtlanmış ilk probabilistik açık anahtar şifreleme yöntemidir. Bununla birlikte başlangıç düz metinden yüzlerce kez daha geniş olan şifreli metinler olduğundan verimli bir kriptosistem değildir. Kriptosistemin güvenlik özelliğini kanıtlamak için Shafi Goldwasser ve Silvio Micali anlamsal güvenliğin geniş alanda kullanılan bir tanımını önerdiler.

Okamoto–Uchiyama kriptosistemi, 1998'de T. Okamoto ve S. Uchiyama tarafından bulundu. Sistem kümesinde çalışır, n p2q ya eşittir ve p ve q büyük asal sayılardır.

Merkle-Hellman kripto sistemi, 1978 yılında Martin Hellman ve Ralph Merkle tarafından geliştirilen ilk açık anahtarlı kriptosistemlerden biridir. RSA'dan daha hızlı gerçekleştirilebilmesine rağmen Adi Shamir tarafından 1982'de güvensiz olduğu gösterilmiştir.

<span class="mw-page-title-main">Eliptik eğri kriptografisi</span>

Eliptik Eğri Kriptolojisi, sonlu cisimler üzerindeki eliptik eğrilerin cebirsel topolojisine dayanan bir açık anahtar şifrelemesidir. Eliptik Eğri Kriptolojisi, diğer şifrelemeler göre daha küçük anahtar boyuna ihtiyaç duyar.

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.

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

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

Benaloh kriptosistemi 1994 yılında Josh (Cohen) Benaloh tarafından oluşturulan Goldwasser-Micali şifreleme sisteminin bir genişletilmesidir. Goldwasser-Micali'de bitler tek tek şifrelenirken, Benaloh Kriptosisteminde veri blokları grup olarak şifrelenmektedir. Orijinal makaledeki küçük bir hata Laurent Fousse et al. 'da düzeltilmiştir.

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.