[Закрыть]
 
popoff.donetsk.ua
Тихий, скромный, справедливый Иисус Христос произносил нагорную проповедь - не судите и не судимы будете - в полной тишине. Распятие же Христа превратилось в громкое шоу.
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Форум - Обсуждение статей - Моя работа - Delphi - GOSTEncryption

Моя работа - Delphi - GOSTEncryption

форумы popoff.donetsk.ua
Страницы: [1]
Подписаться на уведомления об изменениях в этом топике  |  << Новый  |  Старый >>  |  Ответить
Автор Сообщение
Обсуждение статьи Программирование - Delphi - GOSTEncryption
Гость box3d at mail dot ru url://forum.message:277
Моя работа - Delphi - GOSTEncryption
box3d at mail dot ru

А есть (например у автора) какой-нибудь пример программы, работающей с этим модулем? Как то он сам его тестировал ведь...

popoff
Yuri
Июл, 2004
Сообщений: 1078
popoff url://forum.message:278

Да, этот модуль использован в моей базе данных для общежитий.

~~~~~ 29 Мар 2005, 22:28 ~~~~~

Если Вы имели в виду текст программы, в котором использовался этот модуль, то более менее показательного примера нет. Если я Вам дам кусок из базы данных, то с этим куском Вы будете разбираться еще дольше, чем без него. Если Вам что-то не понятно, Вы можете задать мне Ваши вопросы в этом форуме.

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Гость box3d at mail dot ru url://forum.message:279
box3d at mail dot ru

насколько я понял, скачать код программы «База данных для общежитий» полностью или частично возможности нет?

popoff
Yuri
Июл, 2004
Сообщений: 1078
popoff url://forum.message:280

насколько я понял, скачать код программы «База данных для общежитий» полностью или частично возможности нет?


База данных для общежитий распространяется за wmz.

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Гость box3d at mail dot ru url://forum.message:281
box3d at mail dot ru

Ясно. А Вы можете тогда ответить на пару вопросов?
1. Почему опубликована (public) процедура GenerateGamma? Может я не так понял, но я думал она используется по ходу работы алгоритма кодировки/декодировки.
2. Куда должны указывать указатели src, dst, gamma?
3. Что такое noblocks?
Пока все. Буду очень благодарен, если получу ответы... Заранее спасибо

popoff
Yuri
Июл, 2004
Сообщений: 1078
popoff url://forum.message:282

1. Почему опубликована (public) процедура GenerateGamma? Может я не так понял, но я думал она используется по ходу работы алгоритма кодировки/декодировки.


Генерация гаммы и ее применение - это два разных метода. Гамму может потребоваться сгенерировать не применяя ее; реализовав в одном методе генерация+применение я лишил бы пользователя возможности 1) получить случайную гамму 2) зашифровать с использованием заранее сгенерированной гаммы

Случайные последовательности может потребоваться генерировать и за пределами этого класса. Например, у меня есть класс для работы с зашифрованным файловым потоком как с обычным файловым потоком. Для его реализации не достаточно процедуры шифрования: в поток могут дописываться данные; гамму требуется догенерировать по ходу добавления новых данных.

2. Куда должны указывать указатели src, dst, gamma?


Обычно:
src - источник (откуда берутся данные)
dst - приемник (куда записывается результат)
gamma - указатель на гамму.

Эти три указателя - просто указатели на некоторую область памяти; эта память рассматривается как последовательность байтов (слов, двойных слов - в зависимости от метода).

3. Что такое noblocks?


noblocks - Number Of Blocks (количество блоков). Я когда-то придумывал такие имена. Сейчас я эту переменную назвал бы block_count.

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Гость box3d at mail dot ru url://forum.message:283
box3d at mail dot ru

Спасибо за разъяснения.
Я решил разобраться в алгоритме. Дело в том, что я не очень хорошо знаю asm и это создает определенные сложности (помогает только Питер Абель).
Поэтому хотел бы уточнить. Что нужно, чтобы начать кодинг?
1. Насколько я понял нужно вызвать (обязательно) SetPassword, Set128Table, SetTable, SetKey. А уже потом начинать кодирование.
2. Простая замена: EncryptSimple (a1,a2: pchar...
3. С гаммой: сначала ApplyGamma (a1, gm: pchar...), потом EncryptSimple (a1,a2: pchar...
Я правильно понял? Спасибо.

popoff
Yuri
Июл, 2004
Сообщений: 1078
popoff url://forum.message:284

Что нужно, чтобы начать кодинг?
1. Насколько я понял нужно вызвать (обязательно) SetPassword, Set128Table, SetTable, SetKey. А уже потом начинать кодирование.


Ой.. У меня это было 15 сентября 2001 года, думаете я что-то помню? Буду вспоминать, если вдруг обману - не судите строго

Для работы методов EncryptSimple, DecryptSimple, GenerateImito и GenerateGamma требуются ключевые данные и таблица замен.

Ключевые данные устанавливаются методом SetKey. Этот метод вызывать обязательно.

Таблица замен устанавливается одним из двух методов Set128Table или SetTable. Один из этих двух методов нужно вызвать обязательно. Их отличие - формат таблицы замен.

SetTable устанавливает таблицу во внутреннем формате, как она используется перечисленными выше методами. В этом внутреннем формате, если я правильно помню, идет 4 блока по 256 байт. В каждом блоке содержится случайная последовательность чисел от 0 до 255. Каждое число может встретиться в блоке ровно один раз; то есть берем числа от 0 до 255, перемешиваем их в случайном порядке, это и будет один блок таблицы замен.

Set128Table преобразует таблицу из 128-байтовой последовательности во внутренний формат. Если я не ошибаюсь, эта 128-байтовая последовательность может быть случайной. Могу и ошибаться.

Метод SetPassword вызывать не обязательно. Он разработан лично мной для того, что бы не ломать голову над тем, как устанавливать ключевые данные и таблицу замен. Этот метод получает на вход строку и устанавливает ключевые данные и таблицу замен в соответствие с этой строкой. В самом простом случае для ключевых данных можно взять тот пароль, который ввел пользователь. Таблицу замен можно сделать постоянной. В ГОСТе, если я правильно помню, написано, что таблица замен не является секретным данным (секретным является только ключ), но сохранение в секрете таблицы замен повышает надежность алгоритма.

2. Простая замена: EncryptSimple (a1,a2: pchar...

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

3. С гаммой: сначала ApplyGamma (a1, gm: pchar...), потом EncryptSimple (a1,a2: pchar...

Ужас %) нет %) шифрование простой заменой и шифрование с гаммой - это два разных режима шифрования.

Для шифрования с гаммой нужно сначала сгенерировать гамму при помощи GenerateGamma, а потом применить ее при помощи ApplyGamma. Расшифровка - повторным применением той же гаммы.

~~~~~ 29 Мар 2005, 23:59 ~~~~~

Хотя нет, там в 128-байтовой таблице замен, по-моему, идет 8 блоков по 16 байтов в каждом; в каждом блоке - случайная последовательность чисел от 0 до 15; в каждом байте используются только младшие 4 бита. Снова же, если я правильно помню

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Гость box3d at mail dot ru url://forum.message:286
box3d at mail dot ru

Спасибо, разобрался вроде. Проверить пока не могу - в Delphi6/7 не работает команда XLAT...

Гость homa dash sapience at mail dot ru url://forum.message:2653
homa dash sapience at mail dot ru

Извинити не подскажите а для чего нам нужна asm вставка?

popoff
Yuri
Июл, 2004
Сообщений: 1078
popoff url://forum.message:2659

По всему тексту написано:

Разработал Винокуров А.Ю., г.Москва., 1992-1995 г.
Adapted for Delphi5 by Popoff Yuri, 2000

Исходная разработка была на асме для 8086 процессора (16 бит) - я её переделал для 32 бит и адаптировал для дельфи.

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Гость Anton url://forum.message:2667
Anton

Хотел еще спросить у есть процедура generate imito она для чего нужна в этом коде?

popoff
Yuri
Июл, 2004
Сообщений: 1078
popoff url://forum.message:2711

Функция GenerateImito() предназначена для генерации имитовставки.
По существу, в терминах алгоритма ГОСТ имитовставкой называют хеш, но отличие от обычного хеша состоит в том, что этот хеш ещё зависит и от пароля.

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Фев, 2009
Сообщений: 1
shynarqwertyuiop url://forum.message:2734

Здравствуйте! Вообще я хотела в самом малом разобраться, с адресами. у вас N1 и N2 какого типа?Мне кажется у Вас типа Item, но у меня он ругается, использую делфи 7. И потом хотела разобраться, после прцедуры shifr, в Temp даёт только 3 символа,помогите разобраться, какой тип надо брать?  
private
N1:string[4];
Temp:string[4];
....
procedure TForm1.shifr;
var
aN1:^byte;
aTemp:^byte;
begin
aN1:=@N1;
aTemp:=@Temp;
      asm
         mov ecx, 4
         mov edi, aN1
         mov esi, aTemp
@bb:     mov al, [edi]
         mov [esi], al
         inc esi
         inc edi
         loop @bb
      end;
edit1.text:=Temp;  
...
procedure TForm1.Button1Click(Sender: TObject);
N1:=N1+edit3.Text[i];
...
shifr;

popoff
Yuri
Июл, 2004
Сообщений: 1078
popoff url://forum.message:2737

shynarqwertyuiop,

у вас N1 и N2 какого типа?Мне кажется у Вас типа Item,

shynarqwertyuiopфорумы popoff.donetsk.ua

N1 и N2 - это целые 32-битные числа.

у меня он ругается, использую делфи 7.

shynarqwertyuiopфорумы popoff.donetsk.ua

Я не специалист в Delphi7.

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Гость shynarjel at mail dot ru url://forum.message:2762
shynarjel at mail dot ru

Здравствуйте! У меня вопрос такой: Почему вы решили реализовать Гост на делфи, ведь написанный на ассемблере быстрее обрабатывает текст большой длиный, а делфи отстаёт во времени?

popoff
Yuri
Июл, 2004
Сообщений: 1078
popoff url://forum.message:2763

shynarjel,
было бы хорошо, если бы Вы предоставили результаты тестов.

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Гость Аня url://forum.message:3124
Аня

Здравствуйте, Юрий!
Очень понравился Ваш сайт. Особенно реализация ГОСТ шифрования.
Не могли бы Вы показать реализацию этого модуля в проекте?

Гость cosyachok at bigmir dot net url://forum.message:3138
cosyachok at bigmir dot net

Юрий, здраствуйте) Заинтересовала исходная разработка на Ассемблере 8086, с которой писалась программа на Делфи. Если можете скиньте на почту cosyachok@bigmir.net  
С уважением Константин)

Страницы: [1]
Подписаться на уведомления об изменениях в этом топике  |  << Новый  |  Старый >>  |  Ответить
Вход
Поиск[?]:
Обмен электронных валют
money.dn.ua