密匙管理技术.docx
《密匙管理技术.docx》由会员分享,可在线阅读,更多相关《密匙管理技术.docx(12页珍藏版)》请在冰豆网上搜索。
密匙管理技术
2010—2011学年第二学期
课程名称:
信息安全技术
任课教师:
吴天宝
题目:
密匙管理技术
学号:
CST09107
姓名:
唐文泽
年级:
2009级
专业:
计算机科学与技术
评语:
成绩:
评卷人:
提交日期:
2011年6月24日
密匙管理技术
摘要:
进入二十一世纪以来,网络技术高速发展。
与此同时,网络存在的安全问题也日益突现。
作为一种可靠的安全模型,端到端安全因能够提供高于其他安全系统的安全性,成为互联网通信、无线网络通信领域的热门话题。
从实现安全的目的而言,端到端安全至少包含端到端身份认证、端到端力日密两个重要部分。
现有的端到端身份认证多采用了公开密钥系统。
在公开密钥系统中,通信双方各自持有对密钥对,其中公钥公开,私钥保密。
传统的公钥系统都是基于证书体系的,即公钥的分配依靠证书来实现。
证书中包含了用户的身份ID、公钥、证书的有效期以及权威机构(CA)对该证书的签名,只有经过CA签名的证书才是有效、合法的证书。
因而,CA在基于证书的公钥系统中,起着至关重要的作用,证书的签发、更新、撤销与验证都离不开它。
但是,证书的管理是要耗费一定资源的,因为CA往往需要管理庞大的证书,同时,还增加了通信双方进行证书认证的步骤。
基于公钥密码系统的端到端加密也存在着依靠CA的问题。
本文着重分析了密钥管理的分类和结构,围绕端到端身份认证、端到端力口密的密钥管理进行研究。
关键字:
端到端安全,密匙管理技术,CA
一.引言
随着互联网的不断发展,越来越多的人们开始尝试在线交易。
然而病毒、黑客、网络钓鱼以及网页仿冒诈骗等恶意威胁,给在线交易的安全性带来了极大的挑战。
层出不穷的网络犯罪,引起了人们对网络身份的信任危机,如何证明"我是谁?
"及如何防止身份冒用等问题一次成为人们关注的焦点。
而在许多应用环境中,数据直接在节点之间进行交换,而并不通过一个中心服务器。
在这样的环境下,用户与用户之间的端到端身份认证与客户端/服务器模型下的认证有许多不同。
端到端身份认证可以定义为处于同等地位的两个网络实体可以通过某种机制认证对方的合法性的一种安全机制。
端到端的身份认证特别在点对点应用网络中具有极其广阔的应用。
现有的用户与用户之间的身份认证的解决方案都是基于公钥密码体制,存在着需要对公钥的进行认证、效率低下以及运行时需要可信第三方等问题。
端到端加密的核心问题在于密钥管理。
密钥管理包括密钥的交换或者协商、密钥的产生与存储等等问题。
如果密钥的管理做不到安全有效,端到端的加密也无法实现。
二.密匙管理
(一)密匙管理概述
密匙管理包括,从密钥的产生到密钥的销毁的各个方面。
主要表现于管理体制、管理协议和密钥的产生、分配、更换和注入等。
对于军用计算机网络系统,由于用户机动性强,隶属关系和协同作战指挥等方式复杂,因此,对密钥管理提出了更高的要求。
(二)密匙流程
1.密钥生成
密钥长度应该足够长。
一般来说,密钥长度越大,对应的密钥空间就越大,攻击者使用穷举猜测密码的难度就越大。
选择好密钥,避免弱密钥。
由自动处理设备生成的随机的比特串是好密钥,选择密钥时,应该避免选择一个弱密钥。
对公钥密码体制来说,密钥生成更加困难,因为密钥必须满足某些数学特征。
2.密钥分发
采用对称加密算法进行保密通信,需要共享同一密钥。
通常是系统中的一个成员先选择一个秘密密钥,然后将它传送另一个成员或别的成员。
X9.17标准描述了两种密钥:
密钥加密密钥和数据密钥。
密钥加密密钥加密其它需要分发的密钥;而数据密钥只对信息流进行加密。
密钥加密密钥一般通过手工分发。
为增强保密性,也可以将密钥分成许多不同的部分然后用不同的信道发送出去。
3.验证密钥
密钥附着一些检错和纠错位来传输,当密钥在传输中发生错误时,能很容易地被检查出来,并且如果需要,密钥可被重传。
接收端也可以验证接收的密钥是否正确。
发送方用密钥加密一个常量,然后把密文的前2-4字节与密钥一起发送。
在接收端,做同样的工作,如果接收端解密后的常数能与发端常数匹配,则传输无错。
4.更新密钥
当密钥需要频繁的改变时,频繁进行新的密钥分发的确是困难的事,一种更容易的解决办法是从旧的密钥中产生新的密钥,有时称为密钥更新。
可以使用单向函数进行更新密钥。
如果双方共享同一密钥,并用同一个单向函数进行操作,就会得到相同的结果。
5.密钥存储
密钥可以存储在脑子、磁条卡、智能卡中。
也可以把密钥平分成两部分,一半存入终端一半存入ROM密钥。
还可采用类似于密钥加密密钥的方法对难以记忆的密钥进行加密保存。
6.备份密钥
密钥的备份可以采用密钥托管、秘密分割、秘密共享等方式。
最简单的方法,是使用密钥托管中心。
密钥托管要求所有用户将自己的密钥交给密钥托管中心,由密钥托管中心备份保管密钥(如锁在某个地方的保险柜里或用主密钥对它们进行加密保存),一旦用户的密钥丢失(如用户遗忘了密钥或用户意外死亡),按照一定的规章制度,可从密钥托管中心索取该用户的密钥。
另一个备份方案是用智能卡作为临时密钥托管。
如Alice把密钥存入智能卡,当Alice不在时就把它交给Bob,Bob可以利用该卡进行Alice的工作,当Alice回来后,Bob交还该卡,由于密钥存放在卡中,所以Bob不知道密钥是什么。
秘密分割把秘密分割成许多碎片,每一片本身并不代表什么,但把这些碎片放到一块,秘密就会重现出来。
一个更好的方法是采用一种秘密共享协议。
将密钥K分成n块,每部分叫做它的“影子”,知道任意m个或更多的块就能够计算出密钥K,知道任意m-1个或更少的块都不能够计算出密钥K,这叫做(m,n)门限(阈值)方案。
目前,人们基于拉格朗日内插多项式法、射影几何、线性代数、孙子定理等提出了许多秘密共享方案。
拉格朗日插值多项式方案是一种易于理解的秘密共享(m,n)门限方案。
秘密共享解决了两个问题:
一是若密钥偶然或有意地被暴露,整个系统就易受攻击;二是若密钥丢失或损坏,系统中的所有信息就不能用了。
7.密钥有效期
加密密钥不能无限期使用,有以下有几个原因:
密钥使用时间越长,它泄露的机会就越大;如果密钥已泄露,那么密钥使用越久,损失就越大;密钥使用越久,人们花费精力破译它的诱惑力就越大枣甚至采用穷举攻击法;对用同一密钥加密的多个密文进行密码分析一般比较容易。
不同密钥应有不同有效期。
数据密钥的有效期主要依赖数据的价值和给定时间里加密数据的数量。
价值与数据传送率越大所用的密钥更换越频繁。
密钥加密密钥无需频繁更换,因为它们只是偶尔地用作密钥交换。
在某些应用中,密钥加密密钥仅一月或一年更换一次。
用来加密保存数据文件的加密密钥不能经常地变换。
通常是每个文件用唯一的密钥加密,然后再用密钥加密密钥把所有密钥加密,密钥加密密钥要么被记忆下来,要么保存在一个安全地点。
当然,丢失该密钥意味着丢失所有的文件加密密钥。
公开密钥密码应用中的私钥的有效期是根据应用的不同而变化的。
用作数字签名和身份识别的私钥必须持续数年(甚至终身),用作抛掷硬币协议的私钥在协议完成之后就应该立即销毁。
即使期望密钥的安全性持续终身,两年更换一次密钥也是要考虑的。
旧密钥仍需保密,以防用户需要验证从前的签名。
但是新密钥将用作新文件签名,以减少密码分析者所能攻击的签名文件数目。
8.销毁密钥
如果密钥必须替换,旧钥就必须销毁,密钥必须物理地销毁。
9.公开密钥的密钥管理
公开密钥密码使得密钥较易管理。
无论网络上有多少人,每个人只有一个公开密钥。
使用一个公钥/私钥密钥对是不够的。
任何好的公钥密码的实现需要把加密密钥和数字签名密钥分开。
但单独一对加密和签名密钥还是不够的。
象身份证一样,私钥证明了一种关系,而人不止有一种关系。
如Alice分别可以以私人名义、公司的副总裁等名义给某个文件签名。
三.端到端安全系统密码算法
(一)序列密码算法
序列密码(又称流密码)[1]是一次只对明文消息的单个字符(经常是二进制位)进行加密变换的密码体制。
采用硬件实现的序列密码算法通常会比分组密码算法更加简单,速度也更快。
另外,在数据传输过程中,用序列密码算法加密的数据具有有限错误传播甚至无错误传播的特点。
因此,当缓冲区有限或需要对接收到的字符进行实时处理的情况下,或传输信道经常受到干扰的时候,序列密码算法常常因为具有明显的优势而被采用。
序列密码在实时通信领域中具有得天独厚的优势,在无线通信、外交通信等诸多领域得到了广泛的应用,成为了这些领域中的主流加密算法。
序列密码体制得以迅速发展的一个重要原因是Shannon证明的结论"一次一密"密码体制在理论上是不可破译的。
如果序列密码所使用的密钥流是真正随机产生的,并且与消息流具有相同的长度,序列加密体制就是"一次一密"加密体制。
这使得序列密码备受青睐,人们企图通过设计序列密码来达到信息安全的最高境界"完善保密性"。
序列密码加/解密示意图如图3-1所示。
图3-1序列密码加/解密示意图
上图中,KG表示密钥流生成器,在数据通信时,密钥需要被安全传输,由于长时间通过安全信道传递密钥流在实际应用中很难实现,大多数序列密码算法都采用了"种子密钥"的方式来构造伪随机序列,此时,密钥流生成器的工作是根据较短的"种子密钥"来构造统计性能良好的伪随机序列。
这种情形下,密钥序列元素Ki的产生是由第i时刻密钥流发生器中记忆元件(存储器)的内部状态a1和种子密钥k共同决定的,一般可以写作:
Ki=f(k,σi)。
这样的构造机制是序列密码记忆性的来源。
设待加密消息流(明文流)为m=m1m2…mi…mi∈M
密钥流为:
k=k1k2…ki…ki∈K
加密后的密文流为:
C=C1C2…Ci…Ci∈C
则加密算法表示为:
C=C1C2…Ci…=Ek1(m1)Ek2(m2)…Eki(mi)…
解密算法表示为:
m=m1m2…mi…Dk1(c1)Dk2(c2)…Dki(ci)…
若Ci=Eki(mi)=mi⊕k,则称这类序列密码为加法序列密码。
序列密码的优点是运算速度快,密文传输中的错误不会在明文中产生扩散。
其缺点是密钥变换过于频繁,密钥分配较难。
(二)分组密码算法
分组密码(BlockCipher)[1],也称之为块密码,是将明文消息编码表示后的数字序列,划分成固定大小的组(或位块),各组分别在密钥的控制下变换成等长的输出数字序列(而序列密码正好相反,它一次只加密一个位或一个字符),如图3-2所示。
图3-2分组密码的常见加密结构
分组密码的加密过程是,将明文分成m个块M1,M2,....Mi,...,Mm。
它对每个块执行相同的变换,从而生成m个密文块C1,C2...,Ci,...,Cm。
块的大小可以是任意数目的位,但通常是较大的数目(64位或64的倍数的位)。
例如,分组密码以每块为32个位的方式接收明文单词"this"。
它以一个32位的密钥在块上操作,生成32位的块的密文。
密文表示的字符串为"}kc{"。
明文的下一个32位块将映射到密文的另一个32位块。
这些加密算法是对整个明文操作的,包括空格、标点符号和特殊字符,而不仅仅是字符。
分组密码的解密和加密类似,首先将收到的密文分成m个密文块C1,C2...,Ci,...,Cm。
它在相同的密钥作用下,对每个块执行一个加密的逆变换,从而恢复出对应的明文块M1,M2,....Mi,...,Mm。
从本质上讲,分组密码算法是一种置换,一种对一组明文数字的变换,它与流密码的不同之处在于输出的每一位数字不是只与相应时刻输入的明文数字有关,而是还与整个分组或块的其他明文数字有关。
分组密码每次加密的明文数据的大小是固定的,这个大小一般称为分组长度,加密具有这样大小的明文数据称为基本密码。
在实际运用中,需要加密的消息的数据量是不定的,数据格式可能是多种多样的,因此需要做一些变通,灵活地运用这些基本密码。
而且,也需要采用适当的工作模式来隐藏明文的统计特性、数据格式等,以提高整体的安全性,降低删除、重放、插入和伪造成功的机会。
这种基本密码算法的适当的工作模式就是密码模式,也称为分组密码算法的运行模式。
密码模式通常是基本密码、一些反馈、和一些简单运算的组合。
(三)椭圆曲线密码算法
1.椭圆曲线算法概述
1985年Koblitz和Miler分别提出在椭圆曲线上构造密码系统的思想,即椭圆曲线密码(EEC)[2]。
它的基本思想是找到一条安全的椭圆曲线,将明文通过编码嵌入到椭圆曲线中,然后对椭圆曲线上点进行加密。
在椭圆曲线上进行加密的安全性是基于椭圆曲线上的有理点构成的Abelian群的离散对数问题。
由于求解该离散对数的难度与求解乘法群上的离散对数的难度相同,所以在椭圆曲线上可构造出相对安全的密码系统。
又因为在与其它密码系统具杳相同安全性的前提下,椭圆曲线密码的运算速度快,所产生的密钥较小,节省带宽,所以它被广泛地应用于智能卡、无线电设备等。
2.基于身份的密码系统
AdiShamir由于1984首先提出基于身份的公钥密码思想(ldentity-basedEncryption,IBE)[3]。
该公钥体制使用用户身份信息作为用户公钥,从而解决了公钥管理和公钥有效性验证的问题。
该体制中公钥多数情况下是方便可得的公开标识,不需要实时请求第三方机构如私钥产生中心(PrivateKeyGenerator,PKG)。
相比传统的公钥密码体制1IBE系统更加简单,只需密钥产生中心完成用户身份认证、私钥生成和安全传送,多数情况不需要对公钥进行存储管理;不需要实时的请求公钥证书,无需传统的证书机构中繁杂的公钥证书的产生、维护、更新和撤销等。
但是IBE存在加解密速度相对于对称密码算法较慢、私钥的更新等问题。
图3-3基于身份密码系统加密示意图
3.单向散列函数
单向散列函数[7]指的是根据输入消息(任何字节串,如文本字符串、Word文档、JPG文件等)输出固定长度数值的算法,输出数值也称为"散列值"或"消息摘要",其长度取决于所采用的算法,通常在128~256位之间。
单向散列函数旨在创建用于验证消息完整性的简短摘要。
在诸如TPC/IP等通信协议中,常采用检验和或CRC(循环冗余校验)来验证消息的完整性。
消息发送方计算消息的校验和并将其随消息一起发送,接收方重新计算校验和并将其与收到的校验和相比较,如果两者不同,接收方就认为消息在传送过程中受损,并要求发送方重新发送。
如果预计的损坏原因是电信号错误或其他自然现象,这些方法是可行的。
但如果预计的原因是恶意的狡猾攻击者的故意破坏,则需要更强的机制,在这种情况下,强加密单向散列函数便可派上用场。
强加密单向散列函数是这样设计的:
不可能通过计算找出两条散列值相同的消息。
对于校验和狡猾的攻击者可以轻易地对消息进行修改,并使其校验和与原消息的校验和相同。
而对于循环冗余校验,达到这样的目的也不困难。
但强加密单向散列函数却能令这一目标遥不可及。
(四)密码算法的选择
1.公众移动网端到端加密系统的密码算法选择
鉴于手机的计算能力差且计算资源少,设计低复杂性的认证与密钥分配方案对于端到端保密通信系统来说至关重要,基于以下考虑,在移动话音加密系统中,采用的认证与密钥分配均采用对称加密体制。
(1)向后兼容性
2G手机以及2.5G手机均采用对称加密体制,新的3G标准在制定时为了保持3G系统在运行上与原有系统不冲突,也采用对称加密体制。
因此目前来说,在实际中使用的系统均采用对称加密技术。
(2)技术的成熟性
在移动通信领域,公钥技术尚未获得认可。
虽然近几年里,公钥技术在该领域的可用性和应用前景再次受到人们的重视,然而对于产品而言为了减少研发的风险性,一般都会采用成熟的技术。
对称加密技术在移动通信领域的应用己经有了多年的实践积累,尽管它并不是尽善尽美的,但是在可接受的范围内它仍是产品研发的首选技术。
(3)接入方式
采用对称加密体制的一个前提,是需要进行保密通信的实体之间必须事先共享一个秘密。
在目前的移动通信系统中,采用基于注册的接入方式,这种传统的接入方式以手工形式完成密钥分发。
由于传统接入方式应用的时间较长,在今后的一段时间内即使出现其他多种形式的接入方式,它仍然是主要的接入方式之一,所以对称加密体制在应用上仍然得到强有力的支持。
因而对称加密体制在移动通信领域的应用前景不会受到冲击。
(4)计算量和通信量的考虑
对称密钥操作与公钥操作相比,具有较小的计算量,对实体的计算能力存储能力以及能源储备要求较低,在通信量上基于对程密钥算法的协议在通信量上也比较节约。
综上所述本文的认证和密钥分发协议选择采用对称加密体制。
2.分组密码模式选择
分组密码模式可以分为电子密码本模式(ECB),密码分组链接模式(CBC),密码反馈模式(CFB),输出反馈模式(OFB),计数器模式(CTR)。
本节从安全性,效率,容错性等方面来分析这几种密码模式。
如果密码体制的使用者关心的是简单和速度,ECB是最简单和最快的分组密码的模式,但ECB也是最弱的工作模式,除了容易受到重放攻击外,ECB模式中的算法也是最易分析的。
加密随机数据,如另外的密钥,则ECB是一个很好的模式。
由于数据短而随机,对这种应用ECB几乎没什么缺点。
对一般的明文,请使用CBC,CFB或OFB模式。
所选择的模式依赖于应用程序的特殊需要。
表3-1列出了各种模式的安全性和效率。
表3-1分组密码模式一览表
模式
特性
安全性
效率
容错性
ECB
1.一个密钥可以加密一个或多个消息
2.不能隐藏明文模式
3.分组密码的输入并不是随机的,它与明文一样
4.明文很容易窜改,分组可被删除,再现或互换
1.速度与分组密码相同
2.可并行处理
3.由于填充,密文比明文长4.不能进行预处理
1.一个密文错误会影响整个明文分组
2.同步错误不可恢复
CBC
1.通过跟前一个密文分组相异或明文模式被隐藏
2.与前一个密文分组异或后分组密码的输入是随机的
3.用同一个密钥可以加密多个消息
4.篡改明文稍难:
分组可以被从消息头和尾处删除,第一块分组的数据可被更换,并且复制允许控制的改变
1.速度同分组密码一样
2.加密不是并行的,解密是并行的且有随机存取特性
3.密文比明文长,不计算IV
4.不能进行预处理
1.一个密文错误会影响正个明文分组以及下一个分组的相应位
2.同步错误不可恢复
CFB
1.可以隐藏明文模式
2.密文块的输入是随机的
3.假设用不同的IV,同一个密钥可加密多个消息
4.对明文的篡改稍难:
分组可以被从消息头和尾处删除,第一块分组的数据可被更换,并且复制允许控制的改变
1.速度同分组密码相同
2.密文与明文同大小,不计算IV
3.加密不是并行的,解密是并行的且有随机存取特性
4.在分组出现之前作些预处理是可能的,前面的密文分组可以被加密
1.一个密文错误会影响明文的相应位及下一整个分组
2.同步错误是可恢复的,1-比特CFB能够恢复单独位的添加或丢失
OFB
1.明文模式被隐藏
2.密文分组的输入是随机的
3.用不同的IV,同一个密钥可以加密多个消息
4.明文很容易被控制篡改,任何对密文的改变都会直接影响明文
1.速度同分组密码一样
2.密文跟明文有同样大小,不计算IV
3.可进行预处理
4.处理过程不是并行的
1.一个密文错误仅影响明文的相应位
2.同步错误不可恢复
CTR
1.明文模式被隐藏
2.只要各计数器值不重复出现,则该模式安全
1.加解密均可并行处理,用硬件实现时速度极高。
2.可以随机存取,因为各分组的处理完全独立
3.可进行预处理
4.密文与明文的长度相等,因而高效
1.一个密文错误仅影响明文的相应位
2.同步错误不可恢复
从表3-1可以看出,五种基本模式各有其特点和用途。
ECB适用于密钥加密,CFB常用于对字符加密,OFB和CTR常用于卫星通信中的加密。
CBC和CFB都可用于认证系统。
这些模式可用于终端.主机会话加密、自动密钥管理系统中的密钥加密、文件加密、邮件加密等。
工作模式选用原则:
1)ECB模式,简单、高速,但最弱,易受重发攻击,一般不推荐;
2)CBC适用于文件加密,但较ECB慢,且需要另加移存器和组的异或运算,但安全性加强。
软件加密最好选用此种方式:
3)OFB和CFB较CBC慢许多,每次选代只有少数bit完成加密,但是它没有错误扩散。
若可以容忍少量错误扩展,可选CFB。
否则,可选OFB;
4)在字符为单元的流密码种多选CFB和CTR模式,如终端和主机间通信。
而OFB用于高速同步系统,不容忍差错传播,但如果需要预处理,那么OFB也是可以选择的模式。
(五)密钥的保护与存储
终端密钥的保护。
可用二级通信密钥(终端主密钥〉对会话密钥进行加密保护。
终端主密钥存贮于主密钥寄存器中,并由主机对各终端主密钥进行管理。
主机和终端之间就可用共享的终端主密钥保护会话密钥的安全。
主机密钥的保护。
主机在密钥管理上担负着更繁重的任务,因而也是敌手攻击的主要目标。
在任一给定时间内,主机可有儿个终端主密钥在工作,因而其密码装置须为各应用程序所共享。
工作密钥存储器要由主机施以优先级别进行管理,并对未被密码装置调用的那些会话密钥加以保护。
可采用一个主密钥对其它各种密钥进行加密,称此为主密钥原则。
这种方法将对大量密钥的保护问题化为仅对单个密钥的保护。
在有多台主机的网络系统中,为了安全起见,各主机应选用不同的主密钥。
有的主机采用多个主密钥对不同类密钥进行保护,例如用主密钥O对会话密钥进行保护,用主密钥1对终端主密钥进行保护,而网中传送会话密钥时所用的加密密钥为主密钥2。
三个主密钥可存放于三个独立的存贮器中,通过相应的密码操作进行调用,作为工作密钥对其所保护的密钥加密、解密。
这三个主密钥也可由存贮于密码器件中的种子密钥(SeedKey)按某种密码算法导出,以计算量来换取存贮量的减少。
此法不如前一种方法安全。
除了采用密码方法外,还必须和硬件、软件结合起来,以确保主机主密钥的安全。
最不复杂的的密钥存储问题是单用户的密钥存储,Alice加密文件以备以后用。
因为只涉及她一个人,且只有她一人对密钥负责。
一些系统采用简单方法:
密钥存放于Alice的脑子中,而决不放在系统中,Alice需记住密钥,并在需要对文件加密或解密时输入。
其它解决方案有:
将密钥储存在磁条卡中,嵌入ROM芯片的塑料密钥,智能卡或者USBKey中[5]。
用户先将物理标记插入加密箱上或连在计算机终端上的特殊读入装置中,然后把密钥输入到系统中。
当用户使用这个密钥时,他并不知道它,也不能泄露它。
ROM密钥是一个很聪明的主意。
人们已经对物理钥匙很熟悉了,知道它们意味着什么和怎样保护它们。
将一个加密密钥做成同样的物理形式就会使储存和保护它更加地直观。
把密钥平分成两部分,一半存入终端一半存入ROM密钥使得这项技术更加安全。
美国政府的STU-III保密电话就是用的这种方法。
丢失了ROM密钥并不能使加密密钥受到损害一一换掉它一切就正常如初。
丢失终端密钥情况也如此。
这样,两者之一被损害都不能损害整个密钥一一敌人必须两部分都有才行。
可采用类似于密钥加密密钥的方法对难以记忆的密钥进行加密保存。
例如,一个RSA私钥可用DES密钥加密后存在磁盘上,要恢复密钥时,用户只需把DES密钥输入到解密程序中即可。
如果密钥是确定性地产生的(使用密码上安全的伪随机序列发生器),每次需要时从一个容易记住的口令产生出密钥会更加简单。
理想的情况是