Curve25519 Shared-Key Generation GUI

Version 1.0.0 (3.75 KB) by David Hill
Elliptic Curve Cryptography using curve-25519. Generates private-key times a given x-coordinate point (input) the is on the elliptic curve.
Updated 9 Nov 2019

View License

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.

Cite As

David Hill (2024). Curve25519 Shared-Key Generation GUI (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2019a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Encryption / Cryptography in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes