飞天诚信FTCOSPK资料.docx

上传人:b****2 文档编号:20120022 上传时间:2023-04-25 格式:DOCX 页数:12 大小:22.06KB
下载 相关 举报
飞天诚信FTCOSPK资料.docx_第1页
第1页 / 共12页
飞天诚信FTCOSPK资料.docx_第2页
第2页 / 共12页
飞天诚信FTCOSPK资料.docx_第3页
第3页 / 共12页
飞天诚信FTCOSPK资料.docx_第4页
第4页 / 共12页
飞天诚信FTCOSPK资料.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

飞天诚信FTCOSPK资料.docx

《飞天诚信FTCOSPK资料.docx》由会员分享,可在线阅读,更多相关《飞天诚信FTCOSPK资料.docx(12页珍藏版)》请在冰豆网上搜索。

飞天诚信FTCOSPK资料.docx

飞天诚信FTCOSPK资料

 

FEITIANCOS手册

(FTCOS_PK特别说明)

ReleaseVersion1.0.00,October2003

北京飞天诚信科技有限公司

IDNo.

本手册仅适用于FTCOS-PK卡

内容摘要

基于SSX20芯片实现的FTCOS_PK具有一些超出《FEITIANCOS手册》中所描述的功能,如对2048位RSA算法的支持,对SSF33算法的支持等。

这部分增补功能在本手册中进行说明。

北京飞天诚信科技有限公司

软件开发协议

北京飞天诚信科技有限公司(以下简称飞天)的所有产品,包括但不限于:

开发工具包,磁盘,光盘,硬件设备和文档,以及未来的所有定单都受本协议的制约。

如果您不愿接受这些条款,请在收到后的7天内将开发工具包寄回飞天,预付邮资和保险。

我们会把货款退还给您,但要扣除运费和适当的手续费。

1.许可使用

您可以将本软件合并、连接到您的计算机程序中,但其目的只是如开发指南中描述的那样保护该程序。

您可以以存档为目的复制合理数量的拷贝。

2.禁止使用

除在条款1中特别允许的之外,不得复制、反向工程、反汇编、反编译、修改、增加、改进软件、硬件和产品的其它部分。

禁止对软件和产品的任何部分进行反向工程,或企图推导软件的源代码。

禁止使用产品中的磁性或光学介质来传递、存储非本产品的原始程序或由飞天提供的产品升级的任何数据。

禁止将软件放在服务器上传播。

3.有限担保

飞天保证在自产品交给您之日起的12个月内,在正常的使用情况下,硬件和软件存储介质没有重大的工艺和材料上的缺陷。

4.修理限度

当根据本协议提出索赔时,飞天唯一的责任就是根据飞天的选择,免费进行替换或维修。

飞天对更换后的任何产品部件都享有所有权。

保修索赔单必须在担保期内写好,在发生故障14天内连同令人信服的证据交给飞天。

当将产品返还给飞天或飞天的授权代理商时,须预付运费和保险。

除了在本协议中保证的担保之外,飞天不再提供特别的或隐含的担保,也不再对本协议中所描述的产品负责,包括它们的质量,性能和对某一特定目的的适应性。

5.责任限度

不管因为什么原因,不管是因合同中的规定还是由于刑事的原因,包括疏忽的原因,而使您及任何一方受到了损失,由我方产品所造成的损失或该产品是起诉的原因或与起诉有间接关系,飞天对您及任何一方所承担的全部责任不超出您购买该产品所支付的货款。

在任何情况下,飞天对于由于您不履行责任所导致的损失,或对于数据、利润、储蓄或其它的后续的和偶然的损失,即使飞天被建议有这种损失的可能性,或您根据第3方的索赔而提出的任何索赔均不负责任。

6.协议终止

当您不能遵守本协议所规定的条款时,将终止您的许可和本协议。

但条款2,3,4,5将继续有效。

RevisionHistory:

04/14/2005

LCS

Created

__目录____________________

第1章概述

FTCOS_PK系列产品是基于FTCOS内核第II代实现的,主要针对身份认证应用领域的一款智能卡产品。

本产品目前基于国产SSX20芯片实现,主要具有以下特点:

●采用中兴微电子公司的SSX20芯片,32bit处理器核心,主频最高达96MHz,运算性能十分优秀。

●用户存储空间分为2个BANK,共计60KB。

文件系统支持3级DF。

●芯片已经内置了SSF33对称算法,无需下载,具有很好的安全性和可靠性。

●芯片内置RSA算法,支持最长2048位公私钥计算,硬件能自行产生最长2048位密钥对。

●芯片内置SHA1哈什算法。

●具有灵活的I/O方式,采用卡片封装形式的产品可支持ISO/IEC-7816-3规范所定义的串行I/O接口,采用TOKEN形式封装的产品可支持USB接口。

我们目前推出的产品采用了TOKEN形式,通过USB接口完成数据通信,无驱动程序的产品采用HID协议,数据传输速率较低。

另备有有驱动程序的产品,其驱动程序可建立一个PCSC读卡器,数据传输速率比较高。

处理器主频分为两个档次,96MHz产品在进行2048位RSA运算(或产生2048位RSA密钥对)时具有优秀的性能,24MHz产品在进行相同计算时具有可接受的性能,但提供了相对较低的价格。

词汇表

(1)SSX20

SSX20为中兴微电子公司设计制造的一颗32bit智能卡芯片,该芯片为FTCOS_PK系统的载体。

(2)SSF33算法

SSF33算法为————————自行开发的一个对称加解密算法。

(3)TOKEN

TOKEN是一种把智能卡产品与USB接口相结合而成的产品应用形式,也可称为USBKEY。

(4)DriverLess

USB设备在WIN32(或其它系统)下应用时通常需要一个驱动程序,但一些专有设备(如HID设备)的驱动程序已经集成在操作系统中,这类设备即可称为DirverLess。

参考文献

[1]《ISO/IEC7816-3/4/5/8》

[2]《ISO/IEC9796》

[3]《中国金融集成电路(IC)卡规范》

[4]《FEITIANCOS手册(第1部分基本功能)》

[5]《FEITIANCOS手册(第2部分扩展功能)》

第2章操作命令

2.1基本操作

FTCOS_PK的发卡命令可以参考《FEITIANCOS手册(第1部分基本功能)》中第48页6.3.17节至6.3.19节全部内容。

PKI应用命令可以参考《FEITIANCOS手册(第2部分扩展功能)》中第18页7.2.3节至7.2.6节全部内容。

文件操作相关命令可以参考《FEITIANCOS手册(第1部分基本功能)》中第30页6.3.4节至6.3.8节全部内容以及《FEITIANCOS手册(第2部分扩展功能)》中第15页7.2.1节至7.2.2节全部内容。

内、外部认证相关命令可以参考《FEITIANCOS手册(第1部分基本功能)》中第40页6.3.9节至6.3.10节全部内容以及《FEITIANCOS手册(第2部分扩展功能)》中第23页7.2.7节至7.2.8节全部内容。

PIN码相关命令可以参考《FEITIANCOS手册(第2部分扩展功能)》中第25页7.2.9节至7.2.11节全部内容。

2.2PKI应用命令的改进

改进PKI应用命令主要为适应2048位的RSA运算。

当RSA密钥长度达到2048位时,参与计算的数据长度也要达到256字节,这样一样基本的APDU就无法适应这种情况了。

根据7816规范,基本APDU中Lc/Le都是1字节,所能表达的数据长度只有255。

如果采用扩展的APDU,又削弱对读卡器的适应性,因此必须对PKI应用命令进行改进。

2.2.1读公钥

公钥由E和N两个成员组成,对于2048位密钥而言,N的长度为256字节,再加上E,密钥的总长度已经超出了256字节,因此在“读公钥”命令的APDU中,Le的值必须为‘00’。

——命令报文

CLA

INS

P1

P2

Lc

DATA

Le

‘80’

‘E6’

USAGE

KID

‘00’

COS在执行此命令后,会返回‘61XX’告知终端有‘XX’字节数据返回。

因为‘XX’也是1字节,因此如果假定公钥总长为266字节,那么COS首先会返回‘610A’,告知有‘0A’字节等待取走。

此时终端可以发出GETRESPONSE命令取走‘0A’字节,之后COS仍会返回错误状态码‘6100’,这里‘00’表示仍有256字节数据等待取走。

终端可以发出GETRESPONSE命令取出128字节,之后COS会返回错误状态‘6180’,告知终端仍有‘80’字节数据。

终端再次发出GETRESPONSE命令取走这128字节数据之后COS才会返回‘9000’。

因此终端不能认为COS只会返回一次‘61XX’,当COS连续返回‘61XX’时终端必须能连续发出GETRESPONSE命令,且能拼接数据。

当COS返回‘6100’时,终端应知道此时卡内有256字节数据等待取走,这时应分两次取回数据。

2.2.2生成密钥对

FTCOS内核第II代允许从卡外导入RSA密钥对,但不支持“中国余数定理”类密钥的导入,即只能导入私钥中的D,且导入的密钥只能使用标准的模-幂计算。

FTCOS_PK对II代内核进行了扩充,允许导入“中国余数定理”类密钥,密钥中各组成成员——P/Q/Dp/Dq/InvQmodP分别写入,命令APDU如下:

——命令报文

CLA

INS

P1

P2

Lc

DATA

‘00’

‘46’

ITEM

‘00’

ItemLength

Value

P1表示向卡内写入密钥的哪一项,取值如下所示:

P1=‘01’——写入素数P

P1=‘02’——写入素数Q

P1=‘03’——写入大数DmodP

P1=‘04’——写入大数DmodQ

P1=‘05’——写入大数InvQmodP

P1=‘0B’——写入大数N

P1=‘0D’——写入指数E

注意2048bit公钥模数N有256字节,通过本命令不能传输这么长的数据,我们采用的解决方法是首先通过先导的MSE命令把部分数据预置到卡内,本条命令只传输剩余数据。

两部分数据在卡内会拼接在一起。

请参考2.2.3节对MSE命令的描述。

每个成员的取值都是低字节在先高字节在后,命令报文为明文传输。

2.2.3MSE命令

MSE命令通常做为“生成密钥对”/“数据加解密”等操作的先导命令,用于预先选择密钥等处理。

MSE命令所带的报文数据是一个模板,我们在模板中增加了一个成员,该成员的TAG取值为‘89’,用于把一部份后续操作要用到的数据预置到卡内。

这一特征用于解决超长(大于等于256字节)数据的传输问题,以下为一些说明示例:

(1)把256字节的公钥N写入卡内

写入256字节的N要使用修订过的“GeneratePublicKeyPair”命令(见2.2.2节),该命令必须以MSE命令为先导,如果我们打算通过MSE命令将N的前64字节预置到卡内,则命令报文应如下所示:

P2

Lc

DATA

B8

46

83/84

02

KID

USAGE

89

40

DATA

CT模板

公/私钥引用

64字节预置数据

64字节预置数据是N的低64字节,其余192字节可以通过“GeneratePublicKeyPair”命令送入,APDU如下所示:

CLA

INS

P1

P2

Lc

DATA

‘00’

‘46’

‘0B’

‘00’

‘C0’

N

(2)2048位RSA算法外部认证

使用2048位RSA算法做外部认证,外部认证数据长度为256字节,无法通过一条“ExternalAuthenticate”传入卡内,因此需先通过MSE命令将部分数据置入,如果我们打算通过MSE命令将N的前64字节预置到卡内,则命令报文应如下所示:

P2

Lc

DATA

A4

49

80

01

Algo

83

02

KID

Usage

89

40

DATA

AT模板

认证算法引用

认证公钥引用

预置认证数据

64字节预置数据是认证证书的低64字节,其余192字节可以通过“ExternalAuthenticate”命令送入,APDU如下所示:

CLA

INS

P1

P2

Lc

DATA

‘00’

‘82’

‘10’

‘00’

‘C0’

AuthData

(3)2048位RSA算法数据加解密

