Copyright © Titov Oleg, 2001, OTitov@gsu.unibel.by.
Одним из перспективных способов повышения стойкости известных шифров является задание неопределенности хода шифрования информации. Эта идея может быть реализована путем введения случайных данных в преобразуемое сообщение. "Подмешивание" случайных данных к шифруемому сообщению позволяет задать вероятностный характер операций преобразования и тем самым повысить вычислительную стойкость криптосистемы.
Пусть E есть b-битовая функция шифрования, P есть p-битовый блок открытого текста и R - r-битовый случайный блок, где b=r+p. Подадим на вход шифрующей функции блок B = R | P , где знак "|" обозначает конкатенацию двоичных векторов R и P:
P -> B = R | P -> C = E( B, K ),
где K - ключ шифрования. Для шифрования больших объемов данных исходный текст разбивается на блоки длиной p-бит и с каждым из них проводятся вышеуказанные операции. Для каждого такого блока в простых вероятностных шифрах генерируется новый случайный вектор R. В модернизированном простом вероятностном шифре для второго и далее блоков не генерируется случайный вектор R, а случайные биты берутся из предыдущего зашифрованного блока по следующей схеме.
Пусть P=P1|P2|P3|...|Pn - преобразуемое исходное сообщение, R - случайный r-битовый вектор, тогда
B1 = R | P1 , C1' | C1 = E( B1, K ), Bi = Ci-1 | Pi , Ci' | Ci = E( Bi, K ), C=C1' | C2' | ... | Cn' | Cn
где i изменяется от 2 до n, Ci' - p-битовый вектор, Ci - r-битовый вектор.
В результате мы избавляемся от главного недостатка простых вероятностных шифров - увеличение размера зашифрованного текста в сравнении с незашифрованым в b/p раз. Переход от случайных бит к псевдослучайным, при наличии "хорошей" функции E, не является существенным недостатком, т.к. в существующих криптографических системах используются именно псевдослучайные биты.