![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Ты условие знаешь? Ты сам понимаешь что нужно сделать? Я давно с криптоанализом дела не имел... Возможно тебе нужно представить весь текст(с произвольным количеством символов в алфавите) в виде потока бит и каждые 3 бита менять по заданной маске... Если так, то тебе нужно что-то, вроде, того, что имел ввиду Kuvaldis. Ты с задачей для начала определись(сформулируй её получше)...
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Defoult |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 16.9.2007 Где: Ростов-на-дону Репутация: нет Всего: нет |
![]() ctrl+C ctrl+V )) ошибки быть не может, если тока байты из флешки не вылетают ))) в том-то и проблема...что само задание сложности не предстваляет если работать со строкой, в которой 1 буква - 1 байт, а вот эта небольшая оговорочка о 3 битах ввела меня в великий ступор я просто абстрактно не могу представить.....кака я буду шифровать алфавит, когда у меня в распоряжении всего 3 бита на 1 букву |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Продолжение(об определённом правиле) в студию ![]()
IIRC, в моноалфавитной подстановке исходный алфавит имеет такую же мощность, как и целевой. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Defoult |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 16.9.2007 Где: Ростов-на-дону Репутация: нет Всего: нет |
правило в студию!!
может у меня алфавит шифрования - набор чисел? но опять же числа от 0 до 7 ![]() Это сообщение отредактировал(а) Defoult - 7.10.2007, 23:22 |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Из этой цитаты делаем вывод что у тебя алфавит шифрование имеет такую же мощность, как и нормативный алфавит. В условии у тебя сказано, что длина символа из алфавита - 3 бита. Что это означает? Только то, что алфавит содержит 8 различных символов, пофиг каких. Хочешь набор чисел - пожалста. Хочешь abcdefgh - пожалста. И это отностися как к нормативному алфавиту, так и к алфавиту шифрования. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
_Michael |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: нет Всего: 6 |
ето я думаю соответствует действительности. и не вижу никакой проблемы с тремя битами. И не плутайте пожалуйста понятие слова символ в общем случае и в криптоанализе. В задании наверное имелось ввиду под словом символ - символ алфавита который имеет размер 8 поскольку три бита всего на кодирование одного символа а не то значение которое обычно мы имееем ввиду. Допустим у тебя есть набор символов "abcd" соответственно он в памяти представляется четырьмя байтами или 32мя битами. вроде так, точно в АSCII не смотрел: а - 01100001 b - 01100010 c - 01100011 d - 01100100 ето не сутьважно. или если все подряд одним потоком то 01100001011000100110001101100100. и так далее сколько у тебя там символов(имею ввиду тех что одним байтом кодируются) Все что тебе надо ето поделить етот поток на группы по три биты т.е: 011 000 010 110 001 001 100 011 011 001 00. и заменить каждую группу соответствующей по твоему закону подстановки. Тоесть выходит напркимер что из буквы "а" пролучается две полных группы и два бита остаются, которые ты дополняеш соответственно первым битом буквы "b" и так далее. Усек? А как делить ето уж придумай. Проще всего наверное сдвигать по три бита и использовать битовые маски для выделения очередной группы из трех бит. ето даже не С++ а сишка обыкновенная. Это сообщение отредактировал(а) _Michael - 8.10.2007, 18:58 -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
_Michael, ты читал описание его алгоритма по ссылке?
![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
_Michael |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: нет Всего: 6 |
оно правильно но в корне неверно для нашего случая. возьмем например числа 13 и 5 остача от деления их на 8 дает число 5. вот ету пятерку например согласно нашему закону подстановки мы заменили на 7 например. Потом при расшифровке ету ж семерку как мы будем знать на что заменять? на 5 или на 13? или ж может на 21? так-что здесь теряется как уже ктото казал взаимная однозначность или соответствие между символами двух алфавитов. Добавлено @ 19:06 Читал и что? ![]() Добавлено @ 07:49 Ето ж самое елементарное что есть в криптографии. Простая моноалфавитная подстановка. Это сообщение отредактировал(а) _Michael - 8.10.2007, 19:11 -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Для вашего - возможно...
Как ты установишь взаимнооднозначное соответствие, если мощность нормативного алфавита 26, а алфавита шифрования - 8? Что же касается условия как такового - там нигде явно не сказано, что нужно шифровать именно английский текст(и, таким образом, дробить его на трёхбитные токены). Там лишь сказано, что мощность алфавита - 8. Зачем выдумывать себе(или кому-либо) задачу? ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
_Michael |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: нет Всего: 6 |
А кто сказал что именно английский алфавит длиной 26 есть нормативный? сказано просто зашифровать алфавитом с длиной символа три биты или както так. значит мы вибираем етот нормативный алфавит также таким самым по размеру. Не надо привязываться к длине 1 байт. ето для нас один символ - 1 байт, там же поток бит которы й мы сами делим по три биты потому что так мы условились и зашифровать нам надо также алфавитом с терхбитовыми символами Добавлено через 3 минуты и 31 секунду
Вот как дословно звучит задание. там не сказано какого именно алфавита. поетому имеется ввиду навероное и того и того. Добавлено через 7 минут и 14 секунд И почему все привязались к одному байту? потому что в С длина типа данных char - 1 байт? а есть еще юникодовские 2 байта. Ето ж просто заблуждение. Не надо плутать символи(char ) в программировании и в криптографии Добавлено через 12 минут и 54 секунды Вот именно что не указано и потому мы его принимаем за "свой" так сказать текст с длиной символа в три биты. И почему судя по твоих словах из английского текста следует что раз он английский то надо дробить по три биты? именно потому чтоб абстрагироваться от английского кириличного мы принимаем свой алфавит по три бита. Добавлено через 13 минут и 7 секунд ![]() Это сообщение отредактировал(а) _Michael - 8.10.2007, 19:41 -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
||||
|
|||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Будем на бобах гадать что имеется ввиду а что нет? А может быть ещё имеется выводить на экран "кукареку"? Что написано то и имеется ввиду. Привязался только ты. И топикстартер. Покажешь мне хоть одно место, не выдранное из контекста, где я предлагаю дробить? Я лишь один раз озвучил предположение о том, что "возможно, задание предполагает дробить" и попросил показать задание. Увидев задание я опроверг это предположение. Ну и напоследок - ты САМ предлагаешь дробить:
Так может быть ты определишься со своими хаотическими мыслями и не будешь тут нести ересь? -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Defoult |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 16.9.2007 Где: Ростов-на-дону Репутация: нет Всего: нет |
Я сегодня уточнил задание.....
вобщем так: мы работаем не с самими символами, а с их битами, весь текст мы представляем ввиде последовательности бит 0111011010111010011000100101100011001011100111111 затем разбиваем на группы по 3 бита, т.к. 1 буква - 1 бит (по заданию) если у меня 1 буква может занимать 3 бита, то ключ будет состоять у меня из 8 различных комбинаций этих битов 000 010 100 011 110 это ключ 101 001 111 и по этому ключу мы выполняем перестановку. Вот в принципе суть задания. Всем спасибо ![]() 2archimed7592 и _Michael хотел вам +1 дать, но пока не могу....Как только смогу, соазу вспомню вашу помощь ![]() Это сообщение отредактировал(а) Defoult - 8.10.2007, 21:53 |
|||
|
||||
_Michael |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: нет Всего: 6 |
archimed7592, Вот из етих твоих "и, таким образом, " выходит что если текст английский, таким образом дробить его на трёхбитные токены. Но ето все по большему счету несуттево(неважно наверное правильнее по русски). Видишь что моя интерпретация( не знаю более подходящего слова чтоб меня правильно поняли) задания оказалась верной. То-есть что действительно надо все подряд писать и разбивать по 3 бита:
Просто у меня тоже лабораторные были по етому и я примерно знаю что надо сделать. ![]() archimed7592, не обижайся, мы ж здесь пробуем помогти разобраться вместе, а не показать кто умнее. в каждого какие-то идеи есть, вот он ими и делится, и вместе мы приходим к какому-то общему знаменателю. ![]() Добавлено @ 22:42 Defoult, когда все задание уже стало ясно, думаю разберешся как по порциях по три бита брать. и подставлять ;) Это сообщение отредактировал(а) _Michael - 8.10.2007, 22:42 -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |