40 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд

Addonics CipherChain AES 256-bit шифрование

Addonics CipherChain Hard Drive Encryption

We took a look last week at a thumb drive that offered unparalleled data security, and this time around, we’re taking a look at a similar product, but one that’s designed for PC use, whether in the office or at home. The CipherChain, from Addonics, is easy-to-install and operate, and secures your data using the ultra-secure AES 256-bit cipher.

Page 1 – Introduction

In last week’s look at Kingston’s DataTraveler Locker+ thumb drive, I stressed the importance of keeping personal data safe. There are a multitude of reasons why you should take this seriously, but the most important is security. No one, and I mean no one, other than yourself or a loved one should have access to your personal data, and for that reason, keeping your data safe deserves some attention.

I’d imagine that most of our regular readers are adept at using a PC, and probably understand the benefits of keeping data safe, and the downsides of the opposite, but for the layman PC user, also known as the vast majority, keeping personal data safe isn’t much of a concern at all. It takes only a few minutes of looking through a Facebook or MySpace profile to know what I mean.

It’s for reasons like this that those of us who do understand the major risks involved with being careless with our information should share the knowledge with others, especially our families and friends. It’s unfortunate that so many don’t take data security seriously, or realize the harm that not doing so could have.

That’s one reason I liked Kingston’s DT Locker+ so much. The company designed the product in such a way that if a malicious person ever found it (and let’s be honest, losing a thumb drive would not be difficult), they’d never, ever be able to access the data. What made it even better was the ease of use. All it required of you was a password each time you wanted to use the drive. That’s not too much to ask, is it?

There are a couple of other reasons why I liked Kingston’s product so much, and the same reasons apply to Addonics’ CipherChain to a T. First, the root of the device’s security is a hardware-based solution. This means that the process of encrypting your data, and the algorithm itself, is located on a chip, not in software. Not only does this make the device even harder to crack (as in hack, not literally), it would be faster as a result.

The product we looked at last week is a great solution for those who are mobile, but what about the important data at home, or in an office? There are an incredible number of similar solutions out there for hard drive encryption, software and hardware, but Addonics is by far one of the easiest, and even if you barely know your way around the inside of a PC, you should be able to install this without issue.

As seen in the official image above, and our photographs below, the CiperChain is one small product. It measures at just 41mm x 48.5mm x 8mm, so for all intents and purposes, it can be fit almost anywhere. One solution is seen below, where two CiperChains are placed side-by-side on a platform designed to be used in one of the PCI slots found at the back of your PC.

Two more solutions are seen below. One mount is designed for a slim-line CD bay, while the other pops into a floppy drive bay (finally, a good use for one of those things!). These aren’t the only options, so you can be sure that fitting one into your PC will be no issue at all. For those who will be turning their machines off often, keeping the CipherChain in a front bay is probably the best idea, as getting in behind the machine to plug the required key in is not going to be too much fun after awhile.

Below is an even closer look at the CipherChain, and for the most part, they feature a rather straight-forward design. Please note that most implementations, especially at the consumer level, would include a single CipherChain, not two, but Addonics sent me the higher-end version to show off its daisy chaining capabilities (see, it’s called “Chain” for a reason!). That’s right, if you aren’t content with protecting your data with a 256-bit AES encryption cipher, then you can add two for encryption of the encryption. No joke. Addonics states that there’s no theoretical limit to the number of CiperChains you can use on a single drive.

The blue-colored S-ATA port is what’s to connect to your motherboard or add-in card via a S-ATA cable, while the black-colored one connects the CipherChain directly to your hard drive or SSD. As you’d expect, the device requires power to operate, and for that, a 4-pin floppy-type power connector must be plugged in – one for each CipherChain.

You might have noticed the “Reset” buttons in an above screenshot, and the black little tab towards the left of the CiperChain in the above shot is what enables are disables the use of this. If enabled, you can take advantage of hot-swapping hard drives, if your computer and power supply support it (most don’t). To do this, you’d simply hit the reset switch, which powers the CipherChain off, plug in the new drive, and then hit the reset switch again to re-initialize it.

All of the packaged solutions Addonics sells includes the three accessories seen below. There’s of course a single-drive S-ATA cable, 4-Pin Molex to 4-Pin Floppy power adapter, and also the two mini-USB “keys”… it’s what you plug into a CipherChain in order to utilize the device, and access your data. These two keys come straight from Addonics with unique keys built-in, and you are unable to change them unless you have the special product used to either create or duplicate these keys (it’s $999, so it’s not for everyone).

In the case of our particular sample, where two CipherChains are included, you’ll receive a total of four keys, each set with different codes. If you’re to take advantage of both CipherChains on a single drive, that means that one key from each set must be plugged into the respective device in order to access the data. If only one is plugged in, the drive won’t even be recognizable by the PC. Needless to say, it’s extremely important that one key from each set be stored in a safe place, because if you lose both, the data on that hard drive is gone, with no chance of recovery. That’s right… none.

Let’s move onto the installation, performance testing, and then my final thoughts.

Шифрование AES и RSA

Вот как работает шифрование с использованием Boxcryptor

Мы шифруем файлы и тем самым обеспечиваем повышенную защиту от шпионажа и кражи данных. Для шифрования мы используем комбинацию шифрования AES-256 и шифрования RSA. Здесь мы объясняем два алгоритма.

Шифрование AES-256

Advanced Encryption Standard (AES) – один из наиболее часто используемых и наиболее безопасных алгоритмов шифрования, доступных сегодня. Это общедоступно, и это шифр, который NSA использует для обеспечения безопасности документов с классификацией «Совершенно секретно». История его успеха началась в 1997 году, когда NIST (Национальный институт стандартов и технологий) официально начал искать замену стареющему стандарту DES. Алгоритм под названием «Rijndael», разработанный бельгийскими криптографами Daemen и Rijmen, отличался повышенной безопасностью, а также производительностью и гибкостью.

Читать еще:  Sony представили новый геймпад для будущей консоли

Он вышел на первое место среди нескольких конкурентов и был официально анонсирован в 2001 году новым стандартом шифрования AES. Алгоритм основан на нескольких подстановках, перестановках и линейных преобразованиях, каждый из которых выполняется на блоках данных по 16 байтов, отсюда термин blockcipher. Эти операции повторяются несколько раз, называемые «раундами». Во время каждого раунда уникальный ключ раунда рассчитывается из ключа шифрования и включается в вычисления. Основываясь на блочной структуре AES, изменение отдельного бита либо в ключе, либо в блоке открытого текста приводит к совершенно другому блоку зашифрованного текста – явное преимущество перед традиционными потоковыми шифрами. Наконец, разница между AES-128, AES-192 и AES-256 – это длина ключа: 128, 192 или 256 бит – все радикальные улучшения по сравнению с 56-битным ключом DES. В качестве иллюстрации: взлом 128-разрядного ключа AES с помощью современного суперкомпьютера займет больше времени, чем предполагаемый возраст вселенной. А Boxcryptor даже использует 256-битные ключи! На сегодняшний день не существует никакой реальной атаки на AES. Поэтому AES остается предпочтительным стандартом шифрования для правительств, банков и систем высокой безопасности по всему миру.

Шифрование RSA

RSA – одна из самых успешных, асимметричных систем шифрования на сегодня. Первоначально обнаруженный в 1973 британским разведывательным агентством GCHQ, он получил классификацию «совершенно секретно». Мы должны поблагодарить криптологов Rivest, Shamir и Adleman за его гражданское повторное открытие в 1977 году. Они наткнулись на него во время попытки решить еще одну криптографическую проблему.

В отличие от традиционных симметричных систем шифрования, RSA работает с двумя различными ключами: публичным и частным. Оба они дополняют друг друга, что означает, что сообщение, зашифрованное одним из них, может быть дешифровано только его дополняющей стороной. Поскольку частный ключ не может быть вычислен из открытого ключа, последний, как правило, доступен для общественности.

Эти свойства позволяют использовать асимметричные криптосистемы в широком спектре функций, таких как цифровые подписи. В процессе подписания документа к файлу прикрепляется отпечаток пальца, зашифрованный с помощью RSA, который позволяет получателю проверять как отправителя, так и целостность документа. Безопасность RSA основана главным образом на математической проблеме факторизации целого числа. Сообщение, которое должно быть зашифровано, рассматривается как одно большое число. При шифровании сообщения оно увеличивается до степени ключа и делится с остатком на фиксированное произведение двух простых чисел. Повторяя процесс с другим ключом, открытый текст можно получить снова. Лучший известный в настоящее время способ взломать шифрование требует факторизации продукта, используемого при делении. В настоящее время невозможно вычислить эти коэффициенты для чисел, превышающих 768 бит. Вот почему современные криптосистемы используют минимальную длину ключа 3072 бита.

Как Boxcryptor Шифрует и Расшифровывает файлы

Boxcryptor реализует комбинированный процесс шифрования, основанный на асимметричном RSA и симметричном шифровании AES. Каждый файл имеет свой собственный уникальный случайный файловый ключ, который создается при создании файла.

Алгоритм шифрования AES

После того как мы на прошлой неделе опубликовали информацию о готовящихся к продаже новых криптотелефонах X-Telecom Secure Mobile, в которых используется алгоритм шифрования AES-256, многие люди стали звонить и интересоваться, что это за алгоритм AES, насколько он надежен и удовлетворяет ли он требования информационной безопасности.

Алгоритм Advanced Encryption Standard

Advanced Encryption Standard – симметричный алгоритм блочного шифрования, принятый правительством США в качестве стандарта в результате конкурса, проведенного между технологическими институтами. Он заменил устаревший Data Encryption Standard, который больше не соответствовал требованиям сетевой безопасности, усложнившимся в XXI веке.

Этот алгоритм, кроме аббревиатуры AES, иногда называют еще Rijndael – это анаграмма из частей имен бельгийских программистов Joan Daemen и Vinent Rijmen, которые разработали AES. Строго говоря, AES и Rijndael – не совсем одно и то же, поскольку AES имеет фиксированный размер блока в 128 бит и размеры ключей в 128, 192 и 256 бит, в то время как для Rijndael могут быть заданы любые размеры блока и ключа, от минимума в 32 бит до максимума в 256 бит.

Алгоритм AES был одобрен Агентством национальной безопасности США как пригодный для шифрования особо секретной информации. Однако, правительство постановило, что AES должен периодически подвергаться проверкам и улучшениям, чтобы надежно хранить зашифрованные данные.

Информация, определенная как секретная, должна быть защищена посредством AES с длиной ключей 128, 192 и 256 бит. Для информации, определенной как особо секретная, эта длина составляет 192 или 256 бит. Суть AES в том, что любая «лобовая атака» на защищенные данные – то есть подбор всех возможных паролей – в перспективе очень сильно растягивается. Если представить, что взломщик располагает огромными ресурсами, то есть целой коллекцией суперкомпьютеров, то при усердном старании доступ к зашифрованным данным он мог бы получить через десятки лет. Если же в его распоряжении ничего этого нет, то взлом AES займет астрономически долгое время.

Надежность алгоритма шифрования AES

Считается, что используемый в Advanced Encryption Standard ключ длиной в 128 бит – достаточно надежная защита против лобовой атаки, то есть с чисто математической точки зрения подобрать один правильный пароль из всех возможных – трудноосуществимая задача. Несмотря даже на некоторые недостатки AES, взломать защищенную с помощью этого алгоритма информацию практически нереально.

Любой криптографический алгоритм требует ключ размером в то или иное количество бит, чтобы зашифровать данные, как показано в схеме №1.

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

Вот пример перебора 4-битного ключа:

Потребуется максимум 16 стадий, чтобы проверить каждую возможную комбинацию, начиная с «0000». Лобовая атака за некоторое время может пробить такой простой алгоритм.

Таблица на рисунке ниже показывает возможное число комбинаций с учетом размера ключа:

Обратите внимание на то, что по мере увеличения размера ключа количество комбинаций возрастает экспоненциально. Математические исчисления доказывают, что размер ключа в 128 бит надежнейшим образом защищает от лобовой атаки:

Таким образом, даже суперкомпьютеру понадобилось бы неисчислимо огромное количество времени, чтобы получить доступ к информации под защитой AES посредством лобовой атаки.

Для сравнения: возраст Вселенной – где-то между 13 и 14 миллиардами лет. Даже если предположить, что некий супер-суперкомпьютер мог быть справляться с алгоритмом DES за одну секунду, то на взлом AES у него ушло бы около 149 триллионов лет.

Как видите, размера ключа в 128 бит вполне достаточно, хотя совершенно секретная информация все равно шифруется с размером в 256 бит. Следующее предположение доказывает, что стандарт 128 бит будет оставаться актуальным и в будущем.

  • каждый человек на Земле имеет десять компьютеров
  • на Земле семь миллиардов человек
  • каждый из этих компьютеров может проверять один миллиард комбинаций в секунду
  • ключ считается взломанным, если проверено 50% всех возможных комбинаций

При всех этих условиях все население планеты смогло бы взломать один ключ… за 77,000,000,000,000,000,000,000,000 лет.

При этом интересно отметить, что разница между размером ключа в 128 бит и 256 бит не так уж принципиальна. Если бы кто-то придумал бы некую программу, способную взломать 128-битную систему, то 256 бит для этого гения не были бы помехой.

Наконец, лучше всего за AES говорит статистика: защищенные этим алгоритмом данные никогда не были взломаны. Впрочем, все это работает при размере ключа минимум в 128 бит, поскольку более ранние шифровальные алгоритмы все же не выдерживали испытания на прочность.

Несмотря на то, что скорость вычисления компьютеров увеличивается в геометрической прогрессии согласно закону Мура, 128-битного ключа вполне должно хватить на много лет вперед.

Таким образом, все звонки и сообщения в криптотелефонах X-Telecom шифруются очень надежно, ведь кроме AES-256 еще дополнительно используется алгоритм Twofish и несколько вспомогательных алгоритмов — в комплексе это дает совершенную 100%-ую защиту вашего общения от прослушки любыми современными способами.

Х-Лаба: реализация криптографического алгоритма AES

Содержание статьи

Задание: разработать библиотеку классов, реализующих криптографический алгоритм
AES (Advanced Encryption Standard). Предусмотреть следующие варианты шифровки/дешифровки:

Читать еще:  Настройка Adobe Flash Player

а) шифрация данных из файла в файл;
б) дешифрация данных из файла в файл;
в) дешифрация данных из файла в память.

Ключ шифрования должен задаваться строкой, содержащей последовательность шестнадцатеричных цифр. Длина ключа – 128, 192 или 256 бит.

Введение в проблему

Advanced Encryption Standard (AES), также известный как
RIJNDAEL, — это симметричный алгоритм блочного шифрования (размер блока – 128 бит, ключ – 128/192/256 бит), выбранный в ходе конкурса и принятый в качестве американского стандарта шифрования правительством США. Выбор был сделан с расчетом на повсеместное использование и активный анализ алгоритма, как это было с его предшественником
DES. Государственный институт стандартов и технологий США (National Institute of Standards and Technology, NIST), после пятилетней подготовки, 26 ноября 2001 года опубликовал предварительную
спецификацию AES, а 26 мая 2002 года AES был объявлен стандартом. По состоянию на 2006 год
AES является одним из самых распространенных алгоритмов симметричного шифрования в мире.

История AES

В далеком 1998 году NIST объявил конкурс на создание алгоритма, удовлетворяющего выдвинутым институтом требованиям. Он опубликовал все несекретные данные о тестировании кандидатов на роль
AES и потребовал от авторов алгоритмов сообщить о базовых принципах построения используемых в них констант. В отличие от ситуации с DES, NIST при выборе
AES не стал опираться на секретные и, как следствие, запрещенные к публикации данные об исследовании алгоритмов-кандидатов.

Чтобы быть утвержденным в качестве стандарта, алгоритм должен был:

  1. реализовать шифрование частным ключом;
  2. представлять собой блочный шифр;
  3. работать со 128-разрядными блоками данных и ключами трех размеров (128, 192 и 256 разрядов).

Дополнительно кандидатам рекомендовалось:

  1. использовать операции, легко реализуемые как аппаратно (в микрочипах), так и программно (на персональных компьютерах и серверах);
  2. ориентироваться на 32-разрядные процессоры;
  3. не усложнять без необходимости структуру шифра для того, чтобы все заинтересованные стороны были в состоянии самостоятельно провести независимый криптоанализ алгоритма и убедиться, что в нем не заложено каких-либо недокументированных возможностей.

Кроме того, алгоритм, претендующий на роль стандарта, должен распространяться по всему миру на неэксклюзивных условиях и без платы за пользование патентом.

Перед первым туром конкурса в NIST поступило 21 предложение, 15 из которых соответствовали выдвинутым критериям. Затем были проведены исследования этих решений, в том числе связанные с дешифровкой и проверкой производительности, и получены экспертные оценки специалистов по криптографии. В августе 1999 года NIST объявил пять финалистов, которые получили право на участие во втором этапе обсуждений.
2 октября 2000 года NIST сообщил о своем выборе – победителем конкурса стал алгоритм
RIJNDAEL (произносится как «райндол») бельгийских криптографов
Винсента Раймана и Йоана Дамана, который зарегистрирован в качестве официального федерального стандарта как
FIPS 197 (Federal Information Processing Standard).

Для меня остается загадкой, зачем в российском вузе преподают стандарты иностранных государств. Видимо, исходят из принципа, что врага надо знать в лицо :). Ладно, в общем-то, это не наше дело. Нам надо просто программно реализовать основу национальной безопасности США.

Начало работы

Итак, приступим. Так как по заданию нам надо было разработать библиотеку классов, то начнем с описания этих классов, то есть с заголовочных файлов. Наш класс будет иметь три метода, которые реализуют основные операции, перечисленные в задании: encryptFile – шифрация данных из файла в файл, DecryptToFile – дешифрация данных из файла в файл, DecryptToMemory – дешифрация данных из файла в память. Собственно, в заголовочном файле нет ничего особенного, поэтому просто приведу его листинг с комментариями (смотри листинг 1).

Как видно из листинга, мы определяем всего три вышеперечисленных метода и конструктор с деструктором. Теперь займемся реализацией этих методов.

Вспомогательный код

Прежде чем приступить непосредственно к выполнению трех основных пунктов задания, надо подготовиться, то есть написать пару вспомогательных функций и подключить несколько заголовочных файлов. Эти файлы мы нашли в интернете, ведь ты не думал, что мы будем с нуля реализовывать криптографический госстандарт США. В этих файлах содержится куча полезных структур и алгоритмов, которые позволяют заниматься разработкой непосредственно класса, а не вникать в сложную
математику AES. В большинстве случаев преподаватели сами предоставляют подобные куски кода, чтобы облегчить и без того тяжелую жизнь студента. Все эти файлы ты найдешь (а при желании и детально ознакомишься с их содержанием) на нашем

Взглянем на листинг. Там как раз описаны две наши вспомогательные функции и один макрос.

Все это хозяйство служит для заполнения массива псевдослучайных чисел. Непосредственно же заполнением занимается эта функция:

Как ее использовать, ты узнаешь чуть позже. Макрос RAND(a,b) вычисляет псевдослучайное число, а функция cycles считывает число из таймера процессора. Все это войдет в cpp-файл с реализацией класса. Также нам надо включить еще три заголовочных файла:

Здесь, caes.h описывает наш класс; aes.h – один из тех файлов, что мы нашли в интернете; stdio.h – говорить стыдно, все и так должны знать, что это стандартный ввод/вывод в

Шифрование файла

Настало время заняться функцией шифрования. Прототип ее выглядит так:

Содержимое из файла inFileName будет шифроваться ключом secretKey и записываться в файл outFileName. Код этой функции частично представлен в листинге.

Весь код, к сожалению, мы привести не можем, поскольку он занял бы значительный объем статьи; полностью ты найдешь его только
на нашем диске.

Здесь первым делом мы объявляем и инициализируем несколько переменных. Затем в цикле проверяем корректность введенного ключа, а поскольку передается он в функцию в виде строки, то должен содержать лишь цифры от 0 до 9 и латинские буквы от A до F. Кроме этого, дополнительно мы проверяем длину ключа. После этого открываем входной и выходной файлы и проводим предварительную инициализацию нужных нам структур. Далее в листинге должен идти код шифрования, но, как мы уже говорили, он опущен. Вот и все, главное – после шифрации не забыть корректно закрыть файлы, чтобы сохранить все изменения.

Дешифрация из файла в память

Функцию дешифрации из файла в память мы, к сожалению, тоже не можем привести полностью, и в листинге опять будет опущена алгоритмическая часть. Прототип дешифрации выглядит так:

Содержимое файла fileName расшифровывается ключом secretKey и помещается в участок памяти, на который ссылается переменная buffer. Код этой функции практически идентичен коду в листинге 3, но есть и небольшие отличия. Во-первых, мы открываем лишь один файл, а во-вторых, мы определяем размер файла и автоматически выделяем требуемый объем памяти для расшифрованной информации.

Последнее, что нам остается сделать, – это реализовать функцию расшифровки одного файла в другой. Ее прототип выглядит так:

Содержимое inFileName расшифровывается ключом key и записывается в файл outFileName. Полный код этой функции можно увидеть в листинге.

Для начала мы объявляем указатель на unsigned char. Затем с помощью реализованной выше функции DecryptToMemory расшифровываем содержимое файла в память. Если все прошло успешно, то записываем участок памяти, на который ссылается переменная buffer, в файл outFileName и удаляем память, выделенную функцей

Проверка работы

И в заключение напишем маленькую программку, которая будет шифровать/дешифровать файлы. Для этого нам понадобится консольный проект (я использовал Visual Studio 2003). Включим в проект файлы нашего недавно созданного класса и то, что мы скачали из интернета (aes.h, aeskey.c, aescrypt.c, aesopt.h, aestab.c, aestab.h). Проект мы назвали AES_demo, а потому и главный cpp-файл называется aes_demo.cpp. В нем мы подключим caes.h и определим 256-битный ключ шифрования.

Чтобы зашифровать какой-либо файл, надо запустить программу со следующими параметрами:

AES_demo.exe /encrypt not_crypt_file.txt crypt_file.txt

После такого вызова в crypt_file.txt мы увидим зашифрованное содержимое not_crypt_file.txt. Для дешифровки надо вбить в командную строку следующее:

AES_demo.exe /decrypt crypt_file.txt decrypt_file.txt

Если ты посмотришь на исходный код функции main, то увидишь, что мы просто проверяем количество аргументов, передаваемых программе, и затем вызываем соответствующие функции. Теперь ты можешь попробовать собрать проект (правда, в готовом виде он уже есть на
диске). После того как проект успешно скомпилирован, можно приступать непосредственно к тестированию. Если ты все сделал правильно, то после шифровки и расшифровки файла его содержимое должно остаться без изменений.

Читать еще:  Hola лаунчер простой быстрый. Функции Hola Launcher на Android

Методы шифрования

Главным критерием безопасной передачи данных в интернете является степень их шифрования. Даже если злоумышленники смогут перехватить зашифрованные данные, они не смогут их расшифровать без пары ключей, которые хранятся на устройстве пользователя и сервере. При этом существуют протоколы, например AES-128, с которым расшифровка трафика злоумышленниками практически исключена.

Что такое AES

AES или Advanced Encryption Standard – так назывался конкурс, по результатам которого в 1997 году должны были выбрать преемника устаревшего к тому времени стандарта DES. В результате победил стандарт симметричного шифрования Rijndael, который со временем стали называть по названию конкурса, AES.

Проблема DES была в малой длине ключей (56 бит), что при стремительном развитии технологий, в теории позволяло подобрать его брутфорсом (грубым перебором).

У AES минимальная длина ключа составляет 128 бит (AES-128), таким образом, его подбор даже на мощнейшем суперкомпьютере занял бы миллиарды лет.

Что такое AES

Как работает алгоритм

