There are three conditions in which this application can be run:
- Get test execution results for predefined values:
java -jar labs-1.3-SNAPSHOT-jar-with-dependencies.jar
- Execute multiplication operation for your own input parameters in hex interpretation:
java -jar labs-1.3-SNAPSHOT-jar-with-dependencies.jar <First input> * <Second input>
- Generate comparison statistics for developed LongNumber and built-in BigInteger operations using randomly generated inputs (size: 768 and 1024 bits):
java -jar labs-1.3-SNAPSHOT-jar-with-dependencies.jar Statistics
You need to use installation steps from here and download "labs-1.3-SNAPSHOT-jar-with-dependencies.jar" file from CryptographicMechanisms.Labs/target/ folder.
- master/src/main/java/lab1/LongNumber.java - custom implementation for long arithmetic
- master/src/main/java/lab1/test/AppLab1.java & BenchmarksLab1.java - LongNumber algorithms performance tests and results comparison to (Java built-in) BigInteger ones
- master/src/main/java/lab1/test/StatResults - performance results
- master/src/main/java/lab1/test/BigIntegerMulAlgorithms - BigInteger algorithms (package java.math)
- master/src/main/java/lab1/test/BigDecimalMulAlgorithm - BigDecimal algorithms (package java.math)
- master/src/main/java/lab1/test/LargeIntegerMulAlgorithm - LargeNumber algorithms (package org.jscience.mathematics.number)
- master/src/main/java/lab2/Maurer.java - generates probable prime number with specified number of bits using Maurer algorithm
- master/src/main/java/lab2/MillerRabinTest.java - Miller-Rabin primality test: an algorithm which determines whether a given number is prime
- master/src/main/java/lab2/test/cwe/*.java - examples from list of common software security weaknesses for SecurityRundom Java built-in class (which is used in testing)
- master/src/main/java/lab2/test/nist/NistTests.java - set of Statistical Test Suites for the Validation of Random Number Generators and Pseudo Random Number Generators for Cryptographic applied on customly developed Maurer generator
- master/src/main/java/lab3/RabinClient.java - Rabin cryptosystem (encrypt, decrypt, sign, checkSign, blindSign functionality)
- master/src/main/java/lab3/RSAClient.java - RSA blind signing implementation using built-in java.security.* RSA library
- master/src/main/java/lab3/Test.java - set of tests for above described functionality