Simetrik şifreleme sistemleri. Simetrik şifreleme örnekleri. Simetrik ve asimetrik şifreleme yöntemlerinin avantajları ve dezavantajları

  • 06.05.2019

Var olmanın tek yolu simetrik şifrelemeydi. Algoritma anahtarı her iki tarafça da gizli tutulmalıdır. Şifreleme algoritması, mesaj alışverişinden önce taraflarca seçilir.

Ansiklopedik YouTube

    1 / 3

    bilişim. Bilgi güvenliği: Simetrik şifreleme. Foxford Çevrimiçi Öğrenim Merkezi

    PGP.01 Anlama asimetrik şifreleme

    Sezar'ın şifresi. simetrik şifreleme

    Altyazılar

Temel bilgiler

Veri şifreleme algoritmaları yaygın olarak kullanılmaktadır. bilgisayar Teknolojisiüçüncü şahıslar tarafından kötü niyetli kullanımdan gizli ve ticari bilgileri gizlemek için sistemlerde. Onların temel prensibi şudur ki verici ve alıcı şifreleme algoritmasını önceden bilir, ayrıca mesajın anahtarı, bunlar olmadan bilgi sadece bir anlam ifade etmeyen bir dizi karakterdir.

Bu tür algoritmaların klasik örnekleri simetrik kriptografik algoritmalar aşağıda listelenmiş:

  • basit permütasyon
  • Anahtarla tek permütasyon
  • çift ​​permütasyon
  • Permütasyon "Sihirli Kare"

basit permütasyon

Anahtarsız basit bir permütasyon, en basit şifreleme yöntemlerinden biridir. Mesaj sütunlar halinde tabloya yazılır. Düz metin sütunlara yazıldıktan sonra satır satır okunarak şifreli metin oluşturulur. Bu şifreyi kullanmak için, gönderen ve alıcının üzerinde anlaşmaya varması gerekir. genel anahtar masa boyutu olarak. Harflerin gruplar halinde birleştirilmesi, şifre anahtarına dahil edilmez ve yalnızca anlamsız metin yazma kolaylığı için kullanılır.

Anahtarla tek permütasyon

adlı daha pratik bir şifreleme yöntemi tek permütasyon anahtar, öncekine çok benzer. Yalnızca tablo sütunlarının bir anahtar sözcük, tümcecik veya bir tablo satırı uzunluğundaki bir dizi sayı tarafından yeniden düzenlenmesi bakımından farklılık gösterir.

çift ​​permütasyon

Daha fazla gizlilik için, zaten şifrelenmiş bir mesajı yeniden şifreleyebilirsiniz. Bu yöntem çift permütasyon olarak bilinir. Bunu yapmak için, ikinci tablonun boyutu, satır ve sütunlarının uzunlukları ilk tablodaki uzunluklardan farklı olacak şekilde seçilir. Asal olmaları en iyisidir. Ek olarak, ilk tabloda sütunlar ve ikincide satırlar yeniden düzenlenebilir. Son olarak, masayı zikzak, yılan, spiral veya başka bir şekilde doldurabilirsiniz. Bu tür tablo doldurma yöntemleri, eğer şifrenin gücünü arttırmazlarsa, şifreleme işlemini çok daha eğlenceli hale getirir.

Permütasyon "Sihirli Kare"

Sihirli kareler, hücrelerine her sütun, her satır ve her köşegen için aynı sayıyı veren, 1'den sonraki ardışık doğal sayıların yazılı olduğu kare tablolar olarak adlandırılır. Bu tür kareler, içinde verilen numaralara göre şifreli metni girmek için yaygın olarak kullanıldı. Daha sonra tablonun içeriğini satır satır yazarsanız, harfleri yeniden düzenleyerek bir şifreleme elde edersiniz. İlk bakışta, çok az sihirli kare var gibi görünüyor. Ancak, karenin boyutu arttıkça sayıları çok hızlı bir şekilde artar. Bu nedenle, dönüşlerini hesaba katmazsanız, yalnızca bir 3 x 3 sihirli kare vardır. Halihazırda 880 4 x 4 sihirli kare vardır ve 5 x 5 sihirli kare sayısı yaklaşık 250.000'dir. Bu nedenle, büyük sihirli kareler için iyi bir temel olabilir. güvenilir sistem O zamanın şifrelemesi, çünkü bu şifre için tüm anahtar seçeneklerin manuel olarak numaralandırılması düşünülemezdi.

1'den 16'ya kadar olan sayılar 4'e 4 kareye yazılmıştır.Sihri, satırlar, sütunlar ve tam köşegenlerdeki sayıların toplamının aynı sayıya eşit olmasıydı - 34. Bu kareler ilk olarak Çin'de ortaya çıktı ve onlara bazı atfedildi. "sihirli güç".

16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

Sihirli kare ile şifreleme gerçekleştirildi Aşağıdaki şekilde. Örneğin, "Bugün geliyorum" ifadesini şifrelemek istiyorsunuz. Bu ifadenin harfleri, içlerinde yazılan sayılara göre sırayla kareye yazılır: Harfin cümle içindeki konumu sıra numarasına karşılık gelir. Boş hücrelere bir nokta yerleştirilir.

16. 3 ve 2 saat 13 gün
5 saat 10. 11 gr 8.
9C 6 saat 7 bir 12 hakkında
4 saat 15. 14 n 1 P

Bundan sonra, şifreli metin bir dizgeye yazılır (okuma soldan sağa, satır satır yapılır):
.irdzegyuSzhaoyanP

Şifresi çözüldüğünde, metin bir kareye sığar ve düz metin bir "sihirli kare" sayı dizisinde okunur. Program "sihirli kareler" oluşturmalı ve gerekli olanı tuşla seçmelidir. Kare 3x3'ten daha büyüktür.

Tarih

Gereksinimler

Orijinal mesajın tüm istatistiksel düzenliliklerinin tamamen kaybı, simetrik bir şifre için önemli bir gerekliliktir. Bunu yapmak için, şifrenin bir "çığ etkisi" olması gerekir - giriş verilerinde 1 bitlik bir değişiklikle şifre bloğunda güçlü bir değişiklik olmalıdır (ideal olarak, 1/2 bitlik değerler şifre bloğu değişmelidir).

Ayrıca önemli bir gereklilik, doğrusallığın olmamasıdır (yani, f(a) xor f(b) == f(a xor b) koşulları), aksi takdirde şifreye diferansiyel kriptanalizin uygulanması kolaylaşır.

Genel şema

Şu anda, simetrik şifreler şunlardır:

  • blok şifreleri. Belirli bir uzunluktaki (genellikle 64, 128 bit) bloklardaki bilgileri işleyin, bloğa bir anahtar uygulayarak Vaktinden, genellikle birkaç karıştırma ve değiştirme döngüsü ile, tur olarak adlandırılır. Tekrarlanan turların sonucu bir çığ etkisidir - açık ve şifreli veri blokları arasında artan bit yazışma kaybı.
  • gama kullanılarak orijinal (düz) metnin her biti veya baytı üzerinde şifrelemenin gerçekleştirildiği akış şifreleri. Bir akış şifresi, başlatılan bir blok şifresine (örneğin, gama modunda GOST 28147-89) dayalı olarak kolayca oluşturulabilir. özel muamele.

Çoğunluk simetrik şifrelerçok sayıda ikame ve permütasyonun karmaşık bir kombinasyonunu kullanın. Bu tür şifrelerin çoğu, her geçişte bir "geçiş anahtarı" kullanılarak birkaç (bazen 80'e kadar) geçişte yürütülür. Tüm geçişler için "geçiş anahtarları" kümesine "anahtar programı" denir. Kural olarak, üzerinde permütasyonlar ve ikameler dahil olmak üzere belirli işlemler gerçekleştirilerek anahtardan oluşturulur.

Simetrik şifreleme algoritmaları oluşturmanın tipik bir yolu Feistel ağıdır. Algoritma, F(D, K) işlevine dayalı bir şifreleme şeması oluşturur; burada D, şifreleme bloğunun yarısı büyüklüğündeki bir veri parçasıdır ve K, bu geçiş için "geçiş anahtarı"dır. Fonksiyonun tersine çevrilebilir olması gerekli değildir - ters fonksiyonu bilinmiyor olabilir. Feistel ağının avantajları, donanım uygulamasını büyük ölçüde basitleştiren, şifreleme ile şifre çözmenin neredeyse tamamen çakışmasıdır (tek fark, programdaki "geçiş anahtarlarının" tersidir).

Permütasyon işlemi, mesajın bitlerini belirli bir yasaya göre karıştırır. Donanım uygulamalarında, iletkenlerin dolanması olarak önemsiz bir şekilde uygulanır. “Çığ etkisi” elde etmeyi mümkün kılan permütasyon işlemleridir. Permütasyon işlemi doğrusaldır - f(a) xor f(b) == f(a xor b)

Yerine koyma işlemleri, mesajın bir bölümünün (genellikle 4, 6 veya 8 bit) değerinin, sabit bir diziye atıfta bulunarak algoritmaya sabit kodlanmış bir standart ile değiştirilmesi şeklinde gerçekleştirilir. Yerine koyma işlemi, algoritmaya doğrusal olmama durumu getirir.

Genellikle, bir algoritmanın gücü, özellikle diferansiyel kriptanalize karşı, ikame tablolarındaki (S-kutuları) değerlerin seçimine bağlıdır. Asgari olarak, S(x) = x sabit elemanlarına sahip olmanın yanı sıra, girdi baytının bir bitinin sonucun bir biti üzerindeki etkisinin olmaması - yani sonuç bitinin olduğu durumlar - istenmeyen olarak kabul edilir. yalnızca bu bitte farklılık gösteren tüm giriş sözcük çiftleri için aynıdır.

Algoritma Seçenekleri

Temel parametreleri aşağıdakiler olan birçok (en az iki düzine) simetrik şifreleme algoritması vardır:

  • anahtar uzunluğu
  • tur sayısı
  • işleme bloğu uzunluğu
  • donanım/yazılım uygulamasının karmaşıklığı
  • dönüştürme karmaşıklığı

Simetrik şifre türleri

Şifreleri engelle

  • AES (İngilizce Gelişmiş Şifreleme Standardı) - Amerikan şifreleme standardı

¦ Algoritmalar ve şifreleme standartları

¦ Elektronik dijital imza

¦ Modern kimlik doğrulama teknolojileri. Akıllı kartlar

Kriptografi, bilgilerin gizliliğini (dışarıdan bilgi okumanın imkansızlığı) ve gerçekliğini (yazarlığın bütünlüğü ve gerçekliği) sağlamak için matematiksel yöntemlerin bilimidir. Başka bir deyişle, kriptografi, bilgi şifreleme yöntemlerinin, yani kritik bilgileri depolamak için kullanılan veri koruma yöntemlerinin incelenmesidir. önemli bilgi güvenilmez kaynaklarda veya güvenli olmayan iletişim kanalları aracılığıyla iletimi.

Bir süreç olarak şifreleme, tarihi ile yüzyıllar öncesine dayanmaktadır. Yani, ikame şifreleri yaklaşık 2500 yıldır var. Bunun canlı bir örneği, MÖ 600 civarında ortaya çıkan Atbash şifresidir. İşinin özü, İbrani alfabesini ters sırada kullanmaktı. Julius Caesar ayrıca, kendi adını taşıyan bir ikame şifresi kullandı - Sezar şifresi. Sezar şifresinin özü, harflerin her birini, orijinalinden üç yer daha uzakta, alfabede duran bir başkasıyla değiştirmekti. Böylece A harfi D'ye, B harfi E'ye, I harfi G'ye dönüştü vb.

Güvenliği sağlamanın en önemli yollarından biri kuşkusuz şifreleme olarak adlandırılabilir. Ancak, şifrelemenin kendisinin hiçbir şekilde tüm sorunlar için her derde deva olmadığını unutmamalıyız. Şifreleme mekanizmaları, kapsamlı bir güvenlik programının parçası olabilir ve olmalıdır.

Klasik bilgi güvenliği kanunlarına göre şifreleme, bilgi güvenliğinin üç temel durumunu sağlar.

¦ Gizlilik. Şifreleme, aktarım veya depolama sırasında bilgileri yetkisiz kullanıcılardan gizlemek için kullanılır.

¦ Bütünlük. Şifreleme, bilgilerin iletim veya depolama sırasında değiştirilmesini önlemek için kullanılır. Canlı bir örnek, hash işlevi kullanılarak elde edilen sağlama toplamıdır (indireceğimiz dosyanın yanında FTP sunucularında görebileceğiniz şey (bunun gibi - dpofgj 0 93utm34tdfgb45ygf).

¦ Tanımlama. Şifreleme, bilginin kaynağının kimliğini doğrulamak ve bilgiyi gönderenin verinin kendilerine gönderildiğini inkar etmesini önlemek için kullanılır.

Herhangi bir şifreleme sisteminin kırılabileceği bilinmektedir. Mesele şu ki, şifrelenmiş bilgilere erişmek için kabul edilemez bir şekilde çok sayıda zaman ve kaynaklar.

Ne anlama geliyor ve neye benziyor gerçek hayat? Şu durumu hayal edin: bir saldırgan bir şekilde şifrelenmiş bilgileri ele geçirmeyi başardı. Saldırganın diğer eylemleri iki bilgisayar korsanlığı seçeneğine indirgenebilir (çalışma ortamındaki güvenlik açıklarından yararlanmaya indirgenen üçüncü bir seçenek de mümkündür):

¦ "kaba kuvvet" saldırısı veya Kaba kuvvet("kaba kuvvet" saldırıları, tüm olası anahtar çeşitlerinin seçimini ifade eder);

¦ algoritmadaki güvenlik açıklarını arayın.

Halihazırda kullanılan şifreleme algoritmalarının "ateş ve zaman" ile test edilmiş olduğu gerçeği göz önüne alındığında, cracker'ın Brute Force kullanacağı oldukça açıktır. Güçlü bir algoritma ve yeterince uzun bir anahtarla (örneğin, 512 bit) şifrelenmiş gizli bilgileri hacklemek, korsanın bir süper bilgisayar "ordusu" veya birkaç yüz bin makineden oluşan bir dağıtım ağı ve ayrıca çok fazla zaman ve para kullanmasını gerektirecektir. Ama para varsa neden olmasın! Böylece, 1997'de Electronic Frontier Foundation (EFF) duyurdu bilgisayar sistemi DES anahtarını dört gün içinde bulabilen . Böyle bir sistemin oluşturulması şirkete 250.000 dolara mal oldu. modern ekipman DES anahtarını 35 dakikada bir kaba kuvvet saldırısı ile belirlemek mümkündür.

2.1. Algoritmalar ve Şifreleme Standartları

Kullanılan anahtarlara bağlı olarak, şifreleme koşullu olarak aşağıdaki türlere ayrılabilir.

¦ Şifreleme ve şifre çözme anahtarının aynı anahtar olduğu simetrik şifreleme (sıradan düzeyde, sadece bir parola).

¦ Asimetrik şifreleme: genel ve özel olmak üzere iki farklı anahtarın kullanımını içerir. Genel anahtar genellikle açık form, kapalı her zaman gizli tutulur.

Örneğin kriptografi gibi diğer şifreleme türleri de bilinmektedir. Bilinen nedenlerden dolayı kriptografik algoritmalar halka açık değildir: yetkisiz kişiler şifreleme algoritmasının kendisini bilmezler; dönüşüm yasası yalnızca mesajın göndericisi ve alıcısı tarafından bilinir. Bu tür sistemlerin çarpıcı örneklerinden biri tek seferlik pedler olarak kabul edilebilir. Tek seferlik pedler (One-time Pad veya OTP), teorik olarak kırılmaz tek şifreleme sistemi olarak adlandırılabilir. Tek seferlik ped, içindeki sayıların bir listesidir. rastgele sıra Mesajı kodlamak için kullanılır. Adından da anlaşılacağı gibi, OTP yalnızca bir kez kullanılabilir. Tek seferlik pedler, çok yüksek güvenlik düzeyine sahip (ancak yalnızca kısa mesajlar için) bilgi ortamlarında yaygın olarak kullanılmaktadır. Böylece, Sovyetler Birliği'nde OTP, Moskova ile istihbarat iletişim kurmak için kullanıldı.

simetrik şifreleme

Yukarıda bahsedildiği gibi, simetrik şifreleme ile verileri şifrelemek ve şifresini çözmek için aynı anahtar kullanılır. Algoritmanın anahtarının her iki tarafça da gizli tutulması gerektiği açıktır. Basit bir ifadeyle, bu durum anahtar, elbette gizli tutulması gereken paroladır.

Popüler simetrik şifreleme algoritmaları şunlardır:

¦ DES (çok eski) ve TripleDES (3DES);

¦ AES (Rijndael);

¦ GOST 28147-89;

Simetrik şifreleme algoritmalarının ana parametreleri dikkate alınabilir:

¦ ısrar;

¦ anahtar uzunluğu;

¦ tur sayısı;

¦ işlenmiş bloğun uzunluğu;

¦ donanım/yazılım uygulamasının karmaşıklığı.

Öyleyse başlayalım.

Veri Şifreleme Standardı (DES). Veri Şifreleme Standardı (DES) algoritması, 1970'lerin başında IBM tarafından geliştirilmiştir. ABD Ulusal Standartlar ve Teknoloji Enstitüsü (NIST), 1977'de DES için algoritmayı (FIPS Yayını 46) benimsemiştir. Algoritma ayrıca 1983, 1988, 1993 ve 1999'da değiştirildi.

Yakın zamana kadar, DES "Amerika Birleşik Devletleri'nde standart" idi, çünkü ABD hükümeti, çeşitli veri şifreleme sistemlerini uygulamak için kullanılmasını tavsiye etti. Bununla birlikte, DES'in başlangıçta 10-15 yıldan fazla kullanılmaması planlanmasına rağmen, yerini alma girişimleri yalnızca 1997'de başladı.

DES, 56 bitlik bir anahtar kullanır. Günümüz standartlarına göre, bu anahtar uzunluğu kabul edilemez. DES, bir seferde bir 64 bitlik düz metin bloğu işleyen bir blok şifreleme algoritmasıdır. DES algoritması, her turda farklı bir alt anahtarla 16 tur şifreleme çalıştırır. Anahtar, 16 alt anahtar oluşturmak için kendi algoritmasına tabi tutulur (Şekil 2.1).

Pirinç. 2.1. DES nasıl çalışır?

Algoritmanın çalışmasını daha ayrıntılı olarak ele alalım. 64 bitlik bir giriş veri bloğu, aynı uzunlukta bir çıkış bloğuna dönüştürülür. Şifreleme anahtarı hem gönderen hem de alan taraflarca bilinmelidir. Algoritma, metin biti permütasyonlarından kapsamlı bir şekilde yararlanır.

32 bitlik kaynak sözcükleri ® üzerinde çalışan ve parametre olarak 48 bitlik bir anahtar (J) kullanan F işlevi tanıtıldı. F fonksiyonunun çalışma şeması, Şek. 2.1. İlk olarak, 32 giriş biti 48'e genişletilir ve bazı bitler tekrarlanır.

Elde edilen 48 bitlik kod ve anahtar üzerinde Modulo 2 eklemesi yapılır ve ortaya çıkan 48 bitlik kod, S matrisleri kullanılarak 32 bit'e dönüştürülür.

Orijinal 48 bitlik kod, altı bitlik sekiz gruba ayrılmıştır. Gruptaki ilk ve son haneler satır adresi, ortadaki dört hane sütun adresi olarak kullanılır. Sonuç olarak, kodun her altı biti dört bite dönüştürülür ve 48 bitlik kodun tamamı 32 bit'e dönüştürülür (bu, sekiz S matrisi gerektirir). Çerçeve içinde şifrelemeye izin veren gelişmeler var DES standardı oldukça yüksek bir performans sağlayan donanım.

DES algoritmasının tüm inceliklerini anlamak için, DES'in temeli olan Feishtel ağını (bazen Feistel ağı olarak da adlandırılır) tanımlamak oldukça uygun olacaktır.

1973'te Horst Feistel Scientific American'da "Kriptografi ve Bilgisayar Gizliliği" başlıklı bir makale yayınladı. önemli yönlerşifreleme ve ayrıca daha sonra Feishtel ağı olarak adlandırılan bir tasarım tanıttı. Bu devre, IBM'in Feishtel ve Don Coppersmith tarafından üzerinde çalışılan Lucifer projesinde kullanıldı. Bu proje oldukça deneyseldi, ancak Veri Şifreleme Standardının (DES) temeli oldu. Algoritmanın yinelemeli yapısı, donanım ortamlarında uygulanmasını basitleştirmeyi mümkün kıldı.

Aşağıdaki blok şifrelerin özünde klasik veya değiştirilmiş Feishtel ağını kullandığını belirtmek yerinde olacaktır: Blowfish, Camellia, CAST, DES, FEAL, GOST 28147-89, KASUMI, LOKI97, Lucifer, MacGuffin, MARS, MAGENTA, MISTY1, RC2 , RC5, RC6, Skipjack, TEA, Triple DES, Twofish, XTEA.

ÜçlüDES (3DES). DES'in belirgin istikrarsızlığı, bazı alternatif arayışlarına yol açtı. 1992'de yapılan araştırmalar, daha güçlü şifreleme sağlamak için DES'in üç kez kullanılabileceğini gösterdi. Üçlü DES (3DES) işte böyle doğdu. Üçlü DES, iki veya üç anahtarla kullanılır. Bu durumda kullanılan anahtar, geleneksel DES'den daha fazla güç sağlar.

Gelişmiş Şifreleme Standardı (AES). DES'in yayınlanmasından kısa bir süre sonra, algoritmanın bariz bir zayıflığı keşfedildi. Yeni bir standarda duyulan ihtiyaç aşikardı: DES anahtarının (56 bit) küçük uzunluğu, bu algoritmaya karşı bir kaba kuvvet yönteminin kullanılmasını mümkün kıldı. Ayrıca, DES mimarisi donanım uygulamasına yönelikti ve algoritmanın sınırlı kaynaklara sahip platformlarda yazılım uygulaması gerekli performansı sağlamadı. TDES modifikasyonunun yeterli bir anahtar uzunluğu vardı, ancak daha da yavaştı. TDES, sağlam ve güvenilir olarak kabul edilecek kadar uzun süredir mevcut değil. Beklendiği gibi, daha sağlam ve güvenilir bir algoritma ile değiştirildi - bu arada, bir yarışma sonucunda seçilen ve ABD hükümeti tarafından Amerikan şifreleme standardı olarak kabul edilen AES. Yarışmanın kendisi hakkında biraz.

2 Ocak 1997 NIST (Ulusal Standartlar ve Teknoloji Enstitüsü), 1977'den beri bir Amerikan standardı olan DES'in yerini alacak bir şey bulma niyetini duyurdu. NIST, bir algoritmanın nasıl seçilmesi gerektiği konusunda paydaşlardan makul miktarda girdi aldı. Açık şifreleme topluluğundan gelen güçlü tepki, yarışmanın 12 Eylül 1997'de duyurulmasına yol açtı. Hemen hemen her kuruluş veya araştırmacı grubu bir algoritma önerebilir. Yeni standart için minimum gereksinimler aşağıdaki gibidir:

¦ bir blok şifre olmalıdır;

¦ blok uzunluğu 128 bit olmalıdır;

¦ algoritma 128, 192 ve 256 bit uzunluğunda anahtarlarla çalışmalıdır;

¦ hem donanımda (mikroçiplerde) hem de yazılımda (kişisel bilgisayarlarda ve sunucularda) kolayca uygulanan işlemleri kullanın;

¦ 32 bit işlemcilere odaklanmak;

¦ tüm ilgili tarafların bağımsız olarak algoritmanın bağımsız bir kriptoanalizini gerçekleştirebilmesi ve belgelenmemiş herhangi bir özellik içermediğinden emin olması için şifrenin yapısını gereksiz yere karmaşık hale getirmeyin.

Yukarıdakilerin hepsine ek olarak, standart olma iddiasında olan bir algoritma, bir patent kullanımı için ücret ödemeden tüm dünyaya dağıtılmalıdır.

20 Ağustos 1998'de, ilk AES konferansında 15 adaydan oluşan bir liste açıklandı: CAST-256, CRYPTON, DEAL, DFC, E2, FROG, HPC, LOKI97, MAGENTA, MARS, RC6, Rijndael, SAFER + , Yılan ve Twofish.

Daha sonraki tartışmalarda bu algoritmaların en kapsamlı analize tabi tutulduğu ve sadece bilinen saldırılara karşı direnç ve zayıf anahtarların yokluğu gibi kriptografik özelliklerin değil, aynı zamanda uygulamanın pratik yönlerinin de incelendiği açıktır. Bu nedenle, bir algoritma seçerken, çeşitli mimarilerde (PC'lerden akıllı kartlara ve donanım uygulamalarına kadar) kod yürütme hızını optimize etmeye, kod boyutunu optimize etme olasılığına ve paralelleştirme olasılığına özel dikkat gösterildi.

Mart 1999'da ikinci AES konferansı düzenlendi ve Ağustos 1999'da aralarında MARS, RC6, Rijndael, Serpent ve Twofish bulunan beş finalist açıklandı. Hepsi dünya çapında tanınan saygın kriptograflar tarafından geliştirilmiştir. Nisan 2000'deki 3. AES konferansında tüm yazarlar algoritmalarını sundular.

13 ve 14 Nisan 2000'de New York'ta, ikinci aşamanın tamamlanmasından kısa bir süre önce, üçüncü AES konferansı düzenlendi. İki günlük konferans günde dört oturumdan oluşan sekiz oturuma bölündü. İlk günün oturumlarında programlanabilir matrisler (FGPA) ile ilgili konular tartışıldı, algoritmaların uygulanması değerlendirildi. çeşitli platformlar PA-RISC, IA-64, Alpha, üst düzey akıllı kartlar ve sinyal işlemcileri dahil olmak üzere, standart için başvuranların performansları karşılaştırılmış, aday algoritmalardaki tur sayıları analiz edilmiştir. İkinci gün, Rijndael azaltılmış tur sayısı ile analiz edildi ve bu durumdaki zayıflığı gösterildi, beş aday algoritmanın tamamının nihai standarda entegre edilmesi konusu tartışıldı, tüm algoritmalar tekrar test edildi. İkinci günün sonunda, başvuranların algoritmalarını, avantajlarını ve dezavantajlarını anlattığı bir sunum gerçekleştirildi. Rijndael, korumanın yüksek güvenilirliğini açıklayan Vincent Rijmen tarafından lider olarak nitelendirildi. Genel performans ve adayının mimarisinin sadeliği.

2 Ekim 2000'de yarışmanın kazananının Rijndael algoritması olduğu açıklandı ve standardizasyon prosedürü başladı. 28 Şubat 2001'de taslak yayınlandı ve 26 Kasım 2001'de AES, FIPS 197 olarak kabul edildi.

Açıkçası, Rijndael çok çeşitli anahtar ve blok uzunluklarını desteklediğinden AES ve Rijndael aynı değildir.

Rijndael algoritmasının Feishtel ağına dayalı bilinen simetrik şifreleme algoritmalarının çoğundan farklı olması özellikle dikkate değerdir. Okuyucularımıza Feishtel ağının özelliğinin, giriş değerinin iki veya daha fazla alt bloğa bölünmesi, bunların bazıları her turda belirli bir yasaya göre işlenmesi ve ardından işlenmemiş alt blokların üzerine bindirilmesi olduğunu hatırlatırız.

Aşağıda tartışılacak olan GOST 28147'den farklı olarak, Rijndael algoritması, 4 x 4, 4 x 6 veya 4 x 8 boyutlarında iki boyutlu bir bayt dizisi biçiminde bir veri bloğunu temsil eder (şifreli bilgi bloğunun birkaç sabit boyutuna izin verilir). ). Tüm işlemler, bağımsız sütun ve satırların yanı sıra dizinin ayrı baytlarında gerçekleştirilir.

Rijndael algoritması, dört ardışık dönüşümün yürütülmesini sağlar.

1. BS (ByteSub) - dizinin her bir baytının tablo değişimi (Şekil 2.2).


Pirinç. 2.2. Bir dizinin her baytının tablo değişimi

2. SR (ShiftRow) – dizi satır kaydırma. Bu işlemle, ilk satır değişmeden kalır ve geri kalanı, dizinin boyutuna bağlı olarak, sabit sayıda bayt ile döngüsel olarak bayt bayt sola kaydırılır. Örneğin, 4 x 4'lük bir dizi için 2, 3 ve 4 satırları sırasıyla 1, 2 ve 3 bayt kaydırılır (Şekil 2.3).

3. Sıradaki MC (MixColumn) - her sütun belirli bir kurala göre sabit bir C (X) matrisi ile çarpıldığında bağımsız dizi sütunları üzerinde bir işlem (Şekil 2.4).

4. Son aşama - AK (AddRoundKey) - bir anahtar ekleme. Dizinin her biti, sırayla şifreleme anahtarından belirli bir şekilde hesaplanan yuvarlak anahtarın karşılık gelen bitine modulo 2 eklenir (Şekil 2.5).


Pirinç. 2.3. Dizi Satır Kaydırma


Pirinç. 2.4. MixColumn işlemi


Pirinç. 2.5. Anahtar işlemi ekle

Şifrelenmiş verilerin yukarıdaki dönüşümleri sırayla her turda gerçekleştirilir (Şekil 2.6).

Pirinç. 2.6. Rijndael turlarının sırası

Rijndael algoritmasında, şifreleme turlarının ® sayısı değişkendir (10, 12 veya 14 tur) ve bloğun boyutuna ve şifreleme anahtarına bağlıdır (anahtar için birkaç sabit boyut da vardır).

Rijndael neden diğer algoritmaların önünde yeni şifreleme standardı haline geldi? Her şeyden önce, yüksek şifreleme hızı sağlar ve tüm platformlarda: hem yazılımda hem de donanım uygulamasında. Algoritma, yarışma için sunulan diğer algoritmalara kıyasla hesaplamaları paralelleştirmek için başarılı bir mekanizma ile ayırt edilir. Ek olarak, çalışması için kaynak gereksinimleri minimumdur, bu da sınırlı bilgi işlem yeteneklerine sahip cihazlarda kullanıldığında önemlidir.

AES algoritmasının tüm avantajları ve özgünlüğü ile, güvenilirliğin ve dayanıklılığın mutlak olduğu düşünülebilir, ancak her zaman olduğu gibi mükemmel ürünler yoktur.

26 Mayıs 2006'da Quo Vadis IV konferansında Nicolas Tadeusz Courtois (Fransa'da yaşayan Polonyalı bir kriptograf), AES-Rijndael şifresine karşı optimize edilmiş cebirsel saldırıların varlığının pratik bir kanıtını sundu. Dizüstü bilgisayarında bir buçuk saat içinde, Rijndael'in yakın bir analogunun sadece birkaç şifreli metnini kullanarak bir demo kırma gerçekleştirdi. Sadece bir model şifre olmasına rağmen, aynı derecede güçlüydü, ona önemli bir zayıflık eklenmedi, aynı iyi difüzyon özelliklerine ve daha önce bilinen tüm kriptanaliz türlerine karşı dirence sahipti. Tek fark, cebirsel saldırı modeli çerçevesinde değiştirilen S-kutularının parametreleri ve netlik için tur sayısının azaltılmasıydı. Ancak bu, şüphecileri cebirsel saldırıların gerçekliğine ve görünüşte mükemmel bir şifreleme yönteminin bile kusurlu olduğuna ikna etmek için yeterliydi.

GOST 28147. Ele alacağımız bir sonraki simetrik şifreleme algoritması GOST 28147-89 olacaktır. Bu, 1 Temmuz 1990'da tanıtılan simetrik şifreleme için Sovyet ve Rus standardıdır. Standart, bilgisayar ağlarında, ayrı bilgisayar sistemlerinde veya bilgisayarlarda depolanan ve iletilen verilerin kriptografik korumasını kullanan kuruluşlar, işletmeler ve kurumlar için zorunludur.

Algoritma, SSCB KGB'nin eski Ana Müdürlüğünde veya sistemindeki gizli araştırma enstitülerinden birinde geliştirildi. Başlangıçta bir boynu vardı (OV veya SS - tam olarak bilinmiyor), daha sonra boyun sürekli olarak azaltıldı ve algoritma 1989'da SSCB Devlet Standardı aracılığıyla resmi olarak gerçekleştirilinceye kadar kaldırıldı. Algoritma DSP olarak kaldı (bildiğiniz gibi, DSP bir boyun olarak kabul edilmez). 1989'da SSCB'nin resmi standardı oldu ve daha sonra SSCB'nin çöküşünden sonra Rusya Federasyonu'nun federal standardı oldu.

GOST yayınlandığı andan itibaren, "Resmi kullanım için" kısıtlayıcı bir damgası vardı ve resmi olarak şifre sadece Mayıs 1994'te "tamamen açık" ilan edildi. Bilinen nedenlerden dolayı, şifrenin yaratılış tarihi ve tasarım kriterleri hala bilinmemektedir.

GOST 28147-89, 64 bit bloklarda çalışan 256 bit anahtar ve 32 dönüşüm döngüsüne sahip bir blok şifredir. Algoritmanın temeli, zaten bildiğimiz Feishtel ağıdır. GOST 28147-89'a göre ana şifreleme modu, basit değiştirme modudur (daha karmaşık gama ve gama modları geri bildirim). Algoritmanın mekanizmasını daha ayrıntılı olarak ele alalım.

GOST 28147-89 ile çalışırken, bilgi 64 bitlik bloklarda şifrelenir (bu tür algoritmalara blok algoritmaları denir), daha sonra 32 bitlik iki alt bloğa (N1 ve N2) bölünür. N1 alt bloğunun işlenmesinden sonra değeri, N2 alt bloğunun değeri ile eklenir (ekleme modulo 2 yapılır, yani mantıksal XOR işlemi uygulanır - özel VEYA) ve sonra alt bloklar değiştirilir. Bu dönüşüm gerçekleştirilen belli bir miktar kez (tur): Algoritmanın çalışma moduna bağlı olarak 16 veya 32. Her turda iki işlem gerçekleştirilir (Şekil 2.7).

Pirinç. 2.7. Dönüşüm belirli sayıda gerçekleştirilir

İlk işlem, bir anahtarın yerleştirilmesini içerir. N1 alt bloğunun içeriği, Kx anahtarının 32 bitlik kısmına modulo 2 eklenir. Tam şifreleme anahtarı, 32 bitlik alt anahtarların bir birleşimi olarak temsil edilir: K0, K1, K2, K3, K4, K5, K6, K7. Şifreleme işlemi, yuvarlak sayı ve algoritma moduna bağlı olarak bu alt anahtarlardan birini kullanır.

İkinci işlem bir masa değiştirme işlemi gerçekleştirir. Anahtarlamadan sonra, alt blok N1, dört bitlik sekiz parçaya bölünür, bunların her birinin değeri, alt bloğun bu bölümü için değiştirme tablosuna göre değiştirilir. Alt blok daha sonra bit düzeyinde 11 bit döndürülerek bırakılır.

GOST 28147-89 tarafından tanımlanan algoritma dört modda çalışabilir:

¦ basit değiştirme;

¦ kumar;

¦ geri bildirim ile ölçekleme;

¦ taklit önekleri nesil.

Öneklerin oluşturulmasında, yukarıda açıklanan şifreleme dönüşümünün aynısı kullanılır, ancak modların amacı farklı olduğundan, bu dönüşüm her birinde farklı şekilde gerçekleştirilir.

Basit değiştirme modunda, her 64 bitlik bilgi bloğunu şifrelemek için yukarıda açıklanan 32 tur gerçekleştirilir. Blokların her biri diğerinden bağımsız olarak şifrelenir, yani her bloğun şifrelenmesinin sonucu yalnızca içeriğine (karşılık gelen kaynak blok) bağlıdır. Orijinal (düz) metnin birkaç aynı bloğu varsa, karşılık gelen şifreli metin blokları da aynı olacaktır, bu da ek bir bilgi verir. kullanışlı bilgişifreyi kırmaya çalışan bir kriptanalist için. Bu nedenle, bu mod esas olarak şifreleme anahtarlarının kendilerini şifrelemek için kullanılır (çoğunlukla, birkaç nedenden dolayı anahtarların üst üste şifrelendiği çok anahtarlı şemalar uygulanır). Bilginin kendisini şifrelemek için, diğer iki çalışma modu amaçlanmıştır: geri bildirimli gama ve gama.

Gama modunda, her düz metin bloğu, 64-bit şifreli gama bloğuna bit bazında modulo 2 eklenir. Şifreli gama, N1 ve N2 kayıtlarıyla belirli işlemler sonucunda elde edilen özel bir dizidir.

1. N1 ve N2 kayıtlarında, ilk doldurmaları yazılır - senkronizasyon mesajı olarak adlandırılan 64 bitlik bir değer.

2. N1 ve N2 kayıtlarının içeriği (bu durumda, senkronizasyon mesajları) basit değiştirme modunda şifrelenir.

3. N1 kaydının içeriği, 2 24 + 2 16 + 2 8 + 2 4'e eşit C1 sabiti ile modulo (2 32 – 1) eklenir ve toplama sonucu N1 kaydına yazılır.

4. N2 kaydının içeriği, 2 24 + 2 16 + 2 8 + 1'e eşit C2 sabiti ile modulo 2 32 eklenir ve toplamanın sonucu N2 kaydına yazılır.

5. N1 ve N2 kayıtlarının içeriği 64-bit şifreli gama bloğu olarak çıkar (bu durumda, N1 ve N2 ilk gama bloğunu oluşturur).

Bir sonraki gama bloğu gerekiyorsa (yani, şifreleme veya şifre çözmenin devam etmesi gerekiyorsa), 2. adıma dönün.

Şifre çözme için gama benzer şekilde üretilir ve ardından şifreli metin ve gama bitleri tekrar XOR'lanır.

Şifre çözme için gereken şifre aralığını geliştirmek için, şifreyi çözen kullanıcının, bilgi şifrelenirken kullanılan aynı anahtara ve eşitleme mesajının aynı değerine sahip olması gerekir. Aksi takdirde, orijinal metni şifreli olandan alamazsınız.

GOST 28147-89 algoritmasının çoğu uygulamasında, senkronizasyon mesajı gizli değildir, ancak senkronizasyon mesajının şifreleme anahtarıyla aynı gizli öğe olduğu sistemler vardır. Bu tür sistemler için, algoritma anahtarının (256 bit) etkin uzunluğu, aynı zamanda bir anahtar eleman olarak da düşünülebilecek olan gizli senkronizasyon mesajının 64 bit'i ile arttırılır.

Geri besleme gama modunda, ikinci bloktan başlayarak N1 ve N2 kayıtlarını doldurmak için önceki gama bloğu değil, önceki düz metin bloğunun şifrelemesinin sonucu kullanılır. Bu moddaki ilk blok, bir öncekiyle tamamen aynı şekilde oluşturulur.

Taklit öneklerinin türetilme biçimleri göz önüne alındığında, türetme öznesi kavramını tanımlamak gerekir. Sahtekarlık, bir şifreleme anahtarı kullanılarak hesaplanan ve mesajların bütünlüğünü kontrol etmek için tasarlanmış bir kriptografik sağlama toplamıdır. Bir önek oluştururken, aşağıdaki işlemler gerçekleştirilir: ön ekin hesaplandığı bilgi dizisinin ilk 64 bit bloğu, N1 ve N2 kayıtlarına yazılır ve azaltılmış basit değiştirme modunda şifrelenir (ilk 16 32 tur üzerinden gerçekleştirilir). Elde edilen sonuç, bir sonraki bilgi bloğu ile modulo 2 toplanır ve sonuç N1 ve N2'ye kaydedilir.

Döngü, son bilgi bloğuna kadar tekrarlanır. Bu dönüşümlerin bir sonucu olarak N1 ve N2 kayıtlarının veya bunun bir kısmının ortaya çıkan 64 bit içeriğine taklit öneki denir. Ön ekin boyutu, gerekli mesaj güvenilirliğine göre seçilir: önek uzunluğu r bit ile, bir mesaj değişikliğinin fark edilmeden gitme olasılığı 2^'dir.Çoğu zaman, 32 bitlik bir önek kullanılır, yani, kayıtların içeriğinin yarısı. Bu yeterlidir, çünkü herhangi bir sağlama toplamı gibi, taklit öneki öncelikle bilgilerin yanlışlıkla bozulmasına karşı koruma amaçlıdır. Verilerin kasıtlı olarak değiştirilmesine karşı koruma sağlamak için, başta elektronik bir dijital imza olmak üzere diğer şifreleme yöntemleri kullanılır.

Bilgi alışverişinde bulunurken, taklit öneki bir tür ek kontrol aracı görevi görür. Bazı bilgiler şifrelendiğinde ve şifreli metinle birlikte gönderildiğinde düz metin için hesaplanır. Şifre çözme işleminden sonra, gönderilen ile karşılaştırılan yeni bir taklit önek değeri hesaplanır. Değerler eşleşmezse, iletim sırasında şifreli metin bozuldu veya şifre çözme sırasında yanlış anahtarlar kullanıldı. Taklit öneki, özellikle çok anahtarlı şemalar kullanılırken anahtar bilgilerin doğru kod çözümünün kontrol edilmesi için kullanışlıdır.

GOST 28147-89 algoritması yeterince güçlü olarak kabul edilir - şu anda açıklanması için yukarıda belirtilen Brute Force'tan daha etkili bir yöntem yoktur. Algoritmanın yüksek güvenliği, öncelikle 256 bite eşit büyük anahtar uzunluğu nedeniyle elde edilir. Ayrıca, gizli bir eşitleme mesajı kullanıldığında, etkin anahtar uzunluğu 320 bit'e çıkar ve değiştirme tablosunun sırrı ek bitler ekler. Ek olarak, GOST 28147-89'un zaten 32 turda olan kriptografik gücü, yeterliden fazla olarak kabul edilebilir ve bu, girdi verilerinin dağılımının tam etkisinin sekiz turdan sonra elde edilmesine rağmen.

Bugüne kadar, GOST 28147-89 algoritması, kriptografinin tüm gereksinimlerini tam olarak karşılar ve diğer algoritmalarla aynı avantajlara sahiptir, ancak eksikliklerinden yoksundur. Bu algoritmanın bariz avantajları şunları içerir:

¦ uygulama verimliliği ve buna bağlı olarak modern bilgisayarlarda yüksek performans;

¦ bir güç saldırısının yararsızlığı (etkililikleri henüz tam olarak kanıtlanmadığından XSL saldırıları dikkate alınmaz).

Bununla birlikte, her zaman olduğu gibi, algoritma hatasız değildir: GOST'un "zayıf" anahtarlara ve S kutularına sahip olduğu önemsiz bir şekilde kanıtlanmıştır, ancak standart, "zayıf" olanları seçme ve bırakma kriterlerini açıklamaz. Ayrıca standart, S-kutuları (ikame tabloları) oluşturmak için bir algoritma belirtmez. Bir yandan, bu ek gizli bilgi olabilir (anahtara ek olarak) ve diğer yandan bir takım sorunları ortaya çıkarır: ikame tablosunu önceden bilmeden bir algoritmanın kriptografik gücünü belirlemek imkansızdır. ; algoritmanın farklı üreticilerin uygulamaları, farklı ikame tabloları kullanabilir ve birbirleriyle uyumlu olmayabilir.

Diğer bazı simetrik şifreleme algoritmalarına hızlıca bir göz atalım.

balon balığı. Blowfish, 1993 yılında Schneier tarafından geliştirilen 64 bitlik bir blok şifrelemedir. Bu şifre, diğerleri gibi, Feishtel ağ algoritmasına dayanmaktadır. Bu algoritmanın tek bir şifreleme turu, anahtara bağlı bir permütasyon ve veri anahtarına bağlı bir ikameden oluşur. Tüm işlemler XOR'lara ve 32 bitlik kelimelere yapılan eklemelere dayanmaktadır. Anahtarın değişken bir uzunluğu vardır ( maksimum uzunluk 448 bit) ve birden çok alt anahtar dizisi oluşturmak için kullanılır. Şifre, özellikle 32 bit makineler için oluşturuldu ve daha önce ele aldığımız DES algoritmasından önemli ölçüde daha hızlı.

FİKİR(Uluslararası Veri Şifreleme Algoritması) 1980'lerin sonlarında K. Lai ve D. Massey tarafından geliştirilmiştir. 128 bit anahtar ve sekiz tur ile 64 bit yinelenen bloklardan oluşan bir şifredir. Daha önce tartışılan şifreleme algoritmalarından farklı olarak, şifre çözme işlemi şifreleme işlemine benzer olsa da IDEA'nın Feishtel ağını temel almadığına dikkat edilmelidir. IDEA, hem yazılımda hem de donanımda uygulanması kolay olacak şekilde tasarlanmıştır. Ek olarak, IDEA'nın güvenliği, 16 bitlik kelimeler üzerinde uyumsuz üç tür aritmetik işlemin kullanımına dayanmaktadır.

IDEA'nın yaratılmasının arkasındaki ilkelerden biri, şu anda cebirsel eksikliği ile ifade edilen, diferansiyel kriptanalizini mümkün olduğunca zor hale getirmekti. zayıflıklar algoritma. Bazı "Daemen"ler tarafından bulunan geniş zayıf anahtar sınıfı (2 51) teorik olarak algoritmayı tehlikeye atabilse de, IDEA oldukça güvenilir bir algoritma olmaya devam ediyor, çünkü kırılmayı zorlaştıran 2 128 olası anahtar var.

RC5 Rivest (Ronald Linn Rivest) tarafından özellikle RSA Veri Güvenliği için geliştirilmiş oldukça hızlı bir blok şifredir. Bu algoritma parametriktir, yani bloğu, anahtar uzunluğu ve geçiş sayısı (tur) değişkendir.

Blok boyutu 32, 64 veya 128 bit olabilir. Geçiş sayısı 0 ila 2048 bit arasında değişebilir. Bu tür bir parametriklik, RC5'i sınıfında son derece esnek ve verimli bir algoritma haline getirir.

RC5'in olağanüstü sadeliği, kullanımını kolaylaştırır. 64 bitlik blok boyutuna ve 12 veya daha fazla geçişe sahip RC5, diferansiyel ve lineer kriptanalize karşı iyi direnç sağlar.

asimetrik şifreleme

Hem şifre çözme hem de şifreleme için aynı anahtarı kullanan simetrik şifreleme algoritmalarının aksine, asimetrik şifreleme algoritmaları genel (şifreleme için) ve özel veya gizli (şifre çözme için) anahtarlar kullanır.

Pratikte, bir anahtara gizli anahtar, diğerine ise açık anahtar denir. Gizli anahtar, anahtar çiftinin sahibi tarafından gizli tutulur. Açık anahtar, açık bir şekilde herkese açık olarak iletilir. Abonenin anahtar çiftlerinden birine sahip olması durumunda diğer anahtarın hesaplanamayacağına dikkat edilmelidir.

Açık anahtar şu sırdan hesaplanır: kl = f(k2). Asimetrik şifreleme algoritmaları, tek yönlü işlevlerin kullanımına dayanmaktadır. Tanım olarak, bir y = f(x) işlevi, tüm olası x için kolayca hesaplanabiliyorsa ve y'nin olası çoğu değeri için, x'i y = f(x) olacak şekilde hesaplamak yeterince zorsa tek yönlüdür. ) .

Tek yönlü bir fonksiyona örnek, iki büyük sayının çarpımıdır: N = S x G. Kendi başına, matematik açısından, böyle bir çarpma basit bir işlemdir. Bununla birlikte, modern zaman tahminlerine göre çarpanlara ayırma olarak da adlandırılan ters işlem (N'yi iki büyük faktöre ayrıştırma), oldukça karmaşık bir matematiksel problemdir.

Pekala, bazı asimetrik şifreleme algoritmalarına bakalım.

Diffie-Hellman algoritması. 1976'da Whitfield Diffie ve Martin Hellman ortak anahtar şifreleme sistemini geliştirdiler. Diffie-Hellman sistemi, gizli anahtarlı şifreleme sistemleri kullanılırken anahtar dağıtımı sorununu çözmek için geliştirilmiştir. Fikir uygulamaktı güvenli yöntem anahtarı başka bir şekilde aktarmadan gizli bir anahtarın görüşülmesi. Bu nedenle, korumanın tasarlandığı aynı iletişim yöntemini kullanarak gizli anahtarı elde etmenin güvenli bir yolunu bulmak gerekiyordu. Diffie-Hellman algoritmasının özü aşağıdaki gibidir. İki noktanın (S1 ve S2) kendi aralarında bir şifreleme anahtarı üzerinde anlaşmaya varılması gereken güvenli bir bağlantı kurması gerektiğini varsayalım.

¦ S1 ve S2 iki büyük a ve b tamsayısını kabul eder, burada 1< a < b.

¦ S1 seçer rastgele sayı i ve hesaplar I = ai ? mod b. S1, I'yi abone S2'ye gönderir.

¦ S2 rasgele bir j sayısı seçiyor ve J = aj hesaplıyor mu? mod b. S2, J'yi abone S1'e gönderir.

¦ S1, k1 = Ji'yi hesaplıyor mu? mod b.

¦ S2, k2 = Ij'yi hesaplar mı? mod b.

k1 = k2 = ai var mı? j x mod b bu nedenle k1 ve k2 diğer verilerin iletiminde kullanılacak gizli anahtarlardır.

Saldırganın iletilen trafiği bir şekilde dinlemeyi başardığını varsaysak bile, o zaman a, b, I ve J'yi bilecektir. Bununla birlikte, i ve j gizli kalır. Sistemin güvenlik seviyesi, bilinen I = ai ile i bulmanın karmaşıklığına bağlıdır. mod b. Bu soruna ayrık logaritma sorunu denir ve sayılar çok büyükse çok zor (yani modern bilgi işlem ekipmanıyla çözmek pratik olarak imkansızdır) olarak kabul edilir. Bu nedenle a ve b çok dikkatli seçilmelidir. Örneğin, hem b hem de (b - 1)/2 sayıları asal olmalı ve en az 512 bit uzunluğunda olmalıdır. Önerilen sayı uzunluğu 1024 bittir.

RSA algoritması 1978 yılında üç ortak yazar tarafından geliştirildi ve adını geliştiricilerin (Rivest, Shamir, Adleman) adlarının ilk harflerinden aldı. Algoritmanın kararlılığı, büyük sayıları çarpanlara ayırmanın ve ayrık logaritmaların hesaplanmasının karmaşıklığına dayanır. Ana parametre RSA algoritması sistemdeki tüm hesaplamaların yapıldığı ve N = R x S (R ve S, genellikle aynı boyutta olan gizli rastgele büyük basit sayılardır) N sisteminin modülüdür.

Gizli anahtar k2 seçildi rastgele ve aşağıdaki koşulları karşılamalıdır: 1< k2 < F(N) и НОД (k2, F(N))= 1, где НОД – наибольший общий делитель. Иными словами, k1 должен быть взаимно простым со значением функции Эйлера F(N) , причем последнее равно количеству положительных целых чисел в диапазоне от 1 до N, взаимно простых с N, и вычисляется как F(N) = (R – 1) ? (S – 1) .

Açık anahtar kl, (k2 x kl) = 1 ? mod F(N). Bunun için genelleştirilmiş Öklid algoritması (en büyük ortak böleni hesaplamak için bir algoritma) kullanılır. M veri bloğu RSA algoritması kullanılarak aşağıdaki şekilde şifrelenir: C = Mkl ? mod N. RSA kullanan gerçek bir kriptosistemdeki k1 sayısı çok büyük olduğundan (şu anda boyutu 2048 bite kadar ulaşabilir), Mk1'in doğrudan hesaplanması gerçekçi değildir. Bunu elde etmek için, sonuçların çarpımı ile M'nin çoklu karelerinin bir kombinasyonu kullanılır. Bu fonksiyonun büyük boyutlarda tersine çevrilmesi mümkün değildir; başka bir deyişle, bilinen C, N ve kl'den M'yi bulmak imkansızdır. Ancak, k2 gizli anahtarına sahip olmak, basit dönüşümlerin yardımıyla M = Ck2 ? mod N. Gizli anahtarın kendisine ek olarak, R ve S parametrelerinin gizliliğinin sağlanması gerektiği açıktır. Saldırgan bunların değerlerini elde ederse, k2 gizli anahtarını da hesaplayabilir.

Şu anda, RSA şifreleme sistemi en çok kullanılmaktadır. çeşitli ürünler, çeşitli platformlarda ve birçok sektörde. Ameliyathanelerde kullanımını hatırlamak yeterlidir. Microsoft sistemleri, Apple, Sun ve Novell, RSA'nın ihtişamını temsil ediyor. Donanım bileşeninde, RSA algoritması güvenli telefonlarda, Ethernet ağ kartlarında, akıllı kartlarda ve Zaxus (Racal) şifreleme ekipmanında yaygın olarak kullanılmaktadır. Ayrıca algoritma, S/MIME, SSL ve S/WAN dahil olmak üzere güvenli İnternet iletişimi için tüm önemli protokollere dahil edilmiştir ve ayrıca birçok devlet kurumunda, kamu laboratuvarlarında ve üniversitelerde kullanılmaktadır. 2000 sonbaharı itibariyle, RSA teknolojileri 700'den fazla şirket tarafından lisanslanmıştır.

ElGamal algoritması. El-Gamal (Taher Elgamal), Diffie-Hellman sisteminin bir çeşidini geliştirdi. Bu algoritmayı geliştirdi ve şifreleme için bir algoritma ve kimlik doğrulama için bir algoritma aldı. ElGamal'ın algoritması patentli değildi (RSA'nın aksine) ve bu nedenle lisans ücreti gerekmediğinden daha ucuz bir alternatif haline geldi. Bu algoritma Diffie-Hellman sistemine dayandığından, kararlılığı aynı ayrık logaritma problemini çözmenin karmaşıklığı ile sağlanır.

Dijital İmza Algoritması. DSA algoritması, ABD hükümeti tarafından dijital imzalar için standart bir algoritma olarak geliştirilmiştir (bkz. bölüm 2.3). Bu algoritma ElGamal sistemini temel alır, ancak yalnızca kimlik doğrulamaya izin verir. Gizlilik bu algoritma tarafından sağlanmaz.

Eliptik eğriler kullanarak şifreleme. 1985 yılında şifreleme sistemlerinde kullanılmak üzere eliptik eğriler önerildi. Eliptik Eğri Şifreleri (ECC), çarpanlara ayırma veya ayrık logaritma dışındakilere dayanır Matematik problemi. Bu problem aşağıdaki gibidir: A = kB olacak şekilde eliptik bir eğri üzerinde iki A ve B noktası verildiğinde, bir k tamsayısını belirlemek çok zordur. Bazı "egzotikliğe" rağmen, bazı durumlarda RSA veya Diffie-Hellman algoritması üzerinde ECC kullanımı önemli bir avantaj sağlar. Bu avantajların en büyüğü, anahtarların önemli ölçüde daha kısa olabilmesidir (görevin karmaşıklığından dolayı). Üstelik dayanıklılıktan ödün vermeden! Sonuç olarak, aynı güvenlik seviyesi korunurken hesaplamalar daha hızlı yapılır. Böylece 160 bitlik bir ECC anahtarının sağladığı güvenlik, 1024 bitlik bir RSA anahtarına eşitlenebilir.

Simetrik ve asimetrik şifreleme yöntemlerinin avantajları ve dezavantajları

Bugüne kadar bilgi güvenliği alanında hem simetrik şifrelemeye hem de asimetrik şifrelemeye sahip sistemler yaygın olarak temsil edilmektedir. Algoritmaların her birinin göz ardı edilemeyecek kendi avantajları ve dezavantajları vardır.

Simetrik şifrelemenin ana dezavantajı, anahtarların "elden ele" genel aktarımına duyulan ihtiyaçtır. Bu dezavantaja dikkat etmemek imkansızdır, çünkü böyle bir sistemle pratikte olur. imkansız kullanım sınırsız sayıda katılımcıyla simetrik şifreleme. Aksi takdirde, simetrik şifreleme algoritması, özellikle asimetrik şifrelemenin arka planına karşı, minimum sayıda dezavantajla oldukça iyi gelişmiş ve etkili olarak kabul edilebilir. İkincisinin dezavantajları, algoritmanın bir şekilde kötü olduğunu söyleyecek kadar önemli değil, ancak yine de.

Asimetrik şifrelemenin ilk dezavantajı, kaynak yoğun işlemleri işleme ihtiyacından kaynaklanan düşük şifreleme ve şifre çözme işlemleri hızıdır. Sonuç olarak, böyle bir sistemin donanım bileşeni için gereksinimler genellikle kabul edilemez.

Başka bir dezavantaj zaten tamamen teoriktir ve asimetrik şifreleme algoritmalarının kriptografik gücünün matematiksel olarak henüz kanıtlanmadığı gerçeğinde yatmaktadır.

Genel anahtarları ikameden korurken ek sorunlar ortaya çıkar, çünkü daha sonra özel anahtarınızla kolayca şifresini çözmek için yasal bir kullanıcının genel anahtarını değiştirmek yeterlidir.

Asimetrik ve simetrik şifrelemenin dezavantajları ve avantajları ne olursa olsun, en gelişmiş çözümlerin her iki şifreleme türünün algoritmalarını başarıyla birleştiren çözümler olduğuna dikkat edilmelidir.

2.2. Elektronik dijital imza

Bilgi teknolojisi alanının hızlı gelişimi sayesinde, teknolojiler hayatımıza girdi ve modern dünyanın onsuz hayal edilmesi zor olan tanıdık hale geldi. Bu arada ağ üzerinde gerçekleştirilen işlemlerin güvenliğini koruyan bu teknolojilerden biri de elektronik dijital imzadır (EDS). Belgelerin yasal önemini belirleme ve doğrulama aracı olarak kullanımı, dijital dünyanın standardı haline geliyor.

Elektronik dijital imza (EDS) - gerekli elektronik belge, veri kaynağını onaylamak ve bu elektronik belgeyi sahteciliğe karşı korumak için tasarlanmıştır. Elektronik dijital imza, elektronik verilerin kriptografik olarak dönüştürülmesinin bir sonucu olarak elde edilen bir dizi karakterdir. Dijital imza, veri bloğuna eklenir ve bloğun alıcısının verilerin kaynağını ve bütünlüğünü kontrol etmesine ve sahteciliğe karşı koruma sağlamasına olanak tanır. EDS, el yazısı imzanın bir benzeri olarak kullanılır.

Dijital imzalar sayesinde, birçok belge - pasaportlar, oy pusulaları, vasiyetler, kira sözleşmeleri - artık elektronik biçimde var olabilir ve herhangi bir basılı sürüm o zaman yalnızca elektronik orijinalin bir kopyası olacaktır.

EDS ile çalışırken kullanılan temel terimler

Özel anahtar- bu, bir diskette, akıllı kartta, dokunmatik bellekte başkalarının erişemeyeceği bir yerde saklanan 256 bit uzunluğunda bazı bilgilerdir. Özel anahtar, yalnızca ortak anahtarla eşleştirildiğinde çalışır.

Genel anahtar alınan belge dosyalarının dijital imzasını kontrol etmek için kullanılır; teknik olarak 1024 bit uzunluğunda bazı bilgiler. Genel anahtar, yalnızca özel anahtarla eşleştirildiğinde çalışır.

kimlik doğrulama kodu- gizli bir anahtar kullanılarak verilerden oluşturulan ve iletişim kanalı üzerinden saklanan veya iletilen verilerdeki değişikliklerin gerçekliğini tespit etmek için verilere eklenen sabit uzunlukta bir kod.

Dijital imza araçları- aşağıdakileri sağlayan donanım ve/veya yazılım:

¦ elektronik bir dijital imzanın özel anahtarını kullanarak elektronik bir belgede elektronik bir dijital imzanın oluşturulması;

kullanarak onay Genel anahtar elektronik belgedeki EDS'nin orijinalliğinin elektronik dijital imzası;

¦ elektronik dijital imzaların özel ve genel anahtarlarının oluşturulması.

EDS kolaydır

EDS'nin kesinlikle bir "canavar" olmadığı ve onu kullanmak için özel bilgi, beceri ve yetenek gerekmediği gerçeğiyle başlayalım.

Elektronik belge alışverişine katılan her EDS kullanıcısı için benzersiz genel ve özel (gizli) şifreleme anahtarları oluşturulur.

Anahtar unsur, elektronik belgeleri şifrelemek ve dijital bir imza oluşturmak için kullanılan gizli anahtardır. Gizli anahtar kullanıcıda kalır ve kendisine ayrı bir ortamda verilir: bir disket, akıllı kart veya başka bir ortam olabilir. Diğer ağ kullanıcılarından gizli tutulmalıdır.

Sertifika Yetkilisinde (bir üçüncü taraf veya "hakem" olarak adlandırılan kişi) açık anahtarın bir kopyası vardır, bir açık anahtar sertifikaları kitaplığı oluşturulmuştur. Sertifikasyon Merkezi kayıt ve güvenli depolama kurcalama veya sahtecilik girişimlerini önlemek için ortak anahtarlar.

Bir kullanıcı elektronik bir belgenin altına elektronik dijital imzasını koyduğunda, kriptografik dönüşüm yoluyla EDS'nin gizli anahtarına ve belgenin içeriğine dayalı olarak belirli bir büyük sayı üretilir. elektronik imza bu kullanıcı, bu belirli belge kapsamında. Bu numara elektronik belgenin sonuna eklenir veya ayrı dosya. İmza aşağıdaki bilgileri içerir:

¦ imzanın genel anahtarının dosya adı;

¦ imzayı oluşturan kişi hakkında bilgi;

¦ imzanın oluşum tarihi.

İmzalı belgeyi alan ve gönderenin EDS açık anahtarına sahip olan kullanıcı, göndericinin elektronik dijital imzasının doğrulanmasını sağlayan, temelinde ters bir kriptografik dönüşüm gerçekleştirir. Belgenin altındaki EDS doğruysa, belge gerçekten gönderen tarafından imzalanmış ve belge metninde herhangi bir değişiklik yapılmamış demektir. Aksi takdirde, gönderenin sertifikasının geçerli olmadığını belirten bir mesaj görüntülenecektir.

Anahtar yönetimi

önemli sorun EDS sistemleri dahil tüm açık anahtar şifrelemesi, açık anahtar yönetimidir. Herhangi bir kullanıcının diğer herhangi bir kullanıcının gerçek açık anahtarına erişimi olduğundan emin olmak, bu anahtarların bir saldırgan tarafından değiştirilmesini önlemek ve ele geçirilmişse anahtarın iptal edilmesini sağlamak gereklidir.

Anahtarları ikameden koruma görevi, sertifikaların yardımıyla çözülür. Sertifika, sahip ve ortak anahtarı hakkında içerdiği verileri güvenilir bir kişinin imzasıyla onaylamanıza olanak tanır. Merkezi sertifika sistemleri (örneğin, PKI - Ortak Anahtar Altyapısı), güvenilir kuruluşlar tarafından sağlanan sertifika yetkililerini kullanır. Merkezi olmayan sistemlerde (örneğin, PGP - Oldukça İyi Gizlilik), tanıdıkların ve güvenilir kişilerin sertifikalarını çapraz imzalayarak, her kullanıcı bir güven ağı oluşturur.

Anahtarlar, Sertifika Dağıtım Yetkilileri tarafından yönetilir. Böyle bir merkeze başvurarak, kullanıcı herhangi bir kullanıcının sertifikasını alabilir ve bunun veya bu ortak anahtarın henüz iptal edilip edilmediğini kontrol edebilir.

Mikroskop altında EDS

EDS'nin çalışma prensibini daha ayrıntılı olarak düşünün. Elektronik imza şeması genellikle aşağıdaki bileşenleri içerir:

¦ kullanıcı anahtar çiftleri oluşturmak için algoritma;

¦ imza hesaplama işlevi;

¦ imza doğrulama işlevi.

Belgeye ve kullanıcının gizli anahtarına dayalı imza hesaplama işlevi, gerçek imzayı hesaplar. Algoritmaya bağlı olarak, imza hesaplama işlevi deterministik veya olasılıksal olabilir. Deterministik işlevler, aynı girdi verildiğinde her zaman aynı imzayı hesaplar. Olasılıksal işlevler, imzaya, EDS algoritmalarının kriptografik gücünü artıran bir rastgelelik öğesi ekler. Bununla birlikte, olasılık şemaları güvenilir bir rastgelelik kaynağı gerektirir (bir donanım gürültü üreticisi veya kriptografik olarak). güvenilir jeneratör sözde rastgele bitler), bu da uygulamayı zorlaştırır.

