Kriptoalgaritmining



Yüklə 0,5 Mb.
səhifə2/2
tarix22.05.2023
ölçüsü0,5 Mb.
#119955
1   2
Asosiy qism

Davlat

Algoritm

Algoritim mualliflari

Avstralya

LOKI97

Lawrie Brown, Josef Pieprzyk, Jennifer Seberry

Belgiya

RIJNDAEL

Joan Daemen, Vincent Rijmen

Buyuk Britanya, Isroil, Norvegiya



SERPENT

Ross Anderson, Eli Biham, Lars Knudsen



Germanya

MAGENTA

Deutsche Telekom AG



Kanada

CAST-256

Entrust Technologies, Inc.

DEAL

Outerbridge, Knudsen

Koreya

CRYPTON

Future Systems, Inc.

Kosta-rika

FROG

TecApro Internacional S.A.

AQSH

HPC

Rich Schroeppel

MARS

IBM

RC6

RSA Laboratories

SAFER+

Cylink Corporation



TWOFISH

Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson

Fransiya

DFC

Centre National pour la Recherche Scientifique

Yaponya

E2

Nippon Telegraph and Telephone Corporation (NTT)

Bu o`n besh kriptoalgaritm bo`yicha eng kriptobardosh algaritm deb belgiya davlati a`zolari yaratgan RIJNDAEL algaritmi topildi.


1999 yilning mart oyilarida AES algaritmi analizi bo`yicha ikinchi konserensiya bo`lib o`tdi va bu konferensiyada kuchli 5 kriptoalgaritm nomzod etib qo`yildi. Bular quyidagilar edi: MARS, RC6, Rijndael, Serpent и Twofish. Bu bo`lib o`tgan konferensiyada ham RIJNDAEL o`zining kriptoturg`unligini yuqori ekanligini namoyish etdi. Bunda yuqoridagi algaritmlarning VHDL aparatli ko`rinishi namoyish etildi.
Bu konferensiyaning 13-14 aprel 2000 yilda AESning yakuniy qismi bo`lib otdi va buning natijasi o`laroq RIJNDAEL yutub chiqdi va 2001 yilgacha standart yakunlanib u AQSH stanndarti sifatida qabul qilindi.
Quyidagi jadvalda AES kriptoalgaritmlash standartida ishlatiladigan Rijndael shifrlash algaritmining aparatli holda yuqoridagi 5algaritm bilan taqqoslanishi berilgan. [10]
1.11-jadval
Kriptoalgoritmlar harakteristikasi





Kriptoalgaritmlar

Serpent

Twofish

MARS

RC6

Rijndael

1

Kriptoturg`unligi

+

+

+

+

+

2

Kriptoturg`unlik zaxirasi

++

++

++

+

+

3


Dastur ko`rinishidagi shifrlash tezligi

-

±

±

+

+

4


Dasturni amalga oshirishda kengaytirilgan kalit tezligi

±

-

±

±

+

5


Katta miqdordagi resurslar bilan Smart-kartalar

+

+

-

±

++

6


Chegaralangan miqdordagi resurslar bilan Smart-kartalar

±

+

-

±

++

7

Aparatli amlga oshirish (PLIS)

+

+

-

±

+

8


Aparatli amlga oshirish(Maxsus mikrosxemalarda)

+

±

-

-

+

9


Foydalanilayotgan va qudratini yo`qotgandagi himoyasi

+

±

-

-

+

10

Kengaytirilgan kalitlar prodsedurasida qudratni yo`qotgandagi himoya

±


±


±


±


-




11

Smart-kartalarda qudratni yo`qotgandagi himoya

±

+

-

±

+



12

Kengaytirilgan kalitlardan foydalanish

+

+

±

±

±



13

Mavjuda variantlarni amalga oshirish

+

+

±

±

+

14

Paralell hisoblashlarning mavjudligi

±

±

±

±

+

