
密碼學是把一種形式的消息變換成另一種的消息。因此,從某種意義而言,密碼學也是一門研究消息“變換”方法的科學。密碼學中用到的所有變換叫做密碼算法。例如,若一個變換能把一個有意義的消息(明文)變換為沒有意義的消息(密文),因而讓非授權者很難讀取明文內容,此變換被稱為加密算法。把可讀的“明文”轉換為不可讀的“密文”的過程是加密。若合法用戶拿一個變換可把非授權者讀不明白的信息變換為有意義的信息,則稱這個變換為解密算法(或脫密算法)。顺利获得合法用戶將已經加密的信息還原為明文的過程叫解密。
若變換可把一個消息變換為一種“證據”,為了證實某個實體對消息內容的認可,則叫此變換為一個簽名算法。多數密碼算法通常均存在一個“逆”算法,一般它們成對存在。例如,一個加密算法的“逆”算法叫做解密算法,一個簽名算法的“逆”算法稱為驗證算法等。這些算法的運算一般均在一組密鑰的控制下運行的。密鑰是一種特定的值,可讓密碼算法根據指定方式運行且得到對應的密文。一般而言,密鑰長度越大,對應的密文就更安全。例如,加密算法中用的密鑰叫加密密鑰,解密算法用的密鑰叫解密密鑰,簽名算法用的密鑰叫簽名密鑰,驗證算法用的密鑰叫驗證密鑰等。
假設在不安全信道里通信的A與B,以讓他們對手Oscar無法清楚通信內容的方式通信。如此的不安全信道在現實里普遍存在,如電話線或計算機網絡。A發至B的信息,一般叫明文,例英文單詞、數據或符號。A用事先溝通好的密鑰加密明文,加密過的明文叫密文,A把密文顺利获得信道發至B。敵人Oscar可竊聽到信道里A發的密文,但卻不能知道他對應的明文;對於接收者B,因知道密鑰,所以他可解密密文,因此取得明文。
