def testSignature_RSA_CRT(self):
        message = 11

        p, q, N, d, e = tp2.generer_cle_RSA(1024)
        s1 = pow(message, d, N)

        s2 = tp2.signature_RSA_CRT(message, (p, q, N, d, e))

        self.assertEqual(s1, s2)
    def test_RSA_CRT_Bellcore(self):
        m = 11
        K = tp2.generer_cle_RSA(1024) # K[4] = e, K[2] = N

        p, q = tp2.RSA_CRT_Bellcore(m, K)

        # On peut retrouver d(decrypt)
        phi = (p - 1) * (q - 1) # On a deduit p, et q, on deduit phi pour deduire d (voir suite)
        d = tp2.inverse(K[4], phi) # d a pardir de e(encrypt) = K[4] qui est publique

        # On test si un message dechiffre avec la cle trouve est le meme que celui avec la vrai cle
        self.assertEqual(pow(m, d, (p*q)), pow(m, K[3], K[2]))
    def testGenerationCleRSA(self):
        message = 11
        p, q, N, d, e = tp2.generer_cle_RSA(1024)
        c = pow(message, e, N)

        self.assertEqual(pow(c, d, N), message)