The Cryptography API, or How to Keep a Secret (二)

原创 2004年02月07日 22:51:00

加密

当进行数据加密时,明文消息(plain-text message)在被编码后会看起来象完全随机的二进制数据,以至于没有密鈅就很难将其转化为原来的消息。本文中使用如下定义:

  • 消息(Message:指任何数据块。消息可以是ASCII文本,一个数据库文件或者任何你要安全存储或者传输的数据。
  • 明文(Plain text:指没有被加密的数据。
  • 密文(Cipher text:指被加密过的数据。

一旦消息被加密,它就可以存储在非安全的介质上或者通过非安全的网络传输而仍然保持安全。之后,消息可以解密回原来的格式。图2图解了这个过程:

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />CSDN_Dev_Image_2004-2-61627190.gif

2 . 加密、解密消息

当加密消息时,要使用加密密鈅(encryption key 这就类型于用一把钥匙去锁一把锁一样。当解密这个消息时,必须用相应的解密密鈅(decryption key)。对解密密鈅的严格限制访问非常重要,因为任何拿到它的人可以解开用相应的加密密鈅加密的所有消息。

可能有点不可思议,但数据加密/解密就是这么简单。真正的难点是安全的保存密鈅和安全的将密鈅传输到其它人那。这部分已经超出了本文的范围,我建议读者去读文章"Exchanging Cryptographic Keys"的相应部分,文章在Win32 Cryptography API文档中(MSDN Library, Platform, SDK, DDK 文档)

有两种主要的加密算法:对称算法(symmetric algorithms)与公鈅算法(public-key algorithms [也叫做非对称算法(asymmetric algorithms] 使用对称算法的系统有时归入传统型( conventional)中。

算法

对称算法是最普遍的加密算法类型。它们叫“对称”是因为使用相同的密鈅进行加密与解密。与使用公鈅算法的密鈅不同,对称密鈅是经常变化的。因为这个原因,此处将它们归于会话密鈅。与公鈅算法相比,对称算法非常快,因此最适于加密大量数据的情况。一些最常用的对称加密算法是 RC2 RC4,与数据加密标准(Data Encryption Standard DES)。(译注:单重DES因密鈅长度已不适应当前的加密环境,最好不用。可以使用三重DES,或者AES

公鈅(非对称)算法使用一对不同的密鈅:一个公鈅和一个私鈅。私鈅由密鈅对的所有者自己保存,公鈅可以自由分发给所有要求得到的人。如果用一个密鈅加密一个消息,必须用另一个密鈅解密此消息。公鈅算法很慢, 要比对称算法慢数千倍。因此它们一般仅用来加密会话密鈅。它们也用来对消息进行数字签名(digitally sign),下一部分会讨论这个内容。最常用的公鈅加密算法之一是RSA Public-Key Cipher

文件签名

数字签名Digital signatures用在你要以明文形式分发一个消息,并且你想要让接收者能够验证这个消息自从离开你手后没有被篡改过。对消息签名并不会改变消息,它仅生成一个可附着在消息上或者单独传输的数字签名。

数字签名使用公鈅算法生成。使用私鈅来生成,并且使用相对应的公鈅来验证。图3 图解了这一过程:

CSDN_Dev_Image_2004-2-61627192.gif

3 验证签名

appstore_被拒记录

发件人 Apple 1.0 二进制文件被拒绝 2016年3月24日 2.16 Details Your app declares support for audio in the UIBackgro...
  • u012576807
  • u012576807
  • 2016年03月24日 12:45
  • 13878

Git+GPG加密tag一直失败

最近在学习Git方面的知识,发现廖雪峰老师的网站有系统介绍Git的教程 创建标签 我用该命令:$ git tag -s v0.2 -m “signed version 0.2 released” ...
  • u013226053
  • u013226053
  • 2016年08月12日 11:20
  • 1359

Solr入门之官方文档6.0阅读笔记系列(十)

The Well-Configured Solr Instance 告诉你如何调节solr实例到最佳性能 Configuring solrconfig.xml solrcon...
  • sqh201030412
  • sqh201030412
  • 2016年09月06日 17:03
  • 2984

Oracle EBS R12 how to call standard API/packages from custom form or reports

Oracle EBS R12 how to call standard API/packages from custom form or reports Okay guys and gals ...
  • papaya14
  • papaya14
  • 2012年05月30日 13:14
  • 5910

Elsevier.Database Archiving.How to Keep Lots of data for a very Long Time.2009.pdf

  • 2009年05月21日 13:52
  • 3.21MB
  • 下载

密码学论文 how to share a secret with cheaters

  • 2009年04月08日 13:37
  • 173KB
  • 下载

How to Share a Secret

  • 2017年09月16日 16:48
  • 191KB
  • 下载

5how to share a secret - Shamir 论文

  • 2015年03月27日 14:46
  • 194KB
  • 下载

How to Create a Mind The Secret of Human Thought Revealed

  • 2017年05月17日 15:08
  • 4.18MB
  • 下载

How to keep CoreBluetooth connection alive between views

How to keep CoreBluetooth connection alive between views asked by Simon Bøgh on Jan 11 2016 23:05...
  • wanderman1836
  • wanderman1836
  • 2017年08月07日 19:34
  • 181
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:The Cryptography API, or How to Keep a Secret (二)
举报原因:
原因补充:

(最多只允许输入30个字)