Şu anda, deterministik şemalar pratikte kullanılmamaktadır. Başlangıçta deterministik algoritmalar bile şimdi onları olasılıksal olanlara dönüştürmek için değiştirildi (örneğin, PKCS # 1 standardının ikinci versiyonu, diğer şeylerin yanı sıra gürültüyü içeren RSA imza algoritmasına ön veri dönüşümü (OAEP) ekledi).

İmza doğrulama işlevi, verilen belgeyle ve kullanıcının genel anahtarıyla eşleştiğini doğrular. Kullanıcının genel anahtarı herkese açıktır, böylece herkes belgedeki imzayı doğrulayabilir.

İmzalanacak belgeler değişken (ve oldukça büyük) uzunlukta olduğundan, EDS şemalarında imza genellikle belgenin kendisine değil, karma değerine yerleştirilir. Şifreleme hash fonksiyonları, imza doğrulandığında belge değişikliklerinin tespit edilmesini sağlayan hash'i hesaplamak için kullanılır. Karma işlevleri, EDS algoritmasının bir parçası değildir, bu nedenle şemada herhangi bir güvenilir karma işlevi kullanılabilir. hash nedir?

Karma, girdi veri dizisinin kısa sayıda sabit uzunluğa (karma veya karma kod olarak adlandırılır) dönüştürülmesidir, böylece bir yandan bu sayı orijinal veriden çok daha kısadır, ancak diğer yandan el, onlara benzersiz bir şekilde karşılık gelme olasılığı yüksektir. .

Devam edelim. EDS algoritmaları iki büyük sınıfa ayrılır:

¦ geleneksel dijital imzalar;

¦ belge kurtarma ile dijital imzalar.

İmzalanan belgeye normal dijital imzalar eklenmelidir. Bu sınıf, örneğin, eliptik eğrilere dayalı algoritmaları içerir (ECDSA, GOST R34.10-2001, DSTU 4145-2002). Belge kurtarmalı dijital imzalar, imzalanan belgeyi içerir: imza doğrulama işlemi sırasında belgenin gövdesi de otomatik olarak hesaplanır. Bu sınıf en çok şunlardan birini içerir: popüler algoritmalar- Bölümün sonunda inceleyeceğimiz RSA.

Çözülmekte olan görevlerin benzerliğine rağmen (belgenin bütünlüğünü sağlamak ve yazarlığı reddetmenin imkansızlığı) elektronik dijital imza ile mesaj doğrulama kodu arasında ayrım yapmak gerekir. EDS algoritmaları asimetrik algoritmalar sınıfına girerken, kimlik doğrulama kodları simetrik şemalara göre hesaplanır.

Dijital imzanın aşağıdaki koruma türlerini sağladığını söyleyebiliriz.

¦ Belgenin kaynağının belirlenmesi. Belge tanımının detaylarına bağlı olarak "yazar", " gibi alanlar değişiklikler yapıldı", "zaman damgası" vb.

¦ Belge değişikliklerine karşı koruma. Belgede (veya imzada) yanlışlıkla veya kasıtlı olarak yapılan herhangi bir değişiklik, hash değerini değiştirecek ve dolayısıyla imza geçersiz hale gelecektir.

EDS'nin hiç de mükemmel olmadığı oldukça açık. Bir saldırganın yapabileceği aşağıdaki dijital imza tehditleri mümkündür:

¦ seçtiği belge için sahte imza atmak;

¦ imzanın buna uyması için bu imza için bir belge seçin;

¦ en azından bazı belgeler için sahte imza atmak;

¦ sahibi gibi davranarak genel anahtarı (bkz. alt bölüm "Anahtar yönetimi" bölüm 2.2) kendi anahtarınızla değiştirin;

¦ örneğin kör imza protokolünü kullanarak sahibini bir belgeyi imzalaması için kandırmak;

¦ özel anahtar zaten çalınmışsa, anahtarın sahibi adına herhangi bir belgeyi imzalayın.

Güvenilir bir karma işlevi kullanırken, orijinaliyle aynı karmaya sahip sahte bir belge oluşturmak hesaplama açısından zordur. Ancak bu tehditler, belirli karma algoritmalardaki, imzalardaki zayıflıklar veya uygulamalarındaki hatalar nedeniyle gerçekleştirilebilir.

EDS'nin temeli olarak RSA

RSA'nın dijital imza şifreleme algoritmaları arasında en popüler olanı kazandığı bir sır değil (belge kurtarma ile dijital imzalar oluştururken kullanılır).

2001 yılının başında, RSA şifreleme sistemi en yaygın kullanılan asimetrik şifreleme sistemiydi (açık anahtar şifreleme sistemi) ve genellikle fiili standart olarak adlandırılır. Resmi standartlar ne olursa olsun, böyle bir standardın varlığı kalkınma için son derece önemlidir. e-ticaret ve genel olarak ekonomi. tek sistem açık anahtar, farklı platformlarda farklı yazılımlar kullanan farklı ülkelerdeki kullanıcılar arasında dijital imzalı belgelerin değiş tokuşunu sağlar; böyle bir fırsat e-ticaretin gelişimi için çok önemlidir.

RSA sisteminin dağılımı, yeni standartlar oluşturulurken dikkate alınacak bir boyuta ulaşmıştır. 1997 yılında dijital imza standartlarının geliştirilmesinde ilki, Dijital İmza Standardını (dijital imza standardı) destekleyen ANSI X9.30 standardıydı. Bir yıl sonra, özellikle finansal kurumlar için fiili duruma uygun olan RSA dijital imzalarına odaklanan ANSI X9.31 tanıtıldı.

Yakın zamana kadar, kağıt iş akışının elektronik olanlarla değiştirilmesinin önündeki en büyük engel, güvenli kimlik doğrulamanın (kimlik doğrulama) eksiklikleriydi; neredeyse her yerde sözleşmeler, çekler, resmi mektuplar, hukuki belgeler hala kağıt üzerinde yapılıyor.

RSA'ya dayalı bir dijital imzanın ortaya çıkması, elektronik işlemlerin uygulanmasını oldukça güvenli ve güvenilir hale getirdi.

RSA algoritması, gönderilen şifreli mesajın muhatap tarafından ve sadece kendisi tarafından okunabileceğini varsayar. Yukarıda belirtildiği gibi, bu algoritma iki anahtar kullanır - genel ve gizli. Bu algoritma, çok sayıda öznenin (N) "hepsi bir arada" şemasına göre iletişim kurması gerektiğinde de çekicidir. Simetrik bir şifreleme şeması durumunda, deneklerin her biri bir şekilde anahtarlarını değişimdeki diğer tüm katılımcılara teslim etmelidir, kullanılan toplam anahtar sayısı ise büyük bir N değeri için yeterince büyük olacaktır. asimetrik algoritma yalnızca tüm katılımcılar tarafından ortak anahtarların dağıtımını gerektirir, toplam anahtar sayısı N'dir.

Mesaj, M sayısı olarak temsil edilir. Şifreleme, f(M) genel işlevi kullanılarak gerçekleştirilir ve yalnızca alıcı, f-1 işleminin nasıl gerçekleştirileceğini bilir. Alıcı, gizli yaptığı iki büyük asal sayı olan p ve q seçer. n = pq ve d, c (d, p - 1) = (d, q - 1) = 1 sayısını bildirir (bu koşulu yerine getirmenin olası bir yolu, d'yi p/2 ve q/2'den büyük seçmektir) . Şifreleme şu formüle göre gerçekleştirilir: f(M) = Md x mod n, burada M ve f(M) her ikisidir< n – 1 . Оно может быть вычислено за разумное время, даже если M, d и n содержат весьма большое количество знаков. Адресат вычисляет M на основе M d , используя свое знание p и q. Если dc ? (p _ 1) 1, тогда (M d) e? p1.

Düz metin M, alıcı tarafından şifrelenmiş F(M)'den dönüşümle elde edilir: M = (F(M)) e(mod pq). Burada hem düz metin hem de şifrelenmiş metin uzun ikili sayılar olarak ele alınır.

Benzer şekilde (M d) e? q M eğer dc ? (q _ 1) 1. e, cd ? (p _ 1)(q _ 1) 1 . x, dx + (p - 1)(q - 1)y = 1 denkleminin bir çözümü olduğunda e = x'e izin verebiliriz.

(M d)'den beri e M, p ve q ile bölünebilir, ayrıca pq ile bölünebilir. Bu nedenle, Md'yi bilerek, değerini e'nin gücüne hesaplayarak ve pq'ya bölündüğünde kalanı belirleyerek M'yi belirleyebiliriz. Gizliliği korumak için, n'yi bilerek p ve q'yu hesaplamanın imkansız olması önemlidir. n 100 basamak içeriyorsa, şifre tahmini yaklaşık 1050 kombinasyondur. Bu sorun 100 yılı aşkın bir süredir araştırılmaktadır.

Teorik olarak, gerçekleştirmenin mümkün olduğu varsayılabilir. operasyonlar f-l p ve q'yu hesaplamadan. Ancak her durumda, bu sorun kolay değil ve geliştiriciler çarpanlara ayırmanın zor olduğunu düşünüyor.

Bir şifreli metin f(M) ve bir düz metin M'ye sahip olduğumuzu ve p ve q değerlerini bulmak istediğimizi varsayalım. Bu tür ilk verilerin sorunu çözmek için yeterli olmadığını göstermek kolaydır - Mi'nin tüm olası değerlerini bilmeniz gerekir.

RSA algoritmasının kullanımını açıklığa kavuşturalım. özel örnek. İki asal sayı seçiyoruz p = 7; q = l7 (pratikte bu sayılar kat kat daha uzundur). Bu durumda, n = pq, ll9'a eşit olacaktır. Şimdi e'yi seçmemiz gerekiyor, e = 5'i seçiyoruz. Sonraki adım d sayısının oluşumu ile ilgilidir, öyle ki de = 1 x mod [(p - 1)(q - 1)]. d = 77 (genişletilmiş Öklid algoritması kullanılır). d gizli anahtardır ve e ve n açık anahtarı karakterize eder. Şifrelememiz gereken metin M = 19 ile gösterilsin. C = Me x mod n. Şifreli metni C = 66 alıyoruz. Bu "metin" uygun hedefe gönderilebilir. Alıcı, alınan mesajın şifresini M = Cd x mod n ve C = 66 kullanarak çözer. Sonuç M = 19'dur.

Pratikte, genel anahtarlar özel bir veri tabanına yerleştirilebilir. Ortağa şifreli bir mesaj göndermeniz gerekiyorsa, önce ortak anahtarını talep edebilirsiniz. Bunu aldıktan sonra, şifreleme programını çalıştırabilir ve çalışmasının sonucunu muhataba gönderebilirsiniz.

Bir EDS'yi kesmek mümkün mü?

EDS korsanlığı aslında şifreleme algoritmasını kırmaya gelir. Bu durumda, örnek olarak RSA algoritmasını kullanarak olası hack seçeneklerini ele alacağız.

RSA'yı hacklemenin birkaç yolu vardır. En etkili saldırı, gerekli açık anahtarla eşleşen gizli anahtarı bulmaktır. Bu, bir saldırganın ortak anahtarla şifrelenmiş tüm mesajları okumasına ve imzaları taklit etmesine olanak tanır. Böyle bir saldırı, ana faktörleri (faktörleri) bularak gerçekleştirilebilir. ortak modül n-p ve q. Saldırgan, p, q ve e'ye (genel üs) dayanarak kısmi üs d'yi kolayca hesaplayabilir. Asıl zorluk, ana faktörleri bulmaktır (faktoring) n. RSA'nın güvenliği, verimli çözümleri olmayan zor bir görev olan faktoringe (faktoring) bağlıdır.

Aslında, bir gizli anahtarı kurtarma sorunu, bir modülü çarpanlarına ayırma (faktörlere ayırma) sorununa eşdeğerdir: n'nin çarpanlarını bulmak için d kullanılabilir ve tam tersi: d'yi bulmak için n kullanılabilir. Anahtarlar yeterli uzunluktaysa, bilgi işlem donanımının iyileştirilmesinin kendi başına RSA şifreleme sisteminin gücünü azaltmayacağı belirtilmelidir. Aslında, ekipmanın iyileştirilmesi kriptosistemin güvenliğini arttırır.

RSA'yı kırmanın bir başka yolu da mod n'den e'nin kökünü hesaplamanın bir yolunu bulmaktır. C = Me x mod n olduğundan mod n'nin e kökü M mesajıdır. Kökü hesaplayarak şifreli mesajları açabilir ve gizli anahtarı bile bilmeden sahte imzalar oluşturabilirsiniz. Böyle bir saldırı faktoringe eşdeğer değildir ancak şu anda RSA'yı bu şekilde kırabilecek bilinen bir yöntem bulunmamaktadır. Ancak, özel durumlarda, oldukça fazla sayıda ilgili mesaj aynı gösterge temelinde nispeten küçük bir değere göre şifrelendiğinde, mesajları açmak mümkündür. Belirtilen saldırılar, belirli bir RSA anahtarıyla şifrelenmiş tüm mesajların şifresini çözmenin tek yoludur.

Ancak, yalnızca bir mesajın şifresinin çözülmesine izin veren ve bir saldırganın aynı anahtarla şifrelenmiş diğer mesajları açmasını engelleyen başka saldırı türleri de vardır. Ayrıca, şifrelenmiş mesajın bir kısmının şifresinin çözülme olasılığı araştırılmıştır.

Tek bir mesaja yapılan en basit saldırı, varsayılan bir düz metin saldırısıdır. Şifreli metne sahip olan saldırgan, mesajın belirli bir metin (örneğin, "Stirlitz to Playschner") içerdiğini varsayar. Daha sonra hedeflenen metni alıcının açık anahtarıyla şifreler ve alınan metni mevcut şifreli metinle karşılaştırır. Bu saldırı, mesajın sonuna birkaç rastgele bit eklenerek önlenebilir. Tek bir mesaja başka bir saldırı, eğer gönderici aynı M mesajını her biri ortak bir e = 3 kullanan üç muhabire gönderirse kullanılır. Bunu bilerek, saldırgan bu mesajları yakalayabilir ve M mesajının şifresini çözebilir.

Böyle bir saldırı, her şifrelemeden önce mesaja birkaç rastgele bit eklenerek de önlenebilir. Ek olarak, birkaç tür şifreli metin saldırısı vardır (veya bireysel mesajlar Saldırganın bazı şifreli metinler oluşturduğu ve karşılık gelen düz metni, örneğin zorlama yoluyla elde ettiği imza sahteciliği amacıyla) hileli olarak kayıtlı kullanıcı şifresini çöz sahte mesaj. Tabii ki, doğrudan kriptosisteme değil, bir bütün olarak tüm iletişim sisteminin güvenlik açıklarına yönelik saldırılar da var. Bu tür saldırılar, algoritmanın zayıflığından değil, belirli bir uygulamanın güvenlik açığından bahsettikleri için RSA saldırıları olarak kabul edilemez. Örneğin, bir saldırgan, gerekli özen gösterilmeden saklanırsa gizli bir anahtarı ele geçirebilir. Tam koruma için RSA algoritmasının yürütülmesini korumanın ve matematiksel güvenlik önlemleri almanın, yani yeterli uzunlukta bir anahtar kullanmanın yeterli olmadığı vurgulanmalıdır, çünkü pratikte anahtar yönetiminin korunmasız aşamalarına yönelik saldırılar. RSA sistemi en başarılı olanlardır.

2.3. Modern kimlik doğrulama teknolojileri. Akıllı kartlar

Hafıza kartları gibi akıllı kartlar, entegre devreli (ICC, entegre devre kartı) plastik kartlardır. Ancak akıllı kartlar, aygıtı ve belleğindeki nesnelere erişimi kontrol eden bir mikroişlemci ve bir işletim sistemi içeren daha karmaşık bir aygıttır. Ek olarak, akıllı kartlar tipik olarak kriptografik hesaplamalar yapma yeteneğine sahiptir.

Akıllı kartların amacı, güvenilir bir ortamda bir ve iki faktörlü kullanıcı kimlik doğrulaması, bilgi depolama ve kriptografik işlemlerdir.

Okurlarımıza iki faktörlü kimlik doğrulamanın iki kimlik özelliğinin kullanılmasını içerdiğini hatırlatmama izin verin, örneğin: şifre ve parmak izi, akıllı kart ve retina vb.

Akıllı kartlar, birikimli indirim sistemlerinden kredi ve kredi kartlarına kadar çeşitli alanlarda giderek daha fazla kullanılmaktadır. banka kartları, öğrenci kartları ve GSM telefonları.

Yerleşik mikro devreye bağlı olarak, tüm akıllı kartlar, işlevlerinde kökten farklılık gösteren birkaç ana türe ayrılır:

¦ hafıza kartları;

¦ mikroişlemci kartları;

¦ kriptografik mantık ile kartlar.

Hafıza kartları bilgi depolamak için tasarlanmıştır. Bu tür kartlardaki hafıza, veri okuma ve yazma işlemlerini kısıtlamak için kart hafızası erişim kontrol mantığına erişim için ücretsiz olabilir veya kart hafızası erişim kontrol mantığı içerebilir.

Mikroişlemcili kartlar da bilgi depolamak için tasarlanmıştır, ancak sıradan kartlardan farklı olarak şunları içerirler: özel program veya verileri belirli bir algoritmaya göre dönüştürmenize, aktarım, okuma ve yazma sırasında kartta depolanan bilgileri korumanıza izin veren küçük bir işletim sistemi.

Kriptografik mantığa sahip kartlar, bilgi güvenliği sistemlerinde, veri şifreleme veya kriptografik anahtarların, elektronik dijital imzaların ve sistemin çalışması için gerekli diğer bilgilerin üretilmesi sürecine doğrudan dahil olmak için kullanılır.

Akıllı Kart Okuyucular

Akıllı kart okuyucu ismine rağmen, çoğu uç cihaz veya arayüz cihazı (IFD, InterFace Cihazı), akıllı kart özellikleri ve erişim hakları izin veriyorsa, hem okuma hem de yazma yeteneğine sahiptir. Akıllı kart okuyucular, bir seri port, PCMCIA yuvası, USB seri veri yolu aracılığıyla bir bilgisayara bağlanabilir. Bilgi okuma yöntemine göre, kartlar aşağıdakilere ayrılır:

¦ iletişim;

¦ temassız;

¦ çift arayüzlü.

Kontak kartları, okuyucunun kontakları ile kartın metal pedine temas ederek okuyucu ile etkileşime girer. Bu okuma yönteminin uygulanması kolaydır, ancak sık kullanımda kartın aşınmasını artırır. Temaslı akıllı kart üç bölümden oluşur:

¦ temas alanı:

Altı veya sekiz kare veya oval kontak;

Temas pozisyonları ISO-7816'ya göre yapılır;

¦ çip (mikroişlemci kartı);

¦ plastik taban.

Akıllı kart okuyucuları klavyeye entegre edilebilir.

Bazı üreticiler, temaslı akıllı kartı akıllı kart okuyucuyla entegre eden başka türde donanım aygıtları üretir. Bellek özellikleri ve bilgi işlem yetenekleri açısından akıllı kartlara tamamen benzerler. USB bağlantı noktasını kullanan en popüler donanım "anahtarları". USB anahtarları bazı kuruluşlar için çekicidir, çünkü USB yeni bilgisayarlarda daha yaygın hale gelen bir standart haline gelmektedir: kuruluşların kullanıcılar için herhangi bir okuyucu satın almasına gerek yoktur.

Genel Anahtar Kimlik Doğrulaması ile Akıllı Cihazları Kullanma

Akıllı kartlar, USB anahtarları ve diğer akıllı cihazlar, PKI hizmetlerinin güvenilirliğini artırabilir: bir akıllı kart, bir kullanıcının özel anahtarlarını güvenli bir şekilde saklamak ve kriptografik dönüşümleri güvenli bir şekilde gerçekleştirmek için kullanılabilir. Elbette, akıllı kimlik doğrulama cihazları mutlak güvenlik sağlamaz, ancak korumaları tipik bir masaüstü bilgisayarınkinden çok daha fazladır.

Özel anahtar farklı şekillerde saklanabilir ve kullanılabilir ve farklı geliştiriciler farklı yaklaşımlar kullanır. Bunlardan en basiti akıllı cihazı disket olarak kullanmaktır: Gerekirse kart özel anahtarı dışa aktarır ve iş istasyonunda kriptografik işlemler gerçekleştirilir. Bu yaklaşım, güvenlik açısından en mükemmeli değildir, ancak uygulanması nispeten kolaydır ve akıllı bir cihaza düşük gereksinimler getirir. Diğer iki yaklaşım, akıllı cihazın kriptografik işlemler gerçekleştirmesini gerektirdiğinden daha güvenlidir. İlk seferde, kullanıcı iş istasyonunda anahtarlar oluşturur ve bunları cihazın hafızasında saklar. İkincisinde, cihazı kullanarak anahtarlar üretir. Her iki durumda da, özel anahtar bir kez saklandıktan sonra cihazdan alınamaz ve başka bir şekilde alınamaz.

Anahtar çiftlerinin oluşturulması. Cihazın dışında anahtar oluşturma. Bu durumda, kullanıcı özel anahtarın bir yedek kopyasını oluşturabilir. Cihaz arızalanırsa, kaybolursa, hasar görürse veya tahrip olursa, kullanıcı aynı özel anahtarı üzerinde saklayabilecektir. yeni harita. Bu, kullanıcının ilgili ortak anahtarla şifrelenmiş herhangi bir verinin, mesajın vb. şifresini çözmesi gerekiyorsa gereklidir, ancak bunlar kimlik doğrulama sağlamada kısa vadeli sorunlardır. Ayrıca, kullanıcının özel anahtarının çalınma riski vardır.

Cihazı kullanarak bir anahtar oluşturma

Bu durumda, özel anahtar açık olarak görünmez ve bir saldırganın yedek kopyasını çalma riski yoktur. Tek yolözel anahtarın kullanımı - bu akıllı bir cihaza sahip olmak. En güvenli olan bu çözüm, akıllı bir cihazın yeteneklerine yüksek talepler getirir: anahtarlar üretmeli ve kriptografik dönüşümler gerçekleştirmelidir. Bu çözüm ayrıca, bir cihaz arızası vb. durumlarda özel anahtarın kurtarılamayacağını varsayar. Bu, özel anahtarı şifreleme için kullanırken endişelenmeniz gereken bir şeydir, ancak kimlik doğrulama için kullanıldığı yerlerde veya dijital olduğu diğer hizmetlerde değil. imza kullanılır.

Akıllı kartlar için, plastiğin boyutu, özellikleri ve türlerinden kart üzerindeki bilgilerin içeriğine, çalışma protokollerine ve veri formatlarına kadar kartların hemen hemen tüm özelliklerini tanımlayan birçok uluslararası standart bulunmaktadır.

¦ Standart ISO-7816 "Kimlik kartları - kontaklı mikroçip kartları". Fiziksel özellikleri, kontakların boyutunu ve konumunu, sinyalleri ve protokolleri, dosya yapısını, adresleme ve değiş tokuş komutlarını düzenleyen altı bölümden oluşur.

¦ EMV standardı (Europay, MasterCard ve Visa). Bölüm 1 ve 2, ISO-7816'yı temel alır ve sonraki bölümler, işlem işleme tanımları, terminal spesifikasyonları vb. ekler.

"Korkunç Anatomi" akıllı - kesmek mümkün mü?

Objektif istatistiklere göre, 2002 yılında dünya çapında yaklaşık 2 milyar mikroçipli akıllı kart satıldı ve bu tür cihazların satışlarının önümüzdeki yıllarda artması bekleniyor.

Akıllı kartlar neden bu kadar popüler? Bu "cihazların" kapsamının her zaman genişlemesi muhtemeldir: bankacılıktan ve arama kartı dijital pasaport tanımlayıcısına. Akıllı kartların muazzam genişlemesi, üreticilerin "akıllı" teknolojinin güvenli olduğu konusunda onlara güvence vermekten fazlasını yapmasını gerektirdi.

Bir akıllı kartı hacklemek mümkün müdür ve eğer öyleyse nasıl yapılır?

Olabilmek. Şok edici nesnel istatistiklere göre, 1994'ten beri, o zamanlar ödemeli TV sistemlerinde kullanılan neredeyse tüm akıllı kart çipleri (Avrupa ve ardından Amerika ve Asya dahil) tersine mühendislik yöntemleri kullanılarak başarılı bir şekilde hacklendi. Popüler pazarların raflarında kapalı TV kanallarını izlemek için sistemlerin nerede ortaya çıktığını düşünüyorsunuz? Bir banka akıllı kartını hacklemenin bazı okuyuculara aniden bilim kurguya benzediği görülüyorsa, bunun böyle olmadığını size temin etmeye cüret ediyoruz. Mesele şu ki, bu tür zaten sınıflandırılmış bilgiler, hizmet veren bankacılık yapılarının itibarına zarar vermemek için ifşa edilmemeye çalışılıyor.

Otopsi için şu anda kullanılan bazı yöntemlere bir göz atalım. Profesyonel bilgisayar korsanlığının kural olarak birkaç tekniğin ortak kullanımını içerdiğini unutmayın.

Yan kanallardan gelen bilgilerin analiziözel ekipman kullanan bir hırsızın elektromanyetik bir kalıbı ortadan kaldırdığını ima eder sahte radyasyon güç kaynağında, arayüz bağlantılarında, işlemci devrelerinde ve çalışan bir sinyalin üretilmesinde, dönüştürülmesinde veya iletilmesinde doğrudan veya dolaylı olarak yer alan diğer düğümlerde.

yazılım saldırıları akıllı kart işlemcisi ile etkileşim için en yaygın arabirimin kullanımını ifade eder. Kural olarak, bu durumda, protokol korumalarında veya kriptografik algoritmalarda bariz güvenlik açıklarının bulunması nedeniyle bilgisayar korsanlığı mümkündür.

Uygulama teknolojileri veya mikro sondalama. Bu durumda, bir mikroskop kullanılır ve bir mikromanipülatör yardımıyla saldırgan, bilgi geçişinin adım adım (bit-bit) kaydedildiği çipin çalışma alanına doğrudan erişim kazanır.

Kaynaklı Arıza Teknolojileri korunan bilgilere potansiyel erişim kanallarını açmak için çipin çalışması için acil durum koşullarının yaratılması anlamına gelir. Örneğin, Eylül 1996'nın sonunda, Bellcore'dan (Amerikan Bell şirketinin araştırma merkezi) bir araştırma ekibi, güvenli kriptografik cihazlarda, özellikle elektronik ödemeler için akıllı kartlarda genel nitelikte ciddi bir potansiyel zayıflık bulunduğunu bildirdi. (D. Boneh, RA DeMillo, RJ Lipton "Hatalar için Kriptografik Protokolleri Kontrol Etmenin Önemi Üzerine"; www.demiLLo.com/PDF/smart.pdf). Yazarlar, saldırı yöntemlerine "Donanım Arızalarının Varlığında Kriptanaliz" adını verdiler. Yöntemin özü, elektronik devrenin çalışmasında iyonizasyon veya mikrodalga ışınımının yapay olarak neden olduğu bir hatanın, cihazın çıkışındaki hatalı değerleri açıkça karşılaştırabilmeyi mümkün kılmasıdır. doğru değerler, böylece geri yükleme kriptografik bilgi akıllı kartta saklanır.

13 Haziran 2017, 13:37

Simetrik ve asimetrik şifreleme. Sunucular arasında şifreli veri aktarımı için algoritmanın analizi

  • algoritmalar,
  • Bilgi Güvenliği ,
  • kriptografi

Şifrelenmiş verileri ileten makinenin her zaman makine A olduğu ve bunları alan makinenin B sembolüne sahip olduğu konusunda hemfikiriz.

Kütüphane iki olası durumu çözer (gerekirse işlevsellik ekleyeceğim):


2) Bir makine olduğu ve şifrelenmiş verileri başka bir makineye aktarması gerektiği durum (B). Bu durumda, ilk makine (A) aktarımın başlatıcısıdır.

