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 testInverse(self):
     self.assertEqual(tp2.inverse(2, 7), 4)
     self.assertEqual(tp2.inverse(-2, 7), 3)
     self.assertEqual(tp2.inverse(-9, 7), 3)