public void PrivateKey() { LucPrime lucPrime = new LucPrime(p: 1949, q: 2089); BigInteger message = 11111; LucPublicKey publicKey = new LucPublicKey(1103, 4071461); LegendreNumbers legend = new LucasSequences.LegendreNumbers(lucPrime, message); LucPrivateKey key = new LucPrivateKey(publicKey, legend); Assert.AreEqual <BigInteger>(key.d, 24017); }
public void EncryptMessageMod() { AAtkin a = new AAtkin(1350); LucPrime lucPrime = new LucPrime(a.RandomPrime, a.RandomPrime); BigInteger message = 11111; LegendreNumbers legendreNumbers = new LucasSequences.LegendreNumbers(primeNumbers: lucPrime, message: message); LucPublicKey publicKey = new LucPublicKey(lucPrime); LucPrivateKey privateKey = new LucPrivateKey(publicKey, legendreNumbers); var seqPublic = new LucasSequences.LucasSequence(message, 1); var ciphertext = seqPublic[publicKey.e, publicKey.N]; var seqPrivate = new LucasSequences.LucasSequence(ciphertext, 1); var result = seqPrivate[privateKey.d, privateKey.N]; Assert.AreEqual <BigInteger>(result, message); }