Kitaplık, her biri için bir demo bulunan her iki seçeneği de uygular:

Klasördeki ilk durum için sunucu_b_1 bir komut dosyası var testGetDataFromA.php
Klasördeki ikinci durum için server_a_1 bir komut dosyası var testPushDataToB.php

Her iki durum için de kitaplık aynı Encode.php'dir, ancak ilk durum için bazı ek betikler gereklidir, ikinci durum için diğerleri gereklidir, bu nedenle, karışıklığı önlemek için bunları işlevsel olarak server_a_1 ve server_b_1 klasörlerine (muhtemelen sonraki) ayırdım. kütüphanenin sürümleri farklı bir yapıya sahip olacaktır). Bu nedenle, her iki makinenin de hem birinci transfer durumunu hem de ikinciyi uygulaması gerekiyorsa, bu tür her makinenin her iki klasörü de olacaktır.

Şimdi her iki çözümün de nasıl uygulandığı hakkında:

Her iki durumun da özü, makinelerin şifreli metni iletmek için simetrik bir anahtar değiş tokuş etmesidir. Bu değiş tokuş için asimetrik şifreleme kullanılır, yani makinelerden biri (X) bir çift anahtar (genel ve özel) üretir ve açık anahtarı ikinci makineye iletir. İkinci makine bu açık anahtarla simetrik bir anahtar üretir ve bunu kendi özel anahtarıyla çözen ilk makineye geri gönderir. Aradaki fark, aktarımı başlatan kişinin kim olduğu - eğer şifreli metnin bir dizi işlem alması gerekiyorsa, eğer aktarılırsa - başka bir işlemdir. Göz önünde bulundurulan kitaplık ayrıca, genel anahtar kullanılarak şifrelenen simetrik anahtarla birlikte, yalnızca her iki makinenin bildiği ve yılda bir kez değiştirilebilen (hatta her işlemde iletilebilen) verilerin iletildiği gerçeğine dayanan ek kontroller de yapar. herhangi biri kodla oynamak isterse).

