Процесс des шифрования состоит из. Алгоритм DES: описание и пример. Алгоритм работы функции F

Привет, привет!!! На связи с вами Саня Борисов, автор этого блога! Вот получил недавно такое сообщение на почту:

«Александр, я читаю ваш блог и у меня к вам вот такой вопрос. Скажите пожалуйста, каким образом вы зарабатываете на нем, какую выгоду вы получаете от высокой посещаемости вашего блога? Вы можете описать цепочку получения денег. Откуда она берет начало?» — задал мне вот такой вопрос один человек совсем недавно.

Я решил написать целую статью по этому поводу. А вы знаете как зарабатывать деньги на блоге? Если нет, то советую почитать данную статью очень внимательно, особенно новичкам интернета.

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

Вот эти способы:

Не пугайтесь если вам сейчас уже ни чего не понятно и это для вас темный лес, на самом деле все это намного легче чем кажется!!! Те кто уже разбирается в теме заработка на своем сайте или блоге, может сказать, что есть более прибыльные способы заработка и т.д.

Не спорю, может и есть, но именно эти три — самые популярные и прибыльные для большинства по статистике и именно эти способы будут приносить пассивный (резидуальный доход), то есть вам не нужно сидеть по 12 часов у вашего ПК и убивать свое здоровье, конечно, на начальном этапе надо будет очень серьезно потрудиться... Ну вы же хотите зарабатывать в конце концов...

Итак к делу. Способ первый. Заработок на размещении рекламы. Сейчас посмотрите, что вы видите справа на моем блоге. Видите вот такой текстовый блог объявлений?

Да. Так вот это и есть та самая реклама. Работает это следующим образом. У меня есть свой блог я пишу на нем интересные статьи и совершенно не важно на какие темы, то ли это выращивание капусты или моркови то ли бизнес в интернете. Отлично! Пишу и думаю, как бы мне еще и заработать на своем блоге! Узнаю про заработок на размещении рекламы, иду на сервис Google Adsense и говорю ему, — «Я хочу заработать на своем блоге».

Google говорит, — «Хорошо, регистрируйся, у тебя откроется твой личный счет, получай HTML-код объявлений вставляй его на свой сайт и когда люди будут кликать по этим объявлениям ты будешь получать деньги на свой счет в adsense» (обычно цена за клик варьируется от 0,01 до 1$, хотя есть такие мега объявления за которые выплачивают и по 15$ за 1 клик. Обалдеть!!!)

Деньги в Google Adsense выплачиваются различными способами, лично я поставил в настройках способ получения через почту России. Приходит вам обычный электронный перевод, берете паспорт и идете получать деньги. Кстати можете почитать мои 2 предыдущие статьи на тему заработка на Adsenese.


Как вывести деньги с Google Adsense? Важная информация!

Вот вам живое доказательство. Сейчас 10:35 утра по Московскому времени, я сделал скриншот своего аккаунта в Google Adsende :

Еще только утро, а уже я заработал 0,36$ на своем блоге. К вечеру думаю от 2 до 3$ должно набежать! Но если вы посмотрите на счетчик посещаемости моего блога, то можете понят, что он еще молодой и мало посещаемый 50-70 человек в день и если честно, я занялся им серьезно только месяц назад.

Через год я планирую вывести свой блог на посещаемость в 1000—1500 чел. в сутки, а это примерно 70-100$ в день только на рекламе, при правильном ее размещении.

Ну вот, представте, что вы сделаете свой блог и будете писать на нем 2-3 статьи в неделю. Даже если вы не владеете знаниями SEO, оптимизации, раскрутки и т.д., то как не крути ваш блог через год другой будет приносить вам не малые деньги, это уже проверено и ни одним человеком!!!

Конечно же не только google adsense дает такую возможность — размещение рекламы на своем сайте или блоге, в сети существует множество других ресурсов, благодаря которым вы так же можете зарабатывать на рекламе — Яндекс Директ, Сапа и т.д. и т.п. главное захотеть и научиться этому!!!

Так же некоторые компании сами связываются с вами и предлагают заработать. Более подробно я написал об этом вот в этой статье — Еще одна фишка заработка на блоге

Вот так вот дорогие друзья. Я знаю некоторых товарищей лично, которые делают на рекламе в интернете по 200-300$ в день. В Америке вообще некоторые люди зарабатывают на этом 10 000 — 50 000$ в мес. Так что есть к чему стремиться.

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



Давайте без долгих объяснений, лучше приведу пример. Я пользуюсь услугами хостинга mchost.ru потому что там лежит мой блог и все мои сайты. За эту услугу я плачу определенную сумму, в месяц 200-300р.

Что делает Хостинг. Он мне говорит, «Александр, вам нравиться наш хостинг». Я говорю, — «Да, супер хостинг». Он, — «Хорошо, а вы хотите заработать сотрудничая с нами?» Ну естественно я соглашаюсь, только заранее спрашиваю, — «А что мне нужно делать?»

Хостинг отвечает, — «Разместите наш баннер или ссылку на наш хостинг у себя на сайте или блоге и когда люди будут приходить благодаря вам на наш ресурс и пользоваться нашими услугами, мы вам будем выплачивать % от заказа». (Это примерно 20-40% от заказа). Не плохо правда?

Я привел только один пример заработка на партнерской программе, а таких партнерских программ тысячи в интернете, нужно только разбираться в каких из них стоит участвовать, а в каких нет! Ну и последний самый самый прибыльный способ зарабатывать деньги на своем блоге — это конечно же создание своего информационного продукта!!!

Создать свой информационный продукт — это то же самое, что посадить дерево один раз и собирать плоды всю оставшуюся жизнь. Что такое информационный продукт? А это всего лишь какая-то ценная информация которую можно продать за деньги. Пример — мой курс Как стать блоггером тысячником Я создал его 1 раз и теперь будет получать деньги постоянно, тогда, когда люди будут покупать его.

Кстати не важно, что за информационный продукт вы сделаете, главное чтобы он был востребован. Я сейчас вижу в интернете как появляются множесто различных информационных продуктов в сети «Как создать сайт», «Как заработать в интернете», «Уроки фотошопа», «Как быстро выйти замуж», «Леди Онлайн», «Античайник» и т.д. и т.п. — все эти люди, создавшие такие инфопродкуты будут получать не малые деньги всю свою оставшуюся жизнь пока их продукт будет востребован!!! Классно да, опять же сделал один раз, а получай много раз...

Стоп! А при чем тут инфопродукт и блог? Ну как при чем. Если у вас есть ваш блог и его посещают к примеру 1000 человек в день, то если вы создадите свой информационный продут и напишите о нем статью на своем блоге, то думаю рост продаж будет заметен!

Кстати не только платные инфопродукты могут приносить вам прибыль, бесплатные тоже! Об этом я написал целую статью — Ну вот в принципе и все!!!

Думаю из этой статьи вы взяли очень много полезной информации! Для профессионалов конечно — это вода, а вот для новичков просто ОЧЕНЬ ОЧЕНЬ ценная информация!!! У меня лично ушло не меньше пол года времени, чтобы все это понять и узнать!!!

Теперь и вы знаете как зарабатывать деньги на блоге? Желаю вам успехов в заработках!!! Увеличивайте свои доходы благодаря такой великой возможности, которая называется — ИНТЕРНЕТ!!! О кстати, пока писал статью уже заработал больше на Adsense:

P.S. Как вам статья? Советую , чтобы не пропустить информацию о новых бесплатных видеокурсах и конкурсах блога!

C уважением, Александр Борисов


Добрый день уважаемые посетители. Сегодня я решил написать подробнейший мануал по заработку на блоге. В этой статье я постараюсь максимально подробно раскрыть эту тему.

Думаю, многим из читателей важно понимать, что я имею реальный вес в этом направлении. Поэтому начните с моей истории: « «. Из неё сможете узнать последовательность моих действий, которые в итоге сделали меня успешным блоггером.

Основные преимущества заработка на блоге

Первый делом мне бы хотелось рассказать о некоторых преимуществах такого .

  • Начнём с того, что заработок на ведении блога - это прежде всего свобода. Почему так? Да потому что, большинство блоггеров пишут на темы близкие для души. Для нас такая работа - это хобби. Я вот сейчас пишу статью, и мне это нравится. Нравится, что после публикации мне скажут: «Спасибо, Вы очень помогли мне».
  • Ещё одним важным плюсом такой «работы» является тот факт, что Вы сами себе босс. Нужен выходной? Пожалуйста! Хотите работать в удобное для время? Да без проблем! Хотя, далеко не для всех это плюс. Некоторых всё-таки не хватает мотивации и самодисциплины.
  • Зарабатывать с помощью блога можно из любой точки мира, главное, чтобы был интернет.
  • Блог - это хороший инструмент для поддержки бизнеса, например, для привлечения клиентов.
  • Многие фрилансеры создают онлайн дневники для привлечения заказчиков. Я уже писал об этом в данной статье: « «.
  • Ещё один важный момент, который для меня является самым весомым: Через какое-то время, в среднем 2-3 года, каждый блггер, который вёл свой дневник по уму, будет получать хороший .
  • Блог можно начать без весомых денежных вложений: 200-300 рублей в месяц на хостинг и всё.

Кто и за что платит блоггерам?

Этот вопрос мне часто задают знакомые. Давайте же наконец, я всем расскажу откуда тут деньги.

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

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

5 способов заработать на блоге

Думаю, сейчас Вам будет интересно узнать о том, какие именно бывают виды рекламы на блогах и какие из них наиболее выгодные.

#1. Партнёрские программы

Уверен, многие уже слышали об этом. Если кто-то нет, то поясняю ещё раз: Партнёрки - это заработок на рекомендациях.

Допустим у меня есть уроки по дизайну. Они стоят 1500 рублей. Если Вы станете моим партнёром и по вашей рекомендации будет сделана продажа, то Вы получите вознаграждение 50%.


Но как это можно связать с блоггингом? Да самым прямым способом, ведь на блоге мы делимся своим опытом и своими результатами. И если Вы напишите статью, в которой расскажите о пользе какой-либо услуги или товара, то некоторые Ваши читатели, следуя рекомендации тоже захотят сделать заказ и перейдут по Вашей рекомендательной ссылке. В итоге все окажутся довольны: Магазин получит клинета, клинет получит пользу от продукта, а Вы немного подзаработаете.

#2. Свои инфопродукты

По сути это те же партнёрские программы, только теперь Вы рекламируете свои продукты и заодно находите новых партнёров, которые в последствии будут рекламировать Вас. Для того, чтобы создать по-настоящему ценный продукт, нужно обладать каким-то знаниями. Например, блог пчеловода может продавать видеоуроки о том, как построить улей, как правильно ухаживать за пчелами, как правильно собирать мёд и так далее.

Лично мне такой способ по душе больше всего, так как в перспективе от него я в итоге получу больше всего дохода. Подробнее о своём опыте в инефобизнесе я пишу в этой статье: « «.

#3. Контекстная реклама

Это явление Вы можете наблюдать прямо в этой статье. Чтобы зарабатывать таким образом, нужно: зарегистрироваться в какой-либо рекламной сети, например, GoogleAdsense. И затем разместить рекламный код(сделать это можно за 2 минуты). Некоторые пользователи, читая статью буду нажимать по рекламе. Обычно по ней щёлкают 1-2% посетителей. За каждый клик Вы будите получать денежку. При посещаемости 1000 человек, средний заработок будет составлять 10 - 12 тысяч рублей. Более подробно мы об этом ещё поговорим в других статьях.

