![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Shambal |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 23.10.2011 Репутация: нет Всего: нет |
Здравствуйте.
Пишу программу на C#, которая шифрует и дешифрует текст с помощью алгоритма DES. Знаю, что можно использовать встроенные функции, но мне интересно написать "с нуля". Шифрование закончил. Теперь пишу обратный процесс для дешифрования. И тут столкнулся со следующей проблемой: один из шагов шифрования был ужатие 48 бит блока до 32 бит с помощью s_box (0 и 5 бит определяли номер строки; 1, 2, 3, 4 биты определяли номер столбца; на пересечении бралось число от 0 до 15, переводилось в двоичное представление и записывалось в этот самый уже 32 бит блок). Проблема в том, что числа в каждом из таких s_box (их восемь) повторяются, т.е. при обратных действиях я нахожу число, смотрю его номер строки и столбца, перевожу эти номера обратно в 6 бит для формирования исходного 48 бит блока. Но из-за повторения чисел нельзя чётко определить строку и столбец. Буду очень благодарен, если кто-то разъяснит, как получить эти 6 исходных бит, по которым раньше определял строку/столбец. Заранее спасибо. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |