Как реализовать IDEA? - PullRequest
       7

Как реализовать IDEA?

3 голосов
/ 22 августа 2010

Мне нужно создать приложение, которое может шифровать и дешифровать текстовый файл, используя IDEA (международный алгоритм шифрования данных) на Java или C #. Я знаю, что в Java есть встроенный JCE (Java Cryptography Extension), но как мне продолжить, кто-нибудь, пожалуйста, дайте мне несколько советов?

Ответы [ 4 ]

4 голосов
/ 22 августа 2010

Не могу комментировать по какой-либо причине, поэтому я публикую это как ответ.

IDEA - запатентованный алгоритм, срок действия патента истекает только в 2011 и 2012 годах (в зависимости от страны). Кроме того, это не самая лучшая производительность на всех. Поэтому, если у вас нет требования использовать IDEA, я бы посоветовал взглянуть на алгоритмы AES или RC4 (ARCFOUR, поскольку имя RC4 является зарегистрированным товарным знаком) RC4 быстрее, но сильно зависит от качества ключа шифрования.

4 голосов
/ 23 августа 2010

Евгений прав в отношении ИДЕИ. Если это по вашему выбору, было бы разумно избегать использования IDEA и выбрать другой алгоритм. Из-за проблем с патентами IDEA используется довольно редко, и поэтому криптоаналитики менее изучены. Кроме того, длина ключа IDEA ограничена 128 битами, которые, скорее всего, станут недостаточными относительно скоро.

Большинство (если не сказать абсолютно все) сред разработки включают поддержку стандартных криптографических алгоритмов. На самом деле, всегда хорошо использовать стандартизированные алгоритмы, так как они лучше всего изучены криптоаналитиками. AES128 / 256 является предпочтительным выбором. Максимальная длина ключа RC4, а также ключа IDEA составляет 128 бит; кроме того, это также своего рода экзотика и может не поддерживаться некоторыми фреймворками.

2 голосов
/ 22 августа 2010

Вы можете попробовать использовать BouncyCastle , который доступен для Java и C #.Тем не менее, вам нужно получить правильные jar-файлы (при условии Java) для поддержки IDEA, в соответствии с этим note :

Начиная с версии 1.40 реализация алгоритма шифрования IDEA былаудалены из обычных файлов jar по просьбе ряда пользователей.Банки с именами вида -ext- по-прежнему включают в себя реализацию IDEA.

EDIT (добавлен указатель на пример): я не пробовал,но я думаю, что DESExample можно было бы адаптировать, чтобы делать то, что вы хотите, возможно, заменив DESedeEngine на am IDEAEngine (и аналогично для других классов).

1 голос
/ 25 сентября 2015

К 2012 году срок действия патентов IDEA истек.

Я написал чистую реализацию Java с открытым исходным кодом IDEA .

Имена файлов содержимого исходного кода:

Idea.java                 The main IDEA encryption module
IdeaFileEncryption.java   Encrypts or decrypts a file with IDEA
IdeaCmd.java              Command-line interface for encrypting/decrypting files
TestIdeaVectors.java      A test program that verifies this implementation against 
                          the test vectors published in 1999
TestIdeaMath.java         A test program for some of the math functions used in 
                          the IDEA modules

Доверяйте этому алгоритму столько, сколько доверяете его автору.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...