Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: KeeLoq
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
TriD
Есть ли у кого-нибуть что-нибудь по алгоритму КОДИРОВАНИЯ keeloq?

Вкраце: из ключа производителя (64 бит) и серийного номера брелока (28 бит) по известному алгоритму генерится ключ шифрования, который используется как при кодировании (алгоритм мне не известен), так и при декодировании (алгоритм известен) плавающего кода keeloq.

Что есть у меня: дистрибутив с примерами программ декодеров для пиков и инстументами для генерации и проверки ключа шифрования; есть собственная реализация алгоритма декодирования для AVR (рабочий приемника-декодера, работает совместно с кодерами HCS200 или HCS300); реализация декодера на Delphi; программа для программирования брелоков и, собственно, программатор.

В приложении прикреплен файл, где описан алгоритм работы декодера (от Микрочипа).
dvm11111111
В том то и дело, что самое главное алгоритм кодирования а не декодирования. Он то и закрыт для всех.
И открыт судя по всему будет не скоро.
А вот гдебы нарыть алгоритм декодирования
Super KeeLoq II Pro, или D2.
SDFF
Цитата(dvm11111111 @ Apr 3 2006, 23:58) *
В том то и дело, что самое главное алгоритм кодирования а не декодирования. Он то и закрыт для всех.
И открыт судя по всему будет не скоро.
А вот гдебы нарыть алгоритм декодирования
Super KeeLoq II Pro, или D2.


Строго между нами и ни кому не говорите: алгоритм кодирования и декодирования в keeloq’е – это одно и тоже, ибо есмь он симметричный. Ну а всякие II Pro – это признак того, что народ прошел первый ряд граблей и наконец-таки добрался к рекомендациям майкрочипа по затыканию дыр в минимальной реализации keeloq’а. Впрочем, мало успешным.
TriD
Цитата(SDFF @ Jan 31 2007, 08:48) *
Строго между нами и ни кому не говорите: алгоритм кодирования и декодирования в keeloq’е – это одно и тоже, ибо есмь он симметричный.


Возможно, алгоритм и я вляется симметричным, однако, располагая алгоритмом декодирования, я так и не понял как закодировать данные, что бы эти данные понял потом декодер приемника.
Если ва располагаете какими-то реальными материалами - поделитесь.
rvk
''
Doka
Цитата(SDFF @ Jan 31 2007, 08:48) *
Строго между нами и ни кому не говорите: алгоритм кодирования и декодирования в keeloq’е – это одно и тоже, ибо есмь он симметричный.

и что это дает?.. надо иметь прямую NLF, а известна только инверсная. Или Вы так же "по секрету" и прямую NLF назовете?
xemul
Цитата(Doka @ Jan 31 2007, 13:12) *
Цитата(SDFF @ Jan 31 2007, 08:48) *
Строго между нами и ни кому не говорите: алгоритм кодирования и декодирования в keeloq’е – это одно и тоже, ибо есмь он симметричный.

и что это дает?.. надо иметь прямую NLF, а известна только инверсная. Или Вы так же "по секрету" и прямую NLF назовете?

NLF в Keeloq'е одна, алгоритм совершенно симметричный, и если господин TriD не поленится вывернуть декодер наизнанку (ну совершенно тупо выполнить все операции декодера в обратном порядке), то всенепременнейше получит энкодер.
Doka
Цитата(xemul @ Jan 31 2007, 13:31) *
Цитата(Doka @ Jan 31 2007, 13:12) *
Цитата(SDFF @ Jan 31 2007, 08:48) *
Строго между нами и ни кому не говорите: алгоритм кодирования и декодирования в keeloq’е – это одно и тоже, ибо есмь он симметричный.
и что это дает?.. надо иметь прямую NLF, а известна только инверсная. Или Вы так же "по секрету" и прямую NLF назовете?
NLF в Keeloq'е одна, алгоритм совершенно симметричный, и если господин TriD не поленится вывернуть декодер наизнанку (ну совершенно тупо выполнить все операции декодера в обратном порядке), то всенепременнейше получит энкодер.


а вот с этого момента поподробнее:
т.е. вы твердо убеждены, что зная инверсную NLP, вида y = NLF(x0,x1,x2,x3,x4) вы восстановите х0, имея в распоряжении y, x1, x2, x3, x4 ???????
xemul
Цитата(Doka @ Jan 31 2007, 13:37) *
Цитата(xemul @ Jan 31 2007, 13:31) *

Цитата(Doka @ Jan 31 2007, 13:12) *

Цитата(SDFF @ Jan 31 2007, 08:48) *
Строго между нами и ни кому не говорите: алгоритм кодирования и декодирования в keeloq’е – это одно и тоже, ибо есмь он симметричный.
и что это дает?.. надо иметь прямую NLF, а известна только инверсная. Или Вы так же "по секрету" и прямую NLF назовете?
NLF в Keeloq'е одна, алгоритм совершенно симметричный, и если господин TriD не поленится вывернуть декодер наизнанку (ну совершенно тупо выполнить все операции декодера в обратном порядке), то всенепременнейше получит энкодер.
а вот с этого момента поподробнее:
т.е. вы твердо убеждены, что зная инверсную NLP, вида y = NLF(x0,x1,x2,x3,x4) вы восстановите х0, имея в распоряжении y, x1, x2, x3, x4 ???????

Я этим вопросом мучился в 96 году, точно также имея алгоритм декодера, но не энкодера. Внимательно посмотрел, вывернул наизнанку, проверил вживую (сравнил расчетный результат с выходом HCS300, запрограммированной в соответствии с) - все получилось.
За давностью лет не уверен, что малой кровью удастся найти подтверждения проделанной работы (хотя бы сорцы). Года полтора тому меня спрашивали о спецификации программирования HCS30х - не нашел ни в бумажном, ни в электронном виде. Беда с верхней конечностью.
Flus
Здравствуйте.

Алгоритм действительно симметричный поэтому по той схеме нарисованной в документе от микрочипа про декрипт можно написать как декрипт так и енкрипт.

У меня есть написанные и проверенные функции декрипт енкрпт на си борланл и на Делфи кому надо могу выслать.
Так же есть примеры открытой и зашифрованных частей посылок для тех кто хочет проверить написанные ими крипт и декрип.

ТОВАРИЩИ помогите с прогой для программирования HCSов.

моя аська 190247617 помогу чем смогу если кому что то надо.


SDFF дайте свое icq у меня к Вам есть разговор.
Link
Вот ссылка про Keeloq - описание, взлом и т.д. http://www.keeloq.narod.ru/

А это форум хакеров (много полезного): http://phreak.ru/index.php
и в частности по keeloq: http://phreak.ru/showthread.php?t=94
TriD
Как было отмечено выше, алгоритм действительно симметричный и поворачивать его стоит используюя схему алгоритма декодирования из мануала DS00659c.
Demeny
Цитата(Doka @ Jan 31 2007, 13:37) *
а вот с этого момента поподробнее:
т.е. вы твердо убеждены, что зная инверсную NLP, вида y = NLF(x0,x1,x2,x3,x4) вы восстановите х0, имея в распоряжении y, x1, x2, x3, x4 ???????

Для превращения декодера в енкодер не нужно инвертировать нелинейную функцию NLF. Вглядитесь повнимательнее в алгоритм - достаточно инвертировать функцию XOR smile.gif
Вычисление нового бита на каждом цикле декодирования есть XOR от четырех бит, один из которых NLF(x0,x1,x2,x3,x4). В процессе кодирования новый бит есть тоже XOR от четырех бит, один из которых по-прежнему NLF(x0,x1,x2,x3,x4) без всякой инверсии, только сдвиговые регистры крутятся в другую сторону.
ПС Кстати, хоть это здесь и ни к чему, инвертировать NLF в заданном Вами смысле тоже нет ничего невозможного. Зная результат и 4 аргумента легко вычислить пятый аргумент, просто пробежавшись циклом по таблице.
wim
Цитата(Demeny @ Feb 16 2007, 13:49) *
Для превращения декодера в енкодер не нужно инвертировать нелинейную функцию NLF. Вглядитесь повнимательнее в алгоритм - достаточно инвертировать функцию XOR smile.gif
Вычисление нового бита на каждом цикле декодирования есть XOR от четырех бит, один из которых NLF(x0,x1,x2,x3,x4). В процессе кодирования новый бит есть тоже XOR от четырех бит, один из которых по-прежнему NLF(x0,x1,x2,x3,x4) без всякой инверсии, только сдвиговые регистры крутятся в другую сторону.
ПС Кстати, хоть это здесь и ни к чему, инвертировать NLF в заданном Вами смысле тоже нет ничего невозможного. Зная результат и 4 аргумента легко вычислить пятый аргумент, просто пробежавшись циклом по таблице.

Можно поступить ещё проще - записать все 64K посылок в ПЗУ и назвать это "енкодером".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.