密码系统的两个基本要素是加密算法和密钥管理。加密算法是一些公式和法则，它规定了明文和密文之间的变换方法。由于密码系统的反复使用，仅靠加密算法已难以保证信息的安全了。事实上，加密信息的安全可靠依赖于密钥系统，密钥是控制加密算法和解密算法的关键信息，它的产生、传输、存储等工作是十分重要的。
密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律，应用于编制密码以保守通信秘密的，称为编码学；应用于破译密码以获取通信情报的，称为破译学，总称密码学。
密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则，变明文为密文，称为加密变换；变密文为明文，称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换，随着通信技术的发展，对语音、图像、数据等都可实施加、脱密变换。
密码学是在编码与破译的斗争实践中逐步发展起来的，并随着先进科学技术的应用，已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。它的现实研究成果，特别是各国政府现用的密码编制及破译手段都具有高度的机密性。
密码学包括密码编码学和密码分析学。密码体制设计是密码编码学的主要内容，密码体制的破译是密码分析学的主要内容，密码编码技术和密码分析技术是相互依相互支持、密不可分的两个方面。密码体制有对称密钥密码体制和非对称密钥密码体制。对称密钥密码体制要求加密解密双方拥有相同的密钥。而非对称密钥密码体制是加密解密双方拥有不相同的密钥，在不知道陷门信息的情况下，加密密钥和解密密钥是不能相互算出的。
对称密钥密码体制中,加密运算与解密运算使用同样的密钥。这种体制所使用的加密算法比较简单，而且高效快速、密钥简短、破译困难，但是存在着密钥传送和保管的问题。例如：甲方与乙方通讯，用同一个密钥加密与解密。首先，将密钥分发出去是一个难题，在不安全的网络上分发密钥显然是不合适的；另外，不断推出营商环境的“升级版”“高阶版”。六合杀手，如果甲方和乙方之间任何一人将密钥泄露，那么大家都要重新启用新的密钥。通常,使用的加密算法比较简便高效,密钥简短,破译极其困难。但是,在公开的计算机网络上安全地传送和保管密钥是一个严峻的问题。1976年,Diffie和Hellman为解决密钥管理问题,在他们的奠基性的工作密码学的新方向一文中,提出一种密钥交换协议,允许在不安全的媒体上通讯双方交换信息,安全地达成一致的密钥,它是基于离散指数加密算法的新方案:交易双方仍然需要协商密钥，但离散指数算法的妙处在于:双方可以公开提交某些用于运算的数据，而密钥却在各自计算机上产生，并不在网上传递。在此新思想的基础上,很快出现了不对称密钥密码体制,即公开密钥密码体制,其中加密密钥不同于解密密钥,加密密钥公之于众,谁都可以用,解密密钥只有解密人自己知道,分别称为公开密钥和秘密密钥,由于公开密钥算法不需要联机密钥服务器，密钥分配协议简单，所以极大地简化了密钥管理。除加密功能外，公钥系统还可以提供数字签名。目前，公开密钥加密算法主要有RSA、Fertezza、EIGama等。我们说区分古典密码和现代密码的标志，也就是从76年开始，迪非，赫尔曼发表了一篇叫做《密码学的新方向》的文章，这篇文章是划时代的；同时1977年美国的数据加密标准（DES）公布，这两件事情导致密码学空前研究。以前都认为密码是政府、军事、外交、安全等部门专用，从这时候起，人们看到密码已由公用到民用研究，这种转变也导致了密码学的空前发展。迄今为止的所有公钥密码体系中，RSA系统是最着名、使用最广泛的一种。RSA公开密钥密码系统是由R.Rivest、A.Shamir和L.Adleman三位教授于1977年提出的，RSA的取名就是来自于这三位发明者姓氏的第一个字母。RSA算法研制的最初目标是解决利用公开信道传输分发DES算法的秘密密钥的难题。而实际结果不但很好地解决了这个难题，还可利用RSA来完成对电文的数字签名，以防止对电文的否认与抵赖，同时还可以利用数字签名较容易地发现攻击者对电文的非法篡改，从而保护数据信息的完整性。六宝典450777高手帖西安银行9月30日盘中！
在网上看到这样一个例子，有一个人从E-mail信箱到用户Administrator，统一都使用了一个8位密码。他想:8位密码，怎么可能说破就破，固若金汤。所以从来不改。用了几年，没有任何问题，洋洋自得，自以为安全性一流。恰恰在他最得意的时候，该抽他嘴巴的人就出现了。他的一个同事竟然用最低级也是最有效的穷举法吧他的8位密码给破了。还好都比较熟，否则公司数据丢失，他就要卷着被子回家了。事后他问同事，怎么破解的他的密码，答曰:只因为每次看他敲密码时手的动作完全相同，于是便知道他的密码都是一样的，而且从不改变。这件事情被他引以为戒，以后密码分开设置，采用10位密码，并且半年一更换。我从中得出的教训是，密码安全要放在网络安全的第一位。因为密码就是钥匙，如果别人有了你家的钥匙，就可以堂而皇之的进你家偷东西，并且左邻右舍不会怀疑什么。我的建议，对于重要用户，密码要求最少要8位，并且应该有英文字母大小写以及数字和其他符号。千万不要嫌麻烦，密码被破后更麻烦。
密码设的越难以穷举，并不是带来更加良好的安全性。相反带来的是更加难以记忆，甚至在最初更改的几天因为输人缓慢而被别人记住，或者自己忘记。这都是非常糟糕的，但是密码难于穷举是保证安全性的前提。矛盾着的双方时可以互相转化的，所以如何使系统密码既难以穷举又容易记忆呢，这就是门科学了。当然，如果能做到以下几点，密码的安全还是有保障的。
对于一般情况下，8位密码是足够了，如一般的网络社区的密码、香港马会开奖结果直播，E-mail的密码。但是对于系统管理的密码，尤其是超级用户的密码最好要在10位以上，12位最佳。首先，8位密码居多，一般穷举工作的起始字典都使用6位字典或8位字典，10位或12位的字典不予考虑。其次，一个全码8位字典需要占去4G左右空间，10位或12位的全码字典更是天文数字，要是用一般台式机破解可能要到下个千年了，运用中型机破解还有有点希望的。再次，哪怕是一个12个字母的英文单词，也足以让黑客望而却步。
对于有规律的密码，如:alb2c3d4e5f6，尽管是12位的，但是也是非常好破解的。因为现在这种密码很流行，字典更是多的满天飞，使用这种密码等于自杀。
当前已有的密钥协商协议包括双方密钥协商协议、双方非交互式的静态密钥协商协议、双方一轮密钥协商协议、双方可验证身份的密钥协商协议以及三方相对应类型的协议。如何设计多方密钥协商协议？存在多元线性函数(双线性对的推广)吗？如果存在，我们能够构造基于多元线性函数的一轮多方密钥协商协议。而且，这种函数如果存在的话，一定会有更多的密码学应用。然而，直到现在，在密码学中，这个问题还远远没有得到解决。