logo
Коды и шифры

Бросание костей

Менее трудоемкая процедура основана на бросании двух игральных костей. Кости должны отличаться друг от друга; предположим, что одна из костей окрашена в красный цвет, а другая в голубой. Бросаем обе кости и вычислим значение

6(значение красной кости)+(значение голубой кости)-7.

Затем

(1) отвергаем полученное число, если оно превосходит 29;

иначе

(2) записываем остаток от деления полученного числа на 10.

Полученная последовательность десятичных цифр должна быть случайной.

Такие странные правила нам понадобились, так как грани костей помечены цифрами от 1 до 6, а не от 0 до 5, и так как всего возможно 36 комбинаций. Диапазон возможных значений получается, таким образом, от 0 до 35. Поэтому чтобы гарантировать равенство шансов на появление для всех цифр от 0 до 9, необходимо отбрасывать все числа, большие 29.

Можно использовать больше двух костей; тогда за одно бросание можно получить более одного случайного десятичного знака. Например, для четырех костей существует 1296 возможных исходов, и если мы покрасим кости в красный, голубой, зеленый и белый цвета и вычислим значение

216красный+36голубой+6зеленый+белый-259,

отвергая любое число, большее 999, то можно рассматривать полученное таким образом трехзначное число как следующие три элемента случайной десятичной последовательности.

У такого подхода есть множество возможных вариаций; например, пару костей можно заменить на колесо рулетки, которое имеет 37 секторов, пронумерованных от 0 до 36. Секторы с 30 по 36 необходимо игнорировать, тогда младшая цифра номера "выигравшего" сектора дает следующую случайную десятичную цифру. Это довольно расточительный способ: эффективнее в этом случае было бы игнорировать сектора с 32 по 36 и преобразовывать все остальные номера (от 0 до 31) в двоичные числа, получая, таким образом, пять двоичных знаков за один раз. Двоичные знаки в обиходе также известны как биты; именно так их часто называют. Двоичная гамма широко используется в криптографии. Ее достоинство не только в том, что операция сложения по модулю 2 очень просто устроена, и к тому же совпадает с операцией вычитания по модулю 2, что делает зашифрование и расшифрование одинаковым, но и в том, что двоичную арифметику очень просто реализовать в электронных устройствах, и поэтому она особенно хорошо подходит для шифрмашин и их компьютерных симуляторов.