From 6ada5362b37bb5dd03588d8b7ea2e0dcd2bb89c6 Mon Sep 17 00:00:00 2001 From: Libkyy Date: Thu, 21 Apr 2022 14:47:17 +0200 Subject: [PATCH] RSA --- src/RSA/RSA.class | Bin 0 -> 1327 bytes src/RSA/RSA.java | 63 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 src/RSA/RSA.class create mode 100644 src/RSA/RSA.java diff --git a/src/RSA/RSA.class b/src/RSA/RSA.class new file mode 100644 index 0000000000000000000000000000000000000000..a000398c37614d31782e4b53ce3897db579eb9ee GIT binary patch literal 1327 zcmZ`&*-{fh6g{0uG9(N{a6nWPRAd$)aYbYi(71poV!#r4n!pHAk{}sezQ8wMT}plR z#VSgRt+dMW*>CX+EVt7$5%;N@Ue4{l=iYN~fB5?59e_Ses0axtmotOWfwA|5fapM@ zKXak~SeU^g4gpO=6{-cIy}3fpJ0YN&X@1s~7`C8BMXiRd&;_>KaBe%Pd8aU&%G@h? zZk{y7B~PGk#JA*%sY{Ewf|v0YT_@ioUDs>ah6aJitm{oWJa1a*ICfyCibf5)uv=j3 zKkhPw1?g$NAP_bgiS*U1Vb7+otVH%{Xpu;i-p{-D;%J4T!j$P)zlA%Rz2QzXP}2LZ z+BCGIgDklcBhI@4%e5GNrZgPDK>=}#e_A4kH5`#h#F<~1b0pHK;h021SN-jA4c);u zTY+8@-)hb;mAvMx+srKT?jD)(37Kv`wK4;-0vSDKIol(H8pKHzr!=H-TA=!;(ia?W zj)5-}?=S+^Md~+*vl`A}h`5t21;MAI{a>&9UvwZSEdvebog5{sH>dtZO8cqe43kfc z~-unHef$Sqiw7rX5 zSJCwXm87ffSwo+s2>BFy=^AtvMuLuO_#A3c$H%afq%G|1b~NBJPt+jvjX*?&Q25EH zglznB6c!x_dCXoR=?ac+V1QGyv`jEaCh8w(l1=a`~F5oxKT<%dIBhH0^AF|3DA5HXewYjy)?bPPXwhDw6Z{{k&Tg4S}i zOd^mg>8syLfed!Mi4LZ41U6qs8+s|$D3LKFF@qGYvn`}_F(_Zqt0+3FFCS$&i3uhl zyK0w?ks-77(NpNHW~o{Rr@S;1(?c)5eGI?cWDa_vlO52-5_PjYoh(wH&k%?58DS;y MiA^Yw@$Za(2L+Jc{{R30 literal 0 HcmV?d00001 diff --git a/src/RSA/RSA.java b/src/RSA/RSA.java new file mode 100644 index 0000000..2460b77 --- /dev/null +++ b/src/RSA/RSA.java @@ -0,0 +1,63 @@ +public class RSA +{ + double q,alpha,Xa,Xb; + + public static void main(String[] args) + { + RSA pair1 = new RSA(71, 7, 5, 12); + System.out.println(pair1.getYa()); + System.out.println(pair1.getYb()); + System.out.println(pair1.getKey()); + } + + RSA(double q , double alpha, double Xa, double Xb) + { + if(isPrime(q)) + { + this.q = q; + this.alpha = alpha; + this.Xa = Xa; + this.Xb = Xb; + } + else + System.out.println("q must be prime!"); + } + + public double getYa() + { + return Math.pow(alpha,Xa) % q; + } + + public double getYb() + { + return Math.pow(alpha,Xb) % q; + } + public double getKey() + { + double Kab,Kba; + Kab = Math.pow(getYb(),Xa) % (int) q; + System.out.println(Kab); + Kba = Math.pow(getYa(),Xb) % (int) q; + System.out.println(Kba); + if(Kab == Kba) + return Kab; + else if(Math.abs(Kab - Kba) <= 1.9 && Kab > Kba) + return Kab; + else if(Math.abs(Kab - Kba) <= 1.9 && Kba > Kab) + return Kba; + else + return 0; + } + //Check if number is prime + public static boolean isPrime(double n) + { + for(double i=2;i