Uygulamanın analizine başlamadan önce, simetrik anahtarın aşağıdaki şemaya göre php Mcrypt şifreleme işlevleri kullanılarak şifrelendiğine işaret edeceğim:

$encrypted_data = urlencode(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $sinc_key, $notice_text, MCRYPT_MODE_ECB))); $test_decrypted = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$sinc_key, base64_decode(urldecode($encrypted_data))),MCRYPT_MODE_ECB));
Asimetrik şifreleme ile çalışmak php OpenSSL kullanılarak gerçekleşir

Böyle:

İlk önce, en başta belirtilen her iki iletim vakasının basitleştirilmiş şemalarını ve daha sonra daha ayrıntılı olarak ele alacağım.

1) A makinesinden veriye ihtiyaç duyan bir makinenin (B) olduğu (örneğin, bir istemci push alması gerektiği) ve bu verilerin güvenli bir şekilde alınması gerektiği durum. Onlar. transferi başlatan makine B'dir.

B Makinesi bir çift anahtar (özel ve genel) üretir ve A makinesine bir istekte bulunur ve ortak anahtarı gönderir (özel anahtarı tutar). A makinesi simetrik bir anahtar üretir, iletim için gerekli olan gizli bilgiyi N şifreler.Bundan sonra, makine A, açık anahtarla şifrelenmiş simetrik anahtarı ve simetrik anahtarla şifrelenmiş gizli N bilgisini döndürür.B Makinesi, verilerin şifresini çözer. Özel anahtar. Şifresi çözülen verilerde simetrik anahtarı ve onunla şifrelenen verileri alır. Gizli verilerin şifresini çözmek için simetrik anahtarı kullanır.

