5.随机数
RBG(Random Bit Generator,随机bit生成器) :一个软件、硬件或者固件模块,负责生成一段随机bit序列,用于序列号、密钥、session ID等等。大家可能更习惯随机数生成器(Random Number Generator,RNG)的叫法,但NIST这些年改用了RBG的叫法。我觉得RBG确实更准确,因为RBG生成的既不是数字也不是字符而是bit序列。
应提供强随机数生成器(RNG)以生成在DLMS/COSEM中使用的各种算法所需的随机数。RNG最好是非确定性的。如果不确定性的RBG不可用,则系统将利用足够的熵来为确定性的RNG创建一个优质的种子。
6.压缩
压缩可以应用于COSEM数据或xDLMS APDU。该过程可以与对称密钥加密相结合。压缩算法应符合ITU-T V.44:2000中的规定。已选定的算法为满足以下要求:
——低处理负荷;
——低存储器要求;
——低延迟。
使用压缩由安全控制字节的第7位表示。
7.安全组件
美国联邦信息处理标准FIPS(Federal Information Processing Standard)是一种针对密码算法模块的安全标准,通过部署FIPS功能,能够提升设备的安全性能。
FIPS是由美国国家标准和技术研究院制定,由美国商务部批准的针对密码算法安全的标准,它规定了一个安全系统中的密码算法模块应该满足的安全性要求。FIPS 140是FIPS系列标准中针对密码算法模块的安全标准,是进行密码算法模块评测认证的基础标准,目前有效标准号为FIPS 140–2。
若无特殊说明,本文中的FIPS即表示FIPS 140–2。
安全组件确定可用于各种加密原语和密钥大小的一组加密算法。
DLMS/COSEM安全套件(见表9)基于NSA Suite B,并包括特别地用于认证、加密、密钥协商、数字签名和散列的加密算法:
——认证和加密:按照FIPS PUB 197中的规定使用高级加密标准(AES),密钥大小为128位和256位。AES应与NIST SP 800-38D:2007中规定的操作的伽罗瓦/计数器模式(GCM)一起使用;
——数字签名:应按照FIPS PUB 186-4:2013和NSA1规定使用椭圆曲线数字签名算法(ECDSA),使用曲线P-256或P-384;
——密钥协商:
临时统一模型C(2e,0s,ECC CDH)方案;
单程Diffie-Hellman C(1e,1s,ECC CDH)方案;
静态统一模型C(0e,2s,ECC CDH)方案;
应使用椭圆曲线P-256或P-384。
——哈希法:按FIPS PUB 180-4:2012中的规定,应使用哈希算法(SHA)SHA-256和SHA-384。
另外,可以使用密钥封装和压缩算法。