http://www.cs.eku.edu/faculty/styer/460/Encrypt/JS-DES.html