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!