MUNDARIJA KIRISH………………………………………………………………………..3 I BOB. AXBOROTNI HIMOYA QILISH UCHUN SAMARALI KRIPTOGRAFIK KALIT GENERATORLARINI ISHLAB CHIQISH 1.1.Axborot xavfsizligi sohasida kriptografik algoritmlar………….………… 1.2. Kriptografiyada kalitlarni generatsiya qilish. RSA algoritmi……………. 1.3 . Bardoshli kriptografik kalitlarni yaratishda psevdo-tasodifiy raqamlar generatorlaridan foydalanish ………………………………………………… II BOB. KRIPTOGRAFIK KALIT GENERATORLARI SAMARADORLIGINI OSHIRISH USULLARI 2.1.Kriptografik kalit generatorlari samaradorligini oshirish bo’yicha olib borilgan tadqiqot ishlari tahlili……………………………………………….. 2.2. Tarmoqda uzatilayotgan axborot yaxlitligini ta'minlashda ochiq kalitli kriptografik algoritmlardan foydalanish holati……………………………… 2.3. Mamlakatimizda ochiq kalitlarni ro'yxatga olish markazlari va ularning vazifalari…………………………………………………………………….. III BOB. KRIPTOGRAFIK KALIT ALGORITMLARI 3.1.DSA kriptografik kalit algoritmi va uning tavsifi……………………….. 3.2. Raqamli imzo sxemasi imkoniyatlari…………………………………… 3.3. Kriptografik kuch va kalitni tiklash…………………………………….. III bob bo’yicha xulosalar…………………………………………………… XULOSA……………………………………………………………………. FOYDALANAILGAN ADABIYOTLAR RO’YHATI…………………….. Kompyuter tizimlari va ularning dasturiy ta’minoti mutaxassisligi 1-kurs magistranti Allanazarova Davlatoy Farxod qizining “Kriptografik kalit generatorlarinning samaradorligini oshirish usullari va algoritmlari” mavzusidagi magistrlik dissertatsiyasi ANNOTATSIYASI Tayanch so'zlar: kriptografiya, axborot xavfsizligi, kriptografik kalit algoritmlari, kriptografik usullar, psevdotasodifiy ketma-ketlik, kompyuter tarmog'ining xavfsizligi, Yarrow-160 Tadqiqot obyekti: Tadqiqot obyekti xavfsizligini ta’minlash jarayoni olindi. sifatida axborot tizimlari Ishning maqsadi: Ushbu tadqiqotning maqsadi axborotlar xavfsizligini ta’minlash borasidagi izlanishlarga yangi ma’lumotlarni taqdim etish. Tadqiqot metodlari: tadqiqot jarayonini kuzatish, kriptografik usullarni sinab ko’rish, algoritmlar ishlab chiqish. Inson hayotda duch keladigan hodisalar, jarayonlar, narsalarning aksariyati tasodifiy xususiyatga ega. Ularni adekvat tavsiflash, o'rganish va modellashtirish uchun deterministik usullardan (ba'zi bir algoritm bilan to'liq aniqlanadi) foydalanishning o'zi etarli emas, shuning uchun tasodifiy sonlar ketma-ketligi va ularni hosil qiluvchi qurilmalar va algoritmlar (tasodifiy ketma-ketliklarning generatorlari) fanda keng qo'llaniladi. muhandislik, aloqa va axborot texnologiyalari. Axborot xavfsizligi kabi sohada tasodifiy ketma-ketliklar alohida rol o'ynaydi. Axborot xavfsizligi muammosini hal qilishning eng samarali va istiqbolli yondashuvlaridan biri bu kriptografik usullardan foydalanish bo'lib, unda tasodifiy ketma-ketlik generatorlari ko'pincha asosiy komponentlar bo'lib, asosan ularning ishonchliligini belgilaydi. Maqolada samarali kriptografik kalitlarni ishlab chiqish, ulardan foydalanish va sinovdan o'tkazish haqida asosiy ma'lumotlar keltirilgan. The master's thesis of Allanazarova Davlatoy, a 1st-year graduate student majoring in computer systems and their software, on the topic "Methods and algorithms for increasing the efficiency of cryptographic key generators" ANNOTATION Key words: cryptography, information security, cryptographic key algorithms, cryptographic methods, pseudorandom sequence, computer network security, Yarrow-160 Research object: The process of ensuring the security of information systems was taken as the object of research. Purpose of the work: The purpose of this study is to provide new information to research on information security. Research methods: monitoring the research process, testing cryptographic methods, developing algorithms. Most of the events, processes, and things that a person encounters in life have a random nature. To adequately describe, study and model them, it is not enough to use deterministic methods (completely determined by some algorithm), therefore random number sequences and devices and algorithms that generate them (random sequences generators) are widely used in science. engineering, communication and information technology. Random sequences play a special role in an area such as information security. One of the most effective and promising approaches to solving the problem of information security is the use of cryptographic methods, in which random sequence generators are often the main components that mainly determine their reliability. The article provides basic information on developing, using, and testing effective cryptographic keys. I bob. Axborotni himoya qilish uchun samarali kriptografik kalit generatorlarini ishlab chiqish 1.1. Axborot xavfsizligi sohasida kriptografik algoritmlar Axborot xavfsizligi sohasida kriptografik uslublarning qo‘llanishi ayniqsa hozirgi kunda faollashib bormoqda. Haqiqatan ham, bir tomondan kompyuter tizimlarida internet tarmoqlaridan foydalangan holda katta hajmdagi davlat va harbiy ahamiyatga ega bo‘lgan hamda iqtisodiy, shaxsiy, shuningdek boshqa turdagi axborotlarni tez va sifatli uzatish va qabul qilish kengayib bormoqda. Ikkinchi tomondan esa bunday axborotlarning muhofazasini ta’minlash masalalari muhimlashib bormoqda. Ma’lumki, kriptografiyadan elektron ko‘rinishidagi axborotni konfidensialligini va yaxlitligini ta’minlashda foydalaniladi. Kriptografik himoya nafaqat hisoblash qurilmalarida axborotni himoyalashda, balki, axborotni tarmoq orqali xavfsiz uzatishda ham keng qo‘llaniladi. Kriptografik tizimlarning bardoshligi unda foydalanilgan algoritm va kalitning bardoshligi bilan belgilanadi. Kriptografik algoritmlar bardoshli bo‘lgan taqdirda ham, zaif kalitdan foydalanilganda axborotning himoyalanganlik darajasi yuqori bo‘lmaydi. Kriptografik algoritmlar, xususan blokli simmetrik shifrlash algoritmlari DES, AES, GOST 28147-89, O‘z DSt 1106:2009, mos ravishda 56 bit, 128, 256 bit yoki 512 bit, 256 bit, 256 yoki 512 bit uzunlikdagi oldindan belgilab qo‘yilgan qoida bo‘yicha generatsiya qilingan kalitlardan foydalanadi. Biroq standart algoritmlarda belgilab qo‘yilgan qoida bo‘yicha generatsiya qilingan barcha kalitlar har doim ham shifrmatnni ochish maqsadida ochiq aloqa tarmog‘ini nazorat qiluvchi kriptotahlilchi tomonidan uyushtiriladigan turli kriptohujumlarga bardoshli bo‘lmasligi mumkin. Masalan, kalitni tashkil etuvchi bitlar ketma-ketligi faqat nollardan yoki birlardan yoki bo‘lmasa, nol va birlarning kombinatsiyasi fiksirlangan davr bilan takrorlanishi yordamida tuzilgan bo‘lsa, bu toifa kalitlar bardoshsiz hisoblanadi. Chunki ushbu tur bitlar ketma-ketligida, shu ketma-ketlikni tashkil etuvchi nol va bir elementlari davriy takrorlanishining matematik qonuniyatini oldindan bilish imkoniyati mavjud. U holda bu zaylda generatsiya qilingan bitlar ketma-ketligidan simmetrik shifrlash algoritmlari uchun maxfiy kalit sifatida foydalanish maqsadga muvofiq emas. Demak, yuqoridagi fikr-mulohazalardan kelib chiqib, «kriptoalgoritmlar maxfiy kalit bloklari uchun tasodifiy bitlar ketma-ketligi qanday quriladi?» degan savolning tug‘ilishi tabiiy, yani agar biror qoida bo‘yicha kalit blokining , ketma-ketligi olingan bo‘lsa, bu yerda va bo‘lishi mumkin. U holda , kalit blokida - bitlarning taqsimoti tasodifiy yoki tasodifiy emasligi qanday aniqlanadi? Ushbu savolga javob olish uchun kalit blokida bitlarning taqsimotini amaliyotda keng tarqalgan kalit blokini tashkil etuvchi belgilar taqsimotini tasodifiylikka tekshirishda, avvalo, bu kalit blokini biror qoida bo‘yicha hosil qilib olish zarur. Bu kabi ishlar odatda, psevdotasodifiy ketma-ketliklar generatorlari orqali amalga oshiriladi. Psevdotasodifiy ketmaketlik ishlab chiqaruvchi generatorlar haqida, ularning tuzilish asoslariga ko‘ra turkumlari, xususiyatlari, xossalari, kriptografik masalalarni yechishdagi qo‘llanishlari batafsil tahlil qilib chiqamiz. Kriptografik vazifalar uchun psevdo-tasodifiy ketma-ketlik generatori quyidagi talablarga javob berishi kerak: hosil qilingan ketma-ketlik qabul qilinadigan hisoblash vaqti ichida mutlaqo tasodifiy ketma-ketlikdan statistik jihatdan farqlanmasligi kerak; ketma-ketlikning har qanday boshlang'ich qismini bilish ushbu ketmaketlikning keyingi bitini maqbul hisoblash vaqtida bashorat qilishga imkon bermaydi. Aksariyat an'anaviy psevdotasodifiy sonlar generatorlarini kriptografik jihatdan xavfsiz psevdotasodifiy generatorlar sifatida ishlatish mumkin emas, chunki ular keyingi yaratilgan bitning oldingisidan mustaqil bo'lish xususiyatiga ega emas va teskari muhandislik usullari bilan ishonchsizdir. Teskari muhandislik (yoki teskari muhandislik) - bu qurilma yoki dasturni, shuningdek, uning qanday ishlashini tushunish va ko'pincha qurilma, dastur yoki shunga o'xshash funktsiyalarga ega boshqa ob'ektni nusxa ko'chirmasdan qayta ishlab chiqarish uchun uning hujjatlarini o'rganishni talab etadi. Kriptografik jihatdan kuchli psevdo-tasodifiy raqamlar generatorini yaratish uchun kriptografik jihatdan kuchli shifrlash algoritmlaridan foydalanish tabiiy ko'rinadi. Ushbu maqsadlar uchun OFB, CBS yoki gamma rejimlari mos keladi (GOST 28147-89 uchun). Ushbu usul yaratilgan ketma-ketlikning etarli sifatini ta'minlaydi, chunki kriptografik gamma kerakli statistik xususiyatlarga ega. Boshqa psevdo-tasodifiy raqamlar generatorlarida bo'lgani kabi, ketma-ketlik davriy bo'ladi. Shunday qilib, GOST 28147-89 algoritmining gamma shifrida 264 ga teng bo'lgan 64 bitli bloklarning takrorlanish davri mavjud . Simmetrik shifrdan foydalangan holda kalitlarni yaratish sxemalaridan biri ikki kalitli uchlik DES algoritmi (Triple DES, 3DES) bilan ANSI X9.17 standartidir (2.62-rasm). Ushbu texnologiyadan foydalanadigan ilovalarga PGP kiradi. E k (X) funksiyasi X ni DES algoritmi (shifrlash - deshifrlash - shifrlash) bo'yicha oldindan tayyorlangan k = (K 1, K2) kalitida shifrlasin, bu faqat maxfiy kalitlarni yaratish uchun ishlatiladi. Bundan tashqari, initsializatsiya vektori IV0 raqibdan sir saqlanadigan boshlang'ich 64 bitli qiymat bo'lsin, G. esa i -kalit yaratilgan vaqt tamg'asi bo'lsin. Keyin transformatsiya yordamida keyingi tasodifiy kalit Ri hisoblanadi. . Keyingi tasodifiy sonni yaratish uchun foydalaniladigan IVi+v ishga tushirish vektorining keyingi qiymati quyidagicha hisoblanadi. ANSI X9.17 generatorining asosiy maqsadi bir nechta aloqa seanslari uchun ko'p sonli kalitlarni olishdir. Amalda, shifrlash protsedurasiga qo'shimcha qo'ng'iroqlar zarurati (biri gamma holatida va uchtasi ANSI X9.17 standartida) avlodni juda ko'p resurs talab qiladi, bu uning apparat ta'minotini murakkablashtiradi va buning past tezlik xususiyatlarini aniqlaydi. Hozirgi vaqtda uch tomonlama shifrlash (past tezlik tufayli) faqat psevdo-tasodifiy ketma-ketlik generatorining boshlang'ich qiymatlarini o'zgartirish uchun qo'llaniladi, ketma-ketlik bloklarining o'zi shifrlash algoritmiga bitta chaqiruv natijasida hosil bo'ladi Umuman olganda, 3DES o'rniga siz GOST 28147-89, AES kabi boshqa kuchli shifrlash algoritmlaridan foydalanishingiz mumkin. Kriptografik kalitlarni boshqarish tizimlari turli kriptografik algoritmlar uchun bardoshli kalitlarni generatsiyalashni, saqlashni va kerakli vaqtda uzatishni amalga oshirishi sababli, ularning axborotning kriptografik himoyasidagi o‘rni muhimligi aniqlandi. Kriptografik tizimlarda kalitlarni generatsiyalashda ishlatiluvchi usullarning tasnifiga asosan xulosa qilish mumkinki, kalit generatorlarining ishonchligi nuqtai nazaridan ANSI X9.17 kriptografik psevdotasodifiy sonlar generatori usulidan foydalanish maqsadga muvofiq deb hisoblandi. Zamonaviy kriptografik tizimlar simmetrik kalitli algoritmlarni (masalan, DES va AES) va ochiq kalitli algoritmlarni (masalan, RSA) o'z ichiga oladi. Simmetrik kalitli algoritmlar bitta umumiy kalitdan foydalanadi; ma'lumotlarni sir saqlash bu kalitni sir saqlashni talab qiladi. Ochiq kalitli algoritmlar ochiq kalit va yopiq kalitdan foydalanadi. Ochiq kalit har kimga taqdim etiladi (ko'pincha raqamli sertifikat yordamida). Yuboruvchi ma'lumotlarni qabul qiluvchining ochiq kaliti bilan shifrlaydi; faqat shaxsiy kalit egasi bu ma'lumotlarni shifrini ochishi mumkin. Ochiq kalitli algoritmlar simmetrik kalitli algoritmlarga qaraganda ancha sekinroq bo'lganligi sababli, TLS va SSH kabi zamonaviy tizimlar ikkalasining kombinatsiyasidan foydalanadi: bir tomon ikkinchisining ochiq kalitini oladi va ma'lumotlarning kichik qismini (yoki simmetrik kalit) shifrlaydi. yoki uni yaratish uchun foydalanilgan ba'zi ma'lumotlar). Suhbatning qolgan qismi shifrlash uchun (odatda tezroq) simmetrik kalit algoritmidan foydalanadi. Kompyuter kriptografiyasi kalitlar uchun butun sonlardan foydalanadi. Ba'zi hollarda kalitlar tasodifiy sonlar generatori (RNG) yoki psevdor tasodifiy raqamlar generatori (PRNG) yordamida tasodifiy hosil qilinadi. PRNG - bu tahlil ostida tasodifiy ko'rinadigan ma'lumotlarni ishlab chiqaradigan kompyuter algoritmi. Ma'lumotni urug'lantirish uchun tizim entropiyasidan foydalanadigan PRNGlar odatda yaxshi natijalar beradi, chunki bu PRNG ning dastlabki shartlarini tajovuzkor uchun taxmin qilishni ancha qiyinlashtiradi. Tasodifiylikni yaratishning yana bir usuli - tizimdan tashqarida ma'lumotdan foydalanish. Veracrypt (diskni shifrlash dasturi) foydalanuvchi sichqoncha harakatlarini noyob urug'larni yaratish uchun ishlatadi, bunda foydalanuvchilarga sichqonchani vaqti-vaqti bilan siljitish tavsiya etiladi. Boshqa holatlarda kalit parol va kalit hosil qilish funktsiyasi yordamida deterministik tarzda olinadi. Ko'pgina zamonaviy protokollar oldinga siljish uchun mo'ljallangan, bu har bir seans uchun yangi umumiy kalitni yaratishni talab qiladi.Klassik kriptotizimlar har doim aloqa aloqasining bir uchida ikkita bir xil kalitni hosil qiladi va qandaydir tarzda kalitlardan birini aloqaning boshqa uchiga o'tkazadi. Biroq, buning o'rniga Diffie-Hellman kalit almashinuvidan foydalanish uchun kalit boshqaruvini soddalashtiradi.Shifrlangan ma'lumotlarni shifrini hal qilmasdan o'qishning eng oddiy usuli shafqatsiz hujumdir - kalitning maksimal uzunligigacha bo'lgan har bir raqamni sinab ko'rish. Shuning uchun, etarlicha uzun kalit uzunligini ishlatish muhimdir; uzunroq tugmalar hujum qilish uchun eksponent ravishda ko'proq vaqt talab etadi, bu esa shafqatsiz kuch hujumini amaliy bo'lmaydi. Hozirgi vaqtda kalit uzunligi 128 bit (simmetrik kalit algoritmlari uchun) va 2048 bit (ochiq kalitli algoritmlar uchun) keng tarqalgan. 1.2. Kriptografiyada kalitlarni generatsiya qilish. RSA algoritmi Bugungi kunda shifrlash qanchalik muhimligini ta'kidlaydigan ko'plab maqolalar nashr etilayotganligi sababli, siz bunday standartlarni qo'llash uchun barcha mumkin bo'lgan yo'llardan xabardor bo'lishingiz kerak. RSA algoritmi hisoblashning dastlabki kunlaridan beri ishonchli xavfsizlik manbai bo'lib kelgan va u o'zini kiberxavfsizlik yo'nalishida aniq qurol sifatida mustahkamlashda davom etmoqda. Algoritmga o'tishdan oldin, keling, assimetrik shifrlash haqida yangi bilimga ega bo'laylik, chunki u raqamli imzolarni ochiq kalitli kriptografiya arxitekturasi sifatida ham tanilgan assimetrik kriptografiya arxitekturasiga muvofiq tekshiradi. Asimmetrik shifrlash algoritmlarida siz ikkita turli kalitlardan foydalanasiz, ulardan biri shifrlash uchun, ikkinchisi esa shifrni ochish uchun. Shifrlash uchun ishlatiladigan kalit ochiq kalit, shifrni ochish uchun ishlatiladigan kalit esa shaxsiy kalitdir. Lekin, albatta, ikkala kalit ham qabul qiluvchiga tegishli bo'lishi kerak. hifrlash va parolni hal qilish uchun turli kalitlardan foydalanish simmetrik shifrlashda ko'rinib turganidek, kalit almashinuvining oldini olishga yordam berdi. Misol uchun, agar Elis Bobga xabar yuborishi kerak bo'lsa, shaxsiy va umumiy kalitlar Bobga tegishli bo'lishi kerak. Elis: Yuqoridagi rasm uchun jarayon quyidagicha: 1-qadam: Elis xabarni shifrlash uchun Bobning ochiq kalitidan foydalanadi 2-qadam: Shifrlangan xabar Bobga yuboriladi 3-qadam: Bob xabarning shifrini ochish uchun shaxsiy kalitidan foydalanadi Bu jo'natuvchi va qabul qiluvchi o'rtasida har qanday maxfiy kalitni almashish zaruriyatini yo'q qiladi va shu bilan ekspluatatsiya oynasini kamaytiradi. Endi siz assimetrik shifrlash qanday sodir bo'lishini tushunganingizdan so'ng, raqamli imzo arxitekturasi qanday o'rnatilganligini ko'rishingiz mumkin. Elektron raqamli imzolar hujjatlar va fayllarni autentifikatsiya qilish va tekshirish maqsadlariga xizmat qiladi. Bu rasmiy hujjatlarni uzatishda soxtalashtirishning oldini olish va raqamli manipulyatsiya yoki qalbakilikni oldini olish uchun juda muhimdir. Ular ochiq kalitli kriptografiya arxitekturasida ishlaydi, bunda bitta kichik ogohlantirishni cheklaydi. Odatda, assimetrik kalit tizimi shifrlash uchun ochiq kalitdan va shifrni ochish uchun shaxsiy kalitdan foydalanadi. Biroq, raqamli imzolar bilan ishlashda buning aksi. Maxfiy kalit imzoni shifrlash uchun, ochiq kalit esa uni ochish uchun ishlatiladi. Kalitlar bir-biri bilan tandemda ishlaganligi sababli, uni ochiq kalit bilan dekodlash hujjatni imzolash uchun to'g'ri shaxsiy kalitdan foydalanganligini anglatadi, shuning uchun imzoning kelib chiqishini tasdiqlaydi. 1.3.Bardoshli kriptografik kalitlarni yaratishda psevdo-tasodifiy raqamlar generatorlaridan foydalanish Tasodifiy raqamlar bugungi kungacha ko’plab sohalarda uzoq vaqtdan beri qo’llanilgan. Bunga tasodifiy namunalarni shakllantirish qobiliyatiga muhtoj bo’lgan ilmiy tadqiqotlar va jismoniy jarayonlarni kompyuter modellashtirish, raqamli tahlil va hatto kompyuter o’yinlari ham kiradi. Xuddi shu tasodifiy sonlarni olish uchun psevdo-tasodifiy sonlar generatorlari (PRNG) foydalanamiz. PRNG Generatorlari quyidagi talablarga javob berishi kerak: -Ketma-ketlik hal qilinayotgan muammo ichida aylanmasligini ta’minlash uchun etarlicha uzoq muddat. -Davrning uzunligi matematik jihatdan isbotlanishi kerak. -Samaradorlik - algoritm tezligi va past xotira xarajatlari. -Reproduktivlik-oldindan yaratilgan raqamlar ketma-ketligini istalgan sonda qayta ishlab chiqarish qobiliyati. -Portativlik - bu turli apparat va operatsion tizimlarda bir xil operatsiya. - Har qanday i qiymati uchun X, elementini belgilashda ketma-ketlikning X.. elementini olish tezligi (ketma-ketlikni bir nechta oqimlarga bo’lish uchun) Ushbu talablarga javob beradigan juda ko’p miqdordagi PRNG mavjud bo’lsa-da, ularning faqat kichik bir qismi kriptografik jihatdan kuchli, ya’ni tasodifiylik va maxsus talablar bo’yicha statistik testlar asosida taxlil qilinadi. [3] Tasodifiy sonlar generatorlarini o’rganishda ya’ni raqamlarni olish usuliga ko’ra ularni quyidagi turlarga bo’lamiz: 1. Uskuna 2. Jadval 3. Algoritmik 1. Jadval generatorlari tasodifiy sonlar manbai sifatida tasdiqlangan o’zaro bog’liq boʻlmagan raqamlarni o’z ichiga olgan oldindan tayyorlangan jadvallardan foydalanadi. 2. Haqiqiy tasodifiy ketma-ketliklarning apparat (uskuna) generatorlari tasodifiy sonlami yaratish uchun ba’zi jismoniy jarayonlarning parametrlarini o’lchashdan foydalanadigan qurilma. 3. Tasodifiy sonlar generatorlarining apparat vositalarining qimmatligi tufayli ko’p hollarda entropiya manbai sifatida algoritmik alternativ bo’lgan generatorlar – psevdotasodifiy Foydalanilgan adabiyotlar 1. Akbarov D. YE. Axborot xavfsizligini ta’minlashning kriptografik usullari va ularning qo‘llanilishi – T 2008 2. Akbarov D. YE. Kriptografiyaning matematik asosi – T 2010 3. M.M.Aripov, B.F.Abdurahimov, A.S.Matyakubov. Kriptografik usullar – T 2020 4. Shnayyer B. Prikladnaya kriptografiya. Protokoli, algoritmi, isxodniye teksti na yazike Si. –M.: izdatelstvo TRIUMF, 2003 REFERENCES 5. Lenore Blum, Manuel Blum, und Michael Shub: A Simple Unpredictable Pseudo-Random Number Generator, SIAM Journal on Computing, Band 15, Nr. 2, Seiten 364383, Mai 1986. 2. Lenore Blum, Manuel Blum, und Michael Shub: Comparison of two pseudo-random number generators, Advances in Cryptology: Proceedings of Crypto '82. 6. https:habr.com Обзорная экскурсия в криптографически стойкие генераторы псевдослучайных чисел С. 1-5. Foydalanilgan web sahifalar. 1. 1. 1.https://studme.org/239571/informatika/upravlenie_kriptograficheskimi_kl yucha 2.https://studme.org/239571/informatika/upravlenie_kriptograficheskimi_kl yuch C. 1-4. 3. https://www.slideserve.com/bonnie/stream-cipher-diagram-C. 1-3.