YDB 085.2-2012
基本信息
标准号:
YDB 085.2-2012
中文名称:近场通信(NFC)安全技术要求 第2部分:安全机制要求
标准类别:通信行业标准(YD)
标准状态:现行
出版语种:简体中文
下载格式:.zip .pdf
相关标签:
通信
安全
技术
机制
标准分类号
关联标准
出版信息
相关单位信息
标准简介
YDB 085.2-2012.Technical specification of NFC security-Part 2: security mechanism requirements.
1范围
YDB 085.2中规定了协议标识符PID为01的消息内容和加密方法。本部分定义的密码机制是使用ECDH(Elliptic Cruves Diffie-Hellman 椭圆曲线Diffie-Hellman)协议作为密钥协定协议以及AES(Adavanced Encryption Standard 高级加密标准)算法用于数据加密和完整性保护。
YDB 085.2适用于NFC安全服务建立中的安全机制的要求。
2规范性 引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本( 包括所有的修改单)适用于本文件。
YDB 085.1 近场通信(NFC)技术要求第1部分: NFCIP-1安全服务和协议
ISO/IEC 10116: 2006信息技术安全技术-n位分组密码算法的操作方式( Informat ion technology一Security techniques 一Modes of operation for an n-bit block cipher )
ISO/IEC 11770-3: 2008信 息技术-安全技术-密钥管理-第3部分:使用不对称技术的机制(Informat ion technology-Security techniques-Key management-Part 3: Mechani sms using asymmetric techniques)
ISO/IEC 15946-1: 2008信 息技术-安全技术-基于椭圆曲线的密码技术-第一部分:总则(Informat ion technology-Security techniques-Cryptographic techniques based on ellipticcurves - Part 1: General)
标准内容
通信标准类技术报告
YDB085.2——2012
近场通信(NFC)安全技术要求
第2部分:安全机制要求
Technical specification of NFC security-Part 2: security mechanism requirements(ISo/IEc13157-2:2010,InformationtechnologyTelecommunications
and information exchange between systems NFC SecurityPart 2:security mechanism requirements, NFC-SEC cryptography standard usingECDH and AES, MOD)
2012-03-25印发
中国通信标准化协会
1范围
2规范性引用文件
一致性·.
4术语和定义
5常用语和符号。
5.1级连.
5.2十六进制数字
6缩略语
协议标识符
密钥协商
密钥导出函数
密钥用途
密钥确认,
数据加密
数据完整性:
信息序列完整性。
10数据转换
整数到字节串的转换
字节串到整数的转换
点到字节串的转换
字节串到点的转换
11SSE和SCH服务调用
前提条件
密钥协商
11.3密钥导出
11.4密钥确认
12SCH数据交换.
12.1准备
数据交换
附录A(规范性附录)
附录B(规范性附录)
附录C(资料性附录)
AES-XCBC-PRF-128和AES-XCBC-MAC-96算法字段大小.
参考信息:
YDB085.2—2012
YDB085.2—2012
YDB085《近场通信(NFC)安全技术要求》分为两个部分:一一第1部分:NFCIP-1安全服务和协议一第2部分:安全机制要求
本部分是YDB085的第2部分。
本部分修改采用了ISO/IEC13157-2《信息技术-系统间通信及信息交互-NFC安全-第二部分:NFC安全,使用ECDH和AES的密码标准》为适应信息通信业发展对通信标准文件的需要,在工业和信息化部统一安排下,对于技术尚在发展中,文需要有相应的标准性文件引导其发展的领域,由中国通信标准化协会组织制定“通信标准类技术报告”,推荐有关方面参考采用。有关对本技术报告的建议和意见,向中国通信标准化协会反映,本技术报告由中国通信标准化协会提出并归口。本部分起草单位:工业和信息化部电信研究院、西电捷通无线网络通信公司。本部分主要起草人:孙倩、张琳琳、胡亚楠、潘娟。I
iiiKAoNikAca
YDB085.2—2012
近场通信(NFC)安全技术要求第2部分:安全机制要求1范围
本部分中规定了协议标识符PID为01的消息内容和加密方法。本部分定义的密码机制是使用ECDH(EllipticCruvesDiffie-Hellman椭圆曲线Diffie-Hellman)协议作为密钥协定协议以及AEs(AdavancedEncryptionStandard高级加密标准)算法用于数据加密和完整性保护。本部分适用于NFC安全服务建立中的安全机制的要求。2规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。YDB085.1近场通信(NFC)技术要求-第1部分:NFCIP-1安全服务和协议IS0/IEc10116:2006信息技术安全技术-n位分组密码算法的操作方式(Informationtechnology Security techniques -Modes of operation for an n-bit block cipher)IS0/IEC11770-3:2008信息技术-安全技术-密钥管理-第3部分:使用不对称技术的机制(Information technology - Security techniques Keymanagement -Part 3:Mechanisms usingasymmetrictechniques)
IS0/IEC15946-1:2008信息技术-安全技术一基于圆曲线的密码技术一第一部分:总则(Information technology Security techniques Cryptographic techniques based on ellipticcurves - Part l: General)
ISo/IEc18031:2005信息技术-安全技术-随机比特生成(Informationtechnology一Securitytechniques-Randombitgeneration)IS0/IEC18033-3:2005信息技术-安全技术-加密算法-第3部分:分组密码(Informationtechnology Security techniquesEncryption algorithms Part 3:Block ciphers)IS0/IEC18092:2004信息技术-系统间远程通信和信息交换-近场通信-接口和协议(NFCIP-1)(Ecma发布为ECMA-340标准)(Informationtechnology一Telecommunications andinformationNearFieldCommunication—Interfaceand Protocol (NFCIP-1))exchange between systems
IEEE1363公钥密码学的IEEE标准规范(IEEEStandardSpecificationsforPublic-KeyCryptography,
FIPS186-2数字签名标准(DigitalSignatureStandard(DSS))3一致性
通过使用本部分中所介绍的NFC-SEC密码标准(标识为PID01)中定义的安全机制即可实现一致性并且符合本报告第1部分的要求。NFC-SEC安全服务的建立应通过本报告第1部分中定义的协议以及本部分中定义的安全机制来完成。4术语和定义
iiKANiKAca
YDB085.2—2012
YDB085.1界定的术语和定义适用于本部分。5常用语和符号
YDB085.1界定的以及下列常用语和符号适用于本部分。5.1级连
AⅡB表示字段A和字段B的级联:B内容在A内容之后。5.2十六进制数字
(XY)代表XY的十六进制数(即以16为基数),每对字符编码为一个字节。6缩略语
下列缩略语适用于本部分。
DataLen
EncData
Maca/MacB
MacTaga
MacTage
NAA/NBB
Sender
Advanced Encryption StandardReceiver
Sender's private EC key
Recipient's private EC key
Length of the UserData
Elliptic Curve
Elliptic Curve Diffie-HellmanEncrypted data
Thebase point on EC
Sender nfcid3
Recipient nfcid3
Any Recipientidentificationnumber(e.g.ID)
AnySender
identificationnumber
(e.g. IDa)
Initial Value
Key Derivation Function
Encryption Key
Integrity Key
Message Authentication Code
Integrity protection value of Sender/Recipient
Key confirmation tag from SenderKey confirmation tag from RecipientMaster Key
Nonce generated by Sender/RecipientNoncegenerated by the pair of NFC-SEC发送器(在YDBXXX.1中规定)
高级加密标准bZxz.net
接收器(在YDBXXX.1中规定)
发送器的EC私钥
接收器的EC私钥
用户数据的长度
椭圆曲线
椭圆曲线Diffie-Hellman密码算法加密数据
EC的基点
发送器nfcid3
接收器nfcid3
任意接收器识别码(例如ID)
任意发送器识别码(例如IDa)
初始值
密钥导出函数
加密密钥
完整性密钥
消息鉴别码
发送器/接收器完整性保护值
发送器密钥确认标识
接收器密钥确认标识
主密钥
发送器/接收器产生的随机数
NFC-SEC实体对产生的随机数
iiKANiKAca
Nonces
Noncer
SharedSecret
UserData
entities
Sender' s nonce
Recipient's nonce
Public Key
Recipient's Public Key
Sender's Public Key
Pseudo Random Number GeneratorCompressedEcpublickeyofSenderRecipient
DecompressedECpublickeyofSender/Recipient
Random Number Generator
Shared secret
NFC-SEC User data
Unsignedintegerrepresentationofthe Shared Secret
Octet string representation of z发送器的随机数
接收器的随机数
接收器公钥
发送器公钥
伪随机数生成器
YDB085.2—2012
发送器/接收器压缩EC公钥
发送器/接收器解压EC公钥
随机数生成器
共享秘密
NFC-SEC用户数据
共享秘密的无符号整数表示
Z的字节串表示
注:第9章和第10章中使用的以上未列出的英文缩写不是缩略语,而是公式或原语参数。7概要
本部分定义了YDB805.1中SSE(共享秘密服务)以及SCH(安全通道服务)使用的安全机制。为保证事先没有共享秘密的NFC设备的通信安全,公钥密码机制被用来在设备之间建立共享秘密,确切的说,即为ECDH密钥交换方法。这个共享秘密被用来建立SSE和SCH服务。协议标识符
本部分应使用1字节协议标识符,PID值为1。9原语
本章定义加密原语。第11章和第12章规定这些原语的使用。特点概要见表1。表1特点概要
支持的服务
密钥协商
密钥导出函数(KDF)
密钥确认
数据加密
数据完整性
序列完整性
加密顺序
SSE(见YDB085.1)
SCH(见YDB 085.1)
ECDHP-192
AES-XCBC-PRF-128
AES-XCBC-MAC-96
AES128-CTR
IV Init:AES-XCBC-PRF-128
AES-XCBC-MAC-96
SN(见YDB085.1)
先加密(9.5)再计算MAC(9.6)3
HiiKAoNiKAca
YDB085.2—2012
9.1密钥协商
对等的NFC-SEC实体应该与使用IS0/IEC11770-3密钥协商机制4的共享秘密达成一致,下面将对IEEE1363中的ECDH原语做进一步的介绍。9.1.1曲线P-192
应使用在FIPS186-2中规定的曲线P-192。9.1.2EC密钥对生成原语
私钥d应从符合ISO/IEC18031的随机或伪随机过程生成a)从符合IS0/IEC18031的随机或伪随机过程生成私钥d。b)计算公钥PK,作为EC上的点,PK=dG。9.1.3EC公钥验证
EC公钥应根据IS0/IEC15946-1的公钥验证规定进行验证。9.1.4ECDH密秘值推导函数
ECDH函数根据IEEE1363的7.2.1ECSVDP-DH”规定应输出“有效的”共享秘密z或者是无效的错误提示。
9.1.5随机数
每个对等的NFC-SEC实体宜发送新的随机数和实体的EC公钥该随机数将更多的信息摘提供给由共享秘密z推导出来的密钥,便于EC密钥对的管理。随机数的正确生成是实体的责任。该实体应保证在协议期限生成的随机数有96位有效信息摘。在NFC-SEC过程中使用的随机数与之前使用的随机数没有密码关联性,随机数生成的进一步建议见IS0/IEC18031。9.2密钥导出函数
两个密钥导出函数(KDF)被指定,SSE和SCH各一个函数密钥导出函数应使用A.1.中规定的XCBC-PRF-128模式下的AES算法。对于以下部分KDF为:
KDF(K,S)=AES-XCBC-PRF-128k(S)用于SCH的随机源(随机数+从9.1.4中获得的共享秘密z)应不同于用于SSE的随机源9.2.1SSE的KDF
用于SSE的KDF是:
MKssE=KDF-SSE(Nonces,Noncer,SharedSecret, IDs, IDr)
详细的KDF-SSE函数:
S=(Nonces[0..63]Noncer[0..63])SKEYSEED=KDF(S,$
SharedSecret)
MKssE=KDF(SKEYSEED,S1
9.2.2SCH的KDF
IDs1IDR(01))
HiiKAoNni KAca
用于SCH的KDF是:
(MKscHKEscH,KIsch)=KDF-SCH
详细的KDF-SCH函数:
(Nonces
S = (Nonces [0..63]
KDFS,
SKEYSEED
MKscH =KDF(SKEYSEED,
KEscH = KDF
(SKEYSEED,
KIscH=KDF(SKEYSEED
9.3密钥用途
每个推导出的密钥MKsc
SharedSecret,
I|Noncer[0..63]]
SharedSecret)
MKschH
KEsceH
KIscCH和MKssE应该仅用于表2规定的用途。对于每一个NFC-SEC过程,密钥MKscH,KEsc,KIscH和MKsse应不同。表2密钥用途
KISsai
9.4密钥确认
密钥描述
SCH的主密钥
SCH的加密密钥
SCH的完整性保护密钥
SSE的主密钥
密钥用途
作为安全信道密钥的验证
加密通过SCH发送的数据包
通过SCH发送数据包的完整性保护YDB085.2—2012
IDs,IDr)
共享秘密作为SSE的主密钥,用于传递给上层时使用并且可用于密钥验证
当使用在9.2中规定的一个KDF过程生成一个密钥时,对等的NFC-SEC实体都要检查是否双方确实拥有相同的密钥。每一个实体应产生一个在9.4.1规定的密钥确认标识并且应将其发送到对等实体。接收实体应根据9.4.2中的规定来核实密钥确认标识。密钥确认机制根据IS0/IEC11770-3第9章“密钥确认”中的规定来确认。用于密钥确认(MacTag)的MAC应为A.2中规定的XCBC-MAC-96模式下的AES。9.4.1密钥确认标识生成
MacTag,密钥确认标识,等于MAC-KC(K,MsgID,IDS,IDR,PKS,PKR),并且应使用附录A.2规定的AES-XCBC-MAC-96K(MsgID「IDS11IDR11PKS「PKR)和密钥K来计算。9.4.2密钥确认标识验证
“状态”,如果MacTag=MAC-KC(K,MsgID,IDS,IDR,PKS,PKR),MAC-KC-VER(K,MsgID,IDS,IDR,PKS,PKR,MacTag)的返回值为真。9.5数据加密
使用的数据加密运算法是IS0/IEC18033-3中5.1AES”部分规定的AES算法。数据加密模式应为IS0/IEC10116的第10章“计数器(CTR)”模式中规定的CTR模式。9.5.1计数器的初始值(IV)
为了避免发送计数器的初始值,计数器的初始值由两个实体根据随机数计算产生。5
HiiKAoNiKAca
YDB085.22012
计数器的初始值IV等于MAC-IV(MK,KI,NonceS,NonceR),应使用附录A.1中规定的AES-XCBC-PRF-128MK(KI
9.5.2加密
NoncesNonceR
(04))和密钥MK来计算
应使用IS0/IEC10116中10.2“加密”所规定的加密密钥KE来加密数据:EncData=ENCkE(Data)
由于是CTR模式,不应使用填充数据。9.5.3解密
应使用IS0/IEC10116中10.3“解密”所规定的加密密钥KE来解密加密数据。Data'=DECkE(EncData)
9.6数据完整性
SCH上传输的所有数据完整性应通过一个MAC保护。用于数据完整性的MAC应为A.2中规定的XCBC-MAC-96模式下的AES。9.6.1保护数据完整性
消息认证码Mac等于MAC-DI(KI,SN,DataLen,EncData),而且应用附录A.2中规定的AES-XCBC-MAC-96KI(SN11DataLen1EncData)和密钥KI来计算。9.6.2检查数据完整性
“状态”,如果Mac’= MAC-DI(KI,SNIIDataLenIIEncData),MAC-DI-VER(KI,SN.DataLen,EncData,Mac')的返回值为真。9.7信息序列完整性
信息序列完整性应根据YDB085.1的12.3中的规定来处理。SNV值应在0到224-1范围内,初始值为0。当SNV等于224-1时,实体应终止SCH。10
数据转换
整数到字节串的转换
输入:非负整数x,该字节串预定长度k满足:2>X。输出:长度k的字节串M。
Mi,Ma,.·,M是M从左到右的字节。M的字节满足:
10.2字节串到整数的转换
输入:长度k的字节串M。
8(k-)M
iiiKAoNiKAca
输出:整数x。
M1,M2,
Mk是M从左到右的字节
M转换为整数x满足:
10.3点到字节串的转换
EC上的点通过以下方式转换成字节串:输入:椭圆曲线点P=(xP,yP)。8(k-1)M
输出:字节串PO,y坐标是最左边的字节,x坐标是余下的字节串根据10.1规定转换元素xP为字节串X。a)
YDB085.2—2012
根据ISO0/IEC15946-1EC20SPE和OS2ECPE的6.6:椭圆曲线点/字节串转换的规定计算出P。b)
如果yP是0,字节串PC值为(02);如果P是1,PC值是(03)。结果是字节串PO=PCX。
字节串到点的转换
字节串应按照如下方法转换为EC上的点:输入:字节串PO,y坐标是最左边的字节和x坐标是余下的字节串输出:椭圆曲线点P=(xP,yP)。PO如下解释:当PC是一个单个字节,并且X是长度k的字节串时,PO=PCIX。a)
根据10.2,转换X为元素xP。
确认PC是(02)还是(03),否则出错。如果PC等于(02),设置P为O;如果PC等于03,设置P为1根据IS0/IEC15946-1EC2OSPE和OS2ECPE的6.6:椭圆曲线点/字节串转换中的规定,转换(xP,yP)为椭圆曲线点(xP,yP)。结果是P=(xP,yP)。
SSE和SCH服务调用
SSE和SCH服务是通过两个NFC-SEC实体之间共享秘密的建立来调用的,共享秘密是通过YDB085.1中定义的密钥协商和密钥确认协议来建立的。这个过程在图1中描述,在本章中将进一步明确。YDB085.2—2012
生成NA
计算共享秘密Z
计算MK=KDF(NA,NB.IDA,IDB:
计算MacTaga-f(MK,IDA.IDgQA.QB)
检查MacTagB,
对于SSE,设置共享秘密=MK
MacTagA
MacTagn
接收器B
生成NB
计算共享秘密2
计算MK-KDF(NANB.IDAID
检查MacTagA
计算MacTage=f(MK.IDg.IDaQB.QA)对于SSE,设置共享秘密-MK
图1密钥协定和密钥确认概述
前提条件
在开始服务前,对于每个NFC-SEC实体以下部分需要提供:根据9.1.2规定生成自身的EC公钥和私钥。注:当(在该频率)EC密钥对生成时,已超出了YDB085.2的范围。-IS0/IEC18092中规定的它自身的nfcid3和其他的NFC-SEC实体的nfcid3。11.2密钥协商
发送器(A)
生成随机数NA
压缩QA
发送给B
从QB\重建QB
检查Q
计算共享秘密:Z
发送器(A)转换
根据9.1.5生成随机数NA。
PDU传输
通信方向由箭头表示,有效载荷显示在括号中
ACTREQ
(QANA)
ACTRES
(QBNB)
接收器(B)
生成随机数NB
压缩QB
发送给A
从QA'重建QA
检查QA
计算共享秘密:Z
根据10.3确定QA为字节串QA。
发送QA1INA作为ACT_REQPDU的有效载荷。从ACTRESPDU的有效载荷中接收QB’LNB\。根据10.4由QB重建Q。
如果已经收到公钥,先前计算和存储的Q\值可重用,则下面步骤可跳过。YDB085.2—2012
根据9.1.3验证是否QB'是EC参数的有效密钥。如果是无效的,则在协议机设置“PDU内容有效”为假,跳过步骤7和8。
使用9.1.4的Diffie-Hel1man原语。如果输出z是“无效的”,则在协议机设置“PDU内容有效”为假,跳过步骤8。
根据10.1中的规定转化z为字节串Z。接收器(B)转换
从ACT_REQPDU有效载荷中接收QA’|NA'。根据9.1.5生成随机数NB。
根据10.3确定QB为字节串QB。
发送QBIINB作为ACT_RESPDU的有效载荷。根据10.4由QA\重建Q。
如果已经得到公钥,先前计算存储的Q\值可重用,则下面步骤可跳过根据9.1.3验证是否QA'是EC参数的有效密钥。如果是无效的,在协议机设置“PDU内容有效”为假,步骤7和8可以省略。
使用9.1.4的Diffie-Hellman原语。如果输出z是“无效的”,则在协议机设置“PDU内容有效”为假,跳过步骤8。
根据10.1转化z为字节串Z。
密钥导出
发送器(A)转换
对于SSE服务,根据9.2.1得到:MKssE=KDF-SSE(NA,NB,Z,IDe)
对于SCH服务,根据9.2.2得到:(MKscH,KEscH,KIschi)=KDF-SCH(NA,NB,Z,11.3.2接收器(B)转换
对于SSE服务,根据9.2.1得到:MKssE=KDF-SSE(NA\,NB,Z,IDA,
ID)。
对于SCH服务,根据9.2.2得到:{MKsCH,KEsCH,】KIsch) = KDF-SCH (NA\,
11.4密钥确认
发送器(A)
计算密钥确认标识:MacTagA
(MK)
发送到B
PDU传输
通信方向由箭头表示,有效载荷显示在括号中
A→B:
(MacTaga)
VFYREQ
接收器(B)
IDa,IDe)。
ID)。
IDa,
检查从A接收的密钥确认标
识:MacTagA(MK)
小提示:此标准内容仅展示完整标准里的部分截取内容,若需要完整标准请到上方自行免费下载完整标准文档。