Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Блочный шифр TEA / 3 сообщений из 3, страница 1 из 1
01.06.2006, 11:16
    #33765284
krobs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блочный шифр TEA
Ситуация: Есть у нас предмет, "Безопасность информации".
Курс лекций, которые провёл препод, состоял в описании и сравнивании разных систем шифрования, криптоагаритмов и не слово про программирование данных систем. :(
И вдруг он даёт нам задание создать криптоалгоритм на Паскале - мне попался "Блочный шифр TEA", а я Паскаль ни-ни. :(
Скачал шифр из инета. Просмотрел его , потом чего-то промямлил преподу, но он не дурак и говорит: Что типа я не сам делал, поэтому должен обяснить чем "мой" код отличается от данного им схематического алоритма? Как он сказал, что "нарушена логическая связь в программе"...
Я с этим заданием уже мучаюсь 2 месяца, а он упёртый... Теперь если не сдам, сесию завалит! :(

Товарищи, подскажите, пожалуйста, где нарушенна эта чёртова связь? :)

Исходник программы и "его" алгоритм можно взять в прилагаемом файле!
...
Рейтинг: 0 / 0
04.06.2006, 00:30
    #33770779
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блочный шифр TEA
Хм... странно. Я сравнил ваш исходник с одной реализацией
этого-же алгоритма на шарпе , и меня удивило, что инкремент
суммы (sum) выполняется по разному.

Где-то в дебрях http://www.codeproject.com/netcf/teaencryption.asp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
private void code(uint[] v, uint[] k)
{
    uint y = v[ 0 ];
    uint z = v[ 1 ];
    uint sum =  0 ;
    uint delta=0x9e3779b9;
    uint n= 32 ;

    while(n-->0)
    {
        y += (z <<  4  ^ z >>  5 ) + z ^ sum + k[sum &  3 ];
        sum += delta;
        z += (y <<  4  ^ y >>  5 ) + y ^ sum + k[sum >>  11  &  3 ];
    }
    v[ 0 ]=y;
    v[ 1 ]=z;
}

Ваш исходник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
...
procedure EnCrypt(var data);
var y,z,sum:longint;
    a:byte;
begin
	y:=TLong2(data)[ 0 ];
	z:=TLong2(data)[ 1 ];
	sum:= 0 ;
	for a:= 0  to  31  do
	begin
		inc(sum,Delta);
		inc(y,((z shl  4 )+key[ 0 , 0 ]) xor (z+sum) xor ((z shr  5 )+key[ 0 , 1 ]));
		inc(z,((y shl  4 )+key[ 1 , 0 ]) xor (y+sum) xor ((y shr  5 )+key[ 1 , 1 ]));
	end;
	TLong2(data)[ 0 ]:=y;
	TLong2(data)[ 1 ]:=z;
end;
....
...
Рейтинг: 0 / 0
07.06.2006, 11:57
    #33777113
krobs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блочный шифр TEA
Ребят, подскажите пожалуйста, как можно реализовать данный алгоритм на шарпе, в Паскале с использованием методов я зыка "Паскаль". Ребят, мне через два часа сдавать надо! Помогите пожалуйста
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Блочный шифр TEA / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]