Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++|Pascal|VB6] Программа на основе сети Фейштеля, третьего типа, криптограф. преобразован. 
:(
    Опции темы
Remix
Дата 9.1.2007, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.1.2007

Репутация: нет
Всего: нет



Прошу помощи , мне нужно написать  программу прямого и обратного криптографического преобразования на основе классической сети Фейштеля ТРЕТЬЕГО типа.

На любом языке можно Visual Basik ,C++, PHP и т.д. 

Предмет: Криптография

Очень нужно помогите плиз 10.01.2007 сдавать

Сеть Фейштеля третьего типа:
http://scanner.narod.ru/link/Safe/miszi/miszi5.htm

Фактически, это тоже самое, что и у Meethookа. Дело только в том, что я дуб дубом в программмировании и эти дополнительные функции мне нипочем не ввести. Помогите, очень прошу, чем смогу, отблагодарю.
PM MAIL   Вверх
Romikgy
Дата 9.1.2007, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 9
Всего: 146



Цитата(Remix @  9.1.2007,  18:56 Найти цитируемый пост)
РЕТЬЕГО типа.

что есть это?
Цитата(Remix @  9.1.2007,  18:56 Найти цитируемый пост)

Сеть Фейштеля третьего типа:
http://scanner.narod.ru/link/Safe/miszi/miszi5.htm

Цитата

2.2.2.4.1. Общие сведения о конкурсе AES

это и есть третьего рода?
плюс к этому
Цитата

Очень нужно помогите плиз 10.01.2007 сдавать

а раньше подумать не?


Это сообщение отредактировал(а) Romikgy - 9.1.2007, 20:58


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Remix
Дата 9.1.2007, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.1.2007

Репутация: нет
Всего: нет



Romikgy, 
как я понимаю, третьего рода  - это значит 
Цитата

В нем используется сеть Фейштеля треьего типа с 4 ветвями, то есть значения трех функций, вычисленных от одной ветви накладываются соответственно на три других, затем идет перестановка машинных слов


Вот.

Добавлено @ 21:01 
Цитата(Romikgy @ 9.1.2007,  20:56)
а раньше подумать не?

Однако я дурак...

Это сообщение отредактировал(а) Remix - 9.1.2007, 21:00

Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  22242_1.gif 8,56 Kb
PM MAIL   Вверх
Romikgy
Дата 9.1.2007, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 9
Всего: 146



что есть F на рисунке?


Это сообщение отредактировал(а) Romikgy - 9.1.2007, 21:25


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Remix
Дата 9.1.2007, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.1.2007

Репутация: нет
Всего: нет



по ходу дела то же самое, что и тут (класс.сеть) http://citforum.ru/internet/infsecure/its2000_18.shtml    F(Vr)

Добавлено @ 21:54 
тьфу, стоп, туплю я.  кажись, то, что ниже надписи  "повторить 7 раундов", нах не надо. после нее должны выходить зашифрованные блоки. 



Это сообщение отредактировал(а) Remix - 9.1.2007, 22:01
PM MAIL   Вверх
Romikgy
Дата 9.1.2007, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 9
Всего: 146



Цитата(Remix @  9.1.2007,  20:46 Найти цитируемый пост)
F(Vr)

и что это?
по картинке:
К0..К3 - я так понял ключ ?! как формируется?
S0..S3 что это?
>>>8 - это что сдвиг? на 8 бит? какой циклический или арифметический?
чем отличается плюс в кружочке и в квадрате?
и вообще D0... D3 какого типа как и ключ? байт ? слово ? двойное слово?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Remix
Дата 9.1.2007, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.1.2007

Репутация: нет
Всего: нет



кажись, я разобрался. забеливание данных нас не интересует, этот шаг пропускается. 
сдвиг тут не нужен. плюсы не отличаются.  

d0...d3 входные данные, кот. делятся по 64 бита. а ключ задается словом.

Добавлено @ 23:09 
user posted image
Вот рисунок проще, чтобы не было жопы с функциями.

Добавлено @ 23:10 
интересует самый последний. f - это ключ. 

Это сообщение отредактировал(а) Remix - 9.1.2007, 23:11
PM MAIL   Вверх
Romikgy
Дата 9.1.2007, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 9
Всего: 146



Цитата(Remix @  9.1.2007,  22:00 Найти цитируемый пост)
f - это ключ. 

здесь поподробнее плз
и что есть Х1 - ?

Это сообщение отредактировал(а) Romikgy - 9.1.2007, 23:13


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Remix
Дата 9.1.2007, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.1.2007

Репутация: нет
Всего: нет



х1 х2 х3 х4 - блоки входящего текста по 32 бита.

Это сообщение отредактировал(а) Remix - 9.1.2007, 23:15
PM MAIL   Вверх
Romikgy
Дата 9.1.2007, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 9
Всего: 146



Цитата(Romikgy @  9.1.2007,  22:13 Найти цитируемый пост)
Цитата(Remix @  9.1.2007,  22:00 Найти цитируемый пост)
f - это ключ. 

здесь поподробнее плз
и что есть Х1 - ?

 smile  smile  smile  smile  smile 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Remix
Дата 9.1.2007, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.1.2007

Репутация: нет
Всего: нет



выше написано...

Добавлено @ 23:28 
х1 х2 х3 х4 - блоки входящего текста по 32 бита.

PM MAIL   Вверх
Romikgy
Дата 10.1.2007, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 9
Всего: 146



воть , вроде как помогло ....
реализация RC4 и MD5
http://forum.vingrad.ru/index.php?showtopi...st&p=814655


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Remix
Дата 23.4.2007, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.1.2007

Репутация: нет
Всего: нет



У меня возник вопрос. Что делают процедуры ff gg hh и ii в этом коде? Преподу надо объяснить, а я сам не понимаю...

Код


unit crypto;
{---------------------------}
interface
type TArr16xLongword=array [0..15] of Longword;
procedure RC4Init(key:shortstring);
function RC4GetCryptoByte(ch:byte):byte;
procedure MD5Init;
procedure MD5Do(M:TArr16xLongword);
procedure MD5Finalize(var a,b,c,d:Longword);
function ROL(c:Longword;n:byte):Longword;
{---------------------------}
implementation
var rc4i,rc4j:byte;
    rc4s:array[0..255] of byte;
    md5a,md5b,md5c,md5d:Longword;
procedure RC4Init(key:shortstring);
var k:array[0..255] of byte; //вспомогательный массив
    i,j,t:byte;
begin
  //обнуляем глобальные счётчики
  rc4i:=0;
  rc4j:=0;
  //заполняем основной массив линейно
  for i:=0 to 255 do rc4s[i]:=i;
  //заполняем вспомогательный массив ключом
  //при этом он должен заполнить весь массив
  //для этого повторяем его нужное число раз
  j:=0;
  t:=length(key);
  for i:=0 to 255 do begin
    inc(j);
    k[i]:=Byte(key[j]);
    if j=t then j:=0;
  end;
  //заполняем основной массив в зависимости от ключа
  j:=0;
  for i:=0 to 255 do begin
    j:=(j+k[i]+rc4s[i]) mod 256;
    //меняем местами rc4s[i] и rc4s[j]
    t:=rc4s[i];
    rc4s[i]:=rc4s[j];
    rc4s[j]:=t;
  end;
end;
{---------------------------}
function RC4GetCryptoByte(ch:byte):byte;
var t:byte;
begin
  rc4i:=(rc4i+1) mod 256; //циклически увеличиваем счётчик на единицу
  rc4j:=(rc4j+rc4s[rc4i]) mod 256;
  
  //меняем местами rc4s[rc4i] и rc4s[rc4j]
  t:=rc4s[rc4i];
  rc4s[rc4i]:=rc4s[rc4j];
  rc4s[rc4j]:=t;
  
  t:=(rc4s[rc4i]+rc4s[rc4j]) mod 256; //получаем номер байта в массиве для шифрования
  RC4GetCryptoByte:=rc4s[t] xor ch; //получаем шифрованный байт
end;
{---------------------------}
procedure MD5Init;
begin
  md5a:=$67452301;
  md5b:=$efcdab89;
  md5c:=$98badcfe;
  md5d:=$10325476;
end;
{---------------------------}
function ROL(c:Longword;n:byte):Longword;assembler;
asm
 mov eax,c
 mov cl,n
 rol eax,cl
end;
{---------------------------}
procedure MD5Do(M:TArr16xLongword);
var a,b,c,d:Longword;// Временные переменные
procedure FF(var a,b,c,d,m:Longword;s:byte;t:Longword);
begin
  a:=b+(rol((a+((b and c)or((not b) and d))+m+t),s));
end;
procedure GG(var a,b,c,d,m:Longword;s:byte;t:Longword);
begin
  a:=b+(rol((a+((b and d)or(c and (not d)))+m+t),s));
end;
procedure HH(var a,b,c,d,m:Longword;s:byte;t:Longword);
begin
  a:=b+(rol((a+(b xor c xor d)+m+t),s));
end;
procedure II(var a,b,c,d,m:Longword;s:byte;t:Longword);
begin
  a:=b+(rol((a+(c xor (b or(not d)))+m+t),s));
end;
begin //MD5Do
 // копируем во временные переменные
  a:=md5a;
  b:=md5b;
  c:=md5c;
  d:=md5d;
  //Этап 1
  FF(a,b,c,d, M[0], 7,$D76AA478);
  FF(d,a,b,c, M[1],12,$E8C7B756);
  FF(c,d,a,b, M[2],17,$242070DB);
  FF(b,c,d,a, M[3],22,$C1BDCEEE);
  FF(a,b,c,d, M[4], 7,$F57C0FAF);
  FF(d,a,b,c, M[5],12,$4787C62A);
  FF(c,d,a,b, M[6],17,$A8304613);
  FF(b,c,d,a, M[7],22,$FD469501);
  FF(a,b,c,d, M[8], 7,$698098D8);
  FF(d,a,b,c, M[9],12,$8B44F7AF);
  FF(c,d,a,b,M[10],17,$FFFF5BB1);
  FF(b,c,d,a,M[11],22,$895CD7BE);
  FF(a,b,c,d,M[12], 7,$6B901122);
  FF(d,a,b,c,M[13],12,$FD987193);
  FF(c,d,a,b,M[14],17,$A679438E);
  FF(b,c,d,a,M[15],22,$49B40821);
  //Этап 2
  GG(a,b,c,d, M[1], 5,$F61E2562);
  GG(d,a,b,c, M[6], 9,$C040B340);
  GG(c,d,a,b,M[11],14,$265E5A51);
  GG(b,c,d,a, M[0],20,$E9B6C7AA);
  GG(a,b,c,d, M[5], 5,$D62F105D);
  GG(d,a,b,c,M[10], 9,$02441453);
  GG(c,d,a,b,M[15],14,$D8A1E681);
  GG(b,c,d,a, M[4],20,$E7D3FBC8);
  GG(a,b,c,d, M[9], 5,$21E1CDE6);
  GG(d,a,b,c,M[14], 9,$C33707D6);
  GG(c,d,a,b, M[3],14,$F4D50D87);
  GG(b,c,d,a, M[8],20,$455A14ED);
  GG(a,b,c,d,M[13], 5,$A9E3E905);
  GG(d,a,b,c, M[2], 9,$FCEFA3F8);
  GG(c,d,a,b, M[7],14,$676F02D9);
  GG(b,c,d,a,M[12],20,$8D2A4C8A);
  //Этап 3
  HH(a,b,c,d, M[5], 4,$FFFA3942);
  HH(d,a,b,c, M[8],11,$8771F681);
  HH(c,d,a,b,M[11],16,$6D9D6122);
  HH(b,c,d,a,M[14],23,$FDE5380C);
  HH(a,b,c,d, M[1], 4,$A4BEEA44);
  HH(d,a,b,c, M[4],11,$4BDECFA9);
  HH(c,d,a,b, M[7],16,$F6BB4B60);
  HH(b,c,d,a,M[10],23,$BEBFBC70);
  HH(a,b,c,d,M[13], 4,$289B7EC6);
  HH(d,a,b,c, M[0],11,$EAA127FA);
  HH(c,d,a,b, M[3],16,$D4EF3085);
  HH(b,c,d,a, M[6],23,$04881D05);
  HH(a,b,c,d, M[9], 4,$D9D4D039);
  HH(d,a,b,c,M[12],11,$E6DB99E5);
  HH(c,d,a,b,M[15],16,$1FA27CF8);
  HH(b,c,d,a, M[2],23,$C4AC5665);
  //Этап 4
  II(a,b,c,d, M[0], 6,$F4292244);
  II(d,a,b,c, M[7],10,$432AFF97);
  II(c,d,a,b,M[14],15,$AB9423A7);
  II(b,c,d,a, M[5],21,$FC93A039);
  II(a,b,c,d,M[12], 6,$655B59C3);
  II(d,a,b,c, M[3],10,$8F0CCC92);
  II(c,d,a,b,M[10],15,$FFEFF47D);
  II(b,c,d,a, M[1],21,$85845DD1);
  II(a,b,c,d, M[8], 6,$6FA87E4F);
  II(d,a,b,c,M[15],10,$FE2CE6E0);
  II(c,d,a,b, M[6],15,$A3014314);
  II(b,c,d,a,M[13],21,$4E0811A1);
  II(a,b,c,d, M[4], 6,$F7537E82);
  II(d,a,b,c,M[11],10,$BD3AF235);
  II(c,d,a,b, M[2],15,$2AD7D2BB);
  II(b,c,d,a, M[9],21,$EB86D391);
  // увеличиваем значение переменных
  inc(md5a,a);
  inc(md5b,b);
  inc(md5c,c);
  inc(md5d,d);
end;
{---------------------------}
procedure MD5Finalize(var a,b,c,d:Longword);
begin
  a:=md5a;
  b:=md5b;
  c:=md5c;
  d:=md5d;
end;
end


Это сообщение отредактировал(а) Alexeis - 24.4.2007, 11:18
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0701 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.