|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.06.2009, 21:14 | #1 |
Пользователь
Регистрация: 17.06.2009
Сообщений: 17
|
криптография
поясните задачку, пожалуйста.. что там как все происходит поэтапно, каждый шажочек.. задача на паскале, все руже решено и работает, нужно только пояснить..
Написать программу, осуществляющую шифрование и дешифрование числового массива с помощью случайных чисел. Пусть имеется датчик псевдослучайных чисел, работающий по алгоритму: , где - предыдущее псевдослучайное число, - следующее псевдослучайное число, а коэффициенты a, b, с постоянны и хорошо известны. Обычно , где n разрядность процессора, a mod 4 =1, a b – нечетное. Процесс шифрования определяется следующим образом: шифруемая последовательность складывается по модулю 2 (xor) со значениями последовательности псевдослучайных чисел. Процесс дешифрования аналогичен. этап выполнения: вывести последовательность t. вот решение: var n, a, b, c, i: integer; type mas1=array[1..50] of integer; var x, t, y:mas1; begin write ('n='); readln(n); for i:=1 to n do begin write ('x[',i,']='); readln(x[i]); end; a:=5; b:=13; c:=256; write ('vvedi kluch'); readln(t[1]); for i;=2 to n do t[i]:=((a*t[i]+b))mod c; writeln('psevdosluch posledovatelnost:'); for i:=1 to n do write(y[i],' '); writeln; for i:=1 to n do x[i]:=y[i] xor t[i]; writeln('zashifrovannaya posle:'); for i:=1 to n do write(x[i],' '); end. |
25.06.2009, 04:10 | #2 | |
Форумчанин
Регистрация: 16.04.2009
Сообщений: 247
|
Для кода есть тэг CODE. И код нечитабелен.
Работает? А вот у меня даже не откомпилилась. После приведения программы к рабочему состоянию я понял, что: 1) массив y как был заполнен нулями так ими заполнен и остался 2) принцип действия - получение некоторой величины из ключа и коэффициентов a, b, c и xor шифруемого значения с ней. Ничего непонятного здесь не вижу, т.к. a xor b xor b = a. Только придётся восстановить из ключа с помощью коэффициентов то значение, с которым xor'или исходную последовательность. Цитата:
---------------------------------------------------------------------------------------------------------------------------------- Вот ещё нашёл. Почему-то мы можем ввести только первый элемент ключа... Последний раз редактировалось megachuhancer; 25.06.2009 в 04:16. |
|
25.06.2009, 04:31 | #3 |
Участник клуба
Регистрация: 16.03.2009
Сообщений: 1,013
|
там один символ исправить, чтоб она компилировалась))
собственно, вероятнее всего, что имелось ввиду следующее Код:
Uguu~
|
25.06.2009, 05:00 | #4 |
Форумчанин
Регистрация: 16.04.2009
Сообщений: 247
|
Хмм... Да, действительно один символ. Я ещё и не весь код впридачу скопировал Мой косяк.
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
криптография | glupayastudentka | Помощь студентам | 0 | 23.06.2009 21:48 |
Криптография | helpme | Помощь студентам | 8 | 10.11.2007 14:43 |