Метод безопасности применяемый Advanced Encryprion standard AES основан на поочередных подстановках блоков по 16 байт. Операции перестановок могут повторяться неоднократно – они называются “round”. У каждого раунда есть уникальные ключи, которые рассчитываются из ключей шифрования. Это делает алгоритм более стойким по сравнению с другими традиционными потоковыми алгоритмами.

Каким бывает шифрование

Оно бывает двух видов – симметричное и ассимметричное. В первом случае, ключ для шифровки сообщения используется тот же, что и для дешифровки.

При ассиметричным шифровании создается пара ключей:

  1. Открытый: передается серверу для расшифровки сообщения;
  2. и Закрытый: остается на устройстве пользователя. Доступ к зашифрованным закрытым ключом данным может быть получен с соответствующим ему открытым ключом.

Симметричное и асимметричное шифрование

Область применения

AES повсеместно распространенный стандарт, используется многими корпорациями для передачи конфиденциальной информации.

Алгоритм утвержден правительством США и используется, в том числе, для нужд армии, а также:

  • В Wi-Fi и Bluetooth сетях;
  • В мобильных сетях;
  • На iOS, Android;
  • Сайты, программы и серверы, хранящие пароли;
  • Банковские продукты, банкоматы (хотя там AES не настолько популярно, как другие более сложные и ресурсозатратные алгоритмы); ПО и игры;
  • В средствах криптографической защиты данных;
  • В архиваторах (Winrar, winzip);
  • В мессенджерах (whatsapp).


  • Безопасный;
  • Бесплатный;
  • Оптимизированный. Алгоритм эффективно использует вычислительные мощности, поэтому не требователен к оперативной памяти устройства и «железу»;
  • Мультиплатформенный. Реализовывается как на аппаратной части, так и на программной.

Использование в VPN

Практически все VPN сервисы используют AES шифрование с длиной ключа 128 или 256 бит. При этом в обеих случаях соединение с виртуальным сервером будет надежно защищено.

Как взломать алгоритм

Взломать алгоритм, подобрав комбинацию брутфорсом невозможно, так как это займет бесконечно много времени. Однако взламывать 128 битный ключ и не требуется. Все зависит от того, какой протокол используется для передачи. Используя PPTP, при подключении к VPN, достаточно взламать Хэши MD4 длиной 56 байт, что, с использованием облачных сервисов по подбору паролей займет не более суток.

Аппаратное шифрование

Еще в 2008 году Intel добавили поддержку аппаратного шифрования данных AES 256 в свои процессоры x86 архитектуры, что позволило повысить производительность программ, использующих этот алгоритм. Это говорит о популярности данного алгоритма блочного шифрования.

Алгоритмы шифрования ? финалисты конкурса AES. Часть 1.

Алгоритм шифрования DES (Data Encryption Standard) [9] c 1977 года является стандартом симметричного шифрования США (кроме информации повышенной степени секретности). В течение последующих 20 лет «DES стойко выдержал 20 лет массового всемирного криптоанализа» [7] — десятилетия криптоанализа (т.е. науки, посвященной поиску уязвимостей и, соответственно, взлому криптографических алгоритмов защиты информации) не привели к обнаружению серьезных уязвимостей в алгоритме (подробно о криптоанализе DES см. [18]).

Фактически, DES дал невиданный доселе толчок развитию криптоанализа. Вышли сотни трудов, посвященных различным методам криптоанализа именно в приложении к алгоритму DES, а также деталям самого алгоритма и их влиянию на криптостойкость DES. Можно утверждать, что именно благодаря DES появились целые направления криптоанализа. DES до сих пор считается сильным алгоритмом шифрования во всем, кроме размера ключа шифрования. 56-битный ключ DES явно недостаточен и при современных вычислительных ресурсах может быть вскрыт методом «грубой силы», т.е. перебором всех возможных вариантов ключа шифрования. Причем многие криптографы понимали это еще до принятия DES в качестве стандарта [22], а первые попытки увеличения размера ключа DES без изменения самого алгоритма начались уже в 1978 году (см. [18]). Однако, DES продолжал активно использоваться в качестве стандарта США.

