МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Анализ криптостойкости методов защиты информации в операционных системах Microsoft Window 9x

    Безопасность системы полностью зависит от свойств генератора потока

    ключей. Генератор потока ключей создает битовый поток, который похож на

    случайный, но в действительности детерминирован и может быть безошибочно

    воспроизведен при дешифрировании. Чем ближе выход генератора потока ключей

    к случайному, тем больше времени потребуется для взлома шифра.

    Рис. 2. Потоковый шифр.

    Для всех потоковых шифров используются ключи. Выход генератора потока

    ключей является функцией ключа. Теперь, если получить пару открытый

    текст/шифротекст, то можно читать только те сообщения, которые зашифрованы

    тем же ключом. Потоковые шифры особенно полезны для шифрования бесконечных

    потоков коммуникационного трафика, например, канала Т1, связывающего два

    компьютера.

    Генератор потока ключей состоит из трех основных частей. Внутреннее

    состояние описывает текущее состояние генератора потока ключей. Два

    генератора потока ключей, с одинаковым ключом и одинаковым внутренним

    состоянием, выдают одинаковые потоки ключей. Функция выхода по внутреннему

    состоянию генерирует бит потока ключей. Функция следующего состояния по

    внутреннему состоянию генерирует новое внутреннее состояние.

    Рис. 3. Устройство генератора потока ключей.

    Криптоалгоритм RC4 относится к так называемым самосинхронизирующимся

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

    является функцией фиксированного числа предыдущих битов шифротекста.

    Военные называют этот шифр автоключом шифротекста.

    Самосинхронизирующийся потоковый шифр показан на рисунке. Внутреннее

    состояние является функцией предыдущих n битов шифротекста.

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

    внутреннее состояние для генерации бита потока ключей.

    Рис. 4. Самосинхронизирующийся генератор потока ключей.

    Так как внутреннее состояние полностью зависит от предыдущих n

    шифротекста, дешифрирующий генератор потока ключей автоматически

    синхронизируется с шифрующим генератором потока ключей, приняв n битов

    шифротекста. В интеллектуальных реализациях этого режима каждое сообщение

    начинается случайным заголовком длиной n битов. Этот заголовок шифруется,

    передается и затем расшифровывается. Расшифровка будет неправильной, но

    после этих n битов оба генератора потока ключей будут синхронизированы.

    Слабой стороной самосинхронизирующегося потокового шифра является

    распространение ошибки. Для каждого бита шифротекста, испорченного при

    передаче, дешифрирующий генератор потока ключей выдает n неправильных битов

    потока ключей. Следовательно, каждому неправильному биту шифротекста

    соответствуют n ошибок в открытом тексте, пока испорченный бит не

    перестанет влиять на внутреннее состояние.

    1.3 Алгоритм RC4 и его криптоанализ

    Существенное повышение производительности микропроцессоров в 1980-е

    годы вызвало в криптографии усиление интереса к программным методам

    реализации криптоалгоритмов как возможной альтернативе аппаратным схемам на

    регистрах сдвига. Одним из самых первых подобных криптоалгоритмов,

    получившим широкое распространение, стал RC4. Алгоритм RC4 - это потоковый

    шифр с переменной длиной ключа, разработанный в 1987 году Рональдом

    Райвистом для компании RSA Data Security. Он обладает следующими

    свойствами:

    • адаптивностью для аппаратных средств и программного обеспечения,

    что означает использование в нем только примитивных вычислительных

    операций, обычно присутствующих на типичных микропроцессорах.

    • алгоритм быстрый, т.е. в базисных вычислительных операциях

    операторы работают на полных словах данных.

    • адаптивностью на процессоры различных длин слова.

    • компактностью в терминах размера кода, и особо удобен для

    процессоров с побайтно-ориентированной обработкой.

    • низким требованием к памяти, что позволяет реализовывать алгоритм

    на устройствах с ограниченной памятью;

    • использованием циклических сдвигов, зависимых от данных, с

    "переменным" числом.

    • простотой и легкостью выполнения.

    В течение семи лет этот алгоритм был фирменным секретом и детали о его

    конструкции предоставлялись только после подписания договора о

    неразглашении, но в сентябре 1994 года кто-то анонимно распространил

    исходный код алгоритма через Internet. Пользователи Сети, имеющие легальные

    криптосредства фирмы RSA, реализующие RC4, подтвердили совместимость кода с

    криптопрограммой. В настоящее время алгоритм RC4 реализован в десятках

    коммерческих криптографических продуктов, включая Lotus Notes, Apple

    Computer's AOCE, Oracle Secure SQL, а также является частью спецификации

    стандарта сотовой связи CDPD.

    Криптогенератор функционирует независимо от открытого текста.

    Генератор имеет подстановочную таблицу (S-бокс 8 х 8): S0, S1, . . ., S255.

    Входами генератора являются замененные по подстановке числа от 0 до 255, и

    эта подстановка является функцией от ключа изменяемой длины. Генератор

    имеет два счетчика i и j, инициализируемых нулевым значением.

    Для генерации случайного байта гаммы выполняются следующие операции:

    i = (i+1) mod 256

    j = (j+Si) mod 256

    swap (Si, Sj)

    t = (Si+Sj) mod 256

    K = St

    Байт K складывается операцией XOR с открытым текстом для выработки

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

    Шифрование происходит весьма быстро - примерно в 10 раз быстрее DES-

    алгоритма. Инициализация S-бокса столь же проста. На первом шаге он

    заполняется линейно:

    S0 = 0, S1 = 1, . . ., S255 = 255.

    Затем еще один 256-байтный массив полностью заполняется ключом, для

    чего ключ повторяется соответствующее число раз в зависимости от длины: K0,

    K1, . . ., K255. Индекс j обнуляется. Затем:

    for i=0 to 255

    j = (j+Si+Ki) mod 256

    swap (Si , Sj)

    Схема показывает, что RC4 может принимать примерно 21700 (256! * 2562)

    возможных состояний. S-бох медленно изменяется в процессе работы: параметр

    i обеспечивает изменение каждого элемента, а j отвечает за то, чтобы эти

    элементы изменялись случайным образом. Фактически, RC4 представляет собой

    семейство алгоритмов, задаваемых параметром n, который является

    положительным целым с рекомендованным типичным значением n = 8.

    Внутреннее состояние генератора RC4 в момент времени t состоит из

    таблицы St =(St(L))t=0n2 -1, содержащей 2n n-битных слов и из двух n-битных

    слов-указателей it и jt. Таким образом, размер внутренней памяти составляет

    M = n2n + 2n бит. Пусть выходное n-битное слово генератора в момент t

    обозначается как Zt.

    Пусть начальные значения i0 = j0 = 0. Тогда функция следующего

    состояния и функция выхода RC4 для каждого t ? 1 задается следующими

    соотношениями:

    it = it-1 + 1

    jt = jt-1 + St-1(it)

    St(it) = St-1(jt)

    St(jt) = St-1(it)

    Zt = St(St(it) + St(jt)),

    где все сложения выполняются по модулю 2n. Подразумевается, что все

    слова, кроме подвергаемых перестановке, остаются теми же самыми. Выходная

    последовательность n-битных слов обозначается как Zt =(Zt )t=1( .Начальная

    таблица S0 задается в терминах ключевой последовательности

    K = (KL)t=02n -1

    с использованием той же самой функции следующего состояния, начиная от

    таблицы единичной подстановки (L)2n L=02n -1. Более строго, пусть j0 = 0 и

    для каждого 1 ? t ? 2n вычисляется jt = (jt - 1 + St-1(t-1) + Kt-1) mod 2

    n, а затем переставляются местами St-1(t-1) и St-1(jt).

    На последнем шаге порождается таблица, представляющая S0. Ключевая

    последовательность K составляется из секретного ключа, возможно

    повторяющегося, и случайного ключа, передаваемого в открытом виде в целях

    ресинхронизации.

    До последнего времени в открытой литературе практически не было

    публикаций по криптоанализу алгоритма RC4. Компания RSA Data Security

    объявила, что шифр обладает иммунитетом к методам линейного и

    дифференциального криптоанализа, высоко не линеен и не похоже, чтобы у него

    были короткие циклы. Обычно цитируется заключение закрытой работы

    криптографа RSA Labs Мэтта Робшоу: "Не имеется известных слабых ключей и,

    хотя нет доказательства для нижней границы периодов последовательностей

    RC4, проведенный теоретический анализ показывает, что период в подавляющем

    большинстве случаев превышает 10100. Тщательный и всеобъемлющий анализ

    стойкости RC4 не выявил никаких оснований подвергать сомнению стойкость,

    обеспечиваемую генератором RC4".

    Первой открытой публикацией можно считать работу Йована Голича,

    представленную на конференции Eurocrypt '96. В ней отмечается, что для

    последовательностей, генерируемых RC4, не подходят методы статистического

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

    которых превышает M (размер внутренней памяти генератора), всегда

    существует линейная статистическая слабость или так называемая "линейная

    модель". Такую модель можно эффективно определять с помощью метода

    аппроксимации линейной последовательной схемой. Линейная статистическая

    слабость - это линейное соотношение между битами гаммы, которое выполняется

    с вероятностью, отличающейся от 1/2.

    Главная цель работы Голича - с помощью метода АЛПС вывести линейные

    модели для RC4. Метод АЛПС заключается в нахождении и решении

    последовательной линейной схемы, которая аппроксимирует генератор гаммы и

    приводит к линейным моделям с относительно большим корреляционным

    коэффициентом c, где вероятность соответствующего линейного соотношения

    между битами гаммы составляет (1+ c)/2. При анализе использовалась техника

    двоичных производных. Пусть Z = (Zt)t=1( обозначает последовательность

    самых младших бит слов выхода RC4, и пусть Z/=( Z/t = Zt+ Zt+1) t=1( и

    Z//=( Z//t = Zt+ Zt+2) t=1( обозначают ее первую и вторую двоичные

    производные, соответственно. Показано, что Z/ не коррелирует ни с 1, ни с

    0, но Z// коррелирует с 1 с корреляционным коэффициентом, близким к 15*2-3n

    при больших 2n, где n – длина ключа. Поскольку длина выходной

    последовательности, требуемая для выявления статистической слабости с

    корреляционным коэффициентом c, составляет O(c-2), то эта длина равна

    примерно 64n /225. Например, если n = 8, как рекомендуется в большинстве

    приложений, то требуемая длина близка к 240.

    Результаты компьютерных экспериментов согласуются с теоретическими

    предсказаниями. Поскольку результирующий коэффициент корреляции существенно

    превышает величину 2M/2, то установленную линейную модель следует

    рассматривать как статистическую слабость генератора, по крайней мере в

    теоретическом аспекте.

    В 1997 году опубликована большая работа Йована Голича, посвященная

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

    памяти. Исследованы корреляционные свойства таких узлов, обоснованы новые

    конструктивные критерии, предъявляемые к схемам подобного типа. Разработан

    эффективный метод аппроксимации линейной последовательной схемой для

    построения линейных функций от входа и выхода со сравнительно большим

    коэффициентом взаимной корреляции. Это практичная процедура, позволяющая с

    высокой вероятностью находить пары взаимно коррелированных линейных функций

    (от самое большее M + 1 последовательных выходных бит и самое большее M + 1

    последовательных векторов входа) со сравнительно большими коэффициентами

    корреляции. Метод АЛПС состоит в задании и решении линейной

    последовательной схемы (ЛПС), которая аппроксимирует комбинирующий узел с

    памятью. Эта ЛПС имеет добавочные несбалансированные входы и основана на

    линейных аппроксимациях функции выхода и всех компонент функции следующего

    состояния. Линейная аппроксимация булевой функции - это любая линейная

    функция, с которой заданная булева функция скоррелирована. Описанный метод

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

    функции выхода и следующего состояния.

    Сначала отыскиваются линейные аппроксимации функции выхода f и каждой

    из функций-компонент функции следующего состояния F. Это эквивалентно

    выражению каждой из этих M+1 функций в виде суммы линейной функции и

    несбалансированной функции. Если подлежащая декомпозиции функция уже

    несбалансированна, то можно выбрать константно-нулевую линейную функцию.

    Если подлежащая декомпозиции функция статистически независима от некоторого

    подмножества переменных, то каждая линейная аппроксимация с необходимостью

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

    Основное требование – чтобы соответствующие корреляционные коэффициенты

    отличались от нуля. Также желательно, чтобы выбирались линейные

    аппроксимации с корреляционными коэффициентами, абсолютные значения которых

    близки к максимальным. Корреляционные коэффициенты можно определять с

    помощью техники преобразования Уолша.

    На следующем шаге, получив линейные аппроксимации, в матричной форме

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

    St+1 = ASt + BXt + ((Xt, St), t?0,

    yt = CSt + DXt + ((Xt, St), t ?0,

    где векторы рассматриваются как матрицы-столбцы; A, B, C, D - двоичные

    матрицы; а ( и каждый компонент в D = (d1, . . . , dM) – несбалансированные

    булевы функции, именуемые функциями шума. Основная идея состоит в том,

    чтобы рассматривать {((Xt ,St)}t=0( и {((Xt ,St)}t=0( , 1?i?M, в качестве

    входных последовательностей, так что последние уравнения оказываются

    задающими неавтономную линейную машину с конечным числом состояний или ЛПС,

    именуемую АЛПС комбинирующего узла с памятью. Тогда можно решать эту ЛПС с

    использованием техники производящих функций (D-преобразований). В

    частности, пусть S, X, (, (, y обозначают производящие функции от

    переменной z для последовательностей {St}, {Xt}, ((Xt, St)}, ( (Xt, St)},

    yt}, соответственно. Тогда уравнения сводятся к виду

    Решение имеет вид

    где I - единичная матрица, det(zA - I) = ((z), ((0) = 1, - многочлен,

    обратный к характеристическому многочлену матрицы переходов A степени, не

    превышающей ранг A (?M); а элементы (присоединенной) матрицы adj(zA - I) -

    это полиномы от z степени не более M-1. Вычислительная сложность для

    отыскания такого решения составляет O(M3(N+1)). В другом виде решение можно

    переписать как

    где xi и (j обозначают производящие функции для {xit} и {(j(Xt, St)},

    а степени полиномов gi(z) и hj(z) самое большее равны M и M-1, 1?i?N,

    1?j?M, соответственно. Полагая

    решение можно преобразовать к виду:

    где подразумевается, что вектор состояния St-k - это функция от (Xt-k-

    1M-k, S t-M) для каждого 0?k?M-1. Линейные функции входа и выхода в (2)

    скоррелированы тогда и только тогда, когда функция шума e несбалансирована.

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

    состояния сбалансирована. Если это условие не удовлетворяется, то

    корреляционный коэффициент может зависеть от времени, поскольку от St более

    не требуется сбалансированность для каждого t?0. Функция шума e в (3)

    определена как сумма индивидуальных шумовых функций, которые

    несбалансированы при условии, что сбалансирована функция следующего

    состояния. Поскольку от индивидуальных шумовых функций не требуется быть

    независимыми, в принципе нельзя исключать возможность, что коэффициент

    корреляции e с константной нулевой функцией равен нулю или очень близок к

    этому значению.

    В рассматриваемом случае индивидуальные шумовые функции можно

    трактовать как булевы функции от n = MN + N + M переменных в (XM+1t , St

    -M). Следовательно, за исключением некоторых особых случаев, в общем случае

    можно с высокой вероятностью ожидать, что общий корреляционный коэффициент

    очень близок к произведению индивидуальных и, таким образом, отличается от

    нуля. Соответственно, метод АПЛС не только с высокой вероятностью дает

    взаимно коррелированные линейные функции от входа и выхода, но также

    позволяет оценить значение соответствующего корреляционного коэффициента,

    используя независимость или другие вероятностные предположения. Поскольку в

    идеальном случае хотелось бы получить такие АЛПС, в которых корреляционные

    коэффициенты по абсолютному значению близки к максимуму, то индивидуальные

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

    шумовых членов в (3) должно быть маленьким. Конечно, эти требования могут

    противоречить друг другу. Поэтому хорошим подходом будет повторение

    процедуры АЛПС несколько раз, начиная с наилучших линейных аппроксимаций

    для функции выхода и компонент функции следующего состояния. Эта процедура

    может также выполняться для всех возможных линейных аппроксимаций, что

    представляется единственным систематическим способом проверить все

    корреляции, выявленные в процессе применения метода АЛПС. В общем случае

    имеется самое большее (M+1)2M+N таких линейных аппроксимаций. Однако, в

    принципе всегда можно проверить все возможные линейные аппроксимации даже

    при большом M, поскольку в практических реализациях функции выхода и

    следующего состояния зависят от сравнительно небольшого количества

    переменных или же составлены из таких булевых функций.

    Страницы: 1, 2, 3, 4


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.