#4. Баннерная реклама

Её тоже можно увидеть у меня на блоге. Например, в сайдбаре. Работает она следующим образом: Вы делаете у себя на блоге позиции, где каждый желающий может приобрести рекламу или сами размещаете рекламные баннеры сами.

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

#5. Рекламные статьи и продажа ссылок

Эти два способа монетизации блога крайне мелочны и по сути от них ничего не заработаешь. Если, конечно блог посещают тысяч 15 человек в день, ещё можно заработать на продаже статей. Ну, а про продажу ссылок вообще стоит забывать, во-первых, это вредит продвижению блога, во-вторых, это копейки.

А вообще, чтобы зарабатывать на этих вещах, достаточно всего лишь зарегистрироваться в специальных сервисах. Сайты с продажей ссылок Вы и сами найдёте в гугле, а вот для продажи статей могу порекомендовать миралинкс. Ах, да. Работает это дело так: Регистрируемся на одном из статейный или ссылочных агрегаторах, затем получаем заявку, размещаем у себя на блоге ссылку или статью и получаем деньги. Всё очень просто.

Выбор тематики блога


Ну, а если вкратце, то могу сказать следующее: выбору тематики обязательно стоит уделить достаточное количество времени. Не стоит полагаться на своё личное мнение типа: «я думаю, что людям нравится изучать креветок». Поймите, в мире миллиарды людей и все мыслят по-разному. А значит, чтобы знать наверняка, будет ли какая-либо тематика востребована, нужно использовать специальные аналитические сервисы.

Самый оптимальный вариант - это выбор такой тематики, чтобы она нравилась Вам и одновременно с этим, чтобы она была популярна в интернете. Такой симбиоз гарантирует получать от блога как удовольствие, так и доход.

Как создать блог

Можно ли заработать на блоге в интернете? Я уже отвечал на этот вопрос: Конечно можно! Но сначала нужно понять, как это происходит, затем подобрать хорошую тематику и самое главное создать его. Первых два этапа мы уже прошли, осталось только понять, как же создать блог? На самом деле всё очень-очень просто: достаточно посмотреть какой-либо видео курс и уже через 2-3 часа у Вас появится свой блог.

ТОП-5 причин мешающих заработать на блоге

Причин может быть много, разберём их по порядку.

Причина 1. Лень

Ну, тут я думаю ничего пояснять не нужно. Заработок на блоге первые полгода, а может даже и год - это большой объем работы. Ведь изначально нужно втянуться в тему, потом понять, что и как тут устроенно. Только затем, когда блог уже даёт первые доходы, можно будет делегировать часть обязанностей и немного полениьтся.

Из этого всего следует сделать вывод: если Вы хотите халявы, то заработать на блоге у Вас не получится.

Причина 2. Непонимание

Ох, как часто я вижу активных блоггеров, которые уже годы пишут каждый день по новой статье. А в итоге получают 200-500 посетителей в день. Почему так происходит? Думаете им просто не повезло? Отнюдь, проблема в том, что просто так писать статьи на свободные темы, которые Вам кажется интересуют других людей - это бесполезное дело. Каждый, кто хочет зарабатывать, ведя свой блог, должен знать основные правила написания статей.

Не пугайтесь, это легче, чем может показаться. Вспомните школу или универ, там тоже нужно было соблюдать ряд правил при оформлении некоторых работ. Разве это было сложно? Выдели 2-3 дня, пойми, как это делается и пиши себе статьи.

Причина 3. Спешка

Как заработать на блоге новичку? Никак 🙁 Первый доход от блога, при соблюдении всех правил можно будет ожидать через полгода-год. А через пару лет можно достигнуть 50 - 100 тысяч рублей и это при использовании только контекстной рекламы. А если правильно комбинировать все способы монетизации, то доходы могут быть бесконечно большими.

Возьмём, к примеру, меня. Можете посмотреть на рубрику «мой бизнес». Из неё видно, что за первые полгода в целом мне удалось заработать больше 50 000 рублей. А за следующие три месяца ещё столько же. Это говорит о том, что я прогрессию и впереди меня ждёт ещё больший доход.

Причина 4. Нежелание учиться

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

Также обновляются блог платформы, дополнения, интересы аудитории и много другое. А значит, Вам всегда нужно быть в курсе событий. Найдите для себя несколько источников новой информации. Это могут быть какие-либо форумы, другие блоги или просто новостные сайты. Читайте их хотя бы периодически. А лучше всего найти себе какого-нибудь умного наставника, который сам в нужный момент оповестить Вас о каких-либо изменениях. Тоже самое касается и обновлений в тематики блога. Писать нужно не только про старые изъезженные темы, а стараться писать и про новые события, новые технологии и новые решения старых проблем.

Причина 5. Жадность

Скажу так: создать блог бесплатно самому для заработка вполне реально. Да что там «вполне» я и сам так делал. Но дело в том, что для более быстрого достижения цели, а у многих из нас целью является заработок, мало будет просто писать статьи. Нужно также немного потратить на продвижение, дизайн, кто-то возможно захочет нанять копирайтера. Конечно, это всё не обязательно. Но для наилучшего результата всё же, где-то потратиться придётся.

Не жалейте денег, всегда улучшайте свой блог, если это необходимо. Если уж жалко своих денег, то не жалейте тех денег, которые получили уже от самого блога - они обязательно будут. Я, например, иногда чувствую себя одиним из автолюбителей, который бесконечно любит свою ласточку. Только в моём случае ласточка - это блог. Чем больше в него вложить, тем он лучше попрёт.

Где обучиться заработку на блоге?

В пункте 6.4 я упоминал, что для наискорейшего достижения успеха нужно найти себе наставника. Согласитесь, работа пойдёт быстрее, если вам поможет человек, который будет поэтапно проверять ход работы, мотивировать к действиям, помогать исправлять ошибки и делится выжимкой самых свежих и важных новостей.

Хороший наставник обязан помочь: выбрать тематику, настроить все технические моменты, научить правильно писать статьи и самое главное, показать, как автоматизировать всю эту работу.

Так вот, я как более-менее опытный блоггер могу дать несколько рекомендаций.

Школа Блогеров

Первая - это обучение у человека, который научил многому меня. Не скажу, что всему, но многому - это точно. Его зовут Александр Борисов. И я бы не слова про него не сказал, если бы не видел реальные результаты его учеников и нереальные результаты у него самого. Давайте, я расскажу подробней о нём и его школе.


В общем, А.Борисов, человек, который уже 5 лет ведёт свой блог и зарабатывает с помощью него очень хорошие деньги. Цифры говорить не буду, а то не поверите. Главное, что на жизнь ему хватает. Примерно полгода назад он создал свою школу и назвал её «Школа блоггеров».

Основная цель школы - помочь Вам создать такой блог, чтобы его посещали тысячи, а то и десятки тысяч человек в день. И самое главная задачи: помочь Вам заработать на этом деле.

Что конкретно даёт школа блоггеров?

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

Я могу ещё много написать о неё, но лучше Вам самим глянуть на описание школы. Для этого просто перейдите сюда . Если же вопросы, всё-таки остались, то можете . Постараюсь ответить в течении одного часа, а может и быстрей.

Заключение + Видео по теме

Собственно, я рассказал Вам всё, что знаю о заработке на блоге. Возможно где-то я переборщил с информацией, но всё-таки мне хотелось максимально раскрыть эту тему. Уверен, что у многих по ходу чтения статьи появились вопросы, можете задавать их в комментариях, постараюсь на всё ответить. Также хочу поблагодарить каждого, кто смог дочитать материал до конца, а если он кому-то реально смог помочь, то Вы вообще сделали меня счастливым.

С уважением, Иванисов Сергей.

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

К настоящему времени DES является наиболее распространенным алгоритмом, используемым в системах защиты коммерческой информации. Более того, реализация алгоритма DES в таких системах становится признаком хорошего тона.

Основные достоинства алгоритма DES:

· используется только один ключ длиной 56 битов;

· зашифровав сообщение с помощью одного пакета, для расшифровки вы можете использовать любой другой;

· относительная простота алгоритма обеспечивает высокую скорость обработки информации;

· достаточно высокая стойкость алгоритма.

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

Процесс шифрования заключается в начальной перестановке битов 64-битового блока, шестнадцати циклах шифрования и, наконец, обратной перестановки битов (рис. 1).

Необходимо сразу же отметить, что ВСЕ таблицы, приведенные в данной статье, являются СТАНДАРТНЫМИ, а следовательно должны включаться в вашу реализацию алгоритма в неизменном виде. Все перестановки и коды в таблицах подобраны разработчиками таким образом, чтобы максимально затруднить процесс расшифровки путем подбора ключа. Структура алгоритма DES приведена на рис. 2.

Рис. 2.

Пусть из файла считан очередной 8-байтовый блок T, который преобразуется с помощью матрицы начальной перестановки IP (табл. 1) следующим образом: бит 58 блока T становится битом 1, бит 50 - битом 2 и т.д., что даст в результате: T(0) = IP(T).

Полученная последовательность битов T(0) разделяется на две последовательности по 32 бита каждая: L(0) - левые или старшие биты, R(0) - правые или младшие биты.

Таблица 1: Матрица начальной перестановки IP

58 50 42 34 26 18 10 02

60 52 44 36 28 20 12 04

62 54 46 38 30 22 14 06

64 56 48 40 32 24 16 08

57 49 41 33 25 17 09 01

59 51 43 35 27 19 11 03

61 53 45 37 29 21 13 05

63 55 47 39 31 23 15 07

Затем выполняется шифрование, состоящее из 16 итераций. Результат i-й итерации описывается следующими формулами:

R(i) = L (i-1) xor f (R(i-1), K(i)),

где xor - операция ИСКЛЮЧАЮЩЕЕ ИЛИ.

Функция f называется функцией шифрования. Ее аргументы - это 32-битовая последовательность R (i-1), полученная на (i-1) - ой итерации, и 48-битовый ключ K(i), который является результатом преобразования 64-битового ключа K. Подробно функция шифрования и алгоритм получения ключей К(i) описаны ниже.

На 16-й итерации получают последовательности R(16) и L(16) (без перестановки), которые конкатенируют в 64-битовую последовательность R(16) L(16).

Затем позиции битов этой последовательности переставляют в соответствии с матрицей IP -1 (табл. 2).

Таблица 2: Матрица обратной перестановки IP -1

40 08 48 16 56 24 64 32

39 07 47 15 55 23 63 31

38 06 46 14 54 22 62 30

37 05 45 13 53 21 61 29

36 04 44 12 52 20 60 28

35 03 43 11 51 19 59 27

34 02 42 10 50 18 58 26

33 01 41 09 49 17 57 25

Матрицы IP -1 и IP соотносятся следующим образом: значение 1-го элемента матрицы IP -1 равно 40, а значение 40-го элемента матрицы IP равно 1, значение 2-го элемента матрицы IP -1 равно 8, а значение 8-го элемента матрицы IP равно 2 и т.д.

Процесс расшифрования данных является инверсным по отношению к процессу шифрования. Все действия должны быть выполнены в обратном порядке. Это означает, что расшифровываемые данные сначала переставляются в соответствии с матрицей IP-1, а затем над последовательностью бит R(16) L(16) выполняются те же действия, что и в процессе шифрования, но в обратном порядке.

