Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: RC4  (Прочитано 12150 раз)
0 Пользователей и 1 Гость смотрят эту тему.
inSu
Гость
RC4
« : 25-11-2008 12:26 » 

Всем привет)
Обращаюсь со следующей проблемой: мне нужно сдавать приложение, которое шифрует и дешифрует с помощью алгоритма RC4, а также написать брутфорс к этому приложению. Кто-нибудь уже писал такое приложение? Не могли бы выложить исходники или выслать по почте?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 25-11-2008 14:07 » 

inSu, посмотри в MSDN CryptoAPI.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 25-11-2008 14:10 » 

Интересно, а в Windows есть библиотека OpenSSL?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 25-11-2008 14:12 » 

Serg79, есть виндовые сборки OpenSSL. Кроме того, можно собрать из исходника в VC (когда-то проделал эту процедуру и для конфигурации пакета потребовалось ставить ActivePerl).
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
inSu
Гость
« Ответ #4 : 25-11-2008 18:55 » 

RXL, CryptoAPI мимо))
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 25-11-2008 21:11 » 

inSu, почему? У тебя специфичные требования?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 26-11-2008 07:28 » 

А CryptoAPI решает те же вопросы что и OpenSSL?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 26-11-2008 12:24 » 

Serg79, в общем-то, да: генерация и управление ключами и сертификатами, шифрование, хеши.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
inSu
Гость
« Ответ #8 : 26-11-2008 20:57 » 

1. Введение
1.1. Основные понятия и терминология

2. Общие положения CryptoAPI
2.1. Интерфейс CryptoAPI
2.2. Симметричные и асимметричные шифры
2.3. Блочные шифрыv
2.4. Алгоритм RSA
2.5. Хеши

3. Работа с CryptoAPI
3.1. Криптопровайдеры
3.2. Работа с ключами
3.2.1. Криптографические ключи и выполняемые функции
3.2.2. Генерация ключей и обмен ключами
3.2.3. Получение дескриптора ключа
3.2.4. Экспорт ключей
3.2.5. Импорт ключей
3.3. Цифровая подпись
3.4. Шифрование и дешифрование данных
3.5. Хеши MD5 и CHA

вот, что рассматривает данный интерфейс, а мне нужен RC4(поточное шифрование)
весь смысл задания заключается в том, что использовать библиотеку шифрования RC4 и засунуть ее на форму, сделать поле для ключа, поля для изначельного и зашифрованного текста, кнопульки Encrypt и Decrypt. После этого нужно дописать библиотеку брутфорс для данного приложения, а уж после всего этого при помощи средств MPI или OpenMP распараллелить работу.
Все нужно сделать на С/С++ т.к для C# нет библиотек MPI и OpenMP. Я писал все на С#, но потом добавили задание на параллельное программирование. Теперь нужно все переоформлять, а у мня времени не хватает.
 
Записан
inSu
Гость
« Ответ #9 : 26-11-2008 21:00 » 

Код:
/* rc4.h */
typedef struct rc4_key
{     
     unsigned char state[256];       
     unsigned char x;       
     unsigned char y;
} rc4_key;
void prepare_key(unsigned char *key_data_ptr,int key_data_len,
rc4_key *key);
void rc4(unsigned char *buffer_ptr,int buffer_len,rc4_key * key);

Код:
/*rc4.c */
#include "rc4.h"
static void swap_byte(unsigned char *a, unsigned char *b);
void prepare_key(unsigned char *key_data_ptr, int key_data_len,
rc4_key *key)
{
     unsigned char swapByte;
     unsigned char index1;
     unsigned char index2;
     unsigned char* state;
     short counter;     
     
     state = &key->state[0];         
     for(counter = 0; counter < 256; counter++)             
     state[counter] = counter;               
     key->x = 0;     
     key->y = 0;     
     index1 = 0;     
     index2 = 0;             
     for(counter = 0; counter < 256; counter++)     
     {               
          index2 = (key_data_ptr[index1] + state[counter] +
index2) % 256;               
          swap_byte(&state[counter], &state[index2]);           

          index1 = (index1 + 1) % key_data_len; 
     }       
 }
 
 void rc4(unsigned char *buffer_ptr, int buffer_len, rc4_key
*key)
 {
     unsigned char x;
     unsigned char y;
     unsigned char* state;
     unsigned char xorIndex;
     short counter;             
     
     x = key->x;     
     y = key->y;     
     
     state = &key->state[0];         
     for(counter = 0; counter < buffer_len; counter ++)     
     {               
          x = (x + 1) % 256;                     
          y = (state[x] + y) % 256;               
          swap_byte(&state[x], &state[y]);                       
               
          xorIndex = (state[x] + state[y]) % 256;                 
               
          buffer_ptr[counter] ^= state[xorIndex];         
      }               
      key->x = x;     
      key->y = y;
 }
 
 static void swap_byte(unsigned char *a, unsigned char *b)
 {
     unsigned char swapByte;
     
     swapByte = *a;
     *a = *b;     
     *b = swapByte;
 }

Есть вот такой вот хэд и его реализация, но терь осталось замостачить на форму, у мня прост руки не доходят.
« Последнее редактирование: 26-11-2008 21:28 от Вад » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 27-11-2008 08:36 » 

2.3. Блочные шифры
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
inSu
Гость
« Ответ #11 : 27-11-2008 21:10 » 

в блочных шифрах нет никаких намеков на RC4
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines