密码 报文分析 规约对比(97-07)

来源:互联网 发布:单片机usb转串口驱动 编辑:程序博客网 时间:2024/05/28 16:29

 一、 密码术语

1.     明文plain text

待加密的数据。

2.     密文ciphertest

加密后侧数据。

3.     加密encryption

对数据进行密码变换以产生密文的过程。

其过程就通过一定的算法对数据做二次处理形成新的数据。

4.     解密decryption

加密过程对应的逆过程。

其过程就通过一定的算法(加密反算法)对数据做二次处理形成新的数据。

5.     密钥Key

控制密码变换操作的关键信息或参数。

密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的数据。

密钥分为两种:对称密钥与非对称密钥

对于普通的对称密码学,加密运算与解密运算使用同样的密钥。通常,使用的加密算法比较简便高效,密钥简短,破译极其困难,由于系统的保密性主要取决于密钥的安全性,所以,在公开的计算机网络上安全地传送和保管密钥是一个严峻的问题。正是由于对称密码学中双方都使用相同的密钥,因此无法实现数据签名和不可否认性等功能。

公开密钥体制,即运用单向函数的数学原理,以实现加、解密密钥的分离。加密密钥是公开的,解密密钥是保密的。

不像普通的对称密码学中采用相同的密钥加密、解密数据,非对称密钥加密技术采用一对匹配的密钥进行加密、解密,具有两个密钥,一个是公钥一个是私钥,它们具有这种性质:每把密钥执行一种对数据的单向处理,每把的功能恰恰与另一把相反,一把用于加密时,则另一把就用于解密。用公钥加密的文件只能用私钥解密,而私钥加密的文件只能用公钥解密。 公共密钥是由其主人加以公开的,而私人密钥必须保密存放。为发送一份保密报文,发送者必须使用接收者的公共密钥对数据进行加密,一旦加密,只有接收方用其私人密钥才能加以解密。 相反地,用户也能用自己私人密钥对数据加以处理。换句话说,密钥对的工作是可以任选方向的。这提供了"数字签名"的基础,如果要一个用户用自己的私人密钥对数据进行了处理,别人可以用他提供的公共密钥对数据加以处理。由于仅仅拥有者本人知道私人密钥,这种被处理过的报文就形成了一种电子签名、一种别人无法产生的文件。 数字证书中包含了公共密钥信息,从而确认了拥有密钥对的用户的身份。

6.     主密钥master key

处于对称密码系统层次化密钥结构中的最高层,对其他密钥进行加密的密钥

7.    消息鉴别码算法Message Authentication Code algorithm

带密钥的密码杂凑算法,可用于数据源鉴别。

8.    消息鉴别码Message Authentication CodeMAC

消息鉴别码算法的输出。

消息鉴别码实现鉴别的原理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,MAC,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证等。

9.     分散因子diffusion factor

密钥分散是上级的密钥与本级的特征相结合形成本级的密钥,与本级特征有关的业务代码,密钥学称之为分散因子。

密钥分散的过程就是利用上级的密钥与分散因子(即与本机特征有关的业务代码)相结合生成了本级的密钥。根据密钥算法的不可逆行,从而确保了上级密钥的安全性

本文档中有些内容采用了“离散因子”这个术语,在此声明“离散因子”就是本条解释的“分散因子”。

10.  国密SM1算法SM1cryptographic algorithm

国密SM1算法是由国家密码管理局编制的一种商用密码分组标准对称算法。

该算法是国家密码管理部门审批的SM1分组密码算法, 分组长度和密钥长度都为128比特,算法安全保密强度及相关软硬件实现性能与AES相当,该算法不公开,仅以IP核的形式存在于芯片中。采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。

 

二、    相关术语

1.     ESAM模块ESAM module

嵌入在设备内,实现安全存储、数据加/解密、双向身份认证、存取权限控制、线路加密传输等安全控制功能。

I   嵌入式安全模块物理上以加解密芯片的形式体现,内置CPU运算处理器和特定的加密算法,负责完成售电系统数据与电能表的传输过程中信息安全。

II  ESAM模块由运行管理部门设置完毕后,提供给表厂安装在费控电能表中,费控电能表中的数据存取以及密钥的安全认证过程都在用户卡(或抄表后台、数据集中器)与费控电能表中的ESAM模块之间进行,与费控电能表中的微控制器无关,微控制器仍然由表厂负责设计,完成费控电能表的功能。

2.   CPU CPU card

配置有存储器和逻辑控制电路及微处理(MCU)电路,能多次重复使用的接触式IC

I                   内置微处理器、程序存储器、数据存储器和其它逻辑电路的集成电路卡,卡的表面有触点,以电气接触的方式与读卡设备(如电能表)进行数据传递,工作时需要由外部装置提供工作电源。

II        本标准定义的CPU卡特指接触式CPU卡。

3.     射频卡 radio frequency card

一种以无线方式传送数据的具有数据存储、逻辑控制和数据处理等功能的非接触式IC卡。

I                   内置微处理器、程序存储器、数据存储器和其它逻辑电路的集成电路卡,卡上无电气触点,通过接收读卡设备(如电能表)的射频信号与读卡设备进行数据传递,其工作电源通过感应射频信号获得

II        本标准定义的射频卡特指非接触式CPU

4.     密钥下装卡 card set operation key to replace public key

用于将仪表从公开密钥状态修改成正式密钥状态。仪表出厂时处于公开密钥状态,安装前必须利用密钥下装卡将其修改为正式密钥状态,处于正式密钥状态下的仪表不能用电力公司以外的IC卡进行操作。

5.     密钥恢复卡 card to recover public key from operation key

用于将仪表从正式密钥状态恢复成公开密钥状态,以便于对仪表进行检修或重新预置参数。

6.     参数预置卡 card to set parameter in advance

参数预置卡是用来在生产过程中对电能表的参数进行初始化的功能卡,插卡后除了设置参数外,同时还清除原用电金额等信息,并在修改密钥后可以进行开户操作。

 

一、     报文分析

1.     物理层 physical layer

规定了数据终端设备或手持单元与多功能电能表之间的物理接口、接口的物理和电气特性,负责物理媒体上信息的接收和发送。

2.     数据链路层 data-link layer

负责数据终端设备与多功能电能表之间通信链路的建立并以为单位传输信息,保证信息的顺序传送,具有传输差错检测功能。

3.     应用层 application layer

利用数据链路层的信息传递功能,在数据终端设备与多功能电能表之间发送、接收各种数据信息。

4.     DLT645-2007dlt645_1997对比

a)        字节传输序列

68

11

11

11

11

11

11

68

01

02

43 C3

3F

16

<!--[endif]-->

68

11

11

11

11

11

11

68

11

04

33 33 34 33

18

16

b)      地址域

A0A5:地址域由6 个字节构成,每字节2 BCD 。地址长度可达12 位十进制数,可以为表号、资产号、用户号、设备号等。具体使用可由用户自行决定。当使用的地址码长度不足6 字节时,用十六进制AAH 补足6 字节。低地址位在先,高地址位在后。当地址为999999999999H 时,为广播地址。

    6 个字节构成,每字节 2 BCD 。地址长度可达12位十进制数,每块表具有唯一的通信地址,且与物理层信道无关.当使用的地址码长度不足 6 字节时,高位用“0”补足 . 当通信地址为 999999999999H为广播地址,只针对特殊命令有效,如广播校时和广播冻结等。广播命令不要求从站应答。

 c)    控制码C

D7=0:由主站发出的命令帧    D7=1:由从站发出的应答帧

D6=0:从站正确应答                D6=1:从站对异常信息的应答

D5=0:无后续数据帧                D5=1:有后续数据帧

D4D0:请求及应答功能码

  00000:保留           00001:读数据

  00010:读后续数据     00011:重读数据

  00100:写数据         01000:广播校时

  01010:写设备地址     01100:更改通信速率

  01111:修改密码       10000:最大需量清零

 

D7 传送方向 0:主站发出的命令帧 1:从站发出的应答帧

D6 从站应答标志 0:从站正确应答 1:从站异常应答

D5 后续帧标志   0:无后续数据帧 1:有后续数据帧

D4D0功能码

  00000:保留         01000:广播校时

  10001:读数据       10010:读后续数据

  10011:读通信地址   10100:写数据

  10101:写通信地址   10110:冻结命令

  10111:更改通信速率 11000:修改密码

  11001:最大需量清零 11010:电表清零

  11011:事件清零

d)  数据域长度

    L 为数据域的字节数。读数据时L200,写数据时L50L=0 表示无数据域。

数据域DATA

     数据域包括数据标识和数据、密码等,其结构随控制码的功能而改变。传输时发送方按字节进行33H 处理,接收方按字节进行33H 处理。

校验码CS

    从帧起始符开始到校验码之前的所有各字节的模256 的和,即各字节二进制算术和,不计超过256 的溢出值。

读数据

发送:

控制码:C=01H 数据长度:L=02H

 

 

 

 

应答:

正常 C=81H无后续数据帧 ,  C=A1H有后续数据帧

异常 C = D1H  数据域长度:    L = 01H

发送:

    C = 11H   L= 04H+m(数据长度)

    帧格式 1(m=0)

    帧格式 2(m=1,读给定块数的负荷记录):

    帧格式 3(m=6,读给定时间、块数的负荷记录):

 

应答:

 正常C = 91H无后续数据帧,  C = B1H有后续数据帧

 异常C = D1H  数据域长度:    L = 01H

 应答:

  81000)字头是正常 ,D1101)字头异常

 应答:

  91001)字头是正常 ,D1101)字头异常

 

数据标识

 

2 个字节4 个字段分别标识数据的类型和属性

四个字节区分不同数据项目,四字节分别用DI3DI2DI1DI0代表。每字节采用十六进制编码。

例:

DI3DI2DI1DI0=00010000H(数据项)表示当前正向有功总电能