Labels

ACO (3) AdaBoost (2) Ant Colony Optimization (2) Backpropagation (2) binary constraint graph (1) blockchain (2) brute force (1) brute force algorithm (1) Class Scheduling (12) conditional independence (1) conference cheduling (1) conference scheduling (2) constraint satisfaction problem (3) cryptocurrency (3) csp (3) cyclic group (1) data mining (3) decision trees (12) derive equations (1) DHKE (6) Diffie Hellman Problem (1) Diffie-Hellman Key Exchange (2) Digital Signature Algorithm (1) Discrete Logarithm Problem (1) double and add algorithm (1) download source code (1) DSA (1) ecc (1) ECDH (1) ECDSA (1) Elgamal (1) Elgamal Digital Signature (1) Elliptic Curve (1) Elliptic Curve Diffie–Hellman key exchange (1) Elliptic Curve Cryptography (1) Elliptic Curve Digital Signature Algorithm (1) Encryption (1) euler phi function (1) extended euclidean algorithm (1) generalized discrete logarithm problem (1) generate rules (3) Genetic Algorithm (5) Genetic Algorithms (19) gradient descent (2) group (1) group generator (1) grow xml tree (1) Handle Underflow (1) hashing (1) hill climbing (7) hopfield network (2) independence (1) info gain (1) information gain (2) java (84) javafx (1) k-nearest neighbors (2) Laplace Smoothing (2) linear algebra (3) Linear Regression (2) logical operators (1) logistic regression (4) map coloring (1) message authenticity (1) message confidentiality (1) message integrity (1) multi-party Diffie-Hellman Key Exchange (1) Naive Bayes (6) nearest neighbor (1) nearest neighbors (1) Neural Networks (10) node splitting (1) Normal Equation (2) numpy (1) P2P (10) Peer to Peer (5) peer-to-peer (2) point addition (1) point doubling (1) pow (3) probability (2) proof of work (3) proof-of-work (1) public key cryptography (9) Public Key Cryptography + DHKE w/ Encryption + JAVA (1) Python (18) random restart hill climbing (2) robotics (1) rsa (1) RSA Digital Signature (1) Scala (1) Sentiment Classification (4) Sequential Minimal Optimization (2) sha-256 (1) simulated annealing (2) SMO (2) sqlite (21) stochastic gradient descent (2) Support Vector Machines (2) SVM (2) Traveling Salesman Problem (1) TSP (13) underflow handling (1) use rules (3) workshops scheduling (2)

Blog Archive

Friday, July 24, 2020

Elliptic Curve Diffie–Hellman key exchange (ECDH) w/ JAVA



Elliptic Curve Diffie–Hellman key exchange (ECDH) - Public Key Cryptography w/ JAVA (09)
prototypeprj.com = zaneacademy.com (version 2.0)

00:06 demo a prebuilt version of the application (using decimal input data)

04:16 what is the Elliptic Curve Discrete Logarithm Problem (ECDLP)

05:26 Elliptic Curve Point Addition and Doubling Equations

07:53 elliptic curve cryptography (ECC) characteristics
08:15 proof of Elliptic Curve Diffie-Hellman (ECDH)
09:00 geometric interpretation of Elliptic Curve Discrete Logarithm Problem (ECDLP)
09:33 code the application
09:46 go over the packages and classes that make up this app.

11:45 code the server side of this app. (Server and ServerThread classes)
14:25 how the server forwards messages from Alice to Bob and the other way around

14:46 setup the project for using JSON
15:26 how ServerThread handles incoming JSON messages
15:55 domain params
16:42 what is the Elliptic Curve Discrete Logarithm Problem (ECDLP)
that Passive Eve has to solve

18:10 code the client side of the app.
18:20 start coding the Client class


22:53 Client class method to pickup and process user input

24:31 Point class
25:00 Point class equals and 2 toString methods for handling decimal and hex

25:43 handle points addition and point doubling in EllipticCurve class
25:54 check to see if 2 points are inverse of each other

27:41 method to check if point is on elliptic curve
28:28 method to check if elliptic curve is Non-Singular

29:28 method implementing the double and add algorithm

30:36 Client class method to handle elliptic curve input

31:14 Client class method to handle initializing domain params

32:38 Client class method for picking up private key
and calculating + sending public key
33:14 method to calculate common key
34:00 method to handle incoming JSON
message in ClientThread class
35:39 decimal and hex test data used in this tutorial
36:04 test run completed application (using hex input data)

-----------------------------------------------------------------------------------------------------------------------------
quickly download, import into Eclipse, and run zip file for
'Elliptic Curve Diffie–Hellman key exchange (ECDH) - Public Key Cryptography w/ JAVA (09)'
-----------------------------------------------------------------------------------------------------------------------------





-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------

No comments:

Post a Comment