!""!年第 "# 卷第 " 期
微电子学与计算机
"#
#$% 1.%&-23 ’($)*+ 4567/0
李春科 李伟华
!西北工业大学$ 陕西 西安 Q#RRQ""
摘 要! 拨号上网用户要将用户名 !密码等敏感信息进行传输 "这就需要对信息进行加密并认证用户的身份 # 远程认
证拨号接入用户服务协议是目前应用最广泛的身份验证和授权拨号网络用户的方法 $在某园区的拨号上网系统的实现
中 "文 章 利 用 CAD 加 密 算 法 的 定 长 输 出 特 性 "对 拨 号 用 户 的 用 户 名 %密 码 等 信 息 实 现 了 加 密 传 输 "在 带 宽 受 限 的 情 况
下"保证了网络数据的安全性和用户认证的效率$
关键词! CAD"加密算法"?:A9B*"网络安全":::
中图法分类号! 0$SRTMQ 文献标识码!: 文章编号! #RRRFQ#URI"RR!LR"FR"#FR!
#$% ,-./01234- (564/3278 9-: (1153.9234- 3- ’($)*+ ;/424.45
V9 W-%3#6.8 V9 X.(#-%<
!425,-+.7,.53 $2’G,.)-3()<’ B3(;.57(,G8 Y($<3 Q#RRQ"8 W-(3<"
(<=2/9.2> 0-. %7.5 3<@.8 1<77+25/ <3/ 2,-.5 7.37(,(;. (3Z25@<,(23 @%7, &. 7.3, ,2 4.,+256 :)).77 *.5;.5 I4:*L Z25 :%#
,-.3,()<,(238 :%,-25(=<,(23 <3/ :))2%3,(3> I:::L +-.3 %7.5 /(<’ ,2 93,.53., *.5;(). $52;(/.5 I9*$LM ?:A9B* 152,2)2’ (7
+(/.’G %7./ (3 ;<5(2%7 ::: 7G7,.@7 2Z 3.,+2567 <)).77 /.;().7M 0-. <%,-25 /.7(>37 <3/ (@1’.@.3,7 < ?:A9B* 7.5;.5 (3 <
’2)<’ 3.,+256 <)).77 7G7,.@ +(,- CAD .3)5G1,(23 <’>25(,-@M 0-. 7G7,.@ .37%5.7 ,-. .ZZ.),(;(,G 2Z %7.5 <%,-.3,()<,(23 <3/ 7.#
)%5(,G 2Z /<,< ,5<37Z.5 .;.3 (3 &<3/+(/,- ’(@(,./ .3;(523@.3,7M
?@0 A4/:=> CAD8 [3)5G1,(23 :’>25(,-@8 ?:A9B*8 4.,+256 *.)%5(,G8 :::
! !"
" #$% #$%&
公 用 交 换 电 话 网 !$%&’() *+(,)-./ 0.’.1-23.
4.,+25678 $*04"作为使用最广泛#渗透范围最深的
通信网络$ 在 93,.53., 的发展当中起着举足轻重的
作用% 用户进行 $*04 拨号上网的过程中$要把用户
名#密码等信息经过长距离#大范围的 $*04 传输到
网 络 接 入 服 务 器 !4.,+2567 :)).77 *.5;.58 4:*" 接
受认证与授权% 这些信息可能受到截获与伪装$认
证 # 授 权 与 计 费 体 系 !:%,-.3,()<,(238 :%,-25(=<,(238
:))2%3,(3>8 :::"提供了一个实现身份认证及访问
控制的机制% 远程认证拨号接入用户服务!?.@2,.
:%,-.3,()<,(23 A(<’ 93 B7.5 *.5;().8 ?:A9B*" 协 议
是各种网络接入设备广泛采用的一种 ::: 的实现
协 议 $其 采 用 CAD!C.77<>. A(>.7, 信 息 摘 要 "加 密
算法进行数据的加密传输%
本 文 在 某 园 区 网 的 ?:A9B* 服 务 器 的 设 计 实
现当中$ 将 CAD 算法成功应用于实现 ?:A9B* 协
议% 该方法具有普适性$可广泛应用于各种加密通
信当中 $特别是在 网 络 带 宽 受 限 的 情 况 下 $将 敏 感
数据进行加密传输 $实 现 用 户 身 份 的 认 证 $为 网 络
数据提供了一定程度的安全保证$提高了用户认证
的效率$具有良好的性价比%
收稿日期% !""S&"Q&RQ
"&! ’()*+,-#./0
单向函数!E3.F+
""
微电子学与计算机
!""!年第 "# 卷第 " 期
散列函数的下一轮 输 入 !如 此 反 复 !最 后 一 组 的 输
出就是整个待加密消息的散列值"
!"! #$% !"#$
$%& 加密算法是 ’() ’*+,-./#0设计的一种单向
散 列 函 数 ! 它 以 " 位 分 组 为 单 位 处 理 输 入 明 文
#123*).,4.$! 每个 " 位分组又分为 #5 个 6" 位子
分组! 算法的输出为 ! 个级联的 6" 位分组! 组成
#"7 位的散列值% $%& 算法的初始化&主循环和尾
部处理三个步骤如下’
! 初始化" 算法初始化分为原始明文初始化和
链接变量初始化两个部分" 明文初始化首先将长度
为 ! 的待加密明文 " 后面级联一个字节 8478!再级
联 若 干 个 8488 作 为 填 充 !使 其 长 度 为 ("9#:5!$
位(# 为正整数$!接着再级联 5! 位以字节计的明文
长度! 此时明文长度被填充为 " 位的整数倍!同
时确保不同明文填充后不会相同% 四个 6" 位链接
变 量 (;<3*)*)= >3?*3@2,$初 始 化 为 ’$A848#"6!&5B!
% A847CDE;%FG!& A84GF%;EDC7!’ A84B5&!6"#8%
这四个链接变量对于整个算法至关重要!其取值直
接关系到配套设备软件的编写!务必将这四个链接
变量写正确%
" 算法主循环% 算法主循环如图 # 所示% 主循
环 次 数 为 经 过 填 充 的 明 文 数 据 位 数 除 以 " 位 所
得的商 #% 将链接变量 $&%&&&’ 分别赋给 (&)&*&+
四个变量% 每次主循环都有四轮!每轮进行 #5 次操
作! 每次操作先对 (&)&*&+ 中的三个进行一次非线
性函数 运 算 ! 然 后 将 所 得 结 果 依 次 加 上 第 四 个 变
量&,-(文本中的一个子分组$和一个 &.(常数$!将所
得结果循环左移一个不定的常数 /!然后再加上 (&
)&* 或者 + 中之一!最后用该结果取代 (&)&* 或者 +
中之一% 每次操作过程如图 " 所示%
$&%&& 和 ’ 分别加上 (&)&* 和 +% 接着用下一个分
组继续运行算法!最后的输出散列值是 $&%&& 和 ’
的级联%
定义非线性函数 00H(I)I*I+I,-I/I&.J’
(A)K/0H)I*I+LK(K,-K&.0MMM/
H"L
其中!/ 为循环左移的位数 !为一常数 )常数 &.
为第 . 步 中 "6"#N-*)O.LN的 整 数 部 分 (. 单 位 为 弧 度 $%
四轮一共为 #5#!A5! 次!每一次的非线性函数都不
相同!具体的函数形式及参数的选择见/#0%
& %&’()*+,-./0!’($)*+"12
&", ’($)*+ 1234
远程认证拨号接入用户服务 (’,P(., DQ.<,)$
.*R3.*() %*32 S) T-,? U,?+*R,I ’D%STU$ 协 议 是 用 户
通过公用交换电话网(1Q@2*R UV*.R< W,2,X<(), Y,.$
V(?Z-I 1UWY$&综 合 业 务 数 字 网 (S).,=?3.,[ U,?+*R,-
%*=*.32 Y,.V(?Z-I SU%Y$或其它线路访问 S).,?),. 的
认证&授权与计费的一种协议% 朗讯公司于 #CCB 年
! 月最先提出 ’D%STU 协议! 现已成为国际上应用
最广泛的身份验证&授权拨号及网络隧道用户的认
证方法% 微软 \*)[(V-"888 及后续操作系统版本都
支持 ’D%STU 协议%
’D%STU 协 议 通 过 网 络 接 入 服 务 器 (Y,.V(?Z-
DRR,-- U,?+,?I YDU$与 ’D%STU 认证和计费服务器
之间的通信来实现用户身份认证与计费功能! 图 6
是 本 文 设 计 的 某 园 区 网 ’D%STU 系 统 框 图 % 其 中
YDU 作为客户端!’D%STU 服务器作为服务器端!二
者 通 过 用 户 数 据 报 协 议 (T-,? %3.3=?3P 1?(.(R(2I
T%1$数据包进行数据通信!它们利用共同拥有的共
享密钥(U<3?,[ ],^I U]$来确认对方身份的正确性%
# 尾部处理% 每一次主循环全部完成之后!将
&"! -(+ 5 ’($)*+ /06789:&
YDU 与 ’D%STU 认 证 服 务 器 之 间 的 通 信 流 程
遵循标准的客户机_服务器(;2*,)._U,?+,?I ;_U$模式%
YDU 将拨号用户的用户名&密码等信息置于接入请
求(DRR,-- ’,‘Q,-.$数据包内!发往 ’D%STU 认证服
务器% ’D%STU 认证服务器接收到以后! 判断用户
!""!年第 "# 卷第 " 期
微电子学与计算机
"T
名$密码等信息是否正确#如果正确就向 ?%) 发送
含有授权信息的接入同意 !%55-:: %55-B1"数据包%
?%) 接收到认证通 过 标 志 后 # 允 许 拨 号 用 户 访 问
’/1-7/-1#同时向 $%&’() 记费服务器发送记费请求
!%55+3/14/0 $->3-:1"数据包#里面包含有用户的上
网时间 $ 下 载 数 据 包 数 量 及 大 小 等 用 于 计 费 的 信
息’$%&’() 记费服务器将这些信息作了妥善纪录$
保 存 后 # 向 ?%) 发 送 记 费 响 应 !%55+3/14/0 $-#
:B+/:-"数据包#通知 ?%) 用户计费信息已经保存%
! "#$ !"#$% %&’()* &’()*+
?%) 与 $%&’() 服 务 器 的 每 一 次 通 信 都 需 进
行数据的加密与鉴别# 数据信息都封装在 $%&’()
协议数据包内% $%&’() 协议数据包格式如图 ! 所
示#各段含义列于表 #%
*+,-!# 字节"
’&!# 字节"
.-/012!# 字节"
%312-/14561+7!#8 字节"
%1174931-:;;;!大于等于 < 字节"
图 ! $%&’() 数据包格式
表 # $%&’() 数据包各段含义
段名称
*+,-
’&
.-/012
含义
区分数据包类型的 代 码 !如 *+,-=# 代 表 接
入请求 %55-:: $->3-:1 数据包"
?%)与 $%&’() 服务器的会话标志#用来区
分是哪一次的用户请求
整个数据包的总长度!以字节计"
%312-/14561+7 用来加密的信息
%1174931-:
数据包里的真正有 用 的 信 息 #如 用 户 名 $用
户密码% 其格式如下&
@AB-
!# 字节"
.-/012
!# 字节"
E6F3-;;;
!!< 字节"
其 中 &@AB- 为 区 分 不 同 属 性 的 代 码 ! 如
@AB-=# 代 表 属 性 为 (:-7C?6D-"’.-/012 为
当前属性的总长度!以 字 节 计 "’E6F3- 为 当
前属性的值%
用户所有信息在 @AB-C.-/012CE6F3- !类型C长
度C值"三元组中% 如果不进行加密传输#窃听者就
很容易截获合法用户口令等信息#甚至进行篡改与
伪装#这样就无法保证合法用户信息安全% 我们可
以利用 G&H 的定长输出特性# 将用户数据加密后
封装在 $%&’( 协议分组内传输% 接收端执行相应
的操作就可以判断用户的合法性#同时大大降低了
敏感信息在长距离$ 大范围的传输中泄密的可能%
应用 G&H 算法加密传输就是将 G&H 算法应用于通
信协议数据包中% 根据 $%&’() 协议的要求#本文
实现 &GH 加密算法的应用步骤如下%
I#J 接入请求!%55-:: $->3-:1"
对接入请求数据包中的 (:-7C?6D- !@AB-=#"$
(:-7CK6::L+7,!@AB-=""等信息进行加密过程如下&
?%) 首先产生一个 #8 字节的随机数 $%#填充
到 %55-::$->3-:1 数据包内 %312-/14561+7 段中%在拨
号用 户 的 (:-7CK6::L+7,!如 GAK6::L+7,"后 填 充 若
干个 ?(.. 字节 !%)*’’ 编 码 为 3-:1 数据包内的 %312-/14561+7U%1174931-:U)V"% 注
意此时 %55-:: %55-B1 数据包中的 ’& 必须与接收到
的 %55-:: $->3-:1 数据包中的 ’& 段相同% 如果拨号
用户非 法 #那 么 将 发 送 %55-:: $-W-51 数 据 包 #加 密
过程与 %55-:: %55-B1 数据包类似%
"!
微电子学与计算机
!""!年第 "# 卷第 " 期
$%& 记费请求!’(()*+,-+./012*13,"
4’5 接 收 到 接 入 同 意 数 据 包 后 # 便 可 以 得 到
6)718 9:#8 ;1+.,<8 ’*,<1+,-(=,)>8 ’,,>-?*,13#4’5 根
据 9:# 对应的接入请求数据包内的 ’*,<1+,-(=,)> 和
自 身 共 享 密 钥 5# 可 以 计 算 ’*,<1+,-(=,)>@ AB:C
!6)71D9:#D;1+.,D’,,>-?*,13D5E"$ 如果 ’*,<1+,-(=,)>@ 等于
对应的接入同意数据包内的 ’*,<1+,-(=,)># 就允许
拨号用户上网# 进行动态 9F 的分配及其它授权操
作 $ 同 时 向 0’:9G5 记 费 服 务 器 发 送 记 费 请 求
!’(()*+,-+. 012*13," 数 据 包 # 包 内 的 ’*,<1+,-(=,)>
为 B:C!6)71D9:"D;1+.,-?*,13D
5E"$ 此时会话标识 9: 已经作了更换!设为 9:""#
标志新的会话开始# 原来 ’*,<1+,-(=,)> 的位置也已
经被替换为 #H 个 IJII$
$!& 记费响应!’(()*+,-+./013K)+31"
0’:9G5 记费服务器接收记费请求数据 包 #得
到 6)718 9:"8 ;1+.,<8 ’*,<1+,-(=,)>8 ’,,>-?*,13$ 计算
’*,<1+,-(=,)>@AB:C!6)71D9:"D;1+.,-?*,13D5"$ 如 果 ’*,<1+,-(=,)>@ 等 于 记 费 请 求
数据包的 ’*,<1+,-(=,)># 那么就将记费请求数据包
中的 ’,,>-?*,13 所包含的用户记费信息作适当记录
与 处 理 # 然 后 发 送 记 费 响 应 !’(()*+,-+. 013K)+31"
数 据 包 # 包 中 的 ’*,<1+,-(=,)> AB:C !6)71 D9:" D
;1+.,D’,,>-?*,13D5"$ 此时会话标识
9: 仍然是 9:"##H 个 IJII 被 替 换 为 接 收 到 的 记 费
请求数据包的 ’*,<1+,-(=,)>$
4’5 接收到计费响应数据包后#进行同样的解
密 检 查 #如 果 正 确 #就 继 续 向 0’:9G5 计 费 服 务 器
发送 ’(()*+,-+. 012*13, 数据包#并且 9: 不变$ 这
个过程一直持续到用户断线$ 经过这样的交互#用
户的上网信息就被分秒不差的记录下来#为计费提
供了依据$
在 园 区 网 络 的 认 证 计 费 系 统 中 # 本 文 实 现 了
B:C 加密算法在 0’:9G5 协议中的应用#程序流程
如图 C 所示$ 系统运行情况证明了利用 B:C 算法
在通信协议中进行数据的保密传输的性能良好 #尤
其是 B:C 的定长输出特性使得即使在通信带宽受
限的情况下也能够实现用户的身份认证与计费$
! !"#
变长输入明文经过 B:C 算法加密后的输出具
有恒定 的 #"L 位 #这 种 定 长 输 出 特 性 #非 常 适 用 于
某些通信协议的设计$ 0’:9G5 协议提供了 ’’’ 的
一个实现方式# 利用 B:C 加密算法将通信过程中
的敏 感 信 息 进 行 加 密 传 输 # 保 证 了 网 络 的 信 息 安
全$ B:C 加密算法还可以应用到许多其他通信协议
的设计与实现当中#保证通信信息的安全可靠$
$%&’
M#N 0 ; 0-O13,P Q<1 B:C B133=.1 :-.13, ’R.)>-,-R #UU"P
M"N 0-.+1V 68 W-RR1+3 58 0*?1+3 ’8 W 5-SK3)+P 01S),1 ’*#
,<1+,-(=,-)+ :-=R 9+ G31> 51>O-(1
$0’:9G5&P 0T6 "LHC8
X*+1 "IIIP
M%N 0-.+1V 68 W-RR1+3 58 0*?1+3 ’8 W 5-SK3)+P 01S),1 ’*#
,<1+,-(=,-)+ :-=R 9+ G31> 51>O-(1 ’(()*+,-+. $0’:9G5
’(()*+,-+.&P 0T6 "LHH8 X*+1 "IIIP
M!N Y>*(1 5(<+1-1>M美N著8 吴 世 忠 等 译P 应 用 密 码 学%%%协
议&算法与 6 源程序P 机械工业出版社8 "IIIPUP
李春科 男#!#UZ#/"#硕士研究生$ 研究方向为计算机应用$
李伟华 男#!#UC#/"#教授#博士生导师$ 研究方向为决策支
持系统&多媒体应用&网络安全$