Internet电子邮件保密增强:Part1-消息编码和鉴别过程( 七 )


符 。(这一行长度是易被打印的并保证满足SMTP的每行最多1000个字符的限制 。)
编码过程将输入的每组24位表示为输出的4个字符 。从左到右的一个24位输入组从
步骤三的输出中获得,每6位组被用作一个64位可打印的字符的索引 。被索引指定的字
符被放置在输出串中 。这些字符,被标识在表0中,被选择作为通用的表示,对SMTP
有非凡意义的字符被排除(例如,“.”,“”,“”) 。
假如输入的一组少于24位进行非凡的处理,要么在一个消息尾(当可选的加密功能
被调用)要么在一个被加密的域或未加密的域的末端 。全部的编码总是在消息末和分界符
“*”被输出初始或终止一个无需加密的块之前被完成 。当输入的一个组消息少于24位,
位0被填充使消息是6的整数倍 。不需要表示实际输入数据的输出字符位被置为字符“=” 。
因此所有的通用编码的输出是一个8位字节的整数,只有下面的情况能出现:(1)编码输
入的最后的量是24位的整数倍;这,编码输出的最后的单元是不含“=”填充的4的整
数倍,(2)编码输入的最后量确定为8位;这,编码输出的最后的单元将两个字符并跟有
两个“=”的填充字符,或(3)编码输入的最后的量确定为16位;这,编码输出的最后
的单元将是三个字符并跟有一个“=”填充字符 。
4.3.2.5转换概述
总的说,发送的消息服从下面的转换式:
Transmit_Form=Encode(Encipher(Canonicalize(Local_Form)))
相反的操作以相反的顺序转换处理接收的保密增强邮件:
Local_Form=Decanonicalize(Decipher(Decode(Transmit_Form)))
ValueEncodingValueEncodingValueEncodingValueEncoding
0A17R34i51z
1B18S35j520
2C19T36k531
3D20U37l542
4E21V38m553
5F22W39n564
6G23X40o575
7H24Y41p586
8I25Z42q597
9J26a43r608
10K27b44s619
11L28c45t62
12M29d46u63/
13N30e47v
14O31f48w(pad)=
15P32g49x
16Q33h50y(1)*
(1)Thecharacter"*"isusedtoencloseportionsofan
encodedmessagetowhichencryptionprocessinghasnot
beenapplied.
PrintableEncodingCharacters
Table1
注重本地的形式和转换消息到标准形式及从标准形式转换的功能可以在发送者和接
收者之间无信息损失的变动 。
4.4封装机制
在一个由电子邮件传输系统解释的头的一个封装层里的保密增强消息的封装比一个
简单的被加密或携带密码控制信息的头内的一定域的简单的处理有更多的优势 。封装提供
了一般性和那些在传输时被转换的消息的用户对用户级的隔离的域 。被插入到加密/鉴别
过程中的所有的域被放置在封装的头中 。这个功能为只接收文本没有从输入文件或从其它
程序获得头域的邮件处理程序提供了兼容性 。此外,保密增强处理能被递归使用 。关于
MTS,合并到密码鉴别或加密处理的信息将驻留到一个消息的文本部分,而不是头部分 。
用于保密增强邮件的封装机制来自于RFC-934[11]中的叙述,这一叙述是基于internet
社区消息摘要处理的先例 。预备的用于加密或鉴别的一个用户消息将被转换为图1中的表
述 。
作为一般的设计原则,敏感的数据通过将数据导入到被封装的文本而不是通过将数
据导入到封装的头里的域的方法来进行保护 。潜在的敏感头信息的域可以包括这些域例
如:“Subject:”,包含的内容对于端到端的用户和内部的用户有意义 。应用保护的头域集
(可能是空的)由用户选择 。不过强烈推荐所有的信息应当在封装文本里复制

推荐阅读