по 32700 знаков... довольно быстро... а поиск всех множителей бы время много занял....
а если заменим умножение на Сложение (с модулем 10 на каждый знак)
типа секрет 2345
текущий шифр 6789
открытое число для передачи 2+6 8 3+7 0 4+8 2 5+9 4
8024
ну по идее оно — это число из 50 знаков.... тут то просто перебор точно займёт хуллиард лет.... нее???
В общем, вот в такой постановке оно как-то может работать: есть два больших простых числа P и Q. P по секрету отдается адресату, Q держится в секрете ото всех. Одноразовый ключ генерируется как K_i = Q * R_i, где R_i - одноразовое случайное простое число. При помощи K_i шифруем сообщение, к сообщению прилагаем S_i = P * K_i = P * Q * R_i. Тогда адресат может вычислить K_i как S_i / P и расшифровать сообщение. В то же время, gcd({K_i}) = P * Q, т.е. восстановить P трудно. Надо подумать еще, я устал и могу какую-то фигню писать. Но это все равно никуда не годится, т.к. утечка одного K_i рушит всю малину.
Может поработать над Скрытием пересылаемого числа? условно - наш Шифруемый текст 1213 букв - конвертируем буквы в цифры = 2426 цифр... делаем перестановки и перекодировки всякие и перемножение на K_i - получили шифр так как Q держится в секрете от всех - то на основании его делаем какие либо манипуляции с ним- типа в куб возводим и полученное число сокращаем по модулю длины шифра... получится число гдето от 0 до 2426... вот от начала шифра и вставляем наше S_i а в начале шифрограммы указать Сумму начального смещения и 4х цифр с конца Q Q = xxxxxx......2578 2578 - хвост секрета 2426 - количество символов в шифре ==== 4994 к этому числу прибавляем смещение 0.....2426 - смещение для вставки S_i - условно 1232 ==== 4994 1232 ==== 5126 и вставляем 8 знаковый индикатор в начало шифрограммы 49945126..ххххх шифротекст до смещения...S_i.....xxxxx продолжение шифротекста пересылать сплошным числом...
Обсуждают сегодня