1. Oqimni shifrlash algoritmini amalga olish a5/1
Download 76.27 Kb.
|
5-var(M-ish)
A5/1 c++ da
#include #include class A51 { private: std::bitset<19> register1; std::bitset<22> register2; std::bitset<23> register3; std::bitset<64> key; std::bitset<22> iv; std::bitset<19> clockRegister(std::bitset<19> reg, int feedback) { std::bitset<19> newReg; newReg[0] = reg[feedback] ^ reg[0]; for (int i = 1; i < 19; i++) { newReg[i] = reg[i - 1]; } return newReg; } std::bitset<22> clockRegister2(std::bitset<22> reg, int feedback) { std::bitset<22> newReg; newReg[0] = reg[feedback] ^ reg[0]; for (int i = 1; i < 22; i++) { newReg[i] = reg[i - 1]; } return newReg; } std::bitset<23> clockRegister3(std::bitset<23> reg, int feedback) { std::bitset<23> newReg; newReg[0] = reg[feedback] ^ reg[0]; for (int i = 1; i < 23; i++) { newReg[i] = reg[i - 1]; } return newReg; } public:
// Инициализация регистров на основе ключа и вектора инициализации } std::bitset<32> generateKeystream(int length) { std::bitset<32> keystream; for (int i = 0; i < length; i++) { int majority = (register1[8] & register2[10]) ^ (register1[8] & register3[10]) ^ (register2[10] & register3[10]); if (register1[8] == majority) { int newBit = (register1[18] ^ register1[17]) ^ (register1[16] ^ register1[13]); register1 = clockRegister(register1, 18); register2 = clockRegister2(register2, 21); register3 = clockRegister3(register3, 22); keystream[i] = newBit; } else if (register2[10] == majority) { int newBit = (register2[21] ^ register2[20]); register1 = clockRegister(register1, 18); register2 = clockRegister2(register2, 21); register3 = clockRegister3(register3, 22); keystream[i] = newBit; } else { int newBit = (register3[22] ^ register3[21] ^ register3[7] ^ register3[20]); register1 = clockRegister(register1, 18); register2 = clockRegister2(register2, 21); register3 = clockRegister3(register3, 22); keystream[i] = newBit; } } return keystream; } std::bitset<32> encrypt(std::bitset<32> Xulosa
Foydalanilgan adabiyotlar. 1. Питер Вайл, Стефани Ворнер. Цифровая трансформация бизнеса. Изменение бизнесмодели для организации нового поколени. ISBN: 978-5-9614-2250-4. Литва 2019 год,260 стр. 2. Макаров А. Ю., Макаров А.А. Цифровая экономика. Технологии меняют менеджмент. Практика, внедрения и результаты. / — М.: СО ЛО Н -П ресс, 2021. - 160 с.ISBN 978- 5-91359-437-2 3. Носова С.С., Путилов А.В., Норкина А.Н. Основы цифровой экономики : Учебник / . — Москва : КНОРУС, 2021. — 392 с. (Бакалавриат).ISBN 978-5-406-05315-7 4. Головенчик, Г. Г. Цифровая экономика [Электронный ресурс] : учеб.-метод. комплекс / Г. Г. Головенчик. – Минск : БГУ, 2020. – 1 электрон. опт. диск (CD-ROM). ISBN 978- 985-566-847-432>32>32>32>22>64>23>23>23>22>22>22>19>19>19>22>64>23>22>19> Download 76.27 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling