I am a software developer interested in developing an application with cryptography. I can explain what I want to accomplish, but I do not know the technical terms for the cryptographic functions I am seeking. Many Google searches have not helped me. Could someone please help me with the proper cryptographic terms for what I am seeking, so I know what to search for in my research? Here is what I am looking for: - Encrypt large amounts of data quickly with key $E$. - Encryption is currently unbreakable and is expected to remain so as far as is known. - The encrypted data cannot be decrypted with key $E$. - The encrypted data can only be decrypted with key $D$. - Key $E$ is created by passing key $D$ into an algorithm/function. - It is preferred that key $D$ can be less than 20 characters and can be typed from what is visible on the keys of an ordinary computer keyboard. (AKA...a password) Thank you!