Bizga ma`lumki AES standarti DES standarti o`zini oqlay olmaganligi tufayli yaratilgan edi. Bu standart hozirda Amerika qo`shma shtatlaring “Standartlar va Texnologiyalar Milliy Universiteti (NIST)” qabul qilinib, standart sifatida foydalanilyapti. Undan tashqari unda foydalanilgan Rijndael blokli shifrlash algaritmi ham alohida kriptobardoshligi yuqori va yuqori darajadagi himoyaga ega. Bundan tashqari bu shifrlash algaritmdan ma`lumotlarni shifrlab uzatish uchun ham qo`llaniladi.


Shu bilan birga kriptoalgaritmlar shifrlash va deshifrlashda ma`lumotlar bilan ishlash tezligiga ham bog`liq bo`ladi. Shu o`rinda biz misol tariqasida AES kriptoalgaritmini ba`zi bir algaritmlar bilan tezliklari farqini ko`rib chiqamiz. Bunda biz shifrlash dasturlaridan foydalanamiz.




1.1-rasm. Encryption Algorithm Benchmark
Bunda biz TrueCrypt shifrlash dasturidan foydalandik. Unda 50MB hajmda axborotlar ishlashdagi tezliklar keltirilgan. Bundan ko`rinib turubdiki AES boshqa kriptoalgaritmlarga qaraganda o`zining tezligi bilan ajralib turibdi.[8]

Shifrlash jarayoni umumiy blok sxemasi


Har bir raund shifrlash jarayonlari quyida keltirilgan to‘rtta akslantirishlardan foydalanilgan holda amalga oshiriladi:

  1. SubBytes – algoritmda qayd etilgan 16x16 o‘lchamli jadval asosida baytlarni almashtirish, ya'ni S -blok akslantirishlarini amalga oshirish;

  2. ShiftRows – algoritmda berilgan jadvalga ko‘ra holat baytlarini siklik surish;

  3. MixColumns – ustun elementlarini aralashtirish, ya'ni algoritmda berilgan matrisa bo‘yicha akslantirishni amalga oshirish;

  4. AddRoundKey raund kalitlarini qo‘shish, ya'ni bloklar mos bitlarni XOR amali bilan qo‘shish.

Bu standartning shifrlash algaritmi asosini Rijndael algaritmi yotadi.

2.1- rasm. Shifrlash jarayonining umumiy blok sxemasi.


Deshifrlash jarayoni algoritmi


Shifrlash jarayonida foydalanilgan Sub Bytes( ), ShiftRows( ), MixColumns () va AddRoundKey( ) almashtirishlariga mos ravishda teskari:

    • invSub Bytes( ),

    • invShiftRows( ),

    • invMixColumns ( ),

    • AddRoundKey( ) ,

almashtirishlar mavjud bo‘lib, bunday holat qaralayotgan simmetrik shifrlash algritmining apparat-texnik qurilmasini yaratishda muhim omillardan hisoblanadi.
Quyida mazkur teskari almashtirishlarni batafsil ko‘rib chiqamiz:

  1. AddRoundKey( ) – almashtrishida ishlatilayotgan XOR amalining xossasiga muvofiq, , ushbu funksiya o‘z-o‘ziga teskari hisoblanadi.

  2. invSub Bytes( )- almashtirishi shifrlash jarayonida foydalaniladigan S-blokga (4.4-jadval) teskari amal bajarishga asoslangan. Masalan {a5} bayt uchun teskari bayt almashtirishi amalining natijasi S-blokda 2-satr va 9-ustun elementlarining kesishida

joylashgani uchun javob: invSub Bytes({a5})= {29}.

  1. invShiftRows( ) – almashtirishi oxirgi holat matrisasining 3-ta satri berilgan jadval asosida o‘nga siklik surish orqali amalga oshiriladi.

  2. invMixColumns ( ) – almashtirishida holat matrisasi ustunlari GF(28) maydonda uchinchi darajali ko‘phad ko‘rinishida qaralib, g-1(x) ={0b}x3 +{0d}x2

+{09}x + {0e} ko‘phadga modul x4 +1 ko‘phad bo‘yicha ko‘paytiriladi. Mazkur fikrlarning matematik ifodasini quyidagicha tasvirlash mumkin:

s

s '





0 j 0 e 0b 0 d
09 0 j



s 09  0 e 0b 0 d s '
1 j 1 j =

s
0 d  09  0 e 0b
s ' 

2 j 2 j

s
0b 0 d  09  0 e
s '

3 j 3 j


1 j
0 e s '0 j 0b s '

2 j

 0 d   s '
 09   s '

3 j



0 j
09   s '
 0 e  s '
 0b  s '2 j  0 d   s '


1 j

3 j
0 d   s '  09   s '  0 e  s '  0b  s '


1 j

2 j




 0 j 1 j 2 j
3 j




0 j
0b  s '
 0 d   s '
 09   s '
0 e s '3 j

Ushbu teskari almashtirishlardan foydalanib, deshifrlash jarayonida generasiya qilingan raund kalitlari oxirgidan boshlab bittadan kamayib qo‘shib boriladi, ya'ni deshifrlash jarayonining 1-raundida shifrma'lumot blokiga 10-raund kaliti qo‘shiladi, 2 – raundida 9-raund kaliti qo‘shiladi va hokazo 10-raundida 1-raund kaliti qo‘shiladi va oxirida dastlabki kalit qo‘shiladi. Yuqorida ta'kidlangan jarayonini boshqa teskari akslantirishlar bilan birgalikda amalga oshirishning umumiy blok sxemasi quyida keltirilgan.


2.2-rasm. Deshifrlash jarayoni umumiy blok sxemasi


2.2 AES kriptoalgaritmining dasturiy moduli Dasturning umumiy ko‘rinishi quyidagicha.


2.3-rasm. Shifrlash jarayoni quyidagicha bo‘ladi

2.4-rasm. Ushbu oynada ma’lumotni yuklaymiz yoki kiritishimiz mumkin


2.5-rasm. Deshirlash jarayoni



2.6-rasm. Kalitlar generatsiyasi va raundlar soni

XULOSA


Bu individual loyihada AES(Advanced Encryption Standard) standarti va unda qo`llanilgan Rijndael algaritmi, uning tahlili va kriptobardoshligi bilan tanishib chiqib bu standartning qo‘llanish jarayoni haqida to‘liq ma’lumotaga ega bo‘ldim.
AES standarti boshqa standartlarga qaraganda o`zining kriptobardoshliligi bilan ajralib turadi. Unda qo‘llanilgan asosiy matematik amallarning murakkablik darajasi uning turg`unligini yanada oshiradi. Xozirgi kun bu standart eng bardoshli algoritmlar safiga kiradi. Bu algoritmning afzalliglari kriptobardoshliligining samaradorligi va shifrlash tezligining yuqoriligi bilan ajralib turadi.
Bu individual loyihani tayyorlash jarayonida men bu algoritmning qaysi tarmoqda ishlashi va algoritmning tuzilishi bilan to‘liq tanishdim va uni chuqurroq o‘rgandim. Hozirda uning qo‘llanish muhiti barcha blokli shifrlash algoritmlarining rejimlarida qo‘llash mumkin bo‘ladi.

