Вероятность выигрыша с 1-й попытки =0,5
(чистое предположение, предполагающее однородные случайные значения X 0 или 1)
Вероятность победы во 2-й попытке, если он знает результат 1-й попытки =
1 - prob[((a=a+dc)mod256) И ((b=b+ad) mod256) И ((c=c+ba) mod256) И ((d=d+cb) mod256)]
Для начала, чтобы эти формулы были равны ¥256 (достигают одного и того же значения с помощью операции мода), по крайней мере, 3 из 4 значений должны быть ¥¥128.
На самом деле они должны содержать (а не просто быть больше или равными) достаточно степеней числа 2.
(dc=nâ¢256, ad=mâ¢256, ab=kâ¢256, cb=lâ¢256)
.... и т. д., однако я думаю, что нужно еще проверить, должны ли значения храниться в одном байте; т.е. по умолчанию a,b,c,d < 256?
» » » В случае, когда шаг 2 повторяется при каждом испытании, то я предполагаю, что единственный способ, которым противник выигрывает от знания функции (изменить свою вероятность выигрыша на более чем 0,5 чистого угадывания), - это если заданные формулы r не являются однородными случайными , т. е. если вы можете доказать, что модифицированные a, b, c, d смещены в сторону большего количества единиц или большего количества девяток, возможно, вероятность выигрыша должна увеличиться за счет уменьшения степень случайности.