采用2048位RSA算法进行数据加解密时,如果加密数据在卡外补齐,则数据长度将达到256字节,无法通过一条PSO命令传入卡内,因此需先通过MSE命令将部分数据置入,如果我们打算通过MSE命令将N的前64字节预置到卡内,则命令报文应如下所示:

P2

Lc

DATA

B8

49

80

01

Algo

83/84

02

KID

Usage

89

40

DATA

AT模板

加/解密算法引用

公/私钥引用

预置加解密数据

(4)2048位RSA算法签名验证

采用2048位RSA算法进行数据加解密时,签名数据总长为256字节,无法通过一条PSO命令传入卡内,因此需先通过MSE命令将部分数据置入,如果我们打算通过MSE命令将N的前64字节预置到卡内,则命令报文应如下所示:

P2

Lc

DATA

B6

49

80

01

Algo

83

02

KID

Usage

89

40

DATA

AT模板

HASH算法引用

公钥引用

预置签名数据

之后的HASH计算并不影响卡内预置的部分签名数据。

2.3SSF33算法应用命令

SSF33算法的密钥与其它密钥共同保存在IKF文件中,为SSF33密钥分配的USAGE编码为‘30’。

SSF33算法并未结合到MSE/PSO命令对中,而是采用了一条独立的APDU实现,该APDU具有以下两种形式:

(1)SSF33算法自检

——命令报文

CLA

INS

P1

P2

Lc

DATA

Le

‘00’

‘40’

‘00’

‘00’

‘01’

——命令执行

本命令在卡片未锁定状态下均可使用,当卡片处于锁定状态时,执行本命令COS将返回错误码‘6A81’,表示功能不被支持。

如果卡片硬件并未置入SSF33算法,执行本命令COS将返回错误码‘6A81’。

如果算法自检成功执行,COS将返回错误码‘9000’及1字节标志,该标志为‘00’表示算法自检正常,为‘FF’表示算法自检出现异常。

——响应报文

本条命令的响应报文由1字节组成,该字节是一个标志,指示算法自检结果。

——错误代码

本命令正确执行后FTCOS返回‘9000’,出错时可能返回以下错误代码:

‘6A’

‘81’

卡片锁定或SSF33算法不存在

(2)SSF33算法加/解密

——命令报文

CLA

INS

P1

P2

Lc

DATA

Le

‘00’

‘40’

OP

BLOCK

数据长度

数据

结果长度

P1的定义如下:

B7

b6

b5

b4

b3

b2

b1

b0

说明

密钥标识(KID)

1

1

1

1

1

1

全1表示密钥通过APDU传入

加/解密选择

0

1

数据加密

1

0

数据解密

x

x

保留

当P1表明要进行数据加/解密操作时,P2将用于指出命令报文数据域中有多少个数据块。

每块数据为16字节长。

如果P1给出的密钥标识为‘3F’,表示16字节密钥从卡外送入,这时DATA域最前16字节为密钥,之后的数据才是被加/解密的数据。

——命令执行

本命令在卡片未锁定状态下均可使用,当卡片处于锁定状态时,执行本命令COS将返回错误码‘6A81’,表示功能不被支持。

如果卡片硬件并未置入SSF33算法,执行本命令COS将返回错误码‘6A81’。

如果P1的低2位取值不正确,COS将返回错误码‘6A86’。

如果P1指出的密钥不存在,COS将返回错误码‘6984’。

如果P1指出的密钥其使用安全状态不满足,COS将返回错误码‘6982’。

如果本命令成功执行,在T0协议时COS将返回‘61XX’,告知有‘XX’字节数据等待取回。

T1协议时COS将直接返回结果。

——响应报文

本条命令的响应报文由Lc字节的计算结果组成。

——错误代码

本命令正确执行后FTCOS返回‘9000’,出错时可能返回以下错误代码:

‘69’

‘82’

安全状态不满足

‘69’

‘84’

引用的数据(KEY)找不到

‘6A’

‘81’

卡片锁定或SSF33算法不存在

‘6A’

‘86’

参数P1/P2错

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1