FSB ajanı Anatoly'nin değil, A aracının bizim arabamız olduğunun garantisi yoktur. Bu nedenle, bu algoritmanın kütüphane tarafından uygulanması, ek bir kontrol ile biraz değiştirilir:

(Demo komut dosyası - server_b_1/testGetDataFromA.php)

Her iki makinede de SIGNATURE_KEY gizli anahtarı kayıtlıdır ve bu anahtar, ek doğrulama. B Makinesi bir anahtar çifti (özel ve genel), geçerli bağlantı anahtarını oluşturur ve A makinesine bir istekte bulunur (http://.../server_a_1/getDataToB.php), mevcut bağlantı anahtarını ve genel anahtarı gönderir (saklayarak). özel anahtar). A makinesi simetrik bir anahtar üretir, iletim için gereken gizli bilgileri N şifreler.SIGNATURE_KEY ve mevcut bağlantının anahtarını içeren dizeden md5 olan ek M verileri de oluşturulur. Bundan sonra, A makinesi simetrik bir anahtardan bir ortak anahtarla şifrelenmiş bir dize ve ek M verisinin yanı sıra simetrik bir anahtarla şifrelenmiş N gizli bilgisini döndürür.Makine B, simetrik bir anahtarla verilerin şifresini kendi özel anahtarıyla çözer, bir M'ye tabi dize (çünkü SIGNATURE_KEY ve geçerli bağlantı anahtarını içeren dizeden md5'i kolayca hesaplayabilir). Ek veriler eşleşirse (bu, A makinesinin SIGNATURE_KEY ve dolayısıyla bizim makinemizi bildiği her işlem için yalnızca ek bir kontroldür), B makinesi N gizli bilgisinin şifresini çözdüğü simetrik anahtarı çıkarır.

2) Bir makine olduğu ve şifrelenmiş verileri başka bir makineye aktarması gerektiği durum (B). Bu durumda, ilk makine (A) aktarımın başlatıcısıdır.

