Forum Webscript.Ru

Программирование => Теория, алгоритмы и стандарты => Тема начата: NAS от 03 Октября 2003, 13:21:46

Название: Шифрование.
Отправлено: NAS от 03 Октября 2003, 13:21:46
Есть задача. Необходимо найти алгоритм в последовательности LNJJPVNRCNAJGVERFNKL
Под этими буквами скрывается 1234567890
Может есть программы, которые найдут алгоритм.
Название: Шифрование.
Отправлено: NeoNox от 03 Октября 2003, 13:38:17
hmm... ?
1 => LN
2 => JJ
3 => PV
4 => NR
5 => CN
6 => AJ
7 => GV
8 => ER
9 => FN
0 => KL
Название: Шифрование.
Отправлено: NAS от 03 Октября 2003, 13:41:35
Да это тоже была первая мысль, но оказалось что нет.
Т.е. если задавать пароль 1234567890, то последовательность именно такая, а вот если например 4561237890, то уже другая.

Вообще я пытаюсь выцепить все ящики из почтового сервера VPOP3, который при экспорте дает шифрованные пароли.
Название: Шифрование.
Отправлено: NeoNox от 03 Октября 2003, 14:06:48
Он и хранит их наверное в таком виде.
Пароли только цифровые?
Можно попробовать анализатор набросать
Паролей много есть?
Название: Шифрование.
Отправлено: NAS от 03 Октября 2003, 14:22:18
Не пароли всякие. И паролей у меня есть бесконечное кол-во, могу завести любое кол-во пользователей.
Название: Шифрование.
Отправлено: NeoNox от 03 Октября 2003, 14:30:24
хуже...
Гугление по этому вопросу ничего не дало?
Название: Шифрование.
Отправлено: NAS от 03 Октября 2003, 14:35:04
Дало, только то что пароли одназначно расшифровываются обратно, так как фирма производитель расшифровывает их по 5 фунтов за штуку.
Название: Шифрование.
Отправлено: NeoNox от 03 Октября 2003, 15:07:16
Бизнесом решил заняться :)
Пришли мне на csc@ukr.net десятка два с несложным порядком.
Название: Шифрование.
Отправлено: ThE0ReTiC от 04 Октября 2003, 01:06:45
Хм...
я бы тоже посмотрел =)
Название: Шифрование.
Отправлено: Макс от 04 Октября 2003, 11:48:00
если еще актуально, то и мне пришли.
Желаетльно чтобы пароли были не только цифрами и не только по 10 символов
max@webscript.ru
Название: Шифрование.
Отправлено: NAS от 04 Октября 2003, 14:46:25
Смогу выложить в понедельник. Все на работе.
Название: Шифрование.
Отправлено: NAS от 06 Октября 2003, 11:45:38
"abcdefghijklmno","ONMJCVARBNHJFVLRINOJMVCRDNBJHV"
"pqrstuvwxyz","PMNIDUBQGMEIKUIQJMPINU"
"skfhsaeis","PLNOCIAVGHHUFPLOJT"
"abc123","ONMJCVMKCGAS"
"6ertyui7","IOMMDUBRHREIFTEQ"
"ABCDEFGH","INOJMVCRDNBJHVFR"
"9087JFHG","IVJTPGNUAOBJHSFQ"
"TRTR9","OQPJNSCLDR"
"QWERTY","JNPKMTCLAMGM"
"DDDDDDDD","JQOHMSCRDMBTHOEN"
"ooollkkjjddnvchf","PHNSDRAJGUHKFJLPIKOPPKCPASAKGKET"
Название: Шифрование.
Отправлено: ondr от 06 Октября 2003, 14:13:24
Если известна максимальная длинна паролей, то есть тупой и простой способ решения.

Прежде всего нам известно:
  - каждый символ заменяется на два прописных символа латинского алфавита.
  - заменяется единозначно в зависимости от рассположения в строке, т.е. учитывается порядковый номер символа и на замену не влияют никакие другие факторы.