Фактически, первые реальные шаги по замене стандарта шифрования были сделаны в 1997 году, когда Институт стандартов и технологий США NIST (National Institute of Standards and Technology, http://www.nist.gov) объявил о проведении открытого конкурса алгоритмов шифрования, победитель которого должен был стать новым стандартом симметричного шифрования США. В конкурсе могли принять участие любые организации или частные лица, в том числе находящиеся за пределами США. И действительно, список участников конкурса оказался весьма разнообразен; среди авторов алгоритмов-претендентов были:

  • всемирно известные криптологи, например, интернациональный коллектив авторов алгоритма Serpent — Росс Андерсон (Ross Anderson), Эли Бихам (Eli Biham) и Ларс Кнудсен (Lars Knudsen);
  • организации, давно работающие в данной области и обладающие как богатым опытом разработки криптоалгоритмов, так и сильнейшими специалистами в данной области, например, американская фирма Counterpane — автор алгоритма Twofish;
  • всемирно известные корпорации, обладающие большим научным потенциалом, например немецкий телекоммуникационный гигант Deutsche Telekom с алгоритмом Magenta;
  • образовательные учреждения, известные своими достижениями в области криптографии, например Католический Университет г. Лювен (Katholieke Universiteit Leuven), Бельгия, с алгоритмом Rijndael;
  • и наоборот, организации, весьма малоизвестные до проведения конкурса AES, например, фирма Tecnologia Apropriada (автор алгоритма FROG) из латиноамериканского государства Коста-Рика.

NIST установил всего два обязательных требования к алгоритмам-участникам конкурса [4]:

  • 128-битный размер блока шифруемых данных,
  • не менее трех поддерживаемых алгоритмом размеров ключей шифрования: 128, 192 и 256 бит.

Однако, несравнимо больше было «рекомендательных» требований к будущему стандарту шифрования США. Поскольку соответствовать обязательным требованиям было достаточно просто, анализ алгоритмов и выбор из них лучшего производился именно по его соответствию «необязательным» характеристикам. «Пожелания» института NIST были, в частности, таковы [4]:

  1. Алгоритм должен быть стойким против криптоаналитических атак, известных на время проведения конкурса.
  2. Структура алгоритма должна быть ясной, простой и обоснованной, что, во-первых, облегчало бы изучение алгоритма специалистами, а во-вторых, гарантировало бы отсутствие внедренных авторами алгоритма «закладок» (т.е. в данном случае, особенностей архитектуры алгоритма, которыми теоретически могли бы воспользоваться его авторы в злоумышленных целях).
  3. Должны отсутствовать слабые и эквивалентные ключи (т.е. ключи, являющиеся различными, но приводящие к одному и тому же результату шифрования).
  4. Скорость шифрования данных должна быть высокой на всех потенциальных аппаратных платформах — от 8-битных до 64-битных.
  5. Структура алгоритма должна позволять распараллеливание операций в многопроцессорных системах и аппаратных реализациях.
  6. Алгоритм должен предъявлять минимальные требования к оперативной и энергонезависимой памяти.
  7. Не должно быть ограничений для использования алгоритма; в частности, алгоритм не должен ограничивать свое использование в различных стандартных режимах работы (см. [10]), в качестве основы для построения хэш-функций (см. статью «Назначение и структура алгоритмов шифрования», содержащую классификацию криптографических алгоритмов и описание наиболее часто встречающихся структур алгоритмов шифрования), генераторов псевдослучайных последовательностей и т.д.

Эти требования оказались достаточно жесткими и частично противоречащими друг другу; каждый конкретный алгоритм из участвовавших в конкурсе представлял собой некий найденный авторами компромисс между соответствиями данным требованиям.

Заявки от участников конкурса NIST принимал в течение полутора лет, после чего все присланные на конкурс алгоритмы изучались и обсуждались как в самом институте NIST, так и всеми желающими. Стоит сказать, что в NIST пришло немало отзывов, все они находятся в открытом доступе и их можно посмотреть на web-сайте института (см. выше).

Всего в конкурсе приняли участие 15 алгоритмов шифрования [1, 13]:

Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: