Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h"
- int power_modulo_fast(int a, int b, int m)
- {
- int i;
- int result = 1;
- int x = a % m;
- for (i=1; i<=b; i<<=1)
- {
- x %= m;
- if ((b&i) != 0)
- {
- result *= x;
- result %= m;
- }
- x *= x;
- }
- return result;
- }
- int decrypt_encrypt(int num, int Decrypt, int Encrypt, int PQ) {
- printf("Decrypt op for %d\n", num);
- int ctxt = power_modulo_fast(num, Encrypt, PQ);
- printf("cipher num %d\n", ctxt);
- int ctxt2 = power_modulo_fast(ctxt, Decrypt, PQ);
- printf("decrypt num %d\n", ctxt2);
- return 0;
- }
- int main() {
- int Decrypt = 157;
- int Encrypt = 17;
- int P = 47;
- int Q = 59;
- int PQ = P*Q;
- printf("Modulo %d\n", PQ);
- decrypt_encrypt(920, Decrypt, Encrypt, PQ);
- decrypt_encrypt(100, Decrypt, Encrypt, PQ);
- decrypt_encrypt(1000, Decrypt, Encrypt, PQ);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement