From c7705db7e3b99aaac7ec2824c531656e3a086023 Mon Sep 17 00:00:00 2001 From: Paul Date: Sun, 18 Oct 2020 21:57:41 +0200 Subject: [PATCH] inital commit --- .idea/.gitignore | 8 ++ .idea/artifacts/RSA_KeyGenerator_jar.xml | 8 ++ .idea/description.html | 1 + .idea/encodings.xml | 6 ++ .idea/misc.xml | 9 ++ .idea/modules.xml | 8 ++ .idea/project-template.xml | 3 + RSA_KeyGenerator.iml | 12 +++ RSA_KeyGenerator.jar | Bin 0 -> 3420 bytes Readme.txt | 80 ++++++++++++++ .../RSA_KeyGenerator/META-INF/MANIFEST.MF | 3 + .../RSA_KeyGenerator/tech/loedige/Main.class | Bin 0 -> 5865 bytes src/META-INF/MANIFEST.MF | 3 + src/tech/loedige/Main.java | 98 ++++++++++++++++++ 14 files changed, 239 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/artifacts/RSA_KeyGenerator_jar.xml create mode 100644 .idea/description.html create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/project-template.xml create mode 100644 RSA_KeyGenerator.iml create mode 100644 RSA_KeyGenerator.jar create mode 100644 Readme.txt create mode 100644 out/production/RSA_KeyGenerator/META-INF/MANIFEST.MF create mode 100644 out/production/RSA_KeyGenerator/tech/loedige/Main.class create mode 100644 src/META-INF/MANIFEST.MF create mode 100644 src/tech/loedige/Main.java diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/artifacts/RSA_KeyGenerator_jar.xml b/.idea/artifacts/RSA_KeyGenerator_jar.xml new file mode 100644 index 0000000..56c0aee --- /dev/null +++ b/.idea/artifacts/RSA_KeyGenerator_jar.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$ + + + + + \ No newline at end of file diff --git a/.idea/description.html b/.idea/description.html new file mode 100644 index 0000000..db5f129 --- /dev/null +++ b/.idea/description.html @@ -0,0 +1 @@ +Simple Java application that includes a class with main() method \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..05cb644 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..de46c1a --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/project-template.xml b/.idea/project-template.xml new file mode 100644 index 0000000..1f08b88 --- /dev/null +++ b/.idea/project-template.xml @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/RSA_KeyGenerator.iml b/RSA_KeyGenerator.iml new file mode 100644 index 0000000..d5c0743 --- /dev/null +++ b/RSA_KeyGenerator.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/RSA_KeyGenerator.jar b/RSA_KeyGenerator.jar new file mode 100644 index 0000000000000000000000000000000000000000..cae65653ce996b8f6ee4f389d6dc8e01b80ba72f GIT binary patch literal 3420 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 literal 0 HcmV?d00001 diff --git a/Readme.txt b/Readme.txt new file mode 100644 index 0000000..2a378a1 --- /dev/null +++ b/Readme.txt @@ -0,0 +1,80 @@ +Name: Paul Lödige +Matrikel: 15405036 + +Die Schlüsselgrößen, die von dem KeyPairGenerator ausgegeben werden sind sehr merkwürdig. +Ich habe bei meinem Code dadrauf geachtet. dass das Produkt aus private und public key die angefragte Größe entspricht. + +Da das Programm sehr lange zum laufen braucht (.jar beigefügt) folgt eine Beispielausgabe: + +0) 1024 Bit mit KeyPairGenerator: 137ms PrivKeySize: 5070 PubKeySize: 1294 ProductSize: 6364 +1) 1024 Bit mit KeyPairGenerator: 79ms PrivKeySize: 5070 PubKeySize: 1294 ProductSize: 6364 +2) 1024 Bit mit KeyPairGenerator: 143ms PrivKeySize: 5070 PubKeySize: 1294 ProductSize: 6364 +3) 1024 Bit mit KeyPairGenerator: 68ms PrivKeySize: 5062 PubKeySize: 1294 ProductSize: 6356 +4) 1024 Bit mit KeyPairGenerator: 76ms PrivKeySize: 5086 PubKeySize: 1294 ProductSize: 6380 +5) 1024 Bit mit KeyPairGenerator: 111ms PrivKeySize: 5078 PubKeySize: 1294 ProductSize: 6372 +6) 1024 Bit mit KeyPairGenerator: 111ms PrivKeySize: 5078 PubKeySize: 1294 ProductSize: 6372 +7) 1024 Bit mit KeyPairGenerator: 37ms PrivKeySize: 5070 PubKeySize: 1294 ProductSize: 6364 +8) 1024 Bit mit KeyPairGenerator: 72ms PrivKeySize: 5078 PubKeySize: 1294 ProductSize: 6372 +9) 1024 Bit mit KeyPairGenerator: 51ms PrivKeySize: 5062 PubKeySize: 1294 ProductSize: 6356 +Durschnittliche Laufzeit: 88.5ms +----------------------------------------------------- +0) 2048 Bit mit KeyPairGenerator: 186ms PrivKeySize: 9742 PubKeySize: 2350 ProductSize: 12092 +1) 2048 Bit mit KeyPairGenerator: 40ms PrivKeySize: 9750 PubKeySize: 2350 ProductSize: 12100 +2) 2048 Bit mit KeyPairGenerator: 56ms PrivKeySize: 9734 PubKeySize: 2350 ProductSize: 12084 +3) 2048 Bit mit KeyPairGenerator: 96ms PrivKeySize: 9734 PubKeySize: 2350 ProductSize: 12084 +4) 2048 Bit mit KeyPairGenerator: 129ms PrivKeySize: 9734 PubKeySize: 2350 ProductSize: 12084 +5) 2048 Bit mit KeyPairGenerator: 126ms PrivKeySize: 9726 PubKeySize: 2350 ProductSize: 12076 +6) 2048 Bit mit KeyPairGenerator: 73ms PrivKeySize: 9726 PubKeySize: 2350 ProductSize: 12076 +7) 2048 Bit mit KeyPairGenerator: 72ms PrivKeySize: 9734 PubKeySize: 2350 ProductSize: 12084 +8) 2048 Bit mit KeyPairGenerator: 178ms PrivKeySize: 9726 PubKeySize: 2350 ProductSize: 12076 +9) 2048 Bit mit KeyPairGenerator: 150ms PrivKeySize: 9734 PubKeySize: 2350 ProductSize: 12084 +Durschnittliche Laufzeit: 110.6ms +----------------------------------------------------- +0) 4096 Bit mit KeyPairGenerator: 1428ms PrivKeySize: 18982 PubKeySize: 4398 ProductSize: 23380 +1) 4096 Bit mit KeyPairGenerator: 478ms PrivKeySize: 18998 PubKeySize: 4398 ProductSize: 23396 +2) 4096 Bit mit KeyPairGenerator: 335ms PrivKeySize: 18990 PubKeySize: 4398 ProductSize: 23388 +3) 4096 Bit mit KeyPairGenerator: 2410ms PrivKeySize: 18990 PubKeySize: 4398 ProductSize: 23388 +4) 4096 Bit mit KeyPairGenerator: 2583ms PrivKeySize: 18998 PubKeySize: 4398 ProductSize: 23396 +5) 4096 Bit mit KeyPairGenerator: 1101ms PrivKeySize: 18990 PubKeySize: 4398 ProductSize: 23388 +6) 4096 Bit mit KeyPairGenerator: 386ms PrivKeySize: 18982 PubKeySize: 4398 ProductSize: 23380 +7) 4096 Bit mit KeyPairGenerator: 346ms PrivKeySize: 18998 PubKeySize: 4398 ProductSize: 23396 +8) 4096 Bit mit KeyPairGenerator: 1657ms PrivKeySize: 18982 PubKeySize: 4398 ProductSize: 23380 +9) 4096 Bit mit KeyPairGenerator: 1853ms PrivKeySize: 18998 PubKeySize: 4398 ProductSize: 23396 +Durschnittliche Laufzeit: 1257.7ms +----------------------------------------------------- +0) 1024 Bit mit BigInteger: 105ms PrivKeySize: 512 PubKeySize: 512 ProductSize: 1024 +1) 1024 Bit mit BigInteger: 679ms PrivKeySize: 512 PubKeySize: 512 ProductSize: 1024 +2) 1024 Bit mit BigInteger: 130ms PrivKeySize: 512 PubKeySize: 512 ProductSize: 1024 +3) 1024 Bit mit BigInteger: 255ms PrivKeySize: 512 PubKeySize: 512 ProductSize: 1024 +4) 1024 Bit mit BigInteger: 475ms PrivKeySize: 512 PubKeySize: 512 ProductSize: 1024 +5) 1024 Bit mit BigInteger: 179ms PrivKeySize: 512 PubKeySize: 512 ProductSize: 1024 +6) 1024 Bit mit BigInteger: 127ms PrivKeySize: 512 PubKeySize: 512 ProductSize: 1024 +7) 1024 Bit mit BigInteger: 167ms PrivKeySize: 512 PubKeySize: 512 ProductSize: 1024 +8) 1024 Bit mit BigInteger: 657ms PrivKeySize: 512 PubKeySize: 512 ProductSize: 1024 +9) 1024 Bit mit BigInteger: 19ms PrivKeySize: 512 PubKeySize: 512 ProductSize: 1024 +Durschnittliche Laufzeit: 279.3ms +----------------------------------------------------- +0) 2048 Bit mit BigInteger: 3200ms PrivKeySize: 1024 PubKeySize: 1024 ProductSize: 2048 +1) 2048 Bit mit BigInteger: 2789ms PrivKeySize: 1024 PubKeySize: 1024 ProductSize: 2048 +2) 2048 Bit mit BigInteger: 8340ms PrivKeySize: 1024 PubKeySize: 1024 ProductSize: 2048 +3) 2048 Bit mit BigInteger: 2868ms PrivKeySize: 1024 PubKeySize: 1024 ProductSize: 2048 +4) 2048 Bit mit BigInteger: 426ms PrivKeySize: 1024 PubKeySize: 1024 ProductSize: 2048 +5) 2048 Bit mit BigInteger: 1465ms PrivKeySize: 1024 PubKeySize: 1024 ProductSize: 2048 +6) 2048 Bit mit BigInteger: 2577ms PrivKeySize: 1024 PubKeySize: 1024 ProductSize: 2048 +7) 2048 Bit mit BigInteger: 666ms PrivKeySize: 1024 PubKeySize: 1024 ProductSize: 2048 +8) 2048 Bit mit BigInteger: 430ms PrivKeySize: 1024 PubKeySize: 1024 ProductSize: 2048 +9) 2048 Bit mit BigInteger: 2356ms PrivKeySize: 1024 PubKeySize: 1024 ProductSize: 2048 +Durschnittliche Laufzeit: 2511.7ms +----------------------------------------------------- +0) 4096 Bit mit BigInteger: 10017ms PrivKeySize: 2048 PubKeySize: 2048 ProductSize: 4096 +1) 4096 Bit mit BigInteger: 41918ms PrivKeySize: 2048 PubKeySize: 2048 ProductSize: 4096 +2) 4096 Bit mit BigInteger: 60839ms PrivKeySize: 2048 PubKeySize: 2048 ProductSize: 4096 +3) 4096 Bit mit BigInteger: 50729ms PrivKeySize: 2048 PubKeySize: 2048 ProductSize: 4096 +4) 4096 Bit mit BigInteger: 40834ms PrivKeySize: 2048 PubKeySize: 2048 ProductSize: 4096 +5) 4096 Bit mit BigInteger: 11870ms PrivKeySize: 2048 PubKeySize: 2048 ProductSize: 4096 +6) 4096 Bit mit BigInteger: 67847ms PrivKeySize: 2048 PubKeySize: 2048 ProductSize: 4096 +7) 4096 Bit mit BigInteger: 6077ms PrivKeySize: 2048 PubKeySize: 2048 ProductSize: 4096 +8) 4096 Bit mit BigInteger: 74448ms PrivKeySize: 2048 PubKeySize: 2048 ProductSize: 4096 +9) 4096 Bit mit BigInteger: 66870ms PrivKeySize: 2048 PubKeySize: 2048 ProductSize: 4096 +Durschnittliche Laufzeit: 43144.9ms +----------------------------------------------------- diff --git a/out/production/RSA_KeyGenerator/META-INF/MANIFEST.MF b/out/production/RSA_KeyGenerator/META-INF/MANIFEST.MF new file mode 100644 index 0000000..74bc389 --- /dev/null +++ b/out/production/RSA_KeyGenerator/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: tech.loedige.Main + diff --git a/out/production/RSA_KeyGenerator/tech/loedige/Main.class b/out/production/RSA_KeyGenerator/tech/loedige/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..f7333558a8302de3ba41d7bc581c09ae0737b031 GIT binary patch literal 5865 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 literal 0 HcmV?d00001 diff --git a/src/META-INF/MANIFEST.MF b/src/META-INF/MANIFEST.MF new file mode 100644 index 0000000..74bc389 --- /dev/null +++ b/src/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: tech.loedige.Main + diff --git a/src/tech/loedige/Main.java b/src/tech/loedige/Main.java new file mode 100644 index 0000000..c8b2424 --- /dev/null +++ b/src/tech/loedige/Main.java @@ -0,0 +1,98 @@ +package tech.loedige; + +import java.math.BigInteger; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Random; +import java.util.concurrent.Callable; +import java.util.function.Function; + +public class Main { + + public static void main(String[] args) throws Exception { + final int numberOfRuns = 10; + long start=0; + long finish = 0; + List trialsList = new ArrayList<>(); + long[] trials = new long[numberOfRuns]; + BigInteger[] KeyPair; + + //average the RSA key generation 10 times for 1024, 2048 and 4096 bit using the KeyPairGenerator + getTimesAndAverage(()->{return generateRSAWithLibrary(1024);},10,"1024 Bit mit KeyPairGenerator"); + getTimesAndAverage(()->{return generateRSAWithLibrary(2048);},10,"2048 Bit mit KeyPairGenerator"); + getTimesAndAverage(()->{return generateRSAWithLibrary(4096);},10,"4096 Bit mit KeyPairGenerator"); + + //average the RSA key generation 10 times for 1024, 2048 and 4096 bit using the sef written function + getTimesAndAverage(()->{return generateRSAWithBigInteger(1024);},10,"1024 Bit mit BigInteger"); + getTimesAndAverage(()->{return generateRSAWithBigInteger(2048);},10,"2048 Bit mit BigInteger"); + getTimesAndAverage(()->{return generateRSAWithBigInteger(4096);},10,"4096 Bit mit BigInteger"); + + } + + private static BigInteger[] generateRSAWithLibrary(int bitLength){ + try { + KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); + keyPairGenerator.initialize(bitLength); + KeyPair keyPair = keyPairGenerator.generateKeyPair(); + return new BigInteger[]{new BigInteger(keyPair.getPrivate().getEncoded()), new BigInteger(keyPair.getPublic().getEncoded())}; + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return null; + } + } + + private static void getTimesAndAverage(Callable function, int numberOfRuns, String functionName) throws Exception { + long start=0; + long finish=0; + List trialTimesList = new ArrayList<>(); + long[] trialTimes = new long[numberOfRuns]; + BigInteger[] KeyPair; + + for(int i = 0; i