Реализация алгоритма шифрования AES средствами AutoLisp
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Реализация алгоритма шифрования AES средствами AutoLisp

Реализация алгоритма шифрования AES средствами AutoLisp

Ответ
Поиск в этой теме
Непрочитано 07.09.2010, 00:18 #1
Реализация алгоритма шифрования AES средствами AutoLisp
gomer
 
строю, ломаю
 
Украина
Регистрация: 03.04.2008
Сообщений: 5,515

Может кто подскажет, где найти готовый код на AutoLisp, реализующий алгоритм шифрования AES?
Просмотров: 7048
 
Непрочитано 07.09.2010, 10:17
#2
alex8888

Инженер
 
Регистрация: 27.04.2009
Deutschland
Сообщений: 208


Как мне всегда пишут - Гугль а помощь :
http://otherreferats.allbest.ru/prog.../00040730.html
alex8888 вне форума  
 
Автор темы   Непрочитано 07.09.2010, 19:06
#3
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Как вот теперь это на Автолисп перевести...
gomer вне форума  
 
Непрочитано 08.09.2010, 09:16
#4
alex8888

Инженер
 
Регистрация: 27.04.2009
Deutschland
Сообщений: 208


gomer
Цитата:
Как вот теперь это на Автолисп перевести...
Ни малейшего понятия
А чем так сильно отличается Автолисп, что для него нельзя применить уже готовое? Там совсем другие функции или что еще? Вроде бы как CommonLisp и автолисп похожи, это в визуаль-лиспе наворотов много
alex8888 вне форума  
 
Непрочитано 08.09.2010, 09:48
#5
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Сообщение от gomer Посмотреть сообщение
Как вот теперь это на Автолисп перевести...
Тонкий намек на то, чтобы какой-то бездельник это сделал

Вообще-то зашифровать текст на LISP можно одной строчкой. С достаточной для большинства реальных применений надежностью.

Код:
[Выделить все]
(defun ru-string-crypt (string)
;;; Пример: ( ru-string-crypt "В чащах юга жил- был цитрус, да но фальшивый экземпляр")
 
    (vl-list->string (mapcar (function (lambda (x) (- 255 x))) (vl-string->list string)))
)
Но, если AES непременно надо, "тады ой". Это к студентам.
ShaggyDoc вне форума  
 
Непрочитано 08.09.2010, 10:04
#6
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


если только найти библиотечную функцию и лиспом (или VBA) ее подцепить.
Хотя ни разу так не делал, но думаю, что можно. Другие языки позволяют
crosandr вне форума  
 
Непрочитано 08.09.2010, 11:37
#7
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


По диагонали прочел алгоритм шифрования, если правильно понял, то вся соль в возведении в степень и взятии логарифма. Здесь, у автолиспа будут проблемы - есть ограничения на размер целого числа и они достаточно жесткие - в примере, числа возводятся в степень от 1087 до 3571, это не возможно сделать в автолиспе встроенными методами, нужно либо использовать внешний математический процессор с хранением чисел в виде текста, либо писать свой...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 08.09.2010, 12:42
#8
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


ИХМО - учитывая то, что AES уже ставят в опкоды современных процесорров, писать его на автолиспе - мягко говоря - не самое правильное время провождения, да и скорость реализации боюсь будет не самая высокая (тем более, как заметил Евгений, автолисп, в отличие от других лиспов, с такими разрядностями чисел "напрямую" не работает - то есть придеться преобразовывать в строки (списки?) и работать с ними - вобщем скорость стремиться к нулю).
Самое правильное (если необходим именно aes, а не просто зашифровать\расшифровать) поискать com библиотеки, или - же написать самому (уверен, что усилий будет потраченно меньше т.к. для более низкоуровневых языков библиотеку aes найти не проблемма - то есть по сути надо будет только "com обертку" сделать). А если не найдешь (хотя наверное это будет означать - плохо искал) - есть ленивый вариант - вызвать через ado->obdc->mysql->встроенную функцию AES_encrypt/AES_decrypt - метод корявый и требует дополнительного софта - но если вдруг он и так есть(или например другая БД с аналогичной функцией), да еще и официально беслпатно.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 08.09.2010, 13:37
#9
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Конечно, как написал Дима_, использовать навороченные алгоритмы надо через COM.

Однако, надо крепко думать - надо ли "крепкое" шифрование вообще. Ведь зачем об нем начинают думать применительно к Автолисп? Да чтобы "хитро" защитить свою "супер-пупер" программу или данные. "Шаровары" сделать и т.п. А для этого бесполезного по сути дела не нужны никакие хитрые алгоритмы. Все делается гораздо проще.
ShaggyDoc вне форума  
 
Непрочитано 08.09.2010, 14:10
#10
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Ну, если для этого - тогда'б RSA спрашивали, наверное - больше подходит. Я вижу только одно реальное применение - надо работать с данными которые для чего-то зашифрованны именно в aes, для защиты - если есть рабочая копия - то что aes, что des, что просто "за'xor'енные" файлы - все будет взломанно одинакого - можно даже не париться по этому поводу (уж этим делом я в свое время "плотно" занимался), своей-же программой "откроют" и сохранят - бред это. Лучшая защита - меньше настроек, индивидуально так скажем. А уж если делаешь для широкого круга - то только "административными рычагами".
p.s. за все время я видел только одну "неломаемаю" программу - суть очень простая - программа по сути являеться оболочкой для хардового usb-устройства которое не хранит данные (ключи и пр), а именно их обрабатывает (со своим процессором, памятью и пр.), чтоб в него не влезли - наглухо в эпоксидку залито (наши соотечественники сделали), вот такую штучку можно взломать - только украв у разработчиков "прошивку".
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 08.09.2010, 16:52
#11
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Про шифрование говорили еще в этой теме. Там Елпанов Евгений опубликовал очень познавательный пример (пост #24)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 08.09.2010, 19:30
#12
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от VVA Посмотреть сообщение
своей-же программой "откроют" и сохранят - бред это.
Неужели нет алгоритма, зная который но не зная ключа "невозможно" расшифровать данные?
gomer вне форума  
 
Непрочитано 08.09.2010, 19:38
#13
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


Цитата:
Сообщение от gomer Посмотреть сообщение
Неужели нет алгоритма, зная который но не зная ключа "невозможно" расшифровать данные?
Есть. Но он идеален, как и все допущения. На практике не применяют. Есть вероятности вскрывания, ими и оперируют в зависимости от требований надежности
ссылка
поиск по ключевым словам "совершенный шифр"
crosandr вне форума  
 
Непрочитано 08.09.2010, 20:25
#14
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от gomer Посмотреть сообщение
Неужели нет алгоритма, зная который но не зная ключа "невозможно" расшифровать данные?
почему-то получилось что мои слова VVA сказал, но не суть - читаешь не внимательно - если есть рабочая копия - вот ключевое слово - то есть программа (чтоб работать) в любом случае должна сама себя расшифровать - этим и пользуются, а без ключа работать не будет, и не какой "мегахакер" здесь ничего не сделает.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 08.09.2010, 20:26
#15
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от crosandr Посмотреть сообщение
Есть. Но он идеален, как и все допущения. На практике не применяют. Есть вероятности вскрывания, ими и оперируют в зависимости от требований надежности
ссылка
Спасибо! Очень интересная ссылка, вышел на источник, выкладываю ссылку на первую из статей, в конце каждой из них ссылка на продолжение...
http://www.enlight.ru/ib/tech/crypto/index.htm

ps. Кстати, в автокаде, можно создать и использовать нестандартный ключ, вычисляемый из геометрии и удобный для проектировщика
Для примера, вместо ключа, можно запрашивать графические построения итд. Или наоборот, по паролю, вычислять построения и по параметрам этих построений генерировать ключ любой длинны, в том числе больший или равный длине шифруемых данных. Пример, по пяти точкам, можно создать сплайн, взять у него любое количество параметров и по ним шифровать...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/

Последний раз редактировалось Елпанов Евгений, 08.09.2010 в 20:31.
Елпанов Евгений вне форума  
 
Непрочитано 08.09.2010, 20:42
#16
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


По поводу ссылок - во всех современных шифрах конткстные методы не действуют (ну увеличется вероятность подбора с 1/2^256 до 1/2^240 и что), любой шифр (хоть элементарное сложение) ДАЖЕ ТЕОРИТИЧЕСКИ не вскрываем (а тем более на практике) при 2 условиях: 1 - ключ является случайным набором данных, длинна ключа равна длинне шифруеммой информации (и реально такие методы используют - достаточно 1 раз передать достаточно длинный ключ (100 мегабайт например) и в любое время по открытым каналам можно "смело" передавать информацию - вскрыть не возможно т.к. при помощи различных ключей можно получить АБСОЛЮТНО ЛЮБУЮ последовательность данных такой-же длинны).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 08.09.2010, 21:06
#17
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


Цитата:
Сообщение от Дима_ Посмотреть сообщение
ключ является случайным набором данных
100 метров истинно (не путать с псевдо-) случайных данных реально получить?
crosandr вне форума  
 
Непрочитано 09.09.2010, 09:28
#18
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


crosandr, что ты думаешь о десятке фильмов, которые архивируются, из них удаляются заголовки и делается побитный XOR? Я согласен, что данные будут не проверены на истинную случайность, но для шифрования, на мой взгляд, они достаточно надежны...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 09.09.2010, 09:43
#19
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
что ты думаешь о десятке фильмов, которые архивируются, из них удаляются заголовки и делается побитный XOR?
Это гадание на кофейной гуще. У товарища Кнута об этом подробно расписано. Есть реализованные алгоритмы проверки на случайность. Целая наука в общем.
Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
но для шифрования, на мой взгляд, они достаточно надежны...
Все ведь зависит от цели. Кому-то может хватить и обычной подстановки)) Но про длинные абсолютно случайные ключи что-то не удалось обнаружить ничего. Может Дима_ просветит?
crosandr вне форума  
 
Непрочитано 09.09.2010, 11:54
#20
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


MCAD/MCSD Экзамены 70-330, 70-340. Разработка защищённых приложений на Visual Basic .Net и Visual C# .Net. Там глава 8 - "Защита данных при помощи криптографии". Подробно рассматриваются шифрование как с симметричными, так и с ассимметричными ключами. Вообще Майкрософтом рекомендуется для симметричного шифрования использовать алгоритм Rinjdael (реализован полностью с помощью управляемого кода). Для асимметричного существует два класса, производных от AsymmetricAlgorithm (один для шифрования расшифровки данных, а второй - для цифрового подписания сообщений).

В инете есть книга в электронном виде - можно поискать.
Имхо можно почитать указанное мною чтиво и написать на .Net лисповскую функцию, которая будет шифровать/дешифровать данные.
Я этим (в смысле шифрованием) пользовался давно и недолго - чисто из любопытства.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Реализация алгоритма шифрования AES средствами AutoLisp



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какими средствами пользуются программисты при создании кода AutoLISP Малявка Разное 4 22.10.2009 12:46