|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Реализация m-ичного (m = 8) поточного зашифрования/расшифрования файла |
|
C/C++ - Реализация m-ичного (m = 8) поточного зашифрования/расшифрования файла
|
Новый участник Сообщения: 2 |
Здраствуйте. очень нужна помощ. Реализация m-ичного (m = 8) поточного зашифрования/расшифрования файла с использованием схемы разворачивания ключа из PIN-кода (пароля) небольшой длины на основе генератора со сжатием (ЛРР с большими степенями образующих полиномов, от 163) Зарание спасибо.
|
|
Отправлено: 21:40, 23-09-2010 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Проверьте на правильность и работоспособность
#include "stdafx.h" #include <iostream> #include <string.h> #include <stdlib.h> using namespace std; unsigned char TaktLRR(unsigned char *f, unsigned int &State) { unsigned char Bit, Sj; Bit=State&1; Sj=(State&1)^(State&1<<(f[0]-f[1]))>>(f[0]-f[1]); If(f[2]&&f[3]) { Sj^=(State&1<<(f[0]-f[2]))>>(f[0]-f[2]); Sj^=(State&1<<(f[0]-f[3]))>>(f[0]-f[3]); } State>>=1; State=State|Sj<<(f[0]-1); return Bit; } unsigned char GenByteLRP(unsigned char*f, unsigned int State_0) { int i=0; unsigned int State=State_0; unsigned char Byte=0,Bit; for(i=0;i<8;i++) { Bit=TaktLRR(f,State); Byte|=Bit<<I; } return Byte; } unsigned char Generate(unsigned char*Key1, unsigned char*Key2) { int i=0; int masKey[32]; for(i=0;i<32;i++) { if(GenByteLRP(f1,Key1)=1) { masKey[i]=GenByteLRP(f2,Key2); } else { continue; } return masKey; } unsigned char Cript(unsigned char *Message, unsigned char len) { unsigned char cript = masKey; unsigned char i; while (len--) { cript ^= *Message++; for (i = 0; i < 8; i++) cript = cript & 0x80 ? (cript << 1) ^ 0x31 : cript << 1; } return cript; } int main() { unsigned char Key1[16]; unsigned char Key2[16]; unsigned char Message[]; unsigned char lenMessage; cout<<’input message’; cin.getline>>Message; unsigned char f1[3]={4,3,2}; unsigned char f2[3]={6,3,1}; lenMessage=(int)strlen((char *)Message); cout<<’input Key1’; cin.getline(Key1,16); cin.getline(0); cout<<’input Key2’; cin.getline(Key2,16); cin.getline(0); Generate(Key1,Key2); Cript(Message,lenMessage); stdout<<cript; } |
Отправлено: 09:41, 27-09-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Реализация доступа к интернет. | zubkoff.s | Microsoft Windows NT/2000/2003 | 24 | 01-02-2010 11:28 | |
C/C++ - Реализация Zoom`а в Borland C++ Builder | DaRiYs | Программирование и базы данных | 2 | 21-12-2009 02:12 | |
Реализация конвейера на Си! NEED HELP! | st031 | Программирование в *nix | 2 | 24-01-2009 10:57 | |
C/C++ - Реализация формулы... | ganselo | Программирование и базы данных | 1 | 20-01-2009 19:38 | |
Разное - Ситема терминалов (реализация) | piling | Microsoft Windows 2000/XP | 2 | 13-02-2008 22:52 |
|