A. 国内比较突出的几款邮件加密软件有知道的吗
第一种:利用对称加密算法加密邮件
对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。利用对称密码算法对电子邮件进行加密,需要解决密码的传递,保存、交换。这种方式的邮件加密系统目前很少使用。
典型基于对称加密的邮件加密产品:Office口令加密,PDF口令加密、WinRAR口令加密、WinZip口令加密。(这种方式用于电子邮件加密上只能用于加密附件)。
第二种:利用链式加密体系进行电子邮件加密
这种机制以一个随机生成的密钥(每次加密不一样),再用对称加密算法(如3DES、IDEA算法)对明文加密,然后用RSA非对称算法对该密钥加密。这样收件人同样是用RSA解出这个随机密钥,再用对称加密算法解密邮件本身。这样的链式加密就做到了既有RSA体系的保密性,又有对称加密算法的快捷性。此外,链式加密体系的密钥管理由用户自己管理,公钥的交换基于信任机制。如:假设A想要获得B的公开密钥,可以采取几种方法,包括拷贝给A、通过电话验证公开密钥是否正确、从双方都信任的人C那里获得、从认证中心获得等。这样,用户的电子邮件就是非常安全的。
典型基于链式加密体系邮件加密产品:MailCloak(电子邮封)
第三种:利用基于身份的密码技术进行电子邮件加密
为简化传统公钥密码系统的密钥管理问题,1984年,以色列科学家、着名的RSA体制的发明者之一A. Shamir提出基于身份密码的思想:将用户公开的身份信息(如e-mail地址,IP地址,名字……,等等)作为用户公钥,用户私钥由一个称为私钥生成者的可信中心生成。在随后的二十几年中,基于身份密码体制的设计成为密码学界的一个热门的研究领域。但是由于在此机制下,用户的密钥都是在服务器端托管,用户的信息安全安全性还要依赖于服务器安全及服务提供商的承诺。
典型基于身份密码的邮件加密产品:赛曼邮件天使系统
B. 区块链运用落地有哪些领域
1、医疗
在医疗领域,医院与医院微V-BQ尔无吧疤Y之间的数据共享意味着更精确的诊断,更有效的治疗,还能推动医疗系统的整体服务能力。但是,数据的共享也意味着医患的隐私暴露问题,区块链技术可以让医院、患者和医疗利益链上的各方在区块链网络里共享数据,而不必担忧数据的安全性和完整性。
2、物流
目前,物流最令人诟病的问题就是丢件漏配罩件及快件损坏,而区块链技术可以记录货物从发出到接受过程中的所有环节,通过网络共识,直接定位到快递中间环节的问题所在,确保信息的可追踪性,从而避免快递爆仓丢包、误领错领等问题的发生。
3、大数据
大数据是现代企业发展中不可或缺的一环,而区块链所具备的安全性和不可篡改性,能让更多数据安全的被解放出来。基于全网共识为微V-BQ尔无吧疤Y基础的数据可信的区块链数据,是不可篡改的、安全的、也使数据的质量获得前所未游磨有的强信任背书,也使数据库的发展进入一个新时代。
4、分布式商业平台
结合区块链技术去中心化、分布式账薄等优势来看,这项技术与商业平台领域有很多值得关注的融合点,如果能够以区块链技术为核心支撑技术,在商品交易领域研究和开发基于区块链技术的交易模式和交易系统,直接交易,这样一来,生产者能获得更大的收益,消费者也获得更低的产品成本,可谓两全其美。
一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。
其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;
网络层则包括分布式组网培磨闹机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;
激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;
合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;
应用层则封装了区块链的各种应用场景和案例。
该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。
C. PGP是什么
PGP(Pretty Good Privacy),是一个基于RSA公匙加密体系的邮件加密软件。可以用它对邮件保密以防止非授权者阅读,它还能对邮件加上数字签名从而使收信人可以确认邮件的发送者,并能确信邮件没有被篡改。它可以可以提供一种安全的通讯方式,而事先并不需要任何保密的渠道用来传递密匙。它采用了一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等,还有一个良好的人机工程设计。它的功能强大,有很快的速度。而且它的源代码是免费的。
实际上PGP的功能还包括: PGP可以用来加密文件,还可以用PGP代替UUencode 生成RADIX 64 格式(就是MIME 的 BASE 64格式)的编码文件。
PGP 的创始人是美国的 Phil Zimmermann。他的创造性在于他把RSA公匙体系的方便和传统加密体系的高速度结合起来,并且在数字签名和密匙认证管理机制上有巧妙的设计。因此PGP成为几乎最流行的公匙加密软件包。
1.首先简要介绍PGP加密系统的流程。
PGP加密系统是采用公开密钥加密与传统密钥加密相结合的一种加密技术。它使用一对数学上相关的钥匙,其中一个(公钥)用来加密信息,另一个(私钥)用来解密信息。
PGP采用的传统加密技术部分所使用的密钥称为“会话密钥”(sek)。每次使用时,PGP都随机产生一个128位的IDEA会话密钥,用来加密报文。公开密钥加密技术中的公钥和私钥则用来加密会话密钥,并通过它间接地保护报文内容。
PGP中的每个公钥和私钥都伴随着一个密钥证书。它一般包含以下内容:
密钥内容(用长达百位的大数字表示的密钥)
密钥类型(表示该密钥为公钥还是私钥)
密钥长度(密钥的长度,以二进制位表示)
密钥编号(用以唯一标识该密钥)
创建时间
用户标识 (密钥创建人的信息,如姓名、电子邮件等)
密钥指纹(为128位的数字,是密钥内容的提要表示密钥唯一的特征)
中介人签名(中介人的数字签名,声明该密钥及其所有者的真实性,包括中介人的密钥编号和标识信息)
PGP把公钥和私钥存放在密钥环(KEYR)文件中。PGP提供有效的算法查找用户需要的密钥。
PGP在多处需要用到口令,它主要起到保护私钥的作用。由于私钥太长且无规律,所以难以记忆。PGP把它用口令加密后存入密钥环,这样用户可以用易记的口令间接使用私钥。
PGP的每个私钥都由一个相应的口令加密。PGP主要在3处需要用户输入口令:
需要解开受到的加密信息时,PGP需要用户输入口令,取出私钥解密信息
当用户需要为文件或信息签字时,用户输入口令,取出私钥加密
对磁盘上的文件进行传统加密时,需要用户输入口令
2.以上介绍了PGP的工作流程,下面将简介与PGP相关的加密、解密方法以及PGP的密钥管理机制。
PGP是一种供大众使用的加密软件。电子邮件通过开放的网络传输,网络上的其他人都可以监听或者截取邮件,来获得邮件的内容,因而邮件的安全问题就比较突出了。保护信息不被第三者获得,这就需要加密技术。还有一个问题就是信息认证,如何让收信人确信邮件没有被第三者篡改,这就需要数字签名技术。RSA公匙体系的特点使它非常适合用来满足上述两个要求:保密性(Privacy)和认证性(Authentication)。
RSA(Rivest-Shamir-Adleman)算法是一种基于大数不可能质因数分解假设的公匙体系。简单地说就是找两个很大的质数,一个公开即公钥,另一个不告诉任何人,即私钥。这两个密匙是互补的,就是说用公匙加密的密文可以用私匙解密,反过来也一样。
假设甲要寄信给乙,他们互相知道对方的公匙。甲就用乙的公匙加密邮件寄出,乙收到后就可以用自己的私匙解密出甲的原文。由于没别人知道乙的私匙,所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面由于每个人都知道乙的公匙,他们都可以给乙发信,那么乙就无法确信是不是甲的来信。这时候就需要用数字签名来认证。
在说明数字签名前先要解释一下什么是“邮件文摘”(message digest)。邮件文摘就是对一封邮件用某种算法算出一个最能体现这封邮件特征的数来,一旦邮件有任何改变这个数都会变化,那么这个数加上作者的名字(实际上在作者的密匙里)还有日期等等,就可以作为一个签名了。PGP是用一个128位的二进制数作为“邮件文摘”的,用来产生它的算法叫MD5(message digest 5)。 MD5是一种单向散列算法,它不像CRC校验码,很难找到一份替代的邮件与原件具有同样的MD5特征值。
回到数字签名上来,甲用自己的私匙将上述的128位的特征值加密,附加在邮件后,再用乙的公匙将整个邮件加密。这样这份密文被乙收到以后,乙用自己的私匙将邮件解密,得到甲的原文和签名,乙的PGP也从原文计算出一个128位的特征值来和用甲的公匙解密签名所得到的数比较,如果符合就说明这份邮件确实是甲寄来的。这样两个安全性要求都得到了满足。
PGP还可以只签名而不加密,这适用于公开发表声明时,声明人为了证实自己的身份,可以用自己的私匙签名。这样就可以让收件人能确认发信人的身份,也可以防止发信人抵赖自己的声明。这一点在商业领域有很大的应用前途,它可以防止发信人抵赖和信件被途中篡改。
PGP用的实际上是RSA和传统加密的杂合算法。因为RSA算法计算量极大在速度上不适合加密大量数据,PGP实际上用来加密的不是RSA本身,而是采用了一种叫IDEA的传统加密算法。传统加密,一般说来说就是用一个密匙加密明文,然后用同样的密匙解密。这种方法的代表是DES,也就是乘法加密,它的主要缺点就是密匙的传递渠道解决不了安全性问题,不适合网络环境邮件加密需要。IDEA的加(解)密速度比RSA快得多,所以实际上PGP是以一个随机生成密匙(每次加密不同)用IDEA算法对明文加密,然后用RSA算法对该密匙加密。这样收件人同样是用RSA解密出这个随机密匙,再用IDEA解密邮件本身。这样的链式加密就做到了既有RSA体系的保密性,又有IDEA算法的快捷性。PGP利用这种链式加密,既保证了保密性,又保证了加密的速度。
PGP最核心的功能是:文件加密、通信加密和数字签名。下面将简介一些PGP辅助功能,它们虽然不是整个加密系统的核心,但却起到了协调各部分和方便用户的作用。这儿主要介绍PGP的密钥管理机制。
一个成熟的加密体系必然要有一个成熟的密匙管理机制配套。公匙体制的提出就是为了解决传统加密体系的密匙分配过程难以保密的缺点。如果密匙是通过网络传送,那么网络上其他人就可以通过监听得到。举个例子:Novell Netware 的老版本中,用户的密码是以明文在线路中传输的,这样监听者轻易就获得了他人的密码。当然 Netware 4.1 中数据包头的用户密码现在是加密的了。对PGP来说公匙本来就要公开,就没有防监听的问题。但公匙的发布中仍然存在安全性问题,例如公匙的被篡改(Public Key Tampering),这可能是公匙密码体系中最大的漏洞。必须有一种机制保证用户所得到的公钥是正确的,而不是别人伪造的。下面举一个例子来说明这个问题,以及如何正确地用PGP堵住这个漏洞。
假设Mike想给Alice发封信,那他必须有Alice的公匙。该用户从BBS上下载了Alice的公匙,并用它加密了信件用BBS的Email功能发给了Alice。但是,另一个用户叫Charlie的用户潜入BBS,把他自己用Alice的名字生成的密匙对中的公匙替换了Alice的公匙,而参与通信的这两个人都不知道。那么Mike用来发信的公匙就不是Alice的而是Charlie的,一切看来都很正常。于是Charlie就可以用他手中的私匙来解密Mike给Alice的信,甚至他还可以用Alice真正的公匙来转发Mike给Alice的信,这样谁都不会起疑心,他如果想改动Mike给Alice的信也没问题。甚至他还可以伪造Alice的签名给Mike或其他人发信,因为这些用户手中的公匙是伪造的,他们会以为真是Alice的来信。
防止这种情况出现的最好办法是避免让任何其他人有机会篡改公匙,比如直接从Alice手中得到她的公匙,然而这在很多情况下是比较困难的。PGP发展了一种公匙介绍机制来解决这个问题。举例来说:如果Mike和Alice有一个共同的朋友David,而David知道他手中的Alice的公匙是正确的(关于如何认证公匙,PGP还有一种方法,后面会谈到,这里假设David已经和Alice认证过她的公匙)。这样David可以用他自己的私匙在Alice的公匙上签名,表示他担保这个公匙属于Alice。当然Mike需要用David的公匙来校验他给出的Alice的公匙,同样David也可以向Alice认证Mike的公匙,这样David就成为Mike和Alice之间的“介绍人”。这样Alice或David就可以放心地把David签过字的Alice的公匙上载到BBS上让Mike去拿,没人可能去篡改它而不被发现,即使是BBS的管理员。这就是从公共渠道传递公匙的安全手段。
那么怎么能安全地得到David的公匙呢,确实有可能Mike拿到的David的公匙也是假的,但这就要求这个伪造密钥的人参与这整个过程,他必须对这三个人都很熟悉,还要策划很久,这一般不可能。当然,PGP对这种可能也有预防的建议,那就是由一个大家普遍信任的人或机构担当这个角色,即所谓的“密匙侍者”或“认证权威”(认证中心),每个由他签字的公匙都被认为是真的,这样大家只要有一份他的公匙就行了,认证这个人的公匙是方便的,因为他广泛提供这个服务,假冒他的公匙是很极困难的,因为他的公匙流传广泛。这样的“权威”适合由非个人控制组织或政府机构充当,现在已经有等级认证制度的机构存在。
对于那些非常分散的人们,PGP更赞成使用私人方式的密匙转介方式,因为这样有机的非官方途径更能反映出人们自然的社会交往,而且人们也能自由地选择信任的人来介绍。总之和不认识的人们之间的交往一样。每个公匙有至少一个“用户名”(User ID),最好再加上本人的Email地址,以免混淆。
3.下面,再介绍如何通过电话认证密匙。
每个密匙有它们自己的标识(keyID),keyID是一个八位十六进制数,两个密匙具有相同keyID的可能性是几十亿分之一,而且PGP还提供了一种更可靠的标识密匙的方法:“密匙指纹”(key's fingerprint)。每个密匙对应一串数字(十六个两位十六进制数),这个指纹重复的可能就更微乎其微了。而且任何人无法指定生成一个具有某个指纹的密匙,密匙是随机生成的,从指纹也无法反推出密匙来。这样当拿到某人的公匙后就可以和他在电话上核对这个指纹,从而认证他的公匙。如果无法直接和通信的另一方直接通电话,可以和公钥介绍机制中的中间介绍人通电话认证该介绍人的公匙,从而通过介绍人认证了通信另一方的公匙,这就是直接认证和间接介绍的结合。
这样又引出一种方法,就是把具有不同人签名的自己的公匙收集在一起,发送到公共场合,这样可以希望大部分人至少认识其中一个人,从而间接认证了你的公匙。同样你签了朋友的公匙后应该寄回给他,这样就可以让他可以通过你被你的其他朋友所认证。和现实社会中人们的交往一样。PGP会自动为你找出你拿到的公匙中有哪些是你的朋友介绍来的,那些是你朋友的朋友介绍来的,哪些则是朋友的朋友的朋友介绍的……它会帮你把它们分为不同的信任级别,让你参考决定对它们的信任程度。你可以指定某人有几层转介公匙的能力,这种能力是随着认证的传递而递减的。
转介认证机制具有传递性,这是个有趣的问题。PGP的作者Phil Zimmermann说过一句话:“ 信赖不具有传递性;我有个我相信决不撒谎的朋友。可是他是个认定总统决不撒谎的傻瓜,可很显然我并不认为总统决不撒谎。”
上面所说的是关于公匙的安全性问题,这是PGP安全的核心。另外,和传统单密匙体系一样,私匙的保密也是决定性的。相对公匙而言,私匙不存在被篡改的问题,但存在泄露的问题。RSA的私匙是很长的一个数字,用户不可能将它记住,PGP的办法是让用户为随机生成的RSA私匙指定一个口令(pass phase)。只有通过给出口令才能将私匙释放出来使用,用口令加密私匙的方法保密程度和PGP本身是一样的。所以私匙的安全性问题实际上首先是对用户口令的保密。当然私匙文件本身失密也很危险,因为破译者所需要的只是用穷举法(强力攻击)试探出口令了,虽说很困难但毕竟是损失了一层安全性。需要说明的是:最好不要把私钥写在纸上或者某一文件里,因为这样很容易被别人得到在这里。
PGP在安全性问题上的审慎考虑体现在PGP的各个环节。比如每次加密的实际密匙是个随机数,大家都知道计算机是无法产生真正的随机数的。PGP程序对随机数的产生是很审慎的,关键的随机数像RSA密匙的产生是从用户敲键盘的时间间隔上取得随机数种子的。对于磁盘上的 randseed.bin 文件是采用和邮件同样强度的加密的。这有效地防止了他人从randseed.bin文件中分析出加密实际密匙的规律来。
4.最后提一下PGP的加密前预压缩处理,PGP内核使用PKZIP算法来压缩加密前的明文。
一方面对电子邮件而言,压缩后加密再经过7bits编码密文有可能比明文更短,这就节省了网络传输的时间。另一方面,明文经过压缩,实际上相当于经过一次变换,信息更加杂乱无章,对明文攻击的抵御能力更强。PKZIP算法是一个公认的压缩率和压缩速度都相当好的压缩算法。在PGP中使用的是PKZIP 2.0版本兼容的算法。
5.参考书目:
Philip Zimmermann : “PGP User's Guide Volume I : Essential Topics”
NAI
D. 区块链技术原理与应用 介绍一下
1、区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了过去十分钟内所有比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。是比特币的底层技术,像一个数据库账本,记载所有的交易记录。
2、广义定义:利用加密链式结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码(智能合约)来变成和操作数据的一种全新的去中心化基础架构与分布式计算范式。
3、狭义定义:按照时间顺序将数据区块以链条的方式组合成特定数据结构,并以密码学方式保证的不可篡改和不可伪造的去中心化共享账户。
4、区块链的特点:去中心化:区块链数据的验证、记账、存储、维护和传输等过程均是基于分布式系统机构,采用纯数学方法而不是中心结构来建立分布式节点间的信任关系,从而形成去中心化的可信任的分布式系统。
5、时序数据:区块链采用带有时间戳的链式区块结构存储数据,从而为数据增加了时间维度,具有极强的可验证性和可追溯性。
6、集体维护:区块链系统采用特定的经济激励机制来保证分布式系统中所以节点均可参与数据区块的验证过程,并通过共识算法来选择特定的节点将新区快添加到区块链。
7、可编程:区块链技术提供灵活的脚本代码系统,支持用户创建高级的智能合约、货币或其他去中心化应用。
8、安全可信:区块链技术采用非对称密码原理对数据进行加密,同时借助分布式系统各节点的工作量证明等共识算法形成的强大算力来抵御外部攻击、保证区块链数据不可篡改和不可伪造,因而具有较高的安全性。
9、区块链应用场景:数字货币:以比特币为代表,本质上是由分布式网络系统生成的数字货币,其发行过程不依赖特定的中心化机构。