Program executes scalar multiplication on a provided x-coordinate point, P (input) and a provided 256-bit randomly generated private-key, d (input). The program defaults to the point (x=9) which is the base point for curve-25519. Inputs should be in hex (little endian). Program has only been tested on a few points using a variety of private-keys. User generates the user's public-key by Q=dP and provides it the another user. The other user provides their public-key which generates the shared-key, S=dQ. The shared-key is used to encrypt and decrypt messages shared between the two users using an algorithm such as AES (Advanced_Encryption_Standard). This program was not designed for high speed but executes rather quickly none the less. Program uses a Montgomery ladder for the scalar multiplication.
Had fun learning about elliptic curve cryptography. It was quite interesting to learn how point addition and scalar multiplication could be easily done and why the discrete logarithm reverse was so difficult. If anyone has any suggestions please let me know.
David Hill (2021). Curve25519 Shared-Key Generation GUI (https://www.mathworks.com/matlabcentral/fileexchange/73314-curve25519-shared-key-generation-gui), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!