Разбор лекций
.pdf
УбираемизВвсе элементы А – и получаемничего,т.к. все элементы Вявляются элементами А.
Этобылпримервложимых множеств. А невложимые– этокогда,соответственно,таксделать нельзя.
ТеоремаШпернера.
Пусть {X1..Xm}– семействопопарноневложимых подмножествn-множества Х мощностей
соответственноn1…nm,тогда∑ ( |
|
)-1 ≤ 1. |
||||
|
||||||
Чтобы былосовсемпонятно,( |
|
)= |
!( |
! |
)! |
|
|
||||||
Не самая простая теорема. Один криптоаналитикдаже заявил,чтоименнознание ее доказательствапозволяет ему вуме выполнять шифрованиеAES. Поэтому предлагаюузнать доказательствои вам.
Рассмотримцепь подмножествмножества Х.
= C0
С1
…
Сn = Х.
Такая цепь называется полной,таккакмежду ее звеньями нельзя вставить никакое другое звено. Почему?Этомы такрассматриваем,для удобства. В нашемслучае вкаждомновоммножестве прибавляется по1элементу,а прибавить половинку элемента нельзя (пока нельзя,но криптоаналитики заявляют,чтозначительнопродвинулись в решении этой проблемы). Число различных полных цепей равноn!Действительно,выбрать первый элемент можноN способами, второй – (N-1) и т.д.
Теперь найдемв этой цепи множествотакое С,мощность которогоравнаr. И заменимегонаХi.
C0
С1
Cr-1
Xi
Cr+1
…
Сn,при этом |Xi|=r.
Количествотаких цепей равноr!(n-r)!
Чтоздесь произошло?Мы зафиксировали один изэлементовцепи,причемпоставили на его местоне что-нибудь,а одноизподмножествмножестваХ,о которых говорится в условии. А вот два таких подмножестваХ мы уже не зафиксируем,потому чтопоусловию они невложимы! А включение X1
X2 означалобы какразвложение,чтонедопустимо. Итак,можновот таким
образомзафиксировать только1 элемент (вместоCr подставить Хi изусловия,а поусловию {X1..Xn}
– попарноневложимые множества).
Итак,чтовостатке?Унас есть полная (неуплотняемая) цепь:
= C0
С1
…
Сn = Х.
Мы знаем,чтоводну полнуюцепь можновключить толькоодноизподмножеств{X1..Xn},при условии,что{X1..Xn}– попарноневложимы.
C0
С1
Cr-1
Xi
Cr+1
…
Сn
Также мы узнали,чтоколичествотаких цепей,содержащихXi,равноr!(n-r)!
Обобщимполученнуюинформацию.
Мощность множестваХ1 равнапоусловиюn1. Поэтому:
количествополных цепей,содержащих Х1,равноn1!(n-n1)!
количествополных цепей,содержащих Х2,равноn1!(n-n2)!
И т.д.
Этоколичествоточноне больше количества всех полных цепей,а их числоравноn!
В виде формулы этозаписывается так:∑ ( )!( − )!≤ n! |
|
|
-1 |
|
Поделимнаn!и получимто,чтотребовалось доказать: ∑ ( |
|
) |
|
≤ 1 |
|
|
Теоремадоказана.
В конце узнаемнескольконовых обозначений и односледствие.
b(n)= [ ] ,b’(n) =
[n/2]– этоцелая часть от n/2.
А вот доказательствотут немногостранное. Егомнепонять не удалось,также какне удалось понять,азачемвообщенужноэтоследствие. Поэтому привожу доказательство«какесть». Если у васесть знакомый криптоаналитик,советуюобратиться,он слегкостьюегообъяснит.
( |
|
) ≤ b(n),отсюда( |
|
)-1 ≥ |
( |
) |
|
|
(т.к. b(n)= [ |
|
] = ( |
[ |
|
] |
)) |
|
|
|
|||||||||||||
|
|
||||||||||||||
|
|
|
|
|
|
|
|||||||||
-1 |
|
|
|
∑ |
( ) |
|
|
|
|
|
|
||||
Изпредыдущей теоремы: |
|
|
-1 ≤ 1 |
||||||||||||
Но( ) ≥ ( ). Следствие доказано.
Тема «Частично упорядоченныемножества».
Начинаемновую,очень насыщеннуюновыми терминами,тему.Посути,она и состоит из определений,поэтому постараюсь разобрать их максимальноподробно. Обещаю,чтопонять их будет гораздопроще,чемследствие изпредыдущей теоремы :)
Начнем. МножествоХ называется упорядоченным(линейноупорядоченным),если для любых x,y,zЄХ выполнены свойства:
1.Рефлексивность (x≤x)
2.Антисимметричность (если x≤y &y≤x,тоx=y)
3.Транзитивность (еслиx≤y &y≤z,тоx≤z)
4.Линейность (либоx≤y,либоy≤x).
Примеры упорядоченных множеств– множествадействительных и целыхчисел. Очевидность этих свойств для привычных намчиселну простозашкаливает.
Определение. МножествоХ называется частичноупорядоченным,если для любыхx,y,zЄХ выполнены свойства 1-3.
Простой и понятный пример – вектора. Действительно, любой вектор равен самому себе, пункты 2 и 3 тоже выполняются. Но не любые 2 вектора можно сравнить. Пример несравнимых векторов: (010) и (101). Поэтому пункт 4 не выполняется.
Пример для настоящих криптоаналитиков – булеаан 2Х относительно включения подмножеств. Жесткий криптограф поймет без объяснений, а обычный человек (в том числе я) сразу перейдет к следующему пункту, даже если бы тут было объяснение.
Обозначается частично упорядоченное множество вот так: <X, ≤ >.
«Частично упорядоченное множество» сокращается: «ч.у.м.».
Основное мы узнали. А теперь, как и обещал – огромное количество определений.
Опр. В ч.у.м. Х элемент у покрывает элемент х (или элемент х покрывается элементом у), если x<y и в Х не найдется элемента z, такого, что x<z<y. Обозначается y>-x.
Другими словами, между элементами x<y нельзя ничего вставить. Пример: 00111>00101. Вектора различаются на 1 координату, неравенство выполняется, и вставить ничего нельзя (ведь вектора, различающиеся более чем на 1 координату, несравнимы).
Опр. Ч.у.м. задается диаграммой, представляющей собой неориентированный граф с множеством вершин Х. В диаграмме все вершины расположены на нескольких уровнях, при этом если х<у, то вершина у расположена на более высоком уровне, чем вершина х. Пара (х,у) соединена ребром тогда и только тогда, когда y>-x.
Это очень важно – знать, как задается ч.у.м. в виде графа. Наверное, так же важно, как уметь построить таблицу истинности. Поэтому обратите на это особое внимание.
Что же тут написано? Написано в прямом смысле вот что: если два элемента сравнимы, сравниваем их. Если какой-то элемент оказался больше, он обязан стоять выше того, который оказался меньшим. Если несравнимы – располагаем их на одном уровне. Затем смотрим, а выполнено ли условие y>-x (между х и у, таких, что x<y, нельзя вставить никаких других элементов). Если выполняется – соединяем эти 2 точки. Если не выполняется – не соединяем.
Пример: построим граф для V2={00, 01, 10, 11}.
Итак, самый маленький элемент – 00. Располагаем его в самом низу графа.
Смотрим элементы 01 и 10. Они отличаются от 00 по 1 координате, поэтому сравнимы с
00:
01>00
10>00
А вот сами вектора 10 и 01 между собой не сравнимы, т.к. отличаются по 2 (более, чем 1) координатам.
Теперь смотрим, куда поставить 11. Он несравним с 00, зато отлично сравним с 01 и 10 (различие по 1 координате).
11>10
11>01
Что мы имеем? А вот что:
01>00 – 01 расположим выше 00
10>00 – 10 расположим выше 00
11>10 – 11 расположим выше 10
11>01 – 11 расположим выше 01
01 и 10 – несравнимы, расположим на 1 уровне
Смотрим второй пункт: выполнено ли условие y>-x (между х и у, таких, что x<y, нельзя вставить никаких других элементов). Если выполняется – соединяем эти 2 точки. Если не выполняется – не соединяем.
Между 00 и 01, 00 и 10 ничего нельзя вставить, между 11 и 01, 11 и 10 тоже, а 11 и 00, 01 и 10 вообще несравнимы.
Перед нами – готовый граф для Vn.
Думаете, все так просто? К сожалению, нет. Сейчас разберем гораздо более сложный пример построения графа.
Построим граф для делителей числа 20: {1,2,4,5,10,20}.
Казалось бы, все просто – числа между собой можно легко сравнивать, да и посмотреть, что находится между ними не сложно. Но если бы все было так, то AES вскрывался бы за пару секунд, а по хэшу MD5 можно было легко восстановить содержимое. Но это не так, правила сравнений здесь абсолютно другие. И если их знать, то от одного вида такого криптоаналитика AES будет превращаться в поток исходной информации.
[вставка] После разбора этого метода будет показан гораздо более быстрый и удобный способ. Но для начала важно изучить именно «медленный» - только он дает понимание происходящего [/вставка]
Итак, приступим. В нашем случае отношение частичного порядка вводится соотношениями:
a<b – «а является делителем числа b, причем а отлично от b»
a=b – «а и b совпадают как числа»
a>b – «а кратно b, a и b не совпадают»
а и b несравнимы – «а и b – взаимно простые»
Заметим, что отношение порядка всегда задается вместе с примером. Как мне рассказали, описанное выше встречается чаще всего.
Переходим к нашему случаю.
Анализируем расположение элементов:
1.Минимальный элемент – единица
2.Элемент 2:
2>1; 2<4; 2 и 5 несравнимы; 2<10; 2<20
3.Элемент 4:
4>1; 4>2; 4 и 5 – несравнимы, 4 и 10 – несравнимы, 4<20
4.Элемент 5:
5>1; 5 и 2 – несравнимы; 5 и 4 – несравнимы; 5<10; 5<20
5.Элемент 10:
10>1; 10>2; 10 и 4 – несравнимы; 10>5; 10<20
6.Элемент 20:
20>1; 20>2; 20>4; 20>5; 20>10
Анализируем, какие элементы нужно соединить.
Сделать это можно 2 способами. Первый – проще и надежнее, второй – быстрее, но не уверен, что он всегда работает.
Способ 1.
Для каждой пары x и y (причем x<y) требуется проверить, существует ли элемент z, такой что x<z<y.
Смотрим на результаты предыдущего анализа. Фиксируем х и перебираем у, такие что x<y. И смотрим по всему, что там написано: возможно ли x<z<y. Вот смотрите:
1.Элемент 1.
а) ищем элементы, меньшие 1. Таких нет.
2.Элемент 2 а) ищем элементы, меньшие 2. Нашли: 1<2
б) пытаемся найти элемент z. Для этого в результатах предыдущего анализа нужно найти 2 таких неравенства: 1<z; z<2. Ищем – не нашли. Поэтому 1 и 2 будут соединены (между ними ничего вставить нельзя)
3.Элемент 4 а) ищем элементы, меньшие 4. Нашли: 1<4, 2<4
б) смотрим для 1<4: среди неравенств первого анализа ищем 2 таких: 1<z; z<4. И их найти получилось: 1<2; 2<4. Получили 1<2<4 – вставить элемент можно => 1 и 4 не соединяются
в) смотрим для 2<4: среди неравенств первого анализа ищем 2 таких: 2<z; z<4. Найти не получилось – между 2 и 4 ничего вставить нельзя => 2 и 4 соединяются
4.Элемент 5:
а) ищем элементы, меньшие 5. Нашли: 1<5
б) среди неравенств первого анализа ищем 2 таких: 1<z; z<5. Найти не получилось => 1 и 5 соединяются
5.Элемент 10 а) ищем элементы, меньшие 10. Нашли: 1<10; 2<10; 5<10
б) смотрим для 1<10: среди неравенств первого анализа ищем 2 таких: 1<z; z<10. Нашли: 1<2<10 => 1 и 10 не соединяются
в) смотрим для 2<10: среди неравенств первого анализа ищем 2 таких: 2<z; z<10. Найти не получилось => 2 и 10 соединяются
г) смотрим для 5<10: среди неравенств первого анализа ищем 2 таких: 5<z; z<10. Найти не получилось => 5 и 10 соединяются
6.Элемент 20
а) ищем элементы, меньшие 20. Нашли: 1<20; 2<20; 4<20; 5<20; 10<20
б) смотрим для 1<20: среди неравенств первого анализа ищем 2 таких: 1<z; z<20. Нашли: 1<2<20 => 1 и 20 не соединяются
в) смотрим для 2<20: среди неравенств первого анализа ищем 2 таких: 2<z; z<20. Нашли: 2<10<20 => 2 и 20 не соединяются
г) смотрим для 4<20: среди неравенств первого анализа ищем 2 таких: 4<z; z<20. Найти не получилось => 4 и 20 соединяются
д) смотрим для 5<20: среди неравенств первого анализа ищем 2 таких: 5<z; z<20. Нашли: 5<10<20 => 5 и 20 не соединяются
е) смотрим для 10<20: среди неравенств первого анализа ищем 2 таких: 10<z; z<20. Найти не получилось => 10 и 20 соединяются
Это достаточно долгий способ, но очень надежный. Также я узнал про второй способ, он гораздо быстрее, но не уверен, что применим ко всем примерам. В этом примере он работает.
Способ 2.
Способ заключается в том, что если в результате деления получено простое число
– вершины соединяются, иначе – нет
1.Элемент 1:
2/1 = 2 – числопростое, 1и 2 соединяются 4/1=4– число составное,4 и 1не соединяются И т.д.
Построенный граф выглядит так:
[начало вставки]
Вернулся сюда с 63 страницы. Там настоящая жесть. Один криптоаналитик предложил мне построить решетку делителей числа 1080. Если это еще не вызывает у вас ужаса, то напишу подробнее.
D(1080) = {1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 18, 20, 24, 27, 30, 36, 40, 45, 54, 60, 72, 90, 108, 120, 135, 180, 216, 270, 360, 540, 1080}.
Если строить по описанному выше методу, то потребуется несколько часов. Хотя его было важно разобрать на простом примере, т.к. только такой разбор дает полное понимание происходящего. Мы же рассмотрим быстрый способ построения графов. С обязательной опорой на то, что после разбора предыдущего метода мы четко понимаем, что откуда берется.
Итак, важный момент. Сейчас Вы узнаете, как строят графы настоящие криптоаналитики, жесткие криптографы и специалисты в области эллиптических кривых.
1.Располагаем элементы по уровням, в порядке возрастания
2.Соединяем такие пары, в которых одно число делится на другое
Построим граф для D(1080).
Шаг 1. Располагаем элементы по уровням, причем сначала минимальный элемент, потом – простые числа, потом – числа, являющиеся произведением двух простых и так далее.
Вот смотрите:
Думаю, вопросов по их расположению после такого рисунка не будет – все очень понятно и наглядно.
Шаг 2. Соединяем 2 вершины, если одна делится на другую. Например, 6 делится на 3 – соединяем. И так далее. Важно: элементы одного уровня соединяются только с элементами предыдущего и следующего уровней. То есть, единицу соединяем только с 2, 3, 5 – понятно, что и все остальные числа делятся на 1, но это показывать уже не нужно. Вот смотрите:
Все соединять не буду, а то вместо рисунка получится черный квадрат. Но принцип построения понятен.
[/ конец вставки]
Опр. Множество Х называется квазиупорядоченным (к.у.м), или переупорядоченным по
отношению
(обозначается <X,
>), если для любых x,y,z€X выполнены свойства 1 и 3, а выполнение второго свойства не обязательно.
Казалось бы, антисимметричность всегда выполнена (если x≤y &y≤x,тоx=y). А вот и нет. В
криптографии все по-другому. Например,в ориентированномграфе считается,чтовершинаА меньше вершины В,если есть путь изА и В. Ну и пусть имеется вот такой граф:
2<4 – есть путь из 2 в 4
4<2 – есть путь из 4 в 2.
Условие антисимметричности нарушается. Перед нам – к.у.м, а не ч.у.м.
Замечание. Свойство антисимметричности в к.у.м. нарушается на циклических вершинах. Поэтому, чтобы из к.у.м сделать ч.у.м, нужно убрать все циклы.
Опр. Цепь в ч.у.м. <X, ≤ > - это подмножество С множества Х, обладающее свойством линейности. Напомним, линейность – это выполнение условия: либо х≤y, либо y≤x.
Другими словами, цепь – подмножество сравнимых элементов.
Опр. Цепь С называется полной (неуплотняемой) в Х, если она либо состоит из одного элемента, либо из отношения y>-x в С следует, что y>-x и в Х. Напомним, что y>-x означает, что между х и у нельзя вставить никаких элементов.
Другими словами, если среди элементов цепи не найдется элемент, который можно вставить между х и у, то он не найдется и во всем множестве Х.
Опр. Антицепь в ч.у.м <X, ≤ > - это подмножество множества Х, любые 2 элемента которого несравнимы.
Другими словами – это подмножество несравнимых элементов
Опр. Длина цепи С (обозначается l(C)) – это длина соответствующего пути в диаграмме.
Численно l(C)=|C|-1.
Другими словами: цепи соответствует некоторый путь в диаграмме, его длина называется длиной цепи. Длина цепи равна количеству элементов цепи минус 1.
Опр. Длина ч.у.м. Х (обозначается l(X)) определяется как длина самой длинной из цепей множества Х, то есть l(X)=n, если в Х найдется цепь длины n и не найдется цепи длины n+1.
Другими словами: это длина самой длинной цепи.
Опр. Ширина ч.у.м. (обозначается h(X)) определяется как мощность самой мощной из антицепей множества Х, т.е. h(X)=n, если в Х найдется антицепь, состоящая из n элементов, и не найдется антицепи, состоящей из n+1 элементов.
Другими словами: это длина самой мощной антицепи.
Опр. Пусть имеется ч.у.м. <X, ≤ > и У
Х. Подмножество У называется наследственным, если для x€X из включения y€Y и отношения x≤y следует включение x€Y. Множество всех наследственных подмножеств множества Х (обозначается HR(X)) образует кольцо множеств. Заметим, HR(X)≠ ,еслиХ≠ .
Другими словами: если взять х из Х и у из У, такие что x≤y, то х принадлежит У.
Опр. Пусть имеется ч.у.м <X, ≤ > и к.у.м. <У,
>. Функция f:X->Y называется сохраняющей порядок (изотонной или гомоморфизмом ч.у.м), если для любых x,x’ Хсо
свойством x≤x’ выполнено f(x)
f(x’).
Другими словами: имеем чум Х и кум У. Функция f принимает на вход элемент из Х и возвращает элемент из У. Эта функция называется гомоморфизмом, если для любых
x,x’ Х сосвойствомx≤x’ выполнено f(x)
f(x’). Напомним, знак
означает выполнение рефлексивности (x≤x) и транзитивности (если х≤у, у≤z, то х≤z). То есть меньшие элементы множества Х переводятся в меньшие элементы множества У).
Опр. Если гомоморфизм ч.у.м. f есть биекция, то он называется изоморфизмом ч.у.м.
Другими словами: если функция f из предыдущего определения является к тому же и биективной (каждому х соответствует свой у), то f – изоморфизм.
Изоморфизм ч.у.м. <X, ≤ > с самим собой называется автоморфизмом ч.у.м.
Другими словами: f:X->X – автоморфизм
Еще раз другими словами: функция принимает на вход элемент из Х и возвращает элемент из Х.
Биекция X<->Y, при которой частичные порядки ≤ и
взаимно инвертируются, называется антиизоморфизмом ч.у.м. (обратным изоморфизмом ч.у.м.)
Опр. Ч.у.м. Х и к.у.м У называются изоморфными или антиизоморфными, если между ними существует соответственно изоморфизм или антиизоморфизм.