Böyle bir aktarım için basitleştirilmiş bir algoritma aşağıdaki gibidir:

B makinesine iletilmeden önce, A makinesinin bilgiyi iletmesi için B makinesinin ortak anahtarına ihtiyacı vardır. Bunu yapmak için (A makinesi) önce B makinesine ortak anahtar talebinde bulunur. A makinesini aldıktan sonra simetrik bir anahtar oluşturur, onunla gerekli bilgileri şifreler ve tüm bunları alınan ortak anahtarla şifreler. Veriler, paketin özel anahtarıyla şifresini çözen ve simetrik anahtarla verilerin şifresini çözen B makinesine iletilir.

Açık anahtarı FSB ajanı Petrov'dan değil de B arabasından aldığımızın garantisi yok. Bu nedenle, bu algoritmanın kitaplık tarafından uygulanması, ek kontrollerle biraz değiştirilir:

(Demo komut dosyası - server_a_1/testPushDataToB.php)

Her iki makinede de, ek doğrulamaya dahil olan SIGNATURE_KEY gizli anahtarı kaydedilir. Mevcut bağlantının anahtarından md5 üreten A makinesi ve SIGNATURE_KEY bu verileri (mevcut bağlantının şifrelenmemiş anahtarıyla birlikte) üreten B makinesine (http://.../server_b_1/get_public_key.php) gönderir. bir ortak anahtar, yalnızca SIGNATURE_KEY'nizden böyle bir md5 alırsa ve geçerli bağlantının alınan anahtarı. Bu, açık anahtarın FSB görevlisi Vasily'nin makinesinden değil A makinesinden alınacağı sorununu çözmez, ancak B makinesinin özellikle A makinesi için bir ortak anahtar üreteceğini garanti eder (her ne kadar bir ortak anahtar oluştursa da) genellikle keyfi bir konudur, ancak burada bile güvenli oynamak daha iyidir). Ortak anahtarla birlikte, SIGNATURE_KEY'den ve mevcut bağlantının ikinci anahtarından md5 üretilir. Geçerli bağlantının ikinci anahtarı keyfi bir karmadır. Genel anahtar verileri, ikinci rastgele bağlantı anahtarı ve belirtilen md5, makine A'ya döndürülür. İkinci rastgele bağlantı anahtarını alan makine A, SIGNATURE_KEY'i bilerek bir doğrulama md5'i üretir ve makinenin aldığıyla eşleşirse, genel anahtar Vasily'den değil, B makinesinden kabul edilir.

Ardından, makine A (burada şema zaten ilk veri aktarımı durumuna benzer) simetrik bir anahtar ve SIGNATURE_KEY'den md5 ve mevcut bağlantının anahtarı olan ek bir kontrol oluşturur. Bu veriler, B makinesinden gelen bir genel anahtarla şifrelenir. Ardından, veriler, geçerli bağlantı anahtarıyla birlikte, geçerli bağlantıyı oluşturan B makinesine (http://.../server_b_1/pushDataFromA.php) gönderilir. anahtarı ve SIGNATURE_KEY md5 bu verilerden alınan verilere dayanarak, alınan ile kontrol eder, bu da verilerin FSB ajanı Nikolai'den olmadığını garanti eder. Her şey yolundaysa ve doğrulama geçilirse, simetrik anahtar, mesajın şifresini çözmek için zaten kullanılan özel anahtar kullanılarak çıkarılır.

Bu bilgi birilerinin işine yararsa sevinirim.

şifreleme kavramı

Şifreleme ¾, önemli bilgileri güvenilir olmayan kaynaklarda depolamak veya güvenli olmayan iletişim kanalları üzerinden aktarmak için kullanılan bir bilgi dönüştürme yöntemidir. GOST 28147-89'a göre şifreleme, şifreleme veya şifre çözme işlemidir.

şifreleme anahtarı gizli bilgi, mesajları şifrelerken/şifrelerini çözerken şifreleme algoritması tarafından kullanılır. Aynı algoritmayı kullanırken, şifreleme sonucu anahtara bağlıdır. Anahtar uzunluğu, şifreleme gücünün ana özelliğidir ve bit olarak ölçülür.

Kullanılan anahtarların yapısına göre şifreleme yöntemleri aşağıdaki türlere ayrılır:

· simetrik şifreleme: şifreleme ve şifre çözme için aynı anahtar kullanılır;

asimetrik şifreleme: şifreleme için bir anahtar (genel) ve şifre çözme için başka bir ¾ (özel, gizli) kullanılır. Bu tipşifrelemeye açık anahtar şifrelemesi de denir.

Farklı türdeşifrelemeler farklı şifreleme gücüne sahiptir.

Simetrik şifreleme, hem şifreleme hem de şifre çözme için aynı şifreleme anahtarını kullanan bir şifreleme yöntemidir. Algoritma anahtarı, mesajın hem göndericisi hem de alıcısı tarafından gizli tutulmalıdır. Algoritmanın anahtarı, mesaj alışverişi başlamadan önce taraflarca seçilir.

Simetrik şifreler aşağıdaki türlerdendir:

blok şifreleri. Bilgiyi belirli bir uzunluktaki (64, 128 bit vb.) Turların tekrarının sonucu, açık ve şifreli veri blokları arasındaki artan bit yazışma kaybının ¾ çığ etkisidir.

gama kullanılarak kaynak (düz) metnin her biti veya baytı üzerinde şifrelemenin gerçekleştirildiği akış şifreleri. Özel bir modda başlatılan bir blok şifresine (örneğin, gama modunda GOST 28147-89) dayalı olarak bir akış şifresi kolayca oluşturulabilir. Gama örnekleme, düz metne belirli bir diziyi (gama dizisi) "empoze etme" işlemidir. Örneğin, bir "özel VEYA" işlemi olabilir. Şifre çözme sırasında işlem tekrarlanarak düz metin elde edilir.

Şifreleme algoritması parametreleri: güç, anahtar uzunluğu, tur sayısı, işlenmiş blok uzunluğu, donanım/yazılım uygulamasının karmaşıklığı.

Simetrik algoritma örnekleri: DES (Veri Şifreleme Standardı), GOST 28147-89.

Asimetrik şifreleme ile karşılaştırma:



Avantajlar:

hız (Uygulamalı Şifrelemeye göre - 3 kat daha yüksek);

uygulama kolaylığı (daha fazla basit işlemler);

· karşılaştırılabilir dayanıklılık için daha küçük gerekli anahtar uzunluğu;

bilgi (daha büyük yaştan dolayı).

Dezavantajları:

büyük bir ağda anahtar yönetiminin karmaşıklığı. Ağ üzerinde oluşturulması, iletilmesi, depolanması ve yok edilmesi gereken anahtar çiftlerinin sayısında ikinci dereceden bir artış anlamına gelir. 10 aboneli bir ağ için, 100 için 4950, 1000 - 499500 vb. için 45 anahtar gereklidir;

anahtar değişiminin karmaşıklığı. Başvurmak için sorunu çözmeniz gerekir güvenilir iletim Her bir anahtarı her iki tarafa iletmek için gizli bir kanal gerektiğinden, her aboneye anahtarlar.

Simetrik şifrelemenin eksikliklerini telafi etmek için, şu anda bir birleşik (hibrit) şifreleme şeması yaygın olarak kullanılmaktadır; oturum anahtarı, taraflar tarafından simetrik şifreleme kullanarak veri alışverişi için kullanılır.

Simetrik şifrelerin önemli bir özelliği, anahtar her iki tarafça bilindiğinden, yazarlığı doğrulamak için bunları kullanmanın imkansızlığıdır.

Simetrik bir şifreleme şifreleme sisteminde, bilgiyi şifrelemek ve şifresini çözmek için aynı anahtar kullanılır. Bu, şifreleme anahtarına erişimi olan herkesin mesajın şifresini çözebileceği anlamına gelir. Şifrelenmiş bilgilerin yetkisiz kişilerce ifşa edilmesini önlemek için simetrik kriptosistemlerdeki tüm şifreleme anahtarlarının gizli tutulması gerekir. Bu nedenle simetrik şifreleme sistemlerine gizli anahtarlı şifreleme sistemleri denir - şifreleme anahtarı yalnızca mesajın amaçlandığı kişiler tarafından kullanılabilir olmalıdır. Simetrik şifreleme sistemlerine tek anahtarlı şifreleme sistemleri de denir. kriptografik sistemler. Simetrik bir şifreleme şifreleme sisteminin şeması, Şek. 4.3.

Pirinç. 4.3. Simetrik Şifreleme Kriptosistemi

Bu şifreleme sistemleri, en yüksek şifreleme hızı ile karakterize edilir ve onların yardımıyla, hem gizlilik ve özgünlük hem de iletilen bilgilerin bütünlüğü sağlanır.

Simetrik bir şifreleme sistemi kullanarak bilgi transferinin gizliliği, şifrenin güvenilirliğine ve şifreleme anahtarının gizliliğinin sağlanmasına bağlıdır. Tipik olarak, şifreleme anahtarı bir dosya veya veri dizisidir ve bir disket veya akıllı kart gibi bir kişisel anahtar taşıyıcısında depolanır; kişisel anahtar taşıyıcının sahibi dışında hiç kimsenin kullanımına kapalı olmasını sağlayacak tedbirlerin alınması zorunludur.

Ön şifre çözme olmadan semantik değişiklik ve sahteciliği kriptografik olarak gerçekleştirmenin pratik olarak imkansız olması nedeniyle orijinallik sağlanır. kapalı mesaj. Gizli anahtarı bilmeden sahte bir mesaj düzgün bir şekilde şifrelenemez.

Aktarılan verilere özel bir kod (taklit önek) eklenerek, gizli bir anahtar ile oluşturulan veri bütünlüğü sağlanır. Taklit öneki, bir tür sağlama toplamıdır, yani, mesajın bütünlüğünün kontrol edildiğine göre, mesajın bazı referans özellikleri. Taklit önekini oluşturmaya yönelik algoritma, bazı karmaşık şifreleme yasalarına göre mesajın her bir bitine bağımlılığını sağlamalıdır. Mesaj bütünlüğü kontrolü, mesajın alıcısı tarafından, alınan mesaja karşılık gelen gizli anahtardan bir sızdırma oluşturularak ve alınan sızdırma değeri ile karşılaştırılarak gerçekleştirilir. Bir eşleşme varsa, göndericiden alıcıya giden yolda bilgilerin değiştirilmediği sonucuna varılır.



Simetrik şifreleme, örneğin sahibinin yokluğunda yetkisiz erişimi önlemek için bilgileri "kendiniz için" şifrelemek için idealdir. Bu, seçilen dosyaların arşiv şifrelemesi veya tüm mantıksal veya fiziksel sürücülerin şeffaf (otomatik) şifrelemesi olabilir.

Yüksek bir şifreleme hızına sahip olan tek anahtarlı şifreleme sistemleri, birçok önemli bilgi koruma sorununun çözülmesine izin verir. fakat çevrimdışı kullanım simetrik kriptosistemler bilgisayar ağları kullanıcılar arasında şifreleme anahtarlarının dağıtılması sorununu ortaya çıkarır.

Şifrelenmiş veri alışverişine başlamadan önce, tüm alıcılarla gizli anahtar alışverişi yapmak gerekir. Simetrik bir şifreleme sisteminin gizli anahtarının aktarımı, genel iletişim kanalları aracılığıyla gerçekleştirilemez, gizli anahtarın göndericiye ve alıcıya güvenli bir kanal üzerinden iletilmesi gerekir.

Abone veri şifrelemesi için simetrik şifreleme algoritmalarının uygulamaları vardır - yani, örneğin İnternet aracılığıyla bir aboneye şifreli bilgi göndermek için. Böyle bir kriptografik ağın tüm aboneleri için bir anahtarın kullanılması, güvenlik nedenleriyle kabul edilemez. Nitekim anahtarın tehlikeye girmesi (kaybolması, çalınması) durumunda tüm abonelerin belge akışı risk altında olacaktır. Bu durumda bir anahtar matrisi kullanılabilir (Şekil 4.4).

Anahtar matrisi, abonelerin eşleştirme anahtarlarını içeren bir tablodur. Tablonun her öğesi abonelerin iletişimi için tasarlanmıştır i Ve J ve yalnızca belirli iki abone tarafından kullanılabilir. Buna göre, anahtar matrisin tüm öğeleri için eşitlik

. (4.3)

Şekil4.4. Anahtar Matrisi

Her biri i matrisin -inci satırı, belirli bir abonenin bir dizi anahtarıdır. i başkalarıyla iletişim kurmak N- 1 abone. Anahtar setleri (ağ setleri), kriptografik ağın tüm aboneleri arasında dağıtılır. Yukarıdakine benzer şekilde, ağ kümeleri dağıtılmalıdır güvenli kanallar aracılığıyla iletişim veya el ele.



Simetrik kriptoalgoritmaların karakteristik bir özelliği, çalışmaları sırasında blok dönüşümü gerçekleştirmeleridir. giriş bilgisi sabit uzunlukta ve aynı boyuttaki sonuçtaki bloğu alın, ancak anahtarın sahibi olmayan üçüncü şahıslar tarafından okunamaz. Simetrik bir blok şifrenin çalışma şeması, fonksiyonlarla açıklanabilir.

nerede m– ilk (açık) veri bloğu; İTİBAREN– şifrelenmiş veri bloğu.

Anahtar İLE simetrik blok kriptoalgoritmasının bir parametresidir ve sabit boyutta bir ikili bilgi bloğudur. orijinal m ve şifreli İTİBAREN veri blokları ayrıca birbirine eşit, ancak mutlaka anahtar uzunluğuna eşit olmayan sabit bir bit genişliğine sahiptir. İLE.

Blok şifreler, neredeyse tüm simetrik şifreleme sistemlerinin uygulandığı temeldir. Simetrik şifreleme sistemleri, isteğe bağlı uzunluktaki dosyaları kodlamanıza ve kodunu çözmenize olanak tanır. Hemen hemen tüm algoritmalar dönüşümler için kullanır belirli küme Tersinir matematiksel dönüşümler.

Blok algoritmaları tarafından şifrelenmiş bayt zincirleri oluşturma yöntemi, sınırsız uzunluktaki bilgi paketlerini şifrelemelerine izin verir. Blok şifrenin çıktı akışının bitleri arasındaki istatistiksel korelasyonun olmaması, hesaplamak için kullanılır. sağlama toplamı veri paketleri ve şifre karması.

Şifrelenmiş veri bloğunu okumak için, şifresi çözülen mesaj anlamlı olana kadar tüm olası anahtarlar arasında arama yapılması gerekiyorsa, bir şifreleme algoritması ideal olarak güvenli kabul edilir. Genel olarak, bir blok şifrenin gücü yalnızca anahtar uzunluğuna bağlıdır ve büyümesiyle katlanarak artar.

Güçlü blok şifreleri elde etmek için iki genel ilkeyi kullanın:

¨ yayılma- düz metnin bir karakterinin etkisinin şifreli metnin birçok karakterine dağılımıdır ve bu, düz metnin istatistiksel özelliklerini gizlemenizi sağlar.

¨ karıştırma- düz ve şifreli metinlerin istatistiksel özellikleri arasındaki ilişkinin yeniden kurulmasını zorlaştıran bu tür şifreleme dönüşümlerinin kullanılması.

Ancak şifre sadece ifşayı zorlaştırmamalı, aynı zamanda kullanıcının bildiği gizli anahtar ile şifreleme ve şifre çözme kolaylığı sağlamalıdır.

Saçılma ve karıştırma efektlerini elde etmenin yaygın bir yolu, her biri önemli bir toplam saçılma ve karıştırmaya katkıda bulunan bazı basit şifreler dizisi olarak uygulanabilen bir bileşik şifre kullanmaktır.

Bileşik şifrelerde, basit permütasyonlar ve ikameler çoğunlukla basit şifreler olarak kullanılır. Permütasyon, yalnızca düz metin karakterlerini karıştırır, belirli karıştırma türü gizli anahtar tarafından belirlenir. Değiştirmede, düz metindeki her karakter aynı alfabeden başka bir karakterle değiştirilir ve belirli ikame türü de gizli anahtar tarafından belirlenir. Modern bir blok şifrelemede, düz metin ve şifreli metin bloklarının, genellikle 64 veya 128 bit uzunluğunda ikili diziler olduğuna dikkat edilmelidir. 64 bit uzunluğunda her blok 264 değer alabilir. Bu nedenle, ikameler 2 64 ~ 10 19 "karakter" içeren çok büyük bir alfabede yapılır.

Yeterince uzun bir gizli anahtar tarafından kontrol edilen basit permütasyonların ve ikamelerin tekrar tekrar değiştirilmesiyle, iyi dağılım ve karıştırma ile güçlü bir şifre elde edilebilir.

Blok şifreleme algoritması tarafından veriler üzerinde gerçekleştirilen tüm işlemler, dönüştürülecek bloğun kapasitesine karşılık gelen aralıktan negatif olmayan bir tam sayı olarak temsil edilebilmesi gerçeğine dayanmaktadır. Örneğin, 32 bitlik bir veri bloğu 0...4294 967 295 aralığından bir sayı olarak yorumlanabilir. Ek olarak, bit genişliği "ikinin kuvveti" olan bir blok, birkaç tanesinin birleşimi olarak yorumlanabilir. daha küçük bir aralıktan bağımsız negatif olmayan sayılar (32 A -bitlik blok, 0...65535 aralığındaki iki bağımsız 16-bit sayının veya 0...255 aralığı).

Bu sayılar üzerinde blok kriptoalgoritması Tablo 1'de listelenen işlemleri belirli bir şemaya göre gerçekleştirir. 4.1.

Tablo 4.1. Sayılar üzerinde kriptalgoritmalar tarafından gerçekleştirilen eylemler

parametre olarak V bu dönüşümlerden herhangi biri için kullanılabilir:

¨ sabit bir sayı (örneğin, x"= x + 125);

¨ anahtardan elde edilen sayı (örneğin, x"= x + F(K));

¨ bloğun bağımsız kısmından elde edilen sayı (örneğin, x 2" = x 2 + F(x 1)).

Blokta gerçekleştirilen işlemlerin sırası, yukarıdaki seçeneklerin kombinasyonları V ve işlevlerin kendileri F ve makyaj ayırt edici özellikleriözel simetrik blok kriptoalgoritması.

Blok algoritmalarının karakteristik bir özelliği, anahtar materyalin tekrarlanan ve dolaylı kullanımıdır. Bu, öncelikle, orijinal ve şifreli metinler bilindiğinde, anahtara göre ters kod çözmenin imkansızlığı gerekliliği ile belirlenir. Bu sorunu çözmek için, yukarıdaki dönüşümler çoğunlukla anahtar değerin kendisini veya parçasını değil, anahtar materyalin bazı, bazen geri döndürülemez işlevini kullanır. Ayrıca, bu tür dönüşümlerde aynı blok veya anahtar eleman tekrar tekrar kullanılır. Bu, fonksiyonun niceliğe göre ters çevrilebilir olması koşuluyla, x işlevi tuşa göre geri alınamaz hale getirin İLE.