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


Қазақстан Республикасы білім және ғылым министрлігі
«Ғұмарбек Дәукеев атындағы Алматы энергетика және байланыс университеті» коммерциялық емес АҚ
Басқару жүйелері және ақпараттық технологиялар институты
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 мысалының нәтижелері
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() ;
}
}
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz