PGP 具有相当好的保密性( 二 )


息,而没有其他需要的数据 。
第二部分MIME主体部分必须饱含真正的加密数据 。它必须拥有内容类型为
"application/octet-stream"的标志 。
范例消息:
From:MichaelElkins
To:MichaelElkins
Mime-Version:1.0
Content-Type:multipart/encrypted;boundary=foo;
protocol="application/pgp-encrypted"
--foo
Content-Type:application/pgp-encrypted
Version:1
--foo
Content-Type:application/octet-stream
-----BEGINPGPMESSAGE-----
Version:2.6.2
hIwDY32hYGCE8MkBA/wOu7d45aUxF4Q0RKJprD3v5Z9K1YcRJ2fve87lMlDlx4Oj
eW4GDdBfLbJE7VUpp13N19GL8e/AqbyyjHH4aS0YoTk10QQ9nnRvjY8nZL3MPXSZ
g9VGQxFeGqzykzmykU6A26MSMexR4ApeeON6xzZWfo 0yOqAq6lb46wsvldZ96YA
AABH78hyX7YX4uT1tNCWEIIBoqqvCeIMpp7UQ2IzBrXg6GtukS8NxbukLeamqVW3
1yt21DYOjuLzcMNe/JNsD9vDVCvOOG3OCi8=
=zzaA
-----ENDPGPMESSAGE-----
--foo--
5.PGP标记数据
PGP标记消息通过"multipart/signed"内容类型表示,在[1]中进行了描述,使用必须拥
有值为"application/pgp-signature"(必须用引号引起来)的“协议”参数,参数"micalg"
必须拥有为"pgp-"的值,在这里标记消息完整性检查(MIC)用
于产生签名 。通常定义的值为"md5"用于MD5的校验和,"sha1"用于SHA.1
算法 。
multipart/signed主体必须包含两个部分 。第一部分包含MIME规范格式的标记数据,包
含描述该数据的适当的内容头的集合 。
第二部分必须包含PGP数据标记 。它必须包含内容类型为"application/pgp-signature"
的标注 。
当产生PGP数字签名时:
(1)要进行标记的数据必须先被转化为其type/suBType特定规范格式 。对于
text/plain,这就意味着转化为合适的字符集并且将行末尾转换为标准的回车和换行序列 。
(2)然后使用一个合适的内容转换编码,每一行经过编码的数据必须以标准的回车、换
行序列结束 。
(3)MIME内容报头然后被加到主体上来,每一个都以标准的回车、换行序列结束 。
(4)正如在[1]中所描述的,数字签名必须要同时基于要进行标记的数据和其内容报头计
算出来 。
(5)要产生的签名必须与待标记的数据相分离,这样处理不管怎样都不会改变原有的数
据 。
范例消息:
From:MichaelElkins
To:MichaelElkins
Mime-Version:1.0
Content-Type:multipart/signed;boundary=bar;micalg=pgp-md5;
protocol="application/pgp-signature"
--bar
&Content-Type:text/plain;charset=iso-8859-1
&Content-Transfer-Encoding:quoted-printable
&
&=A1Hola!
&
&Didyouknowthattalkingtoyourselfisasignofsenility?
&
&It"sgenerallyagoodideatoencodelinesthatbeginwith
&From=20becausesomemailtransportagentswillinsertagreater-
&than(>)sign,thusinvalidatingthesignature.
&
&Also,insomecasesitmightbedesirabletoencodeany=20
&railingwhitespacethatoccursonlinesinordertoensure=20
&thatthemessagesignatureisnotinvalidatedwhenpassing=20
&agatewaythatmodifiessUChwhitespace(likeBITNET).=20
&
&me
--bar
Content-Type:application/pgp-signature
-----BEGINPGPMESSAGE-----
Version:2.6.2
iQCVAwUBMJrRF2N9oWBghPDJAQE9UQQAtl7LuRVndBjrk4EqYBIb3h5QXIX/LC//
jJV5bNvkZIGPIcEmI5iFd9boEgvpirHtIREEqLQRkYNoBActFBZmh9GC3C041WGq
uMbrbxc nIs1TIKlA08rVi9ig/2Yh7LFrK5Ein57U/W72vgSxLhe/zhdfolT9Brn
HOxEa44b EI=
=ndaj
-----ENDPGPMESSAGE-----
--bar--
在前例中的"&"表示基于其的数据部分符号是计算出来的 。
尽管不是必须的,不过通常来说假如任意一行数据以"From"开始,并且编码"F",那么在
第一步中使用可打印字符进行编码是一个好的主意(用MIME规范格式写出要标记的数据) 。

推荐阅读