RSASSA-PSS (RSA Signature Scheme with Appendix-Probabilistic Signature Scheme) — асиметричний алгоритм цифрового підпису. Заснований на принципі кодування PSS, запропонованому в 1996 році авторами Mihir Bellare і Phillip Rogaway. Внесений в стандарт v2.1 від 2002 року, розроблений RSA Laboratories, США.
Опис алгоритму
Нехай Аліса (A) хоче послати повідомлення M Бобу (B), запевнивши його електронним підписом S. B, отримавши повідомлення від A, повинен верифікувати підпис (перевірити на справжність).
- (n, e) — відкритий ключ, і (n, e,d) — відповідний закритий ключ A. n — ціле позитивне число довжиною modBits біт або k байт (Наприклад: двійковий запис n вимагає 1028 символів, тоді modBits = 1028, k = 129, так як ).
- emBits = modBits — 1
- zBits = 8emLen — emBits
У даній статті під словосполученням «старший байт (біт)» розуміється перший, лівий байт (біт). Під «молодший байт (біт)» відповідно розуміється найостанній, правий байт (біт). Також під словом «рядок» слід розуміти певний масив, елементами якого є поодинокі байти. Таким чином «рядковим поданням числа n» є рядок N, отриманий розбиттям двійковій запису n на байти. Наприклад:
- n = 258 {100000010}
- N = [1/2] {00000001/00000010}
При цьому [1] — старший байт, а [2] — молодший байт. Далі описані функції створення і верифікації електронного підпису.
Створення підпису
RSASSA-PSS-Sign((n, e,d), M)
- Вхідні дані:(n, e,d) — закритий ключ
- M — підписане повідомлення, рядок
- Вихідні дані:S — підпис, рядок довжини k
- Можливі помилки: «повідомлення дуже довге»; «помилка кодування»
- Послідовність дій:
- PSS-кодування:
- Застосуємо функцію PSS-Encode (яка буде описана нижче) до рядка M для отримання рядка EM довжини x.
- EM така, що довжина в бітах цілочисельного подання EM не перевищує emBits, і zBits старших біт дорівнює 0.
- EM = PSS-Encode(M, emBits)
- Зауважимо, що довжина EM дорівнює (k-1), якщо emBits ділиться на 8 без залишку, і дорівнює k в іншому випадку.
- Якщо PSS-encoding повертає помилку «повідомлення дуже довге», виводиться повідомлення про помилку і робота припиняється.
- Якщо PSS-encoding повертає помилку «помилка кодування», виводиться повідомлення про помилку і робота припиняється.
- RSA-підпис:
- Присвоїмо m цілочисельне подання рядка EM.
- m = str-to-int(EM)
- Використовуємо закритий ключ.
- s = md mod n
- Уявімо s, як байтовий рядок довжини k.
- S = int-to-str(s, k)
- Висновок S
PSS-кодування
PSS-Encode(M, emBits)
- Опції:
- Hash — геш-функція, що повертає байтовий рядок довжини hLen
- MGF — mask generation function. Перетворює вхідний байтовий рядок в рядок заданої довжини (буде докладно описано нижче).
- sLen — довжина байтового рядка salt
- Вхідні дані:
- M — підписане повідомлення, рядок
- emBits — максимальна довжина в бітах цілочисельного подання вихідний рядка EMщонайменше (8hLen + 8sLen + 9)
- Вихідні дані:
- EM — закодоване повідомлення, рядок довжини emLen
- Можливі помилки:
- «повідомлення дуже довге»; «помилка кодування»
- Послідовність дій:
- Якщо довжина M більша максимально можливої довжини вхідного рядка обраної хеш-функції ( байт для SHA-1), повертається повідомлення «повідомлення дуже довге» і робота припиняється.
- mHash = Hash(M), рядок довжини hLen.
- Якщо emLen < (hLen + sLen + 2), повертається повідомлення «помилка кодування» і робота припиняється.
- Генерується випадковий рядок salt довжини sLen; якщо sLen = 0, salt — порожній рядок.
- M' = (0x)00 00 00 00 00 00 00 00||mHash||salt, рядок довжини (8 + hLen + sLen), перші 8 байт якої — нульові.
- H = Hash(M'), рядок довжини hLen.
- Рядок PS, що генерується, складається з (emLen — hLen — sLen — 2) нульових байтів. Довжина PS може виявитися рівною нулю.
- DB = PS||0x01||salt, рядок довжини (emLen — hLen — 1).
- dbMask = MGF(H, emLen — hLen — 1), рядок довжини (emLen — hLen — 1).
- maskedDB = DB ⊕ dbMask.
- zBits старших біт в старшому байті maskedDB встановлюються в 0.
- TF = 0xBC.
- EM = maskedDB||H||TF
- Висновок EM.
Верифікація підпису
RSASSA-PSS-Verify((n, e), M, S)
- Вхідні дані:(n, e) — відкритий ключ
- M — отримане повідомлення, рядок
- S — підпис, що підлягає перевірці, рядок довжини k
- Вихідні дані: "підпис дійсний" або «підпис недійсний»
- Послідовність дій:
- Перевірка довжини:
- Якщо довжина підпису S більша k байт, то виноситься рішення «підпис недійсний», і робота припиняється.
- RSA-перевірка:
- Присвоїмо m цілочисельне подання рядка S.
- m = str-to-int(S)
- Використовуємо відкритий ключ.
- s = me mod n
- Уявімо m, як байтовий рядок довжини emLen.
- EM = int-to-str(m, emLen)
- Зауважимо, що emLen дорівнює (k-1), якщо emBits ділиться на 8 без залишку й дорівнює k в іншому випадку. Якщо ж запис числа m займає більше emLen байт, то виноситься рішення «підпис недійсний», і робота припиняється.
- PSS-перевірка:
- Застосуємо функцію PSS-Verify (яка буде описана нижче). Остаточне рішення збігається з рішенням, винесеним PSS-Verify.
- Output = PSS-Verify(M, EM, emBits)
- Застосуємо функцію PSS-Verify (яка буде описана нижче). Остаточне рішення збігається з рішенням, винесеним PSS-Verify.
PSS-перевірка
PSS-Verify(M, EM, emBits)
- Опції:
- Hash — геш-функція, що повертає байтовий рядок довжини hLen.
- MGF — mask generation function. Перетворює вхідний байтовий рядок в рядок заданої довжини (буде докладно описано нижче).
- sLen — довжина байтового рядка salt.
- Вхідні дані:
- M — отримане повідомлення, рядок.
- EM — закодоване повідомлення, рядок довжини emLen.
- emBits — максимальна довжина в бітах цілочисельного подання рядка EM щонайменше (8hLen + 8sLen + 9).
- Вихідні дані: "підпис дійсний" або «підпис недійсний»
- Послідовність дій:
- Якщо довжина M більша максимально можливої довжини вхідного рядка обраної геш-функції ( байт для SHA-1), виноситься рішення: «підпис недійсний» і робота припиняється.
- mHash = Hash(M), рядок довжини hLen.
- Якщо emLen < (hLen + sLen + 2), виноситься рішення: «підпис недійсний» і робота припиняється.
- Якщо молодший байт EM поле TF) не дорівнює 0xBC, то виноситься рішення: «підпис недійсний» і робота припиняється.
- Старші (emLen — hLen — 1) байт EM записуються в рядок maskedDB, а наступні hLen байт — в рядок H.
- Якщо старші zBits біт старшого байта maskedDB не нульові, то виноситься рішення: «підпис недійсний» і робота припиняється.
- dbMask = MGF(H, emLen — hLen — 1), рядок довжини (emLen — hLen — 1).
- DB = maskedDB ⊕ dbMask.
- zBits старших біт в старшому байті DB встановлюються в 0.
- Якщо старші (emLen — hLen — sLen — 2) байт DB не дорівнюють 0 або якщо, наступний байт (байт на позиції (emLen — hLen — sLen — 1), прийнявши позицію старшого байта рівного 1) не дорівнює 0x01, то виноситься рішення: «підпис недійсний» і робота припиняється.
- У байтовий рядок salt записуються останні sLen байт DB.
- M’ = (0x)00 00 00 00 00 00 00 00||mHash||salt, рядок довжини (8 + hLen + sLen), перші 8 байт якої — нульові.
- H’ = Hash(M’), рядок довжини hLen.
- Якщо H = H’, то виноситься рішення «підпис дійсний», інакше виноситься рішення: «підпис недійсний».
Mask Generation Function
Опишемо MGF, яка використана в PSS-функціях. MGF приймає на вхід байтовий рядок довільної довжини і бажану довжину вихідного рядка й видає байтовий рядок бажаної довжини. На довжину вхідний і вихідний рядків можуть накладатися обмеження, але вони зазвичай дуже великі. MGF детермінована; вихідий рядок повністю визначається вхідним рядком. Вихідні дані MGF повинні бути псевдовипадковми, тобто знаючи частину вихідного рядка, має бути практично неможливо передбачити частину вихідного рядка. Цього можна домогтися, поклавши в основу MGF геш-функцію з аналогічною властивістю. Ця властивість необхідна, так як на неї покладається доказ надійності алгоритму. У стандарті PKCS#1 v2.1 як MGF пропонується використовувати наступну функцію:
MGF1(M, maskLen)
- Опції:
- Hash — геш-функція, що повертає байтовий рядок довжини hLen.
- Вхідні дані:
- M — Рядок, який перетворюється
- maskLen — необхідна довжина вихідного байтового рядка, не перевищує 232hLen.
- Вихідні дані:
- mask — рядок довжини maskLen.
- Можливі помилки:
- «довжина маски занадто велика»
- Послідовність дій:
- Якщо maskLen > 232hLen, виводиться повідомлення «довжина маски занадто велика» і робота припиняється.
- Нехай T — порожній рядок.
- У циклі ДЛЯ i ВІД 0 ДО ВИКОНУЄТЬСЯ:
- Уявімо i як байтовий рядок C довжину 4 байта.
- C = int-to-str(i,4)
- M' = M||C.
- Дописується в кінець рядка T результат гешування M'.
- T = T||Hash(M')
- Запишемо в mask старші maskLen байт рядки T.
- Висновок mask.
Параметри
У стандарті PKCS#1 v2.1 RSASSA-PSS присвоєний ідентифікатор id-RSASSA-PSS, з яким повинна асоціюватися послідовність чотирьох параметрів. До цих параметрів відносяться геш-функція, MGF, довжина випадково згенерованого рядка salt (sLen), trailerField поле TF). Значення за замовчуванням цих параметрів, розглянуті в цьому стандарті, наведено в таблиці.
Праметр | Тип | Значення за замовчуванням |
---|---|---|
hashAlgorithm | HashAlgorithm | sha1 |
maskGenAlgorithm | MaskGenAlgorithm | mgf1SHA1 |
saltLength | INTEGER | 20 |
trailerField | TrailerField | trailerFieldBC |
- Рекомендується, щоб геш-функція, на якій базується MGF (якщо таке має місце) збігалася з тією, що задається параметром hashAlgorithm.
- Значення за умовчанням для параметра saltLength дорівнює довжині вихідного рядка обраної геш-функції (hLen). На відміну від інших параметрів, saltLength не обов'язково повинна бути фіксованою для даної пари RSA-ключів.
- Поле TF введено для сумісності з проектом . У цьому стандарті підтримується тільки значення trailerField рівне 0xBC. Однак, воно може мати й інший вигляд, наприклад HID||0xCC, де HID — ідентифікатор геш-функції, зазначений у стандарті ISO/IEC 10118.
Особливості
Допустима довжина повідомлень для методу RSA-PSS або необмежена, або обмежена дуже великим значенням, обумовленим геш-функцією, яка використовується в PSS-кодуванні.
RSA-PSS відрізняється від інших схем цифрового підпису на основі RSA тим, що вона ймовірнісна, а не детермінована, оскільки включає в себе використання випадково згенерованої величини (salt). Величина salt посилює надійність схеми.
Надійність
Вважаючи, що обчислення кореня довільного степеня за модулем n є нездійсненним з практичної точки зору операцією, і геш-функція і MGF володіють необхідними властивостями, RSA-PSS забезпечує захищеність підпису. Надійність доказова в тому сенсі, що складність злому підпису може бути безпосередньо пов'язана зі складністю злому криптографічного примітиву (математичної проблеми, що лежить в основі RSA). Імовірність успішного злому й час роботи найкращого методу злому RSA-PSS дуже близькі до тих же параметрів алгоритму знаходження оберненої функції RSA.
Описана раніше схема підпису відрізняється від оригінального алгоритму, запропонованого Mihir Bellare і Phillip Rogaway. Однак, необхідний доказ для даної схеми наведено в роботі Джейкоба Джонссона (Jacob Jonsson).
Примітки
- (PDF). Архів оригіналу (PDF) за 13 червня 2010. Процитовано 21 квітня 2018.
- (PDF). Архів оригіналу (PDF) за 4 березня 2016. Процитовано 21 квітня 2018.
- . Архів оригіналу за 31 липня 2013. Процитовано 21 квітня 2018.
- . Архів оригіналу за 6 березня 2016. Процитовано 21 квітня 2018.
Джерела
- PKCS #1 v2.1 [ 31 липня 2013 у Wayback Machine.]
- Alfred Menezes «Evaluation of Security Level of Cryptography: RSA-OAEP, RSA-PSS, RSA Signature» [ 4 березня 2016 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
RSASSA PSS RSA Signature Scheme with Appendix Probabilistic Signature Scheme asimetrichnij algoritm cifrovogo pidpisu Zasnovanij na principi koduvannya PSS zaproponovanomu v 1996 roci avtorami Mihir Bellare i Phillip Rogaway Vnesenij v standart v2 1 vid 2002 roku rozroblenij RSA Laboratories SShA Opis algoritmuNehaj Alisa A hoche poslati povidomlennya M Bobu B zapevnivshi jogo elektronnim pidpisom S B otrimavshi povidomlennya vid A povinen verifikuvati pidpis pereviriti na spravzhnist n e vidkritij klyuch i n e d vidpovidnij zakritij klyuch A n cile pozitivne chislo dovzhinoyu modBits bit abo k bajt Napriklad dvijkovij zapis n vimagaye 1028 simvoliv todi modBits 1028 k 129 tak yak k y 8 displaystyle k lceil y 8 rceil emBits modBits 1 e m L e n e m B i t s 8 displaystyle emLen lceil emBits 8 rceil zBits 8emLen emBits U danij statti pid slovospoluchennyam starshij bajt bit rozumiyetsya pershij livij bajt bit Pid molodshij bajt bit vidpovidno rozumiyetsya najostannij pravij bajt bit Takozh pid slovom ryadok slid rozumiti pevnij masiv elementami yakogo ye poodinoki bajti Takim chinom ryadkovim podannyam chisla n ye ryadok N otrimanij rozbittyam dvijkovij zapisu n na bajti Napriklad n 258 100000010 N 1 2 00000001 00000010 Pri comu 1 starshij bajt a 2 molodshij bajt Dali opisani funkciyi stvorennya i verifikaciyi elektronnogo pidpisu Stvorennya pidpisu RSASSA PSS Sign n e d M Vhidni dani n e d zakritij klyuch M pidpisane povidomlennya ryadok Vihidni dani S pidpis ryadok dovzhini k Mozhlivi pomilki povidomlennya duzhe dovge pomilka koduvannya Poslidovnist dij PSS koduvannya Zastosuyemo funkciyu PSS Encode yaka bude opisana nizhche do ryadka M dlya otrimannya ryadka EM dovzhini x EM taka sho dovzhina v bitah cilochiselnogo podannya EM ne perevishuye emBits i zBits starshih bit dorivnyuye 0 EM PSS Encode M emBits dd Zauvazhimo sho dovzhina EM dorivnyuye k 1 yaksho emBits dilitsya na 8 bez zalishku i dorivnyuye k v inshomu vipadku Yaksho PSS encoding povertaye pomilku povidomlennya duzhe dovge vivoditsya povidomlennya pro pomilku i robota pripinyayetsya Yaksho PSS encoding povertaye pomilku pomilka koduvannya vivoditsya povidomlennya pro pomilku i robota pripinyayetsya RSA pidpis Prisvoyimo m cilochiselne podannya ryadka EM m str to int EM dd Vikoristovuyemo zakritij klyuch s md mod n dd Uyavimo s yak bajtovij ryadok dovzhini k S int to str s k dd Visnovok S PSS koduvannya PSS Encode M emBits Opciyi Hash gesh funkciya sho povertaye bajtovij ryadok dovzhini hLen MGF mask generation function Peretvoryuye vhidnij bajtovij ryadok v ryadok zadanoyi dovzhini bude dokladno opisano nizhche sLen dovzhina bajtovogo ryadka salt Vhidni dani M pidpisane povidomlennya ryadok emBits maksimalna dovzhina v bitah cilochiselnogo podannya vihidnij ryadka EMshonajmenshe 8hLen 8sLen 9 PSS Encode Vihidni dani EM zakodovane povidomlennya ryadok dovzhini emLen Mozhlivi pomilki povidomlennya duzhe dovge pomilka koduvannya Poslidovnist dij Yaksho dovzhina M bilsha maksimalno mozhlivoyi dovzhini vhidnogo ryadka obranoyi hesh funkciyi 2 61 1 displaystyle 2 61 1 bajt dlya SHA 1 povertayetsya povidomlennya povidomlennya duzhe dovge i robota pripinyayetsya mHash Hash M ryadok dovzhini hLen Yaksho emLen lt hLen sLen 2 povertayetsya povidomlennya pomilka koduvannya i robota pripinyayetsya Generuyetsya vipadkovij ryadok salt dovzhini sLen yaksho sLen 0 salt porozhnij ryadok M 0x 00 00 00 00 00 00 00 00 mHash salt ryadok dovzhini 8 hLen sLen pershi 8 bajt yakoyi nulovi H Hash M ryadok dovzhini hLen Ryadok PS sho generuyetsya skladayetsya z emLen hLen sLen 2 nulovih bajtiv Dovzhina PS mozhe viyavitisya rivnoyu nulyu DB PS 0x01 salt ryadok dovzhini emLen hLen 1 dbMask MGF H emLen hLen 1 ryadok dovzhini emLen hLen 1 maskedDB DB dbMask zBits starshih bit v starshomu bajti maskedDB vstanovlyuyutsya v 0 TF 0xBC EM maskedDB H TF Visnovok EM Verifikaciya pidpisu RSASSA PSS Verify n e M S Vhidni dani n e vidkritij klyuch M otrimane povidomlennya ryadok S pidpis sho pidlyagaye perevirci ryadok dovzhini k Vihidni dani pidpis dijsnij abo pidpis nedijsnij Poslidovnist dij Perevirka dovzhini Yaksho dovzhina pidpisu S bilsha k bajt to vinositsya rishennya pidpis nedijsnij i robota pripinyayetsya RSA perevirka Prisvoyimo m cilochiselne podannya ryadka S m str to int S dd Vikoristovuyemo vidkritij klyuch s me mod n dd Uyavimo m yak bajtovij ryadok dovzhini emLen EM int to str m emLen dd Zauvazhimo sho emLen dorivnyuye k 1 yaksho emBits dilitsya na 8 bez zalishku j dorivnyuye k v inshomu vipadku Yaksho zh zapis chisla m zajmaye bilshe emLen bajt to vinositsya rishennya pidpis nedijsnij i robota pripinyayetsya PSS perevirka Zastosuyemo funkciyu PSS Verify yaka bude opisana nizhche Ostatochne rishennya zbigayetsya z rishennyam vinesenim PSS Verify Output PSS Verify M EM emBits dd PSS perevirka PSS Verify M EM emBits Opciyi Hash gesh funkciya sho povertaye bajtovij ryadok dovzhini hLen MGF mask generation function Peretvoryuye vhidnij bajtovij ryadok v ryadok zadanoyi dovzhini bude dokladno opisano nizhche sLen dovzhina bajtovogo ryadka salt Vhidni dani M otrimane povidomlennya ryadok PSS Verify EM zakodovane povidomlennya ryadok dovzhini emLen emBits maksimalna dovzhina v bitah cilochiselnogo podannya ryadka EM shonajmenshe 8hLen 8sLen 9 Vihidni dani pidpis dijsnij abo pidpis nedijsnij Poslidovnist dij Yaksho dovzhina M bilsha maksimalno mozhlivoyi dovzhini vhidnogo ryadka obranoyi gesh funkciyi 2 61 1 displaystyle 2 61 1 bajt dlya SHA 1 vinositsya rishennya pidpis nedijsnij i robota pripinyayetsya mHash Hash M ryadok dovzhini hLen Yaksho emLen lt hLen sLen 2 vinositsya rishennya pidpis nedijsnij i robota pripinyayetsya Yaksho molodshij bajt EM pole TF ne dorivnyuye 0xBC to vinositsya rishennya pidpis nedijsnij i robota pripinyayetsya Starshi emLen hLen 1 bajt EM zapisuyutsya v ryadok maskedDB a nastupni hLen bajt v ryadok H Yaksho starshi zBits bit starshogo bajta maskedDB ne nulovi to vinositsya rishennya pidpis nedijsnij i robota pripinyayetsya dbMask MGF H emLen hLen 1 ryadok dovzhini emLen hLen 1 DB maskedDB dbMask zBits starshih bit v starshomu bajti DB vstanovlyuyutsya v 0 Yaksho starshi emLen hLen sLen 2 bajt DB ne dorivnyuyut 0 abo yaksho nastupnij bajt bajt na poziciyi emLen hLen sLen 1 prijnyavshi poziciyu starshogo bajta rivnogo 1 ne dorivnyuye 0x01 to vinositsya rishennya pidpis nedijsnij i robota pripinyayetsya U bajtovij ryadok salt zapisuyutsya ostanni sLen bajt DB M 0x 00 00 00 00 00 00 00 00 mHash salt ryadok dovzhini 8 hLen sLen pershi 8 bajt yakoyi nulovi H Hash M ryadok dovzhini hLen Yaksho H H to vinositsya rishennya pidpis dijsnij inakshe vinositsya rishennya pidpis nedijsnij Mask Generation Function Opishemo MGF yaka vikoristana v PSS funkciyah MGF prijmaye na vhid bajtovij ryadok dovilnoyi dovzhini i bazhanu dovzhinu vihidnogo ryadka j vidaye bajtovij ryadok bazhanoyi dovzhini Na dovzhinu vhidnij i vihidnij ryadkiv mozhut nakladatisya obmezhennya ale voni zazvichaj duzhe veliki MGF determinovana vihidij ryadok povnistyu viznachayetsya vhidnim ryadkom Vihidni dani MGF povinni buti psevdovipadkovmi tobto znayuchi chastinu vihidnogo ryadka maye buti praktichno nemozhlivo peredbachiti chastinu vihidnogo ryadka Cogo mozhna domogtisya poklavshi v osnovu MGF gesh funkciyu z analogichnoyu vlastivistyu Cya vlastivist neobhidna tak yak na neyi pokladayetsya dokaz nadijnosti algoritmu U standarti PKCS 1 v2 1 yak MGF proponuyetsya vikoristovuvati nastupnu funkciyu MGF1 M maskLen Opciyi Hash gesh funkciya sho povertaye bajtovij ryadok dovzhini hLen Vhidni dani M Ryadok yakij peretvoryuyetsya maskLen neobhidna dovzhina vihidnogo bajtovogo ryadka ne perevishuye 232hLen Vihidni dani mask ryadok dovzhini maskLen Mozhlivi pomilki dovzhina maski zanadto velika Poslidovnist dij Yaksho maskLen gt 232hLen vivoditsya povidomlennya dovzhina maski zanadto velika i robota pripinyayetsya Nehaj T porozhnij ryadok U cikli DLYa i VID 0 DO m a s k L e n h L e n 1 displaystyle lceil maskLen hLen rceil 1 VIKONUYeTSYa Uyavimo i yak bajtovij ryadok C dovzhinu 4 bajta C int to str i 4 dd M M C Dopisuyetsya v kinec ryadka T rezultat geshuvannya M T T Hash M dd Zapishemo v mask starshi maskLen bajt ryadki T Visnovok mask Parametri U standarti PKCS 1 v2 1 RSASSA PSS prisvoyenij identifikator id RSASSA PSS z yakim povinna asociyuvatisya poslidovnist chotiroh parametriv Do cih parametriv vidnosyatsya gesh funkciya MGF dovzhina vipadkovo zgenerovanogo ryadka salt sLen trailerField pole TF Znachennya za zamovchuvannyam cih parametriv rozglyanuti v comu standarti navedeno v tablici Prametr Tip Znachennya za zamovchuvannyam hashAlgorithm HashAlgorithm sha1 maskGenAlgorithm MaskGenAlgorithm mgf1SHA1 saltLength INTEGER 20 trailerField TrailerField trailerFieldBC Rekomenduyetsya shob gesh funkciya na yakij bazuyetsya MGF yaksho take maye misce zbigalasya z tiyeyu sho zadayetsya parametrom hashAlgorithm Znachennya za umovchannyam dlya parametra saltLength dorivnyuye dovzhini vihidnogo ryadka obranoyi gesh funkciyi hLen Na vidminu vid inshih parametriv saltLength ne obov yazkovo povinna buti fiksovanoyu dlya danoyi pari RSA klyuchiv Pole TF vvedeno dlya sumisnosti z proektom U comu standarti pidtrimuyetsya tilki znachennya trailerField rivne 0xBC Odnak vono mozhe mati j inshij viglyad napriklad HID 0xCC de HID identifikator gesh funkciyi zaznachenij u standarti ISO IEC 10118 OsoblivostiDopustima dovzhina povidomlen dlya metodu RSA PSS abo neobmezhena abo obmezhena duzhe velikim znachennyam obumovlenim gesh funkciyeyu yaka vikoristovuyetsya v PSS koduvanni RSA PSS vidriznyayetsya vid inshih shem cifrovogo pidpisu na osnovi RSA tim sho vona jmovirnisna a ne determinovana oskilki vklyuchaye v sebe vikoristannya vipadkovo zgenerovanoyi velichini salt Velichina salt posilyuye nadijnist shemi NadijnistVvazhayuchi sho obchislennya korenya dovilnogo stepenya za modulem n ye nezdijsnennim z praktichnoyi tochki zoru operaciyeyu i gesh funkciya i MGF volodiyut neobhidnimi vlastivostyami RSA PSS zabezpechuye zahishenist pidpisu Nadijnist dokazova v tomu sensi sho skladnist zlomu pidpisu mozhe buti bezposeredno pov yazana zi skladnistyu zlomu kriptografichnogo primitivu matematichnoyi problemi sho lezhit v osnovi RSA Imovirnist uspishnogo zlomu j chas roboti najkrashogo metodu zlomu RSA PSS duzhe blizki do tih zhe parametriv algoritmu znahodzhennya obernenoyi funkciyi RSA Opisana ranishe shema pidpisu vidriznyayetsya vid originalnogo algoritmu zaproponovanogo Mihir Bellare i Phillip Rogaway Odnak neobhidnij dokaz dlya danoyi shemi navedeno v roboti Dzhejkoba Dzhonssona Jacob Jonsson Primitki PDF Arhiv originalu PDF za 13 chervnya 2010 Procitovano 21 kvitnya 2018 PDF Arhiv originalu PDF za 4 bereznya 2016 Procitovano 21 kvitnya 2018 Arhiv originalu za 31 lipnya 2013 Procitovano 21 kvitnya 2018 Arhiv originalu za 6 bereznya 2016 Procitovano 21 kvitnya 2018 Dzherela PKCS 1 v2 1 31 lipnya 2013 u Wayback Machine Alfred Menezes Evaluation of Security Level of Cryptography RSA OAEP RSA PSS RSA Signature 4 bereznya 2016 u Wayback Machine