FOYDALANILGAN ASOSIY ADABIYOTLAR





  1. Коблитс. Н. Курс теории чисел и криптографии - М., Научное издателство ТВП, 2001 г., 260 цтр. (перевод с английского).

  2. Ященко В.В. Введение в криптографию. МСМО, 2003

  3. Масленников. Практическая криптография БХВ - СПб 2003

  4. Henk C.A. van Tilborg. Encyclopedia of Cryptography and Security.

  5. А.П. Алферов, А.Ю. Зубов, А.С. Кузьмин, А.В. Черемушкин. Основы

  6. Герасименко В.А. Защита информатсии в автоматизированныx системаx обработки данныx кн. 1.-М.: Энергоатомиздат. -1994.-400с

  7. Криптографии: Учебное пособие, 2-е изд. –М.: Гелиос АРВ, 2002.-480 с

  8. www.wikipedia.org

  9. www.ziyonet.uz

  10. Xasanov P.F., Хаsanov Х.P., Ахmedova О.P., Davlatov А.B. Kriptotahlil va uning maxsus usullari – Toshkent, 2010 – 125 bet.



Dastur kodi: #include #pragma hdrstop #include "Unit1.h" #include
//#include #include

String binary_8(int a); int pow(int a, int b); String binary_4(int s1); int Bayt(String s);


int Int16ToInt10(char c); char Int10ToInt16(int a); String SubBytes(String s);
ILOVALAR

FILE *f;
String s1;
#pragma package(smart_init) #pragma link "sBitBtn" #pragma link "sLabel" #pragma link "sPanel" #pragma link "sSkinManager" #pragma link "sComboBox" #pragma link "sScrollBar" #pragma link "sBitBtn" #pragma resource "*.dfm" TForm1 *Form1;
int bor=0;
String shifr(String key,String matn); String deshifr(String key,String matn); String InvShiftRows();
String InvMixColumns(); String MixColumns(); String AddRoundKey(); String binary(String s1);
String InvSubBytes(String s); String orqaga(String a);
String Kupayt(String a, String b); String XOR_8(String a, String b); String XOR_9(String a, String b); String j_mix(String a, char b);void
fastcall TForm1::FormCreate(TObject
*Sender){
String s = "",s1="AES.exe";int n
=s1.Length();
for(int i=1;i<=Application-
>ExeName.Length()-n;i++){ s+=Application->ExeName[i];} s+="\\skins" ; sSkinManager1-
>Active = false;
sSkinManager1->SkinDirectory = s; sSkinManager1->SkinName = "Nautilus";
sSkinManager1->Active = true;

String a,b; a =
"2b7e151628aed2a6abf7158809cf4f3c"
;
Yüklə 0,5 Mb.

Dostları ilə paylaş:
1   2




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin