Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм SHA, Реализация (С#) 
:(
    Опции темы
Shit_happenes
Дата 29.11.2007, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вот такая вот задачка :

Цитата


    Шаг 1: добавление недостающих битов

Сообщение добавляется таким образом, чтобы его длина была кратна 448 по модулю 512 (длина 448 mod 512). Добавление осуществляется всегда, даже если сообщение уже имеет нужную длину. Таким образом, число добавляемых битов находится в диапазоне от 1 до 512.

Добавление состоит из единицы, за которой следует необходимое количество нулей.

    Шаг 2: добавление длины

К сообщению добавляется блок из 64 битов. Этот блок трактуется как беззнаковое 64-битное целое и содержит длину исходного сообщения до добавления.

Результатом первых двух шагов является сообщение, длина которого кратна 512 битам.


Помогите разобрать с длинной сообщения, что имеется в виду?
И как вычислить эту длину? 
А потом ещё как дополнить это сообщение?


Это сообщение отредактировал(а) Shit_happenes - 29.11.2007, 14:19
PM MAIL   Вверх
Walker
Дата 29.11.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Приветствую!

Реализацию писать не буду, только отвечу на вопросы. Требование: все сообщения инкапсулированы в пакеты размера, кратного 512 бит, из которых последние 64 бита - содержат длину передаваемого сообщения. Оставшиеся 448(для самого короткого пакета) бит заполняются следующим образом: сообщение, затем 1, затем нули. Схематически что-то вроде этого:

Код

 Сообщение1000...0            Длина сообщения
|-----------------|--------------------------|
      448 бит                64 бит


Да, ещё. Если сообщение "зашкаливает", то дополняется по этой схеме до 512 * 2 (3, 4....n - в зависимости от длины) бит.

Это сообщение отредактировал(а) Walker - 29.11.2007, 17:05


--------------------
"От вчерашних побед остаётся усталость, если завтрашний день не сулит ничего..."
PM MAIL   Вверх
Shit_happenes
Дата 29.11.2007, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Это я понял.

Входящее сообщение будет в виде
Код


String str = "MessageText"
 ?
Т.е. в данном случае, если используется кодировка один байт на символ, то длинна этого сообщения будет равна str.Length * 8 бит?
11 * 8 = 88бит,
Значит надо дополнить до 512бит - 64бита, т.е. получиться 
Код


String newStr = "(длинна в 8символов)" + "                         "  + "(1 по таблице ascii)" + str;

Так что ли?


Это сообщение отредактировал(а) Shit_happenes - 29.11.2007, 20:12
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

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


 




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


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

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