专栏名称: 汽车MCU软件设计
汽车MCU软件工程师,分享汽车功能安全、网络安全和AutoSAR
目录
相关文章推荐
中国城市规划  ·  理论研究 | ... ·  3 天前  
中国城市规划  ·  一图读懂 | 深圳的公园将如何命名? ·  4 天前  
中国交建  ·  阿狸的夏天 ·  2 天前  
中国交建  ·  奋进之春丨中交集团中标这些项目④ ·  2 天前  
51好读  ›  专栏  ›  汽车MCU软件设计

密码学基础--RFC和PKCS是什么

汽车MCU软件设计  · 公众号  ·  · 2024-04-11 07:30

正文


目录

1. CryptoDriver里KeyElement格式

2. 挖掘RFC标准

2.1 RFC是什么

2.2 PKCS是什么

3.小结



为什么再发一遍,只能说人到中年不能熬夜,昨天的文章没写完就发了。
Ps:我只是标准的翻译搬运工。

1. CryptoDriver里KeyElement格式

CryptoKeyElement 配置项里,我们会发现有format这类格式,如下图:
根据规范解释如下:

CRYPTO_KE_FORMAT_BIN_OCTET

以BIN形式提供八位字节值的Key

CRYPTO_KE_FORMAT_BIN_SHEKEYS

用于SHE key更新的组合Key

CRYPTO_KE_FORMAT_BIN_IDENT_PRIVATEKEY_ PKCS8

ASN.1定义的带ID的私钥格式(BER编码),以BIN形式提供

CRYPTO_KE_FORMAT_BIN_IDENT_PUBLICKEY

ASN.1定义的带ID的公钥格式(BER编码),以BIN形式提供

CRYPTO_KE_FORMAT_BIN _RSA_PRIVATEKEY

ASN.1定义的私钥格式(BER编码),以二进制提供

CRYPTO_KE_FORMAT_BIN _RSA_PUBLICKEY

ASN.1定义的公钥格式(BER编码),以二进制提供
可以看到,针对非对称密钥对的格式,是可以选择是否带ID的,而这所有的一切都源于ASN.1。
回顾一下:
  • ASN.1(Abstract Syntax Notation One)是一种用于描述数据结构的标记语言,最初由国际电信联盟(ITU-T)定义,用于在计算机网络和通信协议中描述数据格式。ASN.1提供了一种独立于具体编程语言的方式来描述数据结构,使得不同系统之间可以共享和理解数据。

  • ASN.1的编码规则有多种,其中最常见的是BER(Basic Encoding Rules)、DER(Distinguished Encoding Rules)和PER(Packed Encoding Rules)。这些编码规则定义了如何将ASN.1中定义的数据类型编码为二进制格式,并在需要时进行压缩以减少数据传输的大小。

2. 挖掘RFC标准

那么上述KeyElement的格式应该长什么样?是否有关联标准?
参考【SWS_Crypto_00184-00188】,汇总如下:

CRYPTO_KE_FORMAT_BIN_IDENT_PRIVATEKEY_ PKCS8

RFC5958

CRYPTO_KE_FORMAT_BIN_IDENT_PUBLICKEY

RFC5280

CRYPTO_KE_FORMAT_BIN _RSA_PRIVATEKEY

RFC8017

CRYPTO_KE_FORMAT_BIN _RSA_PUBLICKEY

RFC5280

老规矩,先从RFC是什么开始说起,

2.1 RFC是什么

RFC是“Request for Comments”的缩写,本身它是一系列文件,描述了互联网的各种协议、技术规范、方法。它们由互联网工程任务组(IETF)发布,并由网络社区进行讨论和审查。


RFC最初是作为IETF工作文档和标准的一种形式,但后来成为了一个广泛接受的标准和参考文档的集合。每个RFC都有一个唯一的数字标识符,例如


  • RFC5280 : Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

  • RFC5958 : Asymmetric Key Packages

  • RFC8017 : PKCS #1: RSA Cryptography Specifications Version 2.2


有了这个基本概念,问题紧跟着就来了,PKCS是啥?


2.2 PKCS是什么

PKCS 全称 Public key cryptography standards,是一组标准协议,截至目前编号从1到15。制定这些标准是为通过公钥基础设施(PKI)进行的所有通信提供了一个框架和结构。它们提供了抽象的语法和算法细节,可以跨不同的技术进行调整。

先汇总如下:

PKCS#1 – RSA cryptography standard

基本标准,用于定义公钥和私钥的语法、消息和数字签名的格式、用于每个级别的加密和解密的不同算法以及数字证书的格式该标准在2012年重新发布为RFC 8017


PKCS#2 –RSA message digest standard

创建和加密消息摘要,在2010年被撤销,与PKCS#1合并


PKCS#3 – Diffie-Helman key agreement standard

密钥协商,定义了DH密钥交换标准


PKCS#4 – RSA key syntax standard

RSA所使用的key语法,2010年被撤销,与PKCS#1合并


PKCS#5 – Password-based cryptography standard

定义了密码的加密标准,如PBKDF2(Password-Based Key Derivation Function 2)算法 ,同时也发布为RFC 2898


PKCS#6 – Extended-certificate syntax standard

提供用于扩展和修改数字证书中建立属性的语法;这个标准在X.509的第三个版本中被撤销


PKCS#7 – Cryptographic message syntax standard

指定存储的加密数据的语法。证书颁发机构使用pkcs# 7来存储它们颁发的数字证书 同时发布为RFC 2315


PKCS#8 – Private key information syntax standard

定义私钥的语法,通常与PKCS#5使用密码和盐值来存储私钥,发布为RFC 5208


PKCS#9 – Selected attribute types standard

定义了证书、签名和私钥所需的数据类型、长度和其他属性细节,但不提供证书的格式或密钥本身


PKCS#10 – Certification request syntax standard

定了发送给证书颁发机构(CA)请求数字证书的消息的格式,也称为证书签名请求。


PKCS#11 – Cryptographic token interface standard

定义了密钥Token接口,可以被Token生成器所使用


PKCS#12 – Personal information exchange syntax standard

定义了私钥、公钥证书的存储方式,个人信息交换语法等


PKCS#13 – Elliptic curve cryptography standard

定义了椭圆曲线的加密标准


PKCS#14 – Pseudo-random number generation standard

伪随机数生成标准


PKCS#15 – Cryptographic token information format standard

定义了存储在加密令牌(如集成电路卡)上的加密凭证的格式

3.小结
可以看到,PKCS和RFC尽管是由不同的组织发布并服务于不同的目的,但它们之间关系是比较密切的。


PKCS:

  • PKCS由RSA安全公司(现在是威瑞森公司的一部分)开发和维护。

  • PKCS是一系列标准,旨在定义和推广公钥密码学方面的算法、协议和格式。

  • PKCS标准通常与加密、数字签名、数字证书等安全技术相关。

  • PKCS标准的制定是由RSA安全公司根据自己的需求和标准制定过程来完成的。


RFC:

  • RFC由IETF(Internet Engineering Task Force)发布。

  • RFC是一系列文档,旨在描述和定义互联网协议、技术规范和最佳实践

  • RFC文档涵盖了广泛的主题,包括网络协议、安全协议、标准化过程等。

  • RFC文档的制定是由IETF社区成员共同参与、讨论和审查的结果。


因此,尽管它们服务于不同的目的,但PKCS和RFC之间的交叉影响是存在的,特别是在公钥密码学和网络安全领域





往期回顾:

1.汽车标定精选

汽车标定技术--标定概念详解
汽车标定技术--Bypass的前世今生
万字长文:汽车标定技术--XCP概述

2.AUTOSAR 精选

AUTOSAR CryptoStack--CSM Job夹带了哪些私货
AUTOSAR 诊断栈分析(一)






请到「今天看啥」查看全文