1.一种基于Java卡的身份认证方法,包括java卡片与卡外实体,分别含有加密数据和 密钥,其特征在于,对加密数据和密钥拆进行如下操作步骤: (1) 拆分:分别将加密数据和密钥拆分为多段数据,之后将某一段或两段密钥存放在卡 中,剩余密钥存放在卡外实体中,之后由卡外实体中的程序进行混合; (2) 混合:卡外实体中的程序会将拆分并分配过来的密钥和拆分后的加密数据进行混 合;若放置两段密钥Keyl和Key2在卡外实体中,则与拆分过后的三段加密数据EnDatal、 EnData2、EnData3进行混合交叉放置,形成一串新的数据,每段数据在混合数据中存放的偏 移位和数据的长度是重组数据的关键,在将加密数据和密钥进行重组时会用到; (3) 重组:混合数据发至Java卡片后,由Java卡片中的程序对该数据进行重组,来重新 得到所需数据;利用每段数据的偏移量和数据长度将三段加密数据从混合数据中提取出来 并重组,用同样的方法将两段密钥提取出来并和卡中存放的另一部分密钥组合成为完整的 密钥,加密数据和密钥均得到之后便可进行加解密的验证; (4) 重复:将使用的多个加密数据和密钥进行以上操作,在某两步操作之间可将发送至 发片的指令的一部分的存放位置由卡外实体改至卡中,仅当某一步正确执行才会将该部分 指令发至卡外实体,以组成完整的指令。
2. 根据权利要求1所述的基于Java卡的身份认证方法,其特征在于,步骤(1)中,将加密 数据和密钥拆分为多段数据时,生成的加密数据和密钥的字节数均为8的倍数,拆分出的数 据的字节位数为8或8的倍数。