Решение:
  Во-первых создадим (26*2)+10+? паролей (буквы в латинском алфавите + цифры + другие разрешенные спецсимволы) вида "aaaaaaaaaaaaa", "1111111111111111", "BBBBBBBBBBBBB". Длина паролей равна длине максимально возможного пароля.
  После чего создадим массив данных где значением будет символ плюс порядковый номер символа, а ключем то, на что это заменилось(т.е. пара букв).
  Дальше я думаю объяснять не надо?

ЗЫ: Если длина паролей не ограничена, то можно ввести ограничение, ну скажем в 100 символов, реально то всегда меньше будет :).
Название: Шифрование.
Отправлено: Phoinix от 01 Ноября 2003, 13:18:17
NAS
ммм... может немного поздновато, но интернета у меня не было... только сейчас вышел прочитал и расшифровал... если все еще нужно, то могу выложить полный алгоритм шифрования...

P.S. для примера:

Phoinix -> JMMLDRASGSHMIR
Название: Шифрование.
Отправлено: NAS от 06 Ноября 2003, 00:29:31
Цитировать
Phoinix:
ммм... может немного поздновато, но интернета у меня не было... только сейчас вышел прочитал и расшифровал... если все еще нужно, то могу выложить полный алгоритм шифрования...

Очень даже надо. Кинь, если не сложно.
Название: Шифрование.
Отправлено: Phoinix от 06 Ноября 2003, 12:41:35
NAS

О расшифровке алгоритсма. На самом деле принцип кодирования очень прост.

первый разряд кода символа имеет ключ:
Q R O P U V S T I J G H M N K L

второй разряд кода символа имеет ключ:
K L I J O P M N C D A B G H E F

Стартовый символ: 0 -> 1С (в шеснадцатиричной системе счисления)

смещение первого разряда отностельно таблицы чисел и заглавных символов - +7

смещение первого разряда отностельно таблицы заглавных символов и строчных символов - +6

смещение второго разряда при переходе на следующий символ - -2

т.е. формула вычисления кода символа:

символ = [код символа hex] - (30 - 1C) + (4B-20)*[номер сивола в строке];
сокращенно:

символ = [код символа hex] - 20 + 2B*[номер сивола в строке];
(соответственно все считаем в шеснадцатиричной системе)
из полученного символа берем 2 последнии цифры и переводим в соответствии с ключами:

десятки:
0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
K  L  I   J  O  P  M N  C  D  A  B  G  H  E  F

единицы:
0  1   2   3  4  5   6  7   8  9   A  B  C  D  E  F
Q  R  O   P  U  V  S   T  I   J   G  H  M  N  K  L

Получаем наш код...

Теперь попробуем объяснить теорию... %-)

для кодирования берутся просто 2 последовательности заглавных символов длинной в 16, для десятков и единиц с смещением, в нашем случае последовательности такие:
десятки: ABCDEFGHIJKLMNOP
единицы: GHIJKLMNOPQRSTUV

потом эти последовательности разбиваются на пополам, потом на пары, и собираются в виде:

 Вторая половина      Первая половина
(2-я, 1-я, 4-я, 3-я) + (2-я, 1-я, 4-я, 3-я)

К сожалению я не видел кода crhbgnf поэтому не могу сказать какой функцией это делается, принцип простой: замена соседних пар, замена соседних пар пар, замена соседних пар пар пар.

соответственно собираем 2 готовые последовательности (ключи)

Потом идет смещение относительно первого символа "0" - 14(hex) или 20(dec) (может тоже как-то вычисляется относительно смещения последовательностей символов);

между последовательностями цифр, заглавных букв и строчных букв смещение +7 и +6 соответственно, прямо как в таблице кодировки, поэтому я подозреваю, что символы между этими последовательностями (например: = < > ?) тоже можно использовать в пароле (просто в приведенных выше паролях их не было, поэтому точно сказать не могу)

как только доходим до символа z - код продолжается, но от него отнимают 2 десятка и эти коды применяются для следующего символа в пароле...

Сотни, соответственно, отбрасываются...

Вроде все...
Если, что не по человечески объяснил, или может опечатался где, напишите объясню...
Название: Шифрование.
Отправлено: NAS от 06 Ноября 2003, 19:58:46
Phoinix
Ух, большое спасибо. Выйду из отпуска проверю.