Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.03.18;
Скачать: [xml.tar.bz2];

Вниз

Как можно шифровать текст в Memo ListBox RichEdit перед сохранением на диск. А при чтении расшифровывать. Чтоб никто не читал его. Желательно чтобы было быстро и просто.   Найти похожие ветки 

 
Shirson   (2002-02-28 12:50) [21]

>Poirot

Так, давайте не будем выяснять кто на кого и как посмотрел и вернемся к: "И вообще - я пытаюсь выяснить прелести и недостатки, т.к. это моя будущая специальность... В споре рождается истина (кто-то говорил)..."
(Чесно говоря, лекции по криптографии не фходили в мои планы на сегодня :))

Итак, имеем XOR. Как я уже говорил и как верно заметил Reindeer Moss Eater, сообщение зашифрованное с ключем, длинною, равной длине сообщения, не поддается вскрытию впринципе. Если ключ сформирован генератором случаных чисел с равномерным распределением (принимаем что период генератора >> длины ключа), на выходе мы получаем набор случайных чисел с равномерным распределением. Частотный анализ, как врочем и любой другой тут совершенно бессильны. Даже элементарный перебор не дает возможности вскрытия, из-за неоднозначности трактовки результатов (тот же пример Reindeer Moss Eater)
То что вас, Poirot, возмутило (или удивило?) что длина ключа равна длине сообщения - для меня загадка. Практика современной криптозащиты использует этот метод на всю катушку. Если же использовать однобитный ключ, или ключ, длина которого << длины сообщения, смысла в таком кодировании ровно 0 и упоминать о нем я просто не видел смысла.

Из вышесказанного встает вопрос, если XOR такой замечательный, то почему его не используют в пром.криптографии?
Есть несколько минусов:
Первый - реверсивность кодера. Если кодеру скормить криптованный текст, при наличии ключа получим декриптованное сообщение. Это неприемлемо.
Второй - один ключ. Т.е. нет понятий открытого/закрытого ключа.
Наглядный пример.
Некто А обладает открытым ключем и посылает сообщение к Б.
Открытый ключ это русско-английский словарь. С его помощью русское сообщение переводится на английский и по незащищенному каналу отсылается к Б.
Сколько бы человек не приняло это сообщение и сколько бы из них не имело русско-английского словаря, дешифровать сообщение они не смогут в разумные сроки. (я у трирую, главное общий смысл)
Однако Б имеет закрытый ключ: англо-русский словарь. С его помощью он дешифрует сообщение А в первоночальный вид.
Такая система не ломается нахрапом, даже если у злоумышленника есть сообщение, кодировщик и ключ, с которым это сообщение было зашифровано.

Если принять то, что нужно дикому Кенгуру, можно решить задачу так:
На первом этапе вставляем в дисковод дискетку и формируем на ней байтовый файл из генератора случайных чисел. Длина файла пусть 1024 кБ (не жалко :) )
На втором этапе, сформированным ключем кодируем текст по методу XOR, необходимый для шифровки и сбрасываем его на винт.
На третьем вынимаем дискетку и прячем запазуху.
Теперь мы можем быть совершенно уверены, что если злоумышленник не получит дискетки, ему ни вжисть не прочитать, что мы записали.

Обратная операция проста - считываем с винта криптованный файл, с дискеты грузим ключ и им, все тем же XORом, декодируем текст.

Я надеюсь, Poirot, между нами нет больше недопонимай? Или есть? :) Тогда пишите.



Страницы: 1 2 вся ветка

Форум: "Основная";
Текущий архив: 2002.03.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.298 c
14-57506
Pete
2002-02-04 12:42
2002.03.18
Я тоже хочу...


1-57446
softland
2002-03-02 12:38
2002.03.18
Работа с TShellListView


7-57533
MAG
2001-12-16 02:08
2002.03.18
Привет Мастера !!!


1-57348
iea
2002-03-04 11:02
2002.03.18
Как обновить содержимое Form2 из Form1


1-57466
shane54
2002-03-02 19:46
2002.03.18
Передача параметров в функцию





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский