Был ли предложен или изучен следующий метод сокрытия данных? Какова эффективность или безопасность этого метода? Какие приложения могут использовать этот метод?
Данные должны быть скрыты в числе, являющемся произведением двух простых чисел.
Одно простое число содержит скрытые данные, а большее
простое число указывает длину данных, построенных с использованием конкатенации следующим образом.
$p = p_0 \ || \ данные \ || \ p_{конец}\ \ $ и $ \ \ q = q_0 \ || \ маркер \ || \ q_{конец}$
куда $p_0$ и $q_0$ случайны $сингл$ ненулевые цифры с $p_0 < q_0$,
$данные$ это число с $к$ (десятичные) цифры,
$маркер$ это случайное число с $к-1$ ненулевые цифры, за которыми следует $0$, и
$p_{конец}$ и $q_{конец}$ случайные числа с $nk-1$ цифры.
Закодированные данные $N = P \× Q$ куда $P$ и $Q$ являются следующими простыми числами после $р$ и $q$.
$n$ выбирается достаточно большим, чтобы факторизация $2n$-значное число невозможно
и чтобы вместе с выбором $p_{конец}$ и $q_{конец}$, строительство $P$ и $Q$ не вызывает $данные$ или же $маркер$ изменить.
Несколько комментариев: (1) Хотя некоторые ограничения на $P$ и $Q$ известны, недостаточно использовать «факторинг с частичной информацией/известными битами». (2) Зная $P$ и $Q$, в любом порядке, позволяет однозначно найти скрытые данные. (3) Метод легко адаптируется к двоичному коду.
Пример: $данные$ это 271828 с $к$ = 6. Для простоты используем $n$ = 12:
$p = \mathtt {1 \underline {271828} 67213}$,
$P = \mathtt {1 \underline {271828} 67221} \ \ $ и
$ \ \ q = \ matthtt {6 \ underline {97811} \ underline {\ underline {0}} 97478} $,
$ Q = \ matthtt {6 \ underline {97811} \ underline {\ underline {0}} 97499 $
$N = P \times Q = \mathtt {88749616158555602180279}$.
РЕДАКТИРОВАТЬ: данные могут быть любым целым числом (ноль или больше). Чтобы подчеркнуть, что оно не обязательно должно быть простым, я изменил данные примера с 314159 (что является простым числом) на 271828 (составное число).
РЕДАКТИРОВАТЬ (30 марта): добавлено «сингл» в описания $p_0$ и $q_0$ подчеркнуть, что каждый из $p_0$ и $q_0$ является одной ненулевой цифрой. Обратите внимание, что размер данных ($к$) заранее неизвестен, но обозначается $маркер$. Кроме того, самый известный результат, полученный Копперсмитом, заключается в том, что факторизация проста, если известна половина битов множителя.