Add Diffie-Hellman algorithm

This patch implement Diffie-Hellman key exchange algorithm in pure Rust.