Итеративный процесс расшифрования может быть описан следующими формулами:

R (i-1) = L(i), i = 1, 2,…, 16;

L (i-1) = R(i) xor f (L(i), K(i)), i = 1, 2,…, 16.

На 16-й итерации получают последовательности L(0) и R(0), которые конкатенируют в 64-битовую последовательность L(0) R(0).

Затем позиции битов этой последовательности переставляют в соответствии с матрицей IP. Результат такой перестановки - исходная 64-битовая последовательность.

Теперь рассмотрим функцию шифрования f (R(i-1), K(i)). Схематически она показана на рис. 3.


Рис. 3.

Для вычисления значения функции f используются следующие функции-матрицы:

Е - расширение 32-битовой последовательности до 48-битовой,

S1, S2,…, S8 - преобразование 6-битового блока в 4-битовый,

Р - перестановка бит в 32-битовой последовательности.

Функция расширения Е определяется табл. 3. В соответствии с этой таблицей первые 3 бита Е (R(i-1)) - это биты 32, 1 и 2, а последние - 31, 32 и 1.

Таблица 3: Функция расширения E

32 01 02 03 04 05

04 05 06 07 08 09

08 09 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 01

Результат функции Е (R(i-1)) есть 48-битовая последовательность, которая складывается по модулю 2 (операция xor) с 48-битовым ключом К(i). Получается 48-битовая последовательность, которая разбивается на восемь 6-битовых блоков B(1) B(2) B(3) B(4) B(5) B(6) B(7) B(8). То есть:

E (R(i-1)) xor K(i) = B(1) B(2)… B(8).

Функции S1, S2,…, S8 определяются табл. 4.

Таблица 4

К табл. 4. требуются дополнительные пояснения. Пусть на вход функции-матрицы Sj поступает 6-битовый блок B(j) = b1b2b3b4b5b6, тогда двухбитовое число b1b6 указывает номер строки матрицы, а b2b3b4b5 - номер столбца. Результатом Sj (B(j)) будет 4-битовый элемент, расположенный на пересечении указанных строки и столбца.

Например, В(1)=011011. Тогда S1 (В(1)) расположен на пересечении строки 1 и столбца 13. В столбце 13 строки 1 задано значение 5. Значит, S1 (011011)=0101.

Применив операцию выбора к каждому из 6-битовых блоков B(1), B(2),…, B(8), получаем 32-битовую последовательность S1 (B(1)) S2 (B(2)) S3 (B(3))… S8 (B(8)).

Наконец, для получения результата функции шифрования надо переставить биты этой последовательности. Для этого применяется функция перестановки P (табл. 5). Во входной последовательности биты перестанавливаются так, чтобы бит 16 стал битом 1, а бит 7 - битом 2 и т.д.

Таблица 5: Функция перестановки P

Таким образом,

f (R(i-1), K(i)) = P (S1 (B(1)),… S8 (B(8)))

Чтобы завершить описание алгоритма шифрования данных, осталось привести алгоритм получения 48-битовых ключей К(i), i=1…16. На каждой итерации используется новое значение ключа K(i), которое вычисляется из начального ключа K. K представляет собой 64-битовый блок с восемью битами контроля по четности, расположенными в позициях 8,16,24,32,40,48,56,64.

Для удаления контрольных битов и перестановки остальных используется функция G первоначальной подготовки ключа (табл. 6).

Таблица 6

Матрица G первоначальной подготовки ключа

57 49 41 33 25 17 09

01 58 50 42 34 26 18

10 02 59 51 43 35 27

19 11 03 60 52 44 36

63 55 47 39 31 23 15

07 62 54 46 38 30 22

14 06 61 53 45 37 29

21 13 05 28 20 12 04

Результат преобразования G(K) разбивается на два 28-битовых блока C(0) и D(0), причем C(0) будет состоять из битов 57, 49,…, 44, 36 ключа K, а D(0) будет состоять из битов 63, 55,…, 12, 4 ключа K. После определения C(0) и D(0) рекурсивно определяются C(i) и D(i), i=1…16. Для этого применяют циклический сдвиг влево на один или два бита в зависимости от номера итерации, как показано в табл. 7.

Таблица 7. Таблица сдвигов для вычисления ключа

Номер итерации

Сдвиг (бит)

Полученное значение вновь «перемешивается» в соответствии с матрицей H (табл. 8).

Таблица 8: Матрица H завершающей обработки ключа

14 17 11 24 01 05

03 28 15 06 21 10

23 19 12 04 26 08

16 07 27 20 13 02

41 52 31 37 47 55

30 40 51 45 33 48

44 49 39 56 34 53

46 42 50 36 29 32

Ключ K(i) будет состоять из битов 14, 17,…, 29, 32 последовательности C(i) D(i). Таким образом:

K(i) = H (C(i) D(i))

Блок-схема алгоритма вычисления ключа приведена на рис. 4.

Рис. 4.

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

  • Tutorial

Привет, %username%!
Многим известно, что стандартом по умолчанию в области симметричного шифрования долгое время считался алгоритм DES. Первая успешная атака на этот неубиваемый алгоритм была опубликована в 1993 году, спустя 16 лет после принятия его в качестве стандарта. Метод, который автор назвал линейным криптоанализом, при наличии 2 47 пар открытых/зашифрованных текстов, позволяет вскрыть секретный ключ шифра DES за 2 43 операций.
Под катом я попытаюсь кратко изложить основные моменты этой атаки.

Линейный криптоанализ

Линейный криптоанализ - особый род атаки на симметричные шифры, направленный на восстановление неизвестного ключа шифрования, по известным открытым сообщениям и соответствующим им шифртекстам.

В общем случае атака на основе линейного криптоанализа сводится к следующим условиям. Злоумышленник обладает большим количеством пар открытый/зашифрованный текст, полученных с использованием одного и того же ключа шифрования K. Цель атакующего восстановить частично или полностью ключ K.

В первую очередь злоумышленник производит исследование шифра и находит т.н. статистический аналог, т.е. уравнение следующего вида, выполняющееся с вероятностью P ≠ 1/2 для произвольной пары открытый/закрытый текст и фиксированного ключа:
P I1 ⊕ P I2 ⊕… ⊕ P Ia ⊕ C I1 ⊕ C I2 ⊕… ⊕ C Ib = K I1 ⊕ K I2 ⊕… ⊕ K Ic (1) ,
где P n , C n , K n - n-ые биты текста, шифртекста и ключа.
После того как подобное уравнение будет найдено атакующий может восстановить 1 бит информации о ключе, используя следующий алгоритм

Алгоритм 1
Пусть T - количество текстов, для которых левая часть уравнения (1) равняется 0, тогда
Если T>N/2, где N - число известных открытых текстов.
Предположить, что K I1 ⊕ K I2 ⊕… ⊕ K Ic = 0 (когда P>1/2) или 1 (когда P<1/2).
Иначе
Предположить, что K I1 ⊕ K I2 ⊕… ⊕ K Ic = 1 (когда P>1/2) или 0 (когда P<1/2).
Очевидно, что успех алгоритма напрямую зависит от значения |P-1/2| и от количества доступных пар открытый/закрытый текст N. Чем больше вероятность P равенства (1) отличается от 1/2, тем меньше количество открытых текстов N необходимо для атаки.

Возникают две проблемы, которые необходимо решить для успешной реализации атаки:

  • Как найти эффективное уравнение вида (1).
  • Как с помощью такого уравнения получить больше одного бита информации о ключе.
Рассмотрим решение этих вопросов на примере шифра DES.

Описание DES

Но для начала кратко опишем работу алгоритма. О DES сказано уже достаточно. Полное описание шифра можно найти на Википедии . Однако для дальнейшего объяснения атаки нам потребуется ряд определений которые лучше ввести заранее.

Итак, DES это блочный шифр, основанный на сети Фейстеля . Шифр имеет размер блока 64 бита и размер ключа 56 бит. Рассмотрим схему шифрования алгоритма DES.

Как видно из рисунка, при шифровании над текстом производятся следующие операции:

  1. Начальная перестановка бит. На этом этапе биты входного блока перемешиваются в определенном порядке.
  2. После этого перемешанные биты разбиваются на две половины, которые поступают на вход функции Фейстеля. Для стандартного DES сеть Фейстеля включает 16 раундов, но существуют и другие варианты алгоритма.
  3. Два блока, полученных на последнем раунде преобразования объединяются и над полученным блоком производится еще одна перестановка.

На каждом раунде сети Фейстеля 32 младших бита сообщения проходят через функцию f:

Рассмотрим операции, выполняющиеся на этом этапе:

  1. Входной блок проходит через функцию расширения E, которая преобразует 32-битный блок в блок длиной 48 бит.
  2. Полученный блок складывается с раундовым ключом K i .
  3. Результат предыдущего шага разбивается на 8 блоков по 6 бит каждый.
  4. Каждый из полученных блоков B i проходит через функцию подстановки S-Box i , которая заменяет 6-битную последовательность, 4-битным блоком.
  5. Полученный в результате 32-битный блок проходит через перестановку P и возвращается в качестве результата функции f.

Наибольший интерес, с точки зрения криптоанализа шифра, для нас представляют S блоки, предназначенные для скрытия связи между входными и выходными данными функции f. Для успешной атаки на DES мы сперва построим статистические аналоги для каждого из S-блоков, а затем распространим их на весь шифр.

Анализ S блоков

Каждый S-блок принимает на вход 6-битную последовательность, и для каждой такой последовательности возвращается фиксированное 4-битное значение. Т.е. имеется всего 64 варианта входных и выходных данных. Наша задача показать взаимосвязь между входными и выходными данными S блоков. К примеру, для третьего S-блока шифра DES, 3-й бит входной последовательности равен 3-му биту выходной последовательности в 38 случаях из 64. Следовательно, мы нашли следующий статистический аналог для третьего S-блока:
S 3 (x) = x, который выполняется с вероятность P=38/64.
Обе части уравнения представляют 1 бит информации. Поэтому в случае если бы левая и правая части были независимы друг от друга, уравнение должно было бы выполняться с вероятностью равной 1/2. Таким образом, мы только что продемонстрировали связь между входными и выходными данными 3-го S-блока алгоритма DES.

Рассмотрим как можно найти статистический аналог S-блока в общем случае.

Для S-блока S a , 1 ≤ α ≤ 63 и 1 ≤ β ≤ 15, значение NS a (α, β) описывает сколько раз из 64 возможных XOR входных бит S a наложенных на биты α равны XOR выходных бит, наложенных на биты β, т.е.:
где символ - логическое И.
Значения α и β, для которых NS a (α, β) сильнее всего отличается от 32, описывают самый эффективный статистический аналог S-блока S a .

Наиболее эффективный аналог был найден в 5-ом S-блоке шифра DES для α = 16 и β = 15 NS 5 (16, 15)=12. Это значит, что справедливо следующее уравнение: Z=Y ⊕ Y ⊕ Y ⊕ Y, где Z - входная последовательность S-блока, а Y - выходная последовательность.
Или с учетом того, что в алгоритме DES перед входом в S-блок данные складываются по модулю 2 с раундовым ключом, т.е. Z = X ⊕ K получаем
X ⊕ Y ⊕ Y ⊕ Y ⊕ Y = K, где X и Y - входные и выходные данные функции f без учета перестановок.
Полученное уравнение выполняется на всех раундах алгоритма DES с одинаковой вероятностью P=12/64.
На следующей таблице приведен список эффективных, т.е. имеющих наибольшее отклонение от P=1/2, статистических аналогов для каждого s-блока алгоритма DES.

