Kiedy mówisz, że "szyfrujesz kluczem prywatnym RSA", to tak naprawdę nie szyfrujesz rzeczy. To historyczne zamieszanie. Co robisz to podpis cyfrowy podpis cyfrowy, który wtyczka weryfikuje za pomocą odpowiedniego klucza publicznego. Zamieszanie wynika z faktu, że w odpowiednim świetle, podpisy RSA mogą być postrzegane jako rodzaj "odwrotnego szyfrowania" z kluczem prywatnym działającym jako pierwszy. Różni się jednak niektórymi detalami (np. Dopełnieniem i włączeniem funkcji skrótu), które powodują, że jest zupełnie inny, jeśli chodzi o implementację.
Jeśli używasz właściwego RSA schematu podpisu cyfrowego (np jeden z opisanych w PKCS#1 sekcja 8 „schematy podpisu z dodatkiem”), z odpowiednio dużym kluczem RSA (1024 bitów lub więcej) generowane poprzez poprawnie zaimplementowany algorytm generowania kluczy, , następnie, nie jest znany, możliwy do obliczenia sposób, w jaki atakujący może wykorzystać podpisy, które wyprodukowaliście w celu sfałszowania nowych podpisów (i, a fortiori, złamania prywatnego klucza RSA). W żaden sposób nie udowodniono, że twoje podpisy nie pomagają napastnikowi, ale 30 lat publicznych badań na ten temat nie doprowadziło do takiego naruszenia.
Należy jednak zauważyć, że szczegóły użytkowania, w szczególności dopełnienie (początkowa część, która przekształca dane, które mają zostać podpisane w dużą liczbę, którą może przetwarzać matematyczny rdzeń RSA), okazały się delikatne; wiele proponowanych sposobów wypełniania zostało skutecznie zaatakowanych. Poduszki PKCS # 1 były pod obserwacją od dłuższego czasu (dwie dekady w przypadku "v1.5") i opierały się dotychczasowym próbom. Rodzina paddings "ISO 9796" nie radziła sobie tak dobrze, wiele wariantów zostało złamanych.
Jeśli jesteś , nie, obliczając swoje podpisy zgodnie z ustalonym standardem (tj. PKCS # 1), wtedy szukasz kłopotów. Nie rób tego. Na szczęście większość implementacji RSA (w bibliotekach kryptograficznych i językach/środowiskach programowania) stosuje się do PKCS # 1.
Thaks za niesamowitą odpowiedź – Riz