EC ElGamalpoint=f(x, y)G - point (public)d - integer (private)Q=dG - point (public)x - integer [secret integer] (public)M=f(x, y) - point [coordinate calculation] (public)C=xG - point [secret point] (public)E=xQ+M - point [point addition] (public)(C, E) - message [(xG, xdG+M)] (public)D=d*C - point [point multiplication] (private)M=E−D - point [((xdG+M)-dxG)] (private)only works from public key to private key
~
EC DH- each side generates a secret integer k and multiplies with point G- each side sends their point multiplication result to the other- each side multiplies their secret integer with the exchanged point
~