Построение статистических аналогов для нескольких раундов DES

Покажем теперь каким образом можно объединить статистические аналоги нескольких раундов DES и в итоге получить статистический аналог для всего шифра.
Для этого рассмотрим трехраундовую версию алгоритма:

Применим эффективный статистический аналог 5-го s-блока для вычисления определенных бит значения X(2).
Мы знаем что с вероятностью 12/64 в f-функции выполняется равенство X ⊕ Y ⊕ Y ⊕ Y ⊕ Y = K, где X - второй входной бит 5-го S-блока, он по сути является 26-м битом последовательности, полученной после расширения входных бит. Анализируя функцию расширения можно установить что на месте 26 бита оказывается 17-й бит последовательности X(1).
Аналогичным образом, Y,…, Y по сути являются 17-м, 18-м, 19-м и 20-м битом последовательности полученной до перестановки P. Исследовав перестановку P, получаем что биты Y,…, Y на самом деле являются битами Y(1), Y(1), Y(1), Y(1).
Бит ключа K вовлеченный в уравнения является 26 битом подключа первого раунда K1 и тогда статистический аналог приобретает следующую форму:
X(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y1 ⊕ Y(1) = K1 .
Следовательно, X(1) ⊕ K1 = Y(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y(1) (2) с вероятностью P=12/64.
Зная 3, 8, 14, 25 биты последовательности Y(1) можно найти 3, 8, 14, 25 биты последовательности X(2):
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = PL ⊕ PL ⊕ PL ⊕ PL ⊕ Y(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y(1) или с учетом уравнения (2)
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = PL ⊕ PL ⊕ PL ⊕ PL ⊕ X(1) ⊕ K1 (3) с вероятностью 12/64.

Найдем подобное выражение используя последний раунд. На этот раз мы имеем уравнение
X(3) ⊕ K3 = Y(3) ⊕ Y(3) ⊕ Y(3) ⊕ Y(3) .
Так как
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = СL ⊕ СL ⊕ СL ⊕ СL ⊕ Y(3) ⊕ Y(3) ⊕ Y(3) ⊕ Y(3)
получаем, что
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = СL ⊕ СL ⊕ СL ⊕ СL ⊕ X(3) ⊕ K3 (4) с вероятностью 12/64.

Приравняв правые части уравнений (3) и (4) получаем
СL ⊕ СL ⊕ СL ⊕ СL ⊕ X(3) ⊕ K3 = PL ⊕ PL ⊕ PL ⊕ PL ⊕ X(1) ⊕ K1 с вероятностью (12/64) 2 +(1-12/64) 2 .
С учетом того, что X(1) = PR и X(3) = CR получаем статистический аналог
СL ⊕ CR ⊕ PL ⊕ PR = K1 ⊕ K3 (5) ,
который выполняется с вероятностью (12/64) 2 +(1-12/64) 2 =0.7.
Описанный выше статистический аналог можно представить графически следующим образом (биты на рисунке пронумерованы справа налево и начиная с нуля):

Все биты в левой части уравнения известны атакующему, следовательно он может применить алгоритм 1 и узнать значение K1 ⊕ K3. Покажем как с помощью данного статистического аналога можно вскрыть не 1, а 12 бит ключа шифрования K.

Атака на DES с известным открытым текстом

Приведем способ с помощью которого можно расширить атаку и получить сразу 6 бит подключа первого раунда.
Составляя уравнение (5) мы принимали во внимание тот факт, что нам неизвестно значение F1(PR, K1). Поэтому мы использовали его статистический аналог K1 ⊕ PR.
Вернем вместо выражения K1 ⊕ PR значение F1(PR, K1) и получим следующее уравнение:
СL ⊕ CR ⊕ PL ⊕ F1(PR, K1) = K3 (6) , которое будет выполняться с вероятностью 12/64. Вероятность изменилась так как мы оставили только статистический аналог из третьего раунда, все остальные значения фиксированы.

Выше мы уже определили, что на значение F1(PR, K1) оказывают влияние входные биты 5-го S-блока, а именно биты ключа K1 и биты блока PR. Покажем каким образом обладая только набором открытых/закрытых текстов можно восстановить значение K1. Для этого воспользуемся алгоритмом 2.

Алгоритм 2
Пусть N - количество известных перед атакой пар открытый/закрытый текст. Тогда для вскрытия ключа необходимо проделать следующие шаги.
For (i=0; i<64; i++) do
{
For(j=0; j {
if(СL j ⊕ CR j ⊕ PL j ⊕ F1(PR j , i)=0) then
T i =T i +1
}
}
В качестве вероятной последовательности K1 принимается такое значение i, при котором выражение |T i -N/2| имеет максимальное значение.

При достаточном количестве известных открытых текстов алгоритм будет с большой вероятностью возвращать корректное значение шести бит подключа первого раунда K1. Объясняется это тем, что в случае если переменная i не равна K1, тогда значение функции F1(PR j , K) будет случайным и количество уравнений для такого значения i, при котором левая часть равна нулю будет стремиться к N/2. В случае же если подключ угадан верно, левая часть будет с вероятностью 12/64 равна фиксированному биту K3. Т.е. будет наблюдаться значительное отклонение от N/2.

Получив 6 бит подключа K1, можно аналогичным образом вскрыть 6 бит подключа K3. Все что для этого нужно, это заменить в уравнении (6) C на P и K1 на K3:
PL ⊕ PR ⊕ CL ⊕ F3(CR, K3) = K1 .
Алгоритм 2 возвратит корректное значение K3 потому что процесс расшифровки алгоритма DES идентичен процессу шифрования, просто последовательность ключей меняется местами. Так на первом раунде расшифрования используется ключ K3, а на последнем ключ K1.

Получив по 6 бит подключей K1 и K3 злоумышленник восстанавливает 12 бит общего ключа шифра K, т.к. раундовые ключи являются обычной перестановкой ключа K. Количество открытых текстов необходимых для успешной атаки зависит от вероятности статистического аналога. Для вскрытия 12 бит ключа 3-раундового DES достаточно 100 пар открытых/закрытых текстов. Для вскрытия 12 бит ключа 16-раундового DES потребуется порядка 2 44 пар текстов. Остальные 44 бита ключа вскрываются обычным перебором.

Прошло уже белее 30 лет с даты принятия алгоритма DES в качестве стандарта шифрования США. DES - алгоритм шифрования с наиболее богатой и интересной историей.

История создания алгоритма

Один из наиболее известных в мире криптологов Брюс Шнайер в своей знаменитой книге «Прикладная криптография» так описал проблемы пользователей средств защиты информации в начале 70-х гг. XX века (естественно, речь идет о пользователях по ту сторону «железного занавеса»):

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

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

Данной проблемой озаботилось Национальное Бюро Стандартов (National Bureau of Standards, NBS) США. В результате в 1973 г. был объявлен первый в истории открытый конкурс на стандарт шифрования. NBS было готово исследовать с целью выбора стандарта алгоритмы-претенденты, удовлетворяющие следующим критериям:

Алгоритм должен быть криптографически стойким;

Алгоритм должен быть быстрым;

П структура алгоритма должна быть четкой и ясной;

Стойкость шифрования должна зависеть только от ключа, сам алгоритм не должен быть секретным;

Алгоритм должен быть легко применим для различных целей;

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

Предполагалось, что заинтересованные организации или специалисты будут присылать в NBS подробные спецификации алгоритмов, достаточные для их реализации, т. е. не имеющие каких-либо «белых пятен». Предполагалось также, что алгоритм будет сертифицирован NBS для всеобщего использования, с него будут сняты все патентные и экспортные ограничения, в результате чего такой стандарт должен будет решить все проблемы совместимости средств шифрования. Кроме того, NBS брало на себя функции сертификации средств шифрования - т. е. «черные ящики» должны были безвозвратно уйти в прошлое.

Фактически алгоритм-претендент оказался всего один: это был разработанный фирмой ШМ алгоритм шифрования Lucifer {см. разд. 3.31). В течение двух лет проводилась доработка алгоритма:

Во-первых, NBS совместно с Агентством Национальной Безопасности (АНБ, NSA - National Security Agency) США был проведен тщательный анализ алгоритма, результатом которого явилась его достаточно существенная переработка;

Во-вторых, принимались к рассмотрению комментарии и критические замечания от всех заинтересованных организаций и частных лиц.

В результате совместной деятельности IBM, NBS и АНБ в январе 1977 г. DES был опубликован как стандарт США (последняя версия этого стандарта - в документе ) на алгоритм шифрования данных (кроме информации повышенной степени секретности). Алгоритм DES был запатентован фирмой ЮМ, однако NBS получило, фактически, бесплатную и неограниченную лицензию на использование данного алгоритма . Альтернативное, но реже используемое название алгоритма - DEA (Data Encryption Algorithm).

Основные характеристики и структура алгоритма

Алгоритм DES шифрует информацию блоками по 64 бита с помощью 64- битного ключа шифрования, в котором используется только 56 битов (процедура расширения ключа подробно описана далее).

Шифрование информации выполняется следующим образом (рис. 3.56):

1. Над 64-битным блоком данных производится начальная перестановка согласно табл. 3.16.

Таблица 3.16

Таблица трактуется следующим образом: значение входного бита 58 (здесь и далее все биты нумеруются слева направо, начиная с 1-го) помещается в выходной бит 1, значение 50-го бита - в бит 2 и т. д.



2. Результат предыдущей операции делится на 2 субблока по 32 бита (на

рис. 3.56 обозначены А 0 и В 0), над которыми производятся 16 раундов

следующих преобразований:

Как было сказано выше, из 64-битного ключа шифрования алгоритм DES использует только 56 битов. Каждый 8-й бит отбрасывается и никак не применяется в алгоритме, причем использование оставшихся битов ключа шифрования в реализациях алгоритма DES никак не лимитировано стандартом . Процедура извлечения 56 значащих битов 64-битного ключа на рис. 3.59 обозначена как Е. Помимо извлечения, данная процедура выполняет еще и перестановку битов ключа согласно табл. 3.19 и 3.20.


Таблица 3.19

Таблица 3.20


В результате перестановки формируются два 28-битных значения С и D. Таблица 3.19 определяет выборку битов ключа для С, табл. 3.20 - для D.

Затем выполняются 16 раундов преобразований, каждый из которых дает один из ключей раундов K t . В каждом раунде процедуры расширения ключа производятся следующие действия:

1. Текущие значения С и D циклически сдвигаются влево на переменное число битов п. Для раундов 1, 2, 9 и 16 п = 1, в остальных раундах выполняется циклический сдвиг на 2 бита.

2. С и D объединяются в 56-битное значение, к которому применяется сжимающая перестановка CP, результатом которой является 48-битный ключ раунда К (. Сжимающая перестановка выполняется согласно табл. 3.21.

Таблица 3.21

При расшифровании данных можно использовать ту же процедуру расширения ключа, но применять ключи раундов в обратном порядке. Есть и другой вариант: в каждом раунде процедуры расширения ключа вместо циклического сдвига влево выполнять циклический сдвиг вправо на п битов, где гс’ = 0 для первого раунда, и’=1 для раундов 2, 9, 16 и п= 2 для остальных раундов. Такая процедура расширения ключа сразу даст нужные для расшифровывания ключи раундов.

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




Top