DES Шифрлау алгоритмінің жұмыс принципі


Жұмыс түрі:  Материал
Тегін:  Антиплагиат
Көлемі: 8 бет
Таңдаулыға:   

Қазақстан Республикасы білім және ғылым министрлігі

«Ғұмарбек Дәукеев атындағы Алматы энергетика және байланыс университеті» коммерциялық емес АҚ

Басқару жүйелері және ақпараттық технологиялар институты

IT-инжиниринг кафедрасы

№1 Ғылыми Мақала

бойынша

ЕСЕП БЕРУ

Пәннің атауы: Ғылыми зерттеу негіздері және академиялық жазу

Тақырыбы: DES Шифрлау алгоритмінің жұмыс принципі

Мамандығы: 5В070400 - Есептеу техникасы және программалық жабдықтамалау

Орындаған: Бекназаров С. И. Тобы: ВТк-18-1

Қабылдаған: Ажиев К.

Алматы 2022

Аңдатпа

Бұл мақала шифрлау алгоритмінің жұмыс істеу принципі мен іске асырылуын мысал арқылы көрсетіп, криптографиямен танысуға мүмкіндік береді. Мысал ретінде, блоктық шифрлау алгоритмі алынған. Автормен анықталған деректер бойынша программалық ортада шифрлау алгоритмінің жұмысы көрсетіледі. Автор жүргізген талдау бойынша шифрлау алгоритмінің жұмыс істеу принципі сипатталады.

Кіллтік сөздер

Блоктық шифр, шифр-мәтін, ақпаратты жіберуші және алушы, ашық хабарлама, криптографиялық кілт.

Кіріспе

Қазіргі кезде кез келген ақпаратты жүйелерде маңызды деректерді шифрланған түрде сақталады және таралады, бұл оны бұрыс пиғылды көздерден сақтандыруға мүмкіндік береді.

Бұл мақалада шифрлау алгоритмі жұмысын қарастырып, Криптография пәніне тоқталамыз.

Шифрлау алгоритмі деректерді шифрлап, қорғалған сақталуға және таралуға мүмкіндік береді. Оның іске асырылуы мәтіндік деректерді алып, қандай-да бір шифрлау(дешифрлау) алгоритмінен өткізіп, нәтижесін шығарудан тұрады.

Шифрлау - жүйедегі деректерді қорғау үрдісі болып табылады, бұрыс пиғылды қолданушылардан деректерді қорғау үшін барлық корпоративті жүйелерде және олардың дерекқорларында қолданылады. Шифрлау алгоритмді жасап, оның сенімділігіне қол жеткізген кезде, бұл алгоритмді іске асыруға болады.

Негізгі бөлім

Классикалық немесе біркілтті криптография симметриялық шифрлау алгоритмдерін қолдануға сүйенеді, бұл жерде шифрлаудың және керішифрлаудың тек орындау ретінде және кейбір қадамдар бағытында айырмашылығы болады. Бұл алгоритмдер сол құпия элементті (кілтті) қолданады, және екінші әрекет (керішифрлау) біріншінің (шифрлаудың) қарапайым айналысы болады. Сондықтан, алмасудың әр қатысушысы хабарды шифрлай және керішифрлай алады.

Криптографиялық әдістер шифрлау алгоритмі типі бойынша екі үлкен топқа бөлінеді (1 сурет) : симметриялық және асимметриялық. Осыған қоса, алгоритмдер түрлендіру типі, ақпаратты өңдеу тәсілі бойынша бөлінеді.

Симметриялық криптографиялық жүйелерде шифрлау және керішифрлау бір кілт арқылы орындалады. Және осыған сәйкес кілтті құпия сақтау керек (бұл жерден симметриялық криптографиялық жүйелердің басқа аты - құпия кілті бар криптографиялық жүйелер ) .

Симметриялық кілті бар заманауи блокты шифрлар n-биттік ашық мәтін блогын шифрлайды немесе шифрланған мәтіннің nбиттік блогын керішифрлайды. Шифрлау немесе керішифрлау алгоритмі k-биттік кілтті пайдаланады. Керішифрлау алгоритмі шифрлау алгоритмінің инверсиясы болу керек, жіберуші жіберген хабарды қабылдаушы қалпына келтіру үшін екеуіде жұмыста бір кілтті қолданады.

1 сурет заманауи блокты шифрда шифрлау және керішифрлаудың жалпы идеясын көрсетеді. Егер хабардың өлшемі n биттен төмен болса, n-разрядты блокты құру үшін толықтыру қосу қажет; егер хабардың ұзындығы n биттен ұзын болса, ол n-разрядты блоктарға бөліну қажет, және 104 егер қажет болса соңғы блокқа сәйкес толықтыру қосу қажет. Жалпы мәндер n үшін әдетте 64, 128, 256 немесе 512 бит.

1 сурет. Шифрлау және керішифрлаудың жалпы принципі

DES блокты шифрлау алгоритм

  • Жұмыс істеу принципі:

Бұл жоба симметриялық блокты DES шифрына негізделген. DES үшін блок өлшемі 64 бит. Алгоритм 16 цикл (дөңгелек) және ұзындығы 56 бит кілті бар Feistel желісіне негізделген. Алгоритмде сызықтық емес (S-қораптар) және сызықтық (E, IP, IP-1 ауыстырулар) түрлендірулер комбинациясы қолданылады.

DES үшін бірнеше режимдер ұсынылады:

  • ECB (ағыл. electronic code book) - «электрондық код кітабы» режимі (қарапайым ауыстыру) ;
  • CBC (ағыл. cipher block chaining) - блок тізбегі режимі;
  • CFB (ағыл. cipher feed back) - шифрленген мәтіндік кері байланыс режимі;
  • OFB (ағыл. output feed back) - шығыс кері байланыс режимі;
  • Counter Mode (CTR) - санау режимі.

Жаңа шифрлау алгоритмі осыларға негізделіп, ерекше принциппен жұмыс жасайтын болады. Ал DES шифрының іске асырылуына тоқталсақ:

Деректердің кіріс блогына x алғашқы алмастыруды IP орындаудан кейін, алынған 64 -биттік тізбек x0 = = IP(x) келесі түрде болады:

  • x0 = L0 R0,

бұл жерде L0 ‒ сол жақ ( left ) және R0 ‒ оң жақ ( right ) биттер тізбектері, олардың ұзындықтары бірдей 32 биттен. DES шифрлау процессі он алты раундтан турады, сондықтан деректер блогы

  • x0 = L0 R0

он алты рет Фейстель сұлбасы деп аталатын сұлба бойынша түрлендіріледі. DES әр раунды Фейстель қолданады. Деректерді шифрлау процессін он алты раундты қолданып математикалық түрде көрсетуге болады:

  • Li = Ri;
  • Ri = Li-1 Å F( Ri-1, ki ), i = 1, 2, ., 16,

бұл жерде F(●) ‒ шифрлау функциясы; k i ‒ раундтық кілттер;

- деректерді биттермен 2 (xor) модулі бойынша қосу операциясы. Шифрлаудың он алты раундын орындағаннаң кейін x16 = L16 R16 деректер блогын IP - 1 кері алмастырады. Нәтижесінде 64-биттік шифрланған деректер блогы y шығады. Осылай шифрлау процесі аяқталады.

2 сурет. DES алгоритмінің жұмыс принципі

DES кілттік толықтырушысы

Кілттер көптігі ішінде ( 2 56 ) кейбір кілттер кілттегі әр битының инверсиясымен ( 0-ді 1-ге немесе 1-ді 0-ге ) алыну мүмкін. Кілттік толықтырушы криптографиялық талдау процессін қарапайымдатады. Қасқой "қатқыл күш" шабуылын орындау үшін мүмкін кілттердің ( 2 56 ) тек жартысын қолдану мүмкін, себебі:

және

Басқа сөзбен, егер алғашқы деректер блогының толықтырушысын кілт толықтырушысымен шифрласа, шифрланған деректер блогын толықтыру болады. Қасқой барлық 2 56 мүмкінді кілттерді тексермеу қажет, ол тек жартысын тексерін нәтижені толықтыра алады.

1 мысал. Кілттік толықтыру туралы мәліметтерді тексереміз. Кез келген деректер блогын және кілтті шифрланған деректер блогын табу үшін қолданамыз. Егер кілттік толықтыру және алғашқы деректер блогы бар болса, онда алдынғы шифрланған деректер блогын толықтыруды аламыз (1. 1 кестесі) .

1. 1 кесте - 1 мысалының нәтижелері

Кілт түпнұсқасы
Кілттік толықтыру
: Кілт
Кілт түпнұсқасы: 123412341234123416
Кілттік толықтыру: edcbedcbedcbedcb16
: Деректердің алғашқы блогы
Кілт түпнұсқасы: 12345678abcdef1216
Кілттік толықтыру: edcba987543210ed16
: Деректердің шифрланған блогы
Кілт түпнұсқасы: e112be1defc7a36716
Кілттік толықтыру: 1eed41e210385c9816

Java бағдарламалық тілінде жазылған бағдарлама арқылы шифрлау-дешифрлаудың іске асырылуы:

Шифрланған мәтін:

Дешифрланған мәтін:

Бағдарлама листингі:

package com. company;

import java. io. FileInputStream;
import java. io. FileOutputStream;
import java. io. IOException;
import java. io. InputStream;
import java. io. OutputStream;
import java. security. ;
import java. security. InvalidKeyException;
import java. security. ;
import java. security. spec. ;
import javax. crypto. Cipher;
import javax. crypto. CipherInputStream;
import javax. crypto. CipherOutputStream;
import javax. crypto. KeyGenerator;
import javax. crypto. ;
import javax. crypto. SecretKey;
import javax. crypto. spec. IvParameterSpec;
public class DES_PROTO_CIPHER
{
//creating an instance of the Cipher class for encryption
private static Cipher encrypt ;
//creating an instance of the Cipher class for decryption
private static Cipher decrypt ;
//initializing vector
private static final byte [] initialization_vector = { 22, 33, 11, 44, 55, 99, 66, 77 };
//main() method
public static void main(String[] args)
{
//path of the file that we want to encrypt
String textFile = "D:/SUNDET/Sundet ucheba/Java/Kryptoalgorythm/src/com/company/DemoData. txt" ;
//path of the encrypted file that we get as output
String encryptedData = "encrypteddata. txt" ;
//path of the decrypted file that we get as output
String decryptedData = "decrypteddata. txt" ;
try
{
//generating keys by using the KeyGenerator class
SecretKey scrtkey = KeyGenerator. getInstance ( "DES" ) . generateKey() ;
aps = new IvParameterSpec( initialization_vector ) ;
//setting encryption mode
encrypt
= Cipher. getInstance ( "DES/CBC/PKCS5Padding" ) ;
encrypt . init(Cipher. ENCRYPT_MODE , scrtkey, aps) ;
//setting decryption mode
decrypt
= Cipher. getInstance ( "DES/CBC/PKCS5Padding" ) ;
decrypt . init(Cipher. DECRYPT_MODE , scrtkey, aps) ;
//calling encrypt() method to encrypt the file
encryption
( new FileInputStream(textFile), new FileOutputStream(encryptedData) ) ;
//calling decrypt() method to decrypt the file
decryption
( new FileInputStream(encryptedData), new FileOutputStream(decryptedData) ) ;
//prints the stetment if the program runs successfully
System. out . println( "The encrypted and decrypted files have been created successfully. " ) ;
}
//catching multiple exceptions by using the (or) operator in a single catch block
catch ( InvalidKeyException IOException e)
{
//prints the message (if any) related to exceptions
e. printStackTrace() ;
}
}
//method for encryption
private static void encryption(InputStream input, OutputStream output)
throws IOException
{
output = new CipherOutputStream(output, encrypt ) ;
//calling the writeBytes() method to write the encrypted bytes to the file
writeBytes
(input, output) ;
}
//method for decryption
private static void decryption(InputStream input, OutputStream output)
throws IOException
{
input = new CipherInputStream(input, decrypt ) ;
//calling the writeBytes() method to write the decrypted bytes to the file
writeBytes
(input, output) ;
}
//method for writting bytes to the files
private static void writeBytes(InputStream input, OutputStream output)
throws IOException
{
byte [] writeBuffer = new byte [512] ;
int readBytes = 0;
while ((readBytes = input. read(writeBuffer) ) >= 0)
{
output. write(writeBuffer, 0, readBytes) ;
}
//closing the output stream
output. close() ;
//closing the input stream
input. close() ;
}
}

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Криптографиялық кілттерді басқару
RC алгоритмдері
Симметриялық кілтпен шифрлау
DES алгоритмі
Ақпаратты қауіпсіздендіру және обьектілері. Шифр және ақпаратты шифрлау жүйелері
Ақпаратты қорғау және криптографияның математикалық негіздері
Телім жолы бой
АҚПАРАТТЫ ҚОРҒАУДЫҢ МАТЕМАТИКАЛЫҚ ӘДІСТЕРІ
Параллельді алгоритімді ақпараттық қауіпсіздікте қолдану
Ақпаратты қорғау мәселесінің криптографиялық негіздері
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz