summaryrefslogtreecommitdiffstats
path: root/Master/Kryptografie/p2/GalController.java
diff options
context:
space:
mode:
authorSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
committerSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
commit33613a85afc4b1481367fbe92a17ee59c240250b (patch)
tree670b842326116b376b505ec2263878912fca97e2 /Master/Kryptografie/p2/GalController.java
downloadStudium-master.tar.gz
Studium-master.tar.bz2
add new repoHEADmaster
Diffstat (limited to 'Master/Kryptografie/p2/GalController.java')
-rw-r--r--Master/Kryptografie/p2/GalController.java76
1 files changed, 76 insertions, 0 deletions
diff --git a/Master/Kryptografie/p2/GalController.java b/Master/Kryptografie/p2/GalController.java
new file mode 100644
index 0000000..00a34f2
--- /dev/null
+++ b/Master/Kryptografie/p2/GalController.java
@@ -0,0 +1,76 @@
+package krypto;
+
+public class GalController {
+
+ int key_s = 7;
+ int key_t = 3;
+
+ private char encryptChar(char klar)
+ {
+ GalNumber gn_geheim = new GalNumber();
+ GalNumber gn_klar = new GalNumber((int)klar);
+ GalNumber gn_key_s = new GalNumber(key_s);
+ GalNumber gn_key_t = new GalNumber(key_t);
+ GalNumber rijndael_mod = new GalNumber(GalNumber.RIJN_MOD);
+
+ gn_geheim = gn_klar.add(gn_key_s).mult(gn_key_t.mod(rijndael_mod));
+
+ System.out.println("Klar: "+gn_klar.toHex()+" Geheim: "+gn_geheim.toHex());
+
+ return gn_geheim.toChar();
+ }
+
+ private char decryptChar(char geheim)
+ {
+ GalNumber gn_geheim = new GalNumber();
+ GalNumber gn_klar = new GalNumber();
+ GalNumber gn_key_s = new GalNumber(key_s);
+ GalNumber gn_key_t = new GalNumber(key_t);
+ GalNumber rijndael_mod = new GalNumber(GalNumber.RIJN_MOD);
+
+ gn_geheim.setVal((int) geheim);
+
+ gn_klar = gn_geheim.mult(gn_key_t.inv()).sub(gn_key_s.mod(rijndael_mod));
+
+ System.out.println("Geheim char: "+geheim+" int "+(int)geheim+" GN Geheim: "+gn_geheim.toHex()+" Klar: "+gn_klar.toHex());
+
+ return gn_klar.toChar();
+ }
+
+ public String encrypt(String klarText)
+ {
+ char [] chars = new char[klarText.length()];
+ for (int i=0;i<klarText.length();i++)
+ {
+ chars[i] = encryptChar(klarText.charAt(i));
+ }
+ String geheimText=new String(chars);
+ return geheimText;
+ }
+
+ public String decrypt(String geheimText)
+ {
+ char [] chars = new char[geheimText.length()];
+ for (int i=0;i<geheimText.length();i++)
+ {
+ //System.out.println("cipher "+i+": "+geheimText.charAt(i)+" int: "+(int) geheimText.charAt(i));
+ chars[i] = decryptChar(geheimText.charAt(i));
+ }
+ String klarText=new String(chars);
+ return klarText;
+ }
+
+ public void setKeyS(int s)
+ {
+ key_s = s;
+ }
+ public void setKeyT(int t)
+ {
+ key_t = t;
+ }
+ public void setKeyST(int s, int t)
+ {
+ setKeyS(s);
+ setKeyT(t);
+ }
+}