Шифр SOLITAIRE

Алгоритм поточного шифрования SOLlTAlRE (ПАСЬЯНС) предложен Б. Шнайером в 1999 г. Каждой букве р{ исходного текста (рассматривается английский алфавит)

ставится в соответствие число от 0 до 25, напримери т. д. Та

ким образом, можно записать pte 226.Криптосхема генерирует ключевую последовательность (гамму)

которая используется для шифрования стандартным образом, рассмотренным в главе 1:

где

зашифрованная последовательность.

Ключевая последовательность формируется с использованием колоды карт, состоящей из 52 карт и двух джокеров. Существует 54! или приблизительно 2,3* Ю71 различных состояний колоды. Назовем одного джокера – дэ/сокером А, другого – джокером В. Каждой карте следующим образом поставим в соответствие числа от 1 до 52.

• «Трефы». Картам туз, двойка, …, король соответствуют числа 1, 2, …, 13, т. е. значение карты не меняется.

•     «Бубны». Картам туз, двойка, …, король соответствуют числа 14, 15, …, 26, т. е. к значению карты прибавляется 13.

•     «Черви». Картам туз, двойка, …, король соответствуют числа 27, 28, …, 39, т. е. к значению карты прибавляется 26.

•     «Пики». Картам туз, двойка,…, король соответствуют числа 40, 41,…, 52, т. е. к значению карты прибавляется 39.

Секретный ключ шифра – начальное состояние колоды карт. Возьмем в руки

колоду карт и разложим карты лицевой стороной вверх. Джокер, расположенный левее, будем называть первым джокером; джокер, расположенный правее, –

вторым джокером.

Алгоритм генерации nomoka ключей

1)  Находим джокер А и перемещаем его циклически вправо через одиу карту. Если джокер А является последней картой, перемещаем его за первую карту.

2)  Находим джокер В и перемещаем его циклически вправо через две карты. Если джокер В является последней картой, перемещаем его за вторую карту. Если dotcoKep В является предпоследней картой, перемещаем его за первую карту.

3)  Меняем местами карты, расположенные левее первого джокера, с картами, расположенными правее второго джокера.

4)  Возьмем последнюю (правую) карту в колоде и преобразуем ее в число. Допустим, это число равно п. Меняем местами первые n карт со следующими 53 – n картами. Последняя карта остается на месте. Колода с последним джокером после этого шага не меняет своего состояния.

5)  Возьмем первую (левую) карту в колоде и преобразуем ее в число. Допустим, это число п. Отсчитаем от начала колоды n карт. Если карта с (n + 1 )-м номером – джокер, возвращаемся к шагу 1 и начинаем все сначала.

6)  Фиксируем число, соответствующее карте с (n + 1 )-м номером. Допустим, это число N. Элемент гаммы вычисляется как

Примечания

1)  Джокеры и карты между ними на шаге 3 не двигаются, другие карты перемещаются вокруг них. На шаге 3 колоду условно можно разделить на 3 секции: карты, расположенные левее первого джокера; карты, расположенные между джокерами, и карты, расположенные правее второго джокера. Если на шаге 3 первая секция пустая, после выполнения шага пустой оказывается третья секция. Если на шаге 3 третья секция пустая, после выполнения шага пустой оказывается первая секция. Если на шаге 3 пустыми являются и первая и третья секции, колода после выполнения шага не изменит своего состояния.

2)  Цель оставления последней карты на месте на шаге 4 – сделать шаг обратимым, что, как отмечает автор, является важным для анализа защищенности.

Пример 2.13.1. Рассмотрим сначала упрощенную ситуацию, когда колода состоит из карт 1, 2,…, 8 и двух джокеров А и В. Предположим, состояние колоды карт имеет вид:

6 1 5 В 2 3 4 А 8 5 7.

Тогда последующие состояния колоды будут иметь вид: LUar № 1:

6 1 5 В 2 3 4 8 А 5 7. Шаг № 2:

6 1 5 2 3 В 4 8 А 5 7. Шаг№ 3:

5 7 В 4 8 А 6 1 5 2 3. Шаг № 4:

4 8 А 6 1 5 2 5 7 В 3. Шаг№ 5:

4 8 А б 1 5 2 5 7 В 3.

Пример 2.13.2. Пусть начальное состояние колоды, состоящей из 52 карт и двух джокеров, имеет вид:

1 2 3 4 5 б 7 … 47 48 49 50 51 52 А В.

Шаг№ i:

1 2 3 4 5 б 7 … 47 48 49 50 51 52 В А. Шаг № 2:

1  В 2 3 4 5 6 … 46 47 48 49 50 51 52 А. Шаг № 3:

В 2 3 4 5 б 7 … 47 48 49 50 51 52 А 1. Шаг № 4:

2  3 4 5 6 7 8 … 48 49 50 51 52 А В 1. Шаг№ 5:

2 3 4 5 6 7 8 . . . 48 49 50 51 52 Л В 1.

Элемент гаммы: 4. Шаг№ 1:

2 3 4 5 6 7 8 . . . 48 49 50 51 52 В А 1. Шаг № 2:

2 3 4 5 6 7 8 … 48 49 50 51 52 А 1 В. Шаг № 3:

А 1 В 2 3 4 5 … 45 46 47 48 49 50 51 52. Шаг № 4:

51 А 1 В 2 3 4 … 44 45 46 47 48 49 50 52. Шаг№ 5:

51 А 1 В 2 3 4 … 44 45 46 47 48 49 50 52. Элемент гаммы: 23.

Последующими элементами гаммы будут 10 24 8 25 18 6 4 33.

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

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

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

•     отправитель и получатель для получения начального расположения карт* в колоде используют согласованную ключевую фразу.

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

1 2 3 4 5 6 7 . . . 47 48 49 50 51 52 А В. Пусть

ключевая фраза длиной r. Для каждого элемента kj ключевой фразы выполняются следующие шаги (шаги 1 – 4 совпадают с шагами 1 – 4 алгоритма формирования гаммы, шаг 5 – по сути повторение шага 4, где вместо последней карты в качестве числа отсчета используется kj).

Алгоритм генерации начального состояния криптосхемы no ключеВой фраэе

1)  Находим джокер А и перемещаем его циклически вправо через одну карту. Если джокер А является последней картой, перемещаем его за первую карту.

2)  Находим джокер В и перемещаем его циклически вправо через две карты. Если джокер В является последней картой, перемещаем его за вторую карту. Если джокер В является предпоследней картой, перемещаем его за первую карту.

3)  Меняем местами карты, располоэ/сенные левее первого дэ/сокера, с картами, расположенными правее второго дэ/сокера.

4)  Возьмем последнюю (правую) карту в колоде и преобразуем ее в число. Допустим, это число равно п. Меняем местами первые n карт со следующими

53 – п картами. Последняя карта остается на месте. Колода с последним джокером после этого шага не меняет своего состояния.

5)  Меняем местами первые kj карт со следующими 54 – kj картами.

Примечания

1)  Возможно использование двух последних элементов kr.ь kr ключа для определения позиций джокеров: джокер А помещается после кгЛ карты, джокер В – после-й.

2)  Автор криптосхемы рекомендует использовать ключевую фразу длиной не менее 80 символов [ ].

Криптосхему SOLITAIRE легко обобщить на случай произвольного числа «карт в колоде» .и произвольной мощности входного алфавита.

 

Источник: Acoсков А. В., Иванов М. A., Мирский А. A., Рузин А. В., Сланин А. В., Тютвин А. Н. Поточные шифры. – M.: КУДИЦ-ОБРАЗ, 2003. – 336 с.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100