значение Хи-квадрат, то можно узнать уровень значимости=вероятность ошибки.
Чтобы получить польше подтверждений о качестве генератора, тесты необходимо
прогнать для разных значений k, т.е применить изложенный теоретический материал
к случайным величинам вида
- 00,01,10,11 E_i=0.25 = 1/(2^2)
- 000, 001, 010 ... E_i=0.125 = 1/(2^3)
- 0000, 0001, E_i= 1/(2^4)
и т.д
Чем больше тестов, тем больше вероятностей отбросить сомнения.
>Ограничение: для использования критерия согласия Хи-квадрат выборка должна
быть не слишком малой ! т.е. (n >= 40) и ожидаемые частоты должны быть не
менее 5 (Е_i >= 5). Если они меньше, то их необходимо увеличить до требуемого
уровня путем объединения соседних классов.
Kритерий согласия Kолмогорова-Смирнова (K-С)
назначение - аналогично предыдущему. Проверяется гипотеза- выборка
относится к равномерному распределению. Определяют значения Е и В и образуют
функцию накопленной частоты F_e и F_b, находят максимум разности и делят на
объем выборки n.
max | F_b - F_e |
K-С = ---------------------
n
Таблица уровня значимости:
5% 1.36 * Kорень_из(n)
1% 1.63 * Kорень_из(n)
Если вычисленное значение K-С меньше или равно соотвю уровня значимости, то
нуль-гипотеза принимается, иначе отклоняется.
Ограничения объем выборки n>35.
Hа страничке Санкт-Петербургского Технического Университета
http://www.ssl.stu.neva.ru/psw/crypto.html
имеется книга "Поточные шифры. Результаты заруюежной открытой криптологии" -
(автор неизвестен). Глава 3 называется "Статистические свойства и меры
сложности последовательностей" (стр.35-43). В этой главе описаны:
- Частотный тест
- Последовательный тест
- Тест серий
- Автокорреляционный тест
- Универсальный тест
- Тест повторений
- Сравнение тестов l-грамм
- Kомбинирование тестов
- отсечение слабых последовательностей.
Из общематематической литературы можно посоветовать практически любую книгу
по математической статистике, например А.А.Боровков "Теория вероятностей и
мат.статистка", Закс "Статистическое оценивание".
Q: Как проверить число на простоту?
A1:
Вот к чему привели различные поиски. Для общего случая простых чисел
существует по крайней мере два алгоритма проверки их простоты (естественно не
считая всяких там переборов в лоб). Jacobi sum test (точнее APR-CL (Adleman,
Pomerance and Rumely; Cohen and Lenstra), по имени ученых, которые предложили
и развили алгоритм) и ECPP (Elliptic Curve Primality Test). По времени
выполнения они приблизительно одинаковые, но ECPP имеет то преимущество, что оно создает
некий сертификат, используя который можно в любой момент проверить простое
числоили нет в сравнительно короткое время. (на васике)
http://archives.math.utk.edu/software/msdos/number.theory/ubasic/.html
В него входит программы aprt-cle.ub, это APR-CL.
(на С)
А вот ECPP:
http://www.lix.polytechnique.fr/~morain/Prgms/ecpp.english.html
A2:
Читай книжки. Я видел описания тестов на простоту, например, в
ИHТ. Современные проблемы математики.Фундаментальные направления. Т. 49. 1990.
с. 63
Алгебра и теория чисел (с приложениями): Избранные доклады семинара H.Бурбаки:
Сб. статей 1976-1985 гг. Пер. с англ. и франц. - М. Мир, 1987.
с. 47
В первой описаны следующие алгоритмы:
1) Факторизация Ферма
2) Вероятностный алгоритм CLASNO
3) Алгоритм Шенкса SQUFOF
4) Метод непрерывных дробей CFRAC
5) (p-1)-метод Полларда
6) Метод эллиптических кривых
Во второй упор сделан на Adleman-Pomerance-Rumely.
а вот еще:
Riesel H. Prime numbers and computer methods for factorization // Progr. Math.
57. - Birkhaser: Boston, 1985. - 464 c.
статья "A Tale of Two Sieves" на:
http://www.ams.org/publications/notices/199612/pomerance.html
Обзорные статьи (списочек от Alexander Krotoff):
Williams H. C. Primality testing on a computer,
Arts Combin. 5(1978). 127-185.
Lenstra H. W. Jr. Primlity testing algotitms after Adleman,
Rumely and Williams.
Seminare Bourbaki, 34-e annee, 1980/1981 #576, 1-15.
Простейший алгоритм на уcиленной малой теореме Ферма имеет сложность
O(ln(n)^2). Основан на гипотезе Римана.
Solovay R. Strassen V.
A fast Monte-Carlo test for primality, SIAM J. Comput. 6(1977),
84-85, 7(1978), 118
Adleman L. M. On distinguishing prime numbers from composite numbers
(abstract) Proc 21st Annual IEEE Symposium on Foundation of
Science (1980) 387-406.
Adleman L.M., Pomerance C. Rumely R.S.
On distiguishig prime numbers from composite numbers,
Ann. of Math. 117(1983) 173-206
Сложность алгоритма O(ln(n)^{C*ln(ln(ln(n)))})
Pollard J.M. Theorems on factorization and primality testing,
Proc. Cambrdge Philos. Soc. 76(1974), 521-528
сложность O(n^(1/8)).
Q: Я тут написал программу и хочу построить уникальный ключ, привязав
его к "железу", номеру материнки, процессора, жесткого диска, сетевой
карте. К чему лучше?
A: Ни к чему. Привязка к "железу" (любому) неэффективна в случае,
если комп взят из "большой китайской партии" и неудобна в
использовании, поскольку апгрейд "железа" явление достаточно частое,
чтобы при сколь-нибудь серьезном тираже программы ты поимел много
забот с поддержкой.
Q: Что такое необратимое шифрование?
A: Такого термина нет. Шифрование по определению обратимо, иначе это
действие бессмысленно. Обычно используется понятие хэш (свертка).
См. раздел "хэш-функции".
Q: А возможно ли создание аpхиватоpа у котоpого будет коэффициент
сжатия 1 к миллиону?
A: Согласно Шеннону, если некотоpый источник инфоpмации способен
генеpиpовать N pазличных символов S_1, S_2, ..., S_N с
веpоятностями p_1, p_2, ..., p_N, то количество инфоpмации,
поступающее с отдельным символом (т.е. теоpетически минимальное
число бит, котоpое пpидется в сpеднем затpатить на кодиpование
отдельного символа) составляет:
I = - \sum_{i=1}^{N} {p_i * log_2 p_i}
(минус сумма пpоизведений веpоятности возникновения i-го символа на
логаpифм по основанию два от этой же веpоятности).
Эта функция достигает максимума в случае, если все веpоятности p_i
pавны между собой, и меньше во всех остальных случаях (наименьшее
значение - 0, достигается тогда, когда веpоятность возникновения
одного из символов pавна 1, а веpоятностивсех остальных pавны
нулю).
Следствие 1: если способ кодиpования и статистические хаpактеpистики
входного потока данных таковы, что в пpинципе допускают сжатие
1:1000000, то любой "пpавильный" аpхиватоp для данного входного
потока обеспечит близкий к этому значению коэффициент сжатия.
Следствие 2: если входной поток пpедставляет собой множество
pеализаций pавномеpно pаспpеделенной случайной величины,
пpедставленных в pавномеpном безызбыточном коде (а такой, видимо,
обычно и получается после опеpации шифpования), то не существует
аpхиватоpа, обеспечивающего хоть какое-нибудь сжатие подобного
потока.
Q: Я, CrYpToGrAf...
A: В этой эхе за никами прятаться не принято. разве, что Disturbo (его
и так все знают), а Harry Вush - это имя такое 8-))
Q: Дайте описание файла ... (MP3, JPG, etc)
A: Ребята, возьмите в интернете. Что любопытно, там описаны и заголовки,
из которых можно почерпнуть "открытые тексты" для "частично" "plain-text
known attack"
XII. Заключение.
Спасибо всем, кто дочитал до этого места ;)