У меня есть работа в университете, я должен закодировать RSA по спецификации RSA-OAEP. Мой профессор дает мне один pdf-файл с спецификацией RFC 3447.Реализация i2osp и os2ip
В PDF У меня есть следующий:
I2OSP преобразует неотрицательное целое октетной строки определенной длиной .
I2OSP (х, xLen)
Входной сигнал: х неотрицательное целое число, чтобы быть преобразованы xLen предназначены длину результирующей октета строки
Выход: X соответствующая строка октетов длины xLen
Ошибка: «целое слишком большое»
Этапы:
Если x> = 256^xLen, выведите «integer too large» и остановите.
Написать целое число х в своей уникальной xLen-значного представления в базе 256:
x = x_(xLen-1) 256^(xLen-1) + x_(xLen-2) 256^(xLen-2) + ... + x_1 256 + x_0,
где 0 < = x_i < 256 (обратите внимание, что один или более первые цифры будут нуль, если х равен менее 256 мк (xLen-1)).
Пусть октет X_i есть целое значение x_ (xLen-I) в течение 1 < = I < = xLen. Вывод строка октетов
X = X_1 X_2 ... X_xLen.
4,2 OS2IP
OS2IP преобразует октет строку в неотрицательное целое число.
OS2IP (Х)
Входной сигнал: Х строка октетов быть преобразованы
Выход: х соответствующее неотрицательное целое число
действия:
Пусть X_1 X_2 .. X_xLen - это октеты X от первого до последнего, и x_ (xLen-i) - целочисленное значение октет X_i для = i < = xLen.
Пусть х = Х- (xLen-1) 256^(xLen-1) + Х- (xLen-2) 256^(xLen-2) + ...
- x_1 256 + x_0.
Выход х.
Но я не могу понять этот псевдокод, может кто-нибудь дать мне одно объяснение, как я это делаю? Ответ может быть либо в псевдокоде, либо в реализации python.
Вам нужно будет уточнить, какая часть вас путает. Однако мы не собираемся делать домашнее задание для вас. –
Это не моя домашняя работа. Как я уже говорил, если вы внимательно прочитаете, моя домашняя работа - это код реализации python для rsa с оптимальной асимметричной схемой шифрования (RSA-OAEP). Вы можете проверить документ для получения более подробной информации в ietf.org/rfc/rfc3447.txt. Я просто не понимаю, как этот примитив преобразования данных работает с чтением документа. Как я уже сказал, если вы ставите псевдокод или объясните мне, я бы вас признал, потому что я не могу понять, как читать документ, как мне нужно сделать, чтобы преобразовать целое число в строку октета, я не хочу, чтобы вы или кто-то сделаю домашнее задание .. –
Кстати ... Я сам разрешил проблему. Благодаря вашему внимательному комментарию, полному знаний, вы очень добры. Может быть, когда-нибудь я попытаюсь купить тебя, чтобы сделать домашнее задание для меня ... –