10111010101111010001110010101110101000011100100101001110010111011111
111010011101000000011100001101001101100011000110010100011101
Оптимальный ключ 2:
11001000010000000001001010011100001011011010110100010100001101010010
101100100100001101100101100001110100000011010100100110000001
Оптимальный ключ 3:
71
11001001011111110010011011100100101000101101111000001110010011000110
100101100111001000001101101000100101011010101111100101111101
optimum_keys_stat[k] >= оptimum_keys * delta
= 3 * 0,6
= 1,8 (1)
optimum_keys_stat[k] <= оptimum_keys * (1 - delta)
= 3 * (1 - 0,6) =
1,2
(2)
Результат проведенного тестирования представлен в таблице 4.8
Таблица 4.8
Фиксация значения бита
[k],
бит
Значение
бита
ключ 1
Значение
бита
ключ 2
Значение
бита
ключ 3
Optimum
keysstat
[k]
Выполнение
условия
(1) или (2)
Установка
значения
бита
0
1
1
1
3
Не выполнено
-
1
0
1
1
2
(1)
1
2
1
0
0
1
(2)
0
3
1
0
0
1
(2)
0
4
1
1
1
3
Не выполнено
-
5
0
0
0
0
Не выполнено
-
6
1
0
0
1
(2)
0
7
0
0
1
1
(2)
0
Результат тестирования соответствует ожиданиям.
6.
Тестирование
использования
зафиксированных
бит
при
инициализации уровня феромонов следующего раунда.
Цель тестирования: убедиться, что в следующем раунде для
инициализации уровня феромонов будут использованы биты зафиксированные
на предыдущем раунде, то есть переход в эти значения будет иметь
обязательный характер.
Рассмотрим первые 8 бит.
После нахождения третьего оптимального ключа были зафиксированы
биты:
Бит
0 1 2 3 4 5 6 7
Значение 1 0 0 0 1 1 1
72
Случайные ключи были сформированы по общему правилу.
Бит/
ключ
0 1 2 3 4 5 6 7
1
1 1 1 0 0 0 0 0
2
1 1 1 0 0 1 1 1
3
1 0 1 0 1 1 1 1
4
0 1 0 0 0 0 0 0
Для определения уровня феромонов должны использоваться значения
уже установленных бит (таблицы 4.9, 4.10).
Таблица 4.9
Распределение начального значения феромонов по «пути» муравьев
Переход/
ключ
tau[4 * k + 0]
0 — 0
tau[4 * k + 1]
0 — 1
tau[4 * k + 2]
1 — 0
tau[4 * k + 3]
1 — 1
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
-1 - 0
-
-
-
-
0,25 0,25 0,25 0,25
-
-
-
-
-
-
-
-
0 - 1
-
-
-
-
-
-
-
-
0,25 0,25 0,25 0,25
-
-
-
-
1 - 2
0,25 0,25 0,25 0,25
-
-
-
-
-
-
-
-
-
-
-
-
2 - 3
0,25 0,25 0,25 0,25
-
-
-
-
-
-
-
-
-
-
-
-
3 - 4
0,25 0,25
-
0,25
-
-
0,25
-
-
-
-
-
-
-
-
-
4 - 5
-
-
-
-
0,25 0,25 0,25
-
-
-
-
-
-
-
0,25
-
5 - 6
-
-
-
-
-
-
-
-
-
-
-
-
0,25 0,25 0,25 0,25
6 - 7
-
-
-
-
-
-
-
-
-
-
-
-
0,25 0,25 0,25 0,25
Таблица 4.10
Итоговое распределение начального значения феромонов по «пути» муравьев
Переход в
области поиска
tau[4 * k + 0]
0 — 0
tau[4 * k + 1]
0 — 1
tau[4 * k + 2]
1 — 0
tau[4 * k + 3]
1 — 1
-1 - 0
-
1,00
-
-
0 - 1
-
-
1,00
-
1 - 2
1,00
-
-
-
2 - 3
1,00
-
-
-
3 - 4
0,75
0,25
-
-
4 - 5
-
0,75
-
0,25
5 - 6
-
-
-
1,00
6 - 7
-
-
-
1,00
73
Неопределенными остались переходы из 3 в 4 бит и из 4 в 5 бит.
Полученные результаты подтверждаются.
4.2.2 Тестирование реализации муравьиного алгоритма для DES
1. Тестирование функции распределения начального значения
феромонов.
Цель тестирования: убедиться в корректности инициализации уровня
феромонов.
Генерируется 4 ключа с использованием 4 пар оригинального текста и
оригинального шифртекста с использованием операции XOR.
Ориг.текст
0110001010010110010011101100111000101110000001001111011001100110
Ориг.шифр 1100000000101001100010011000110000001101000110011011110111001101
XOR
10100010 10111111110001110100001000100011000111010100101110101011
Ориг.текст
0000010010000110001101100011011000110100000001001001001000000100
Ориг.шифр
0101100001001101011010000010110100101100000010010111000101001101
XOR
01011100 11001011010111100001101100011000000011011110001101001001
Ориг.текст
1110111010010110110011100001011000000100001011101111011000000100
Ориг.шифр
1001110101101001100011000011110100011000000111001010100000001000
XOR
01110011 11111111010000100010101100011100001100100101111000001100
Ориг.текст
1010011000011110000011100100111010100110110011101100111000000100
Ориг.шифр
0000110100101101000011001000100101001001110011001000100101001100
XOR
10101011 00110011000000101100011111101111000000100100011101001000
Увеличение феромона определяется по формуле (3-1).
Так как генерируется 4 ключа, то величина increment должна быть 0,25.
В результате тестирования получена ожидаемая величина.
Так как размер ключа значительный, то рассмотрим первые 8 бит.
Следует учесть, что 8 бит ключа не участвует в процессе шифрования,
поэтому его следует пропустить и 8 битом будем считать 9 бит.
74
Бит/
ключ
0 1 2 3 4 5 6
7
1
1 0 1 0 0 0 1
1
2
0 1 0 1 1 1 0
1
3
0 1 1 1 0 0 1
1
4
1 0 1 0 1 0 1
0
В результате сумма значения феромонов по всем возможным переходам
в следующий бит должно быть равно 1.
Результаты начального распределения феромонов, подтверждающие
ожидаемый результат, приведены в таблицах 4.11 и 4.12.
Таблица 4.11
Распределение начального значения феромонов по «пути» муравьев
Переход/
ключ
tau[4 * k + 0]
0 — 0
tau[4 * k + 1]
0 — 1
tau[4 * k + 2]
1 — 0
tau[4 * k + 3]
1 — 1
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
-1 - 0
-
0,25 0,25 -
0,25 -
-
0,25 -
-
-
-
-
-
-
-
0 - 1
-
-
-
-
-
0,25 0,25 -
0,25 -
-
0,25 -
-
-
-
1 - 2
-
-
-
-
0,25 -
-
0,25 -
0,25 -
-
-
-
0,25 -
2 - 3
-
-
-
-
-
0,25 -
-
0,25 -
-
0,25 -
-
0,25 -
3 - 4
0,25 -
-
-
-
-
-
0,25 -
-
0,25 -
-
0,25 -
-
4 - 5
0,25 -
0,25 -
-
-
-
-
-
-
-
0,25 -
0,25 -
-
5 - 6
-
-
-
-
0,25 -
0,25 0,25
0,25 -
-
-
-
-
-
6 - 7
-
-
-
-
-
0,25 -
-
-
-
-
0,25 0,25 -
0,25 -
75
Таблица 4.12
Итоговое распределение начального значения феромонов по «пути» муравьев
Переход в
области поиска
tau[4 * k + 0]
0 — 0
tau[4 * k + 1]
0 — 1
tau[4 * k + 2]
1 — 0
tau[4 * k + 3]
1 — 1
-1 - 0
0,50
0,50
-
-
0 - 1
-
0,50
0,50
-
1 - 2
-
0,50
0,25
0,25
2 - 3
-
0,25
0,50
0,25
3 - 4
0,25
0,25
0,25
0,25
4 - 5
0,50
-
0,25
0,25
5 - 6
-
0,75
0,25
-
6 - 7
-
0,25
0,25
0,50
2. Проверка расчета фитнесс-функции
Цель тестирования: убедиться в корректности реализованных расчетов.
На начальном этапе: 0 раунд, 0 итерация, 0 муравей - значения фитнес-
функции приравнены 1.
В качестве тестового ключа берется оптимальный ключ, полученный на
предыдущей итерации. Для каждого бита по порядку определяется фитнесс-
функция при изменении данного бита на 0 или 1, при этом последующие после
этого бита данные остаются. Оригинальный текст шифруется с помощью
тестового ключа и полученный шифротекст сравнивается с оригинальным
шифротекстом. Суммируются совпадающие биты и определяется отношение
количества совпадающих бит к длине ключа.
Для дальнейших итераций фитнесс-функция рассчитывается для бита, в
который осуществляется переход.
Тестовый ключ:
0101110x1111101x0001111x0100001x0001110x0001110x1100011x0000100x
Оригинальный зашифрованный текст:
1100000000101001100010011000110000001101000110011011110111001101
Текст зашифрованный тестовым ключом:
1000010001111000110011001100100000001100000111001111100010001101
76
Количество совпадающих бит в оригинальном шифрованном тексте и
тексте, зашифрованном тестовым ключом 47 бит. При длине ключа 64 бит
ожидается получение значения фитнесс функции 0, 734375. Результат
полученный при тестировании соответствует ожидаемому значению.
3. Тестирование расчета параметров для определения вероятности
перехода подтверждается и расчета вероятности перехода в бит со значением 0.
Цель тестирования: убедиться в корректности реализованных расчетов.
Первый тестовый ключ будет формироваться с учетом полученных
начальных значений феромонов tau с вероятностями переходов определенными
по формуле (3-2).
На первой итерации для первого муравья параметры eta0 = eta1 = 1. Для
следующего муравья и на следующих итерациях коэффициент определяется
равным значению фитнесс-функции перехода в значение 0 (eta0) и в значение 1
(eta1).
Вероятность нахождения в 0 бите со значением 0 определяется по
следующим параметрам:
alpha = 1.500000 – параметр задан
beta = 1.000000 – параметр задан
eta0
= 1.000000 – переход в значение 0
eta0
beta
= 1.000000
p-tau-0 = 0.500000 – величина феромона полученная при начальной
инициализации
tau0
alfa
= 0.353553
eta1
= 1.000000 – переход в значение 1
eta1
beta
= 1.000000
p-tau-1 = 0.500000– величина феромона полученная при начальной
инициализации
tau1
alfa
= 0.353553
77
Вероятность перехода в бит со значением 0 должна быть получена
равной 0.500000. Опасаться такого значение не следует, так как при переходе
добавляется “право выбора муравья”.
Тестирование расчета параметров для определения вероятности
перехода подтверждается.
4. Проверка изменения уровня феромонов.
Цель тестирования: убедиться в корректности расчетов изменения
уровня феромонов.
После получения на итерации и для отдельного муравья полного
тестового ключа, определяется величина увеличения феромонов, исходя из
лучшей фитнесс-функции итерации по формулам (3-4) и (3-5).
Увеличение значения феромонов происходит только для тех переходов,
которые присутствуют в ключе.
Тестовые данные: Тестовый ключ:
Do'stlaringiz bilan baham: |