国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種對智能卡應(yīng)用進(jìn)行初始化的方法和裝置的制造方法_4

      文檔序號:9931087閱讀:來源:國知局
      的第二應(yīng)用AID、密鑰屬性和密鑰個數(shù)時,根據(jù)第二應(yīng)用AID、密鑰屬性和密鑰個數(shù)在根應(yīng)用下創(chuàng)建應(yīng)用和應(yīng)用中的密鑰;
      [0238]第二選擇模塊205,用于當(dāng)獲取到卡外傳入的第三應(yīng)用AID時,判斷是否能在卡內(nèi)查找到具有與第三應(yīng)用AID相同的應(yīng)用AID的應(yīng)用,是則將查找到的應(yīng)用設(shè)置為當(dāng)前應(yīng)用,否則向上位機(jī)返回錯誤碼;
      [0239]第二認(rèn)證模塊206,用于當(dāng)獲取到卡外傳入的被認(rèn)證的密鑰的密鑰號時,生成第三隨機(jī)數(shù),根據(jù)第三隨機(jī)數(shù)對創(chuàng)建應(yīng)用時寫入的密鑰屬性中指定的修改過程中使用的權(quán)限密鑰進(jìn)行安全認(rèn)證;判斷權(quán)限密鑰是否通過安全認(rèn)證,如果否,則向上位機(jī)返回錯誤碼;
      [0240]修改密鑰模塊207,用于當(dāng)?shù)诙J(rèn)證模塊206安全認(rèn)證成功并且獲取到卡外傳入的被修改密鑰的密鑰號和密鑰數(shù)據(jù)時,根據(jù)被修改密鑰的密鑰號和密鑰數(shù)據(jù),對當(dāng)前應(yīng)用中的密鑰進(jìn)行修改;
      [0241]創(chuàng)建文件模塊208,用于當(dāng)獲取到卡外傳入的第一文件ID時,根據(jù)第一文件ID在當(dāng)前應(yīng)用中創(chuàng)建文件;
      [0242]寫數(shù)據(jù)模塊209,用于當(dāng)獲取到卡外傳入的第二文件ID、數(shù)據(jù)偏移、數(shù)據(jù)長度和初始數(shù)據(jù)時,根據(jù)第二文件ID在當(dāng)前應(yīng)用中查找對應(yīng)的文件,判斷是否能夠查找到與第二文件ID查找對應(yīng)的文件,是則根據(jù)數(shù)據(jù)偏移、數(shù)據(jù)長度和初始數(shù)據(jù),在查找到的文件中寫入初始數(shù)據(jù),否則向上位機(jī)返回錯誤碼。
      [0243]當(dāng)接收到第一選擇應(yīng)用指令時第一選擇模塊201進(jìn)行工作,第一選擇模塊201包括:第一清除單元和第一設(shè)置單元;
      [0244]第一清除單元,用于清除過程密鑰,初始化各個密鑰的認(rèn)證標(biāo)識;
      [0245]第一設(shè)置單元,用于根據(jù)第一選擇應(yīng)用指令中的第一應(yīng)用AID,將當(dāng)前應(yīng)用設(shè)置為根應(yīng)用,向上位機(jī)返回成功信息。
      [0246]當(dāng)接收到第一安全認(rèn)證指令時第一認(rèn)證模塊202進(jìn)行工作,第一認(rèn)證模塊202包括:第一獲取單元、第一生成單元、第一判斷單元、第二生成單元、第二判斷單元和第三生成單元;
      [0247]第一獲取單元,用于根據(jù)第一安全認(rèn)證指令中的密鑰號獲取被認(rèn)證的密鑰;
      [0248]第一生成單元,用于生成第一隨機(jī)數(shù),根據(jù)第一獲取單元獲取到的被認(rèn)證的密鑰對第一隨機(jī)數(shù)進(jìn)行加密,得到第一密文,向上位機(jī)返回第一密文;
      [0249]第一判斷單元,用于判斷是否接收到第二安全認(rèn)證指令,若未接收到第二安全認(rèn)證指令則向上位機(jī)返回錯誤碼,結(jié)束;
      [0250]第二生成單元,用于當(dāng)?shù)谝慌袛鄦卧袛喑鼋邮盏降诙踩J(rèn)證指令時,根據(jù)第一獲取單元獲取到的被認(rèn)證的密鑰對第二安全認(rèn)證指令中的第二密文進(jìn)行解密,得到第二隨機(jī)數(shù)和第一組合數(shù)據(jù);
      [0251]第二判斷單元,用于判斷第二生成單元生成的第一組合數(shù)據(jù)是否與第一隨機(jī)數(shù)匹配,若判斷出第一組合數(shù)據(jù)與第一隨機(jī)數(shù)不匹配,則向上位機(jī)返回錯誤碼,結(jié)束;
      [0252]第三生成單元,用于當(dāng)?shù)诙袛鄦卧袛喑龅谝唤M合數(shù)據(jù)與第一隨機(jī)數(shù)匹配時,確定安全認(rèn)證成功,對第二隨機(jī)數(shù)進(jìn)行加密得到第三密文,向上位機(jī)返回第三密文。
      [0253]第三生成單元還用于對第一隨機(jī)數(shù)和第二隨機(jī)數(shù)進(jìn)行拼接組合,得到過程密鑰。
      [0254]當(dāng)接收到初始化指令時初始化模塊203進(jìn)行工作,初始化模塊203包括第三判斷單元和第二清除單元;
      [0255]第三判斷單元,用于判斷當(dāng)前是否在根應(yīng)用下,若當(dāng)前不在根應(yīng)用下則向上位機(jī)返回錯誤碼,結(jié)束;
      [0256]第二清除單元,用于當(dāng)?shù)谌袛鄦卧袛喑霎?dāng)前在根應(yīng)用下時,對除主控密鑰和主控密鑰的密鑰屬性之外的數(shù)據(jù)進(jìn)行清除,向上位機(jī)返回成功信息。
      [0257]當(dāng)接收到創(chuàng)建應(yīng)用指令時,創(chuàng)建應(yīng)用模塊204進(jìn)行工作,創(chuàng)建應(yīng)用模塊204包括:第四判斷單元、第五判斷單元、第六判斷單元和第一創(chuàng)建單元;
      [0258]第四判斷單元,用于判斷當(dāng)前是否在根應(yīng)用下,若當(dāng)前不在根應(yīng)用下則向上位機(jī)返回錯誤碼,結(jié)束;
      [0259]第五判斷單元,用于當(dāng)?shù)谒呐袛鄦卧袛喑霎?dāng)前在根應(yīng)用下時,判斷卡中是否已存在具有與創(chuàng)建應(yīng)用指令中的應(yīng)用AID相同AID的應(yīng)用,是則向上位機(jī)返回錯誤碼,結(jié)束;
      [0260]第六判斷單元,用于當(dāng)?shù)谖迮袛鄦卧袛喑隹ㄖ胁淮嬖诰哂信c創(chuàng)建應(yīng)用指令中的應(yīng)用AID相同AID的應(yīng)用時,根據(jù)應(yīng)用個數(shù)判斷根應(yīng)用下已安裝的應(yīng)用個數(shù)是否達(dá)到第十預(yù)設(shè)值,是則向上位機(jī)返回錯誤碼,結(jié)束;
      [0261]第一創(chuàng)建單元,用于當(dāng)?shù)诹袛鄦卧袛喔鶓?yīng)用下已安裝的應(yīng)用個數(shù)未達(dá)到第十預(yù)設(shè)值時,將創(chuàng)建應(yīng)用指令中的應(yīng)用AID、密鑰屬性和密鑰個數(shù)關(guān)聯(lián)到根應(yīng)用,更新根應(yīng)用下已安裝的應(yīng)用個數(shù),根據(jù)預(yù)設(shè)值創(chuàng)建應(yīng)用中的密鑰,向上位機(jī)返回成功信息。
      [0262]創(chuàng)建應(yīng)用模塊204還包括:第七判斷單元和第八判斷單元;
      [0263]第七判斷單元,用于當(dāng)?shù)谒呐袛鄦卧袛喑霎?dāng)前在根應(yīng)用下時,根據(jù)主控密鑰的密鑰屬性判斷是否需要認(rèn)證主控密鑰,若判斷出不需要認(rèn)證主控密鑰則觸發(fā)第五判斷單元進(jìn)行工作;
      [0264]第八判斷單元,用于當(dāng)?shù)谄吲袛鄦卧袛喑鲂枰J(rèn)證主控密鑰時,根據(jù)與主控密鑰對應(yīng)的認(rèn)證標(biāo)識判斷主控密鑰是否通過安全認(rèn)證,是則觸發(fā)第五判斷單元進(jìn)行工作,否則向上位機(jī)返回錯誤碼,結(jié)束。
      [0265]當(dāng)接收到第二選擇應(yīng)用指令時第二選擇模塊205進(jìn)行工作,第二選擇模塊205還用于當(dāng)判斷出能在卡內(nèi)查找到具有與第三應(yīng)用AID相同的應(yīng)用AID的應(yīng)用時,清除過程密鑰,初始化各個密鑰的認(rèn)證標(biāo)識。
      [0266]當(dāng)接收到第三安全認(rèn)證指令時第二認(rèn)證模塊206進(jìn)行工作,第二認(rèn)證模塊206包括:第二獲取單元、第四生成單元、第九判斷單元、第五生成單元、第十判斷單元和第六生成單元;
      [0267]第二獲取單元,用于根據(jù)第三安全認(rèn)證指令中的密鑰號獲取被認(rèn)證的密鑰;
      [0268]第四生成單元,用于生成第三隨機(jī)數(shù),根據(jù)第二獲取單元獲取到的被認(rèn)證的密鑰對第三隨機(jī)數(shù)進(jìn)行加密,得到第四密文,向上位機(jī)返回第四密文;
      [0269]第九判斷單元,用于判斷是否接收到第四安全認(rèn)證指令,若未接收到第四安全認(rèn)證指令則向上位機(jī)返回錯誤碼,結(jié)束;
      [0270]第五生成單元,用于當(dāng)?shù)诰排袛鄦卧袛喑鼋邮盏降谒陌踩J(rèn)證指令時,根據(jù)第二獲取單元獲取到的被認(rèn)證的密鑰對第四安全認(rèn)證指令中的第五密文進(jìn)行解密,得到第四隨機(jī)數(shù)和第二組合數(shù)據(jù);
      [0271]第十判斷單元,用于判斷第五生成單元生成的第二組合數(shù)據(jù)是否與第三隨機(jī)數(shù)匹配,若判斷出第二組合數(shù)據(jù)與第三隨機(jī)數(shù)不匹配,則向上位機(jī)返回錯誤碼,結(jié)束;
      [0272]第六生成單元,用于當(dāng)?shù)谑袛鄦卧袛喑龅诙M合數(shù)據(jù)與第三隨機(jī)數(shù)匹配時,確定安全認(rèn)證成功,對第四隨機(jī)數(shù)進(jìn)行加密得到第六密文,向上位機(jī)返回第六密文。
      [0273]第六生成單元還用于對第三隨機(jī)數(shù)和第四隨機(jī)數(shù)進(jìn)行拼接組合,得到過程密鑰。
      [0274]當(dāng)接收到修改密鑰指令時修改密鑰模塊207進(jìn)行工作,修改密鑰模塊207包括:第三獲取單元、第十二判斷單元、第十四判斷單元、第十五判斷單元、第十六判斷單元、第十七判斷單元、第一解密單元、第十八判斷單元、第二解密單元、第十九判斷單元、第二十判斷單元和更新單元;
      [0275]第三獲取單元,用于從修改密鑰指令中獲取被修改的密鑰的密鑰號,初始化修改標(biāo)識;
      [0276]第十二判斷單元,用于根據(jù)獲取到的密鑰號判斷被修改的密鑰是否為主控密鑰;
      [0277]第十四判斷單元,用于當(dāng)?shù)谑袛鄦卧袛喑鲂薷倪^程中使用的權(quán)限密鑰已通過安全認(rèn)證時,判斷被修改的密鑰的密鑰號與修改過程中使用的權(quán)限密鑰的密鑰號是否相同,是則將修改標(biāo)識置位;
      [0278]第十五判斷單元,用于當(dāng)?shù)谑袛鄦卧袛喑霰恍薷牡拿荑€為主控密鑰時,根據(jù)主控密鑰的密鑰屬性判斷是否允許修改主控密鑰,若不允許修改主控密鑰則向上位機(jī)返回錯誤碼,結(jié)束;
      [0279]第十六判斷單元,用于當(dāng)?shù)谑迮袛鄦卧袛喑鲈试S修改主控密鑰時,根據(jù)與主控密鑰對應(yīng)的認(rèn)證標(biāo)識判斷主控密鑰是否通過安全認(rèn)證,是則將修改標(biāo)識置位,若主控密鑰未通過安全認(rèn)證則向上位機(jī)返回錯誤碼,結(jié)束;
      [0280]第十七判斷單元,當(dāng)?shù)谑呐袛鄦卧袛啾恍薷牡拿荑€的密鑰號與修改過程中使用的權(quán)限密鑰的密鑰號是否相同之后,或者當(dāng)?shù)谑袛鄦卧袛喑鲋骺孛荑€已通過安全認(rèn)證時,判斷修改標(biāo)識是否置位;
      [0281]第一解密單元,用于當(dāng)?shù)谑吲袛鄦卧袛喑鲂薷臉?biāo)識已置位時,根據(jù)過程密鑰對修改密鑰指令的密鑰數(shù)據(jù)進(jìn)行解密,得到新密鑰和第一校驗碼;
      [0282]第十八判斷單元,用于對第一解密單元得到的新密鑰進(jìn)行校驗,根據(jù)第一校驗碼判斷是否通過校驗,若未通過校驗則向上位機(jī)返回錯誤碼,結(jié)束;
      [0283]第二解密單元,用于當(dāng)?shù)谑吲袛鄦卧袛喑鲂薷臉?biāo)識未置位時,根據(jù)過程密鑰對修改密鑰指令的密鑰數(shù)據(jù)進(jìn)行解密,得到異或數(shù)據(jù)、第二校驗碼和第三校驗碼;
      [0284]第十九判斷單元,用于對第二解密單元得到的異或數(shù)據(jù)進(jìn)行校驗,根據(jù)第二校驗碼判斷是否通過校驗,若未通過校驗則向上位機(jī)返回錯誤碼,結(jié)束;
      [0285]第二十判斷單元,用于當(dāng)?shù)谑排袛鄦卧袛喑鐾ㄟ^校驗時,對被修改的密鑰和異或數(shù)據(jù)進(jìn)行異或運算,得到新密鑰,對新密鑰進(jìn)行校驗,根據(jù)第三校驗碼判斷是否通過校驗,是則執(zhí)行步驟Dl 3,若未通過校驗則向上位機(jī)返回錯誤碼,結(jié)束;
      [0286]更新單元,用于當(dāng)?shù)谑伺袛鄦卧袛喑鐾ㄟ^校驗,或者第二十判斷單元判斷出通過校驗時,根據(jù)新密鑰更新被修改的密鑰,將與被修改的密鑰對應(yīng)的認(rèn)證標(biāo)識復(fù)位,向上位機(jī)返回成功信息。
      [0287]當(dāng)接收到創(chuàng)建文件指令時創(chuàng)建文件模塊208進(jìn)行工作,創(chuàng)建文件模塊208包括:第二十一判斷單元、第四獲取單元、第二十二判斷單元、第二十三判斷單元、第一存儲單元、第二十四判斷單元、第二存儲單元和第二創(chuàng)建單元;
      [0288]第二十一判斷單元,用于判斷當(dāng)前是否在根應(yīng)用下,是則向上位機(jī)返回錯誤碼,結(jié)束;
      [0289]第四獲取單元,用于當(dāng)?shù)诙慌袛鄦卧袛喈?dāng)前不在根應(yīng)用下時,根據(jù)創(chuàng)建文件指令中訪問權(quán)限的值,獲取文件的讀權(quán)限、寫權(quán)限、讀寫權(quán)限和修改訪問權(quán)限對應(yīng)的密鑰號;
      [0290]第二十二判斷單元,用于判斷是否能在當(dāng)前應(yīng)用中找到與第四獲取單元獲取到的密鑰號對應(yīng)的密鑰,若找不到則向上位機(jī)返回錯誤碼,結(jié)束;
      [0291]第二十三判斷單元,用于當(dāng)?shù)诙袛鄦卧袛喑瞿茉诋?dāng)前應(yīng)用中找到與密鑰號對應(yīng)的密鑰時,判斷創(chuàng)建文件指令類型;
      [0292]第一存儲單元,用于當(dāng)?shù)诙袛鄦卧袛喑鰟?chuàng)建文件指令類型為創(chuàng)建標(biāo)準(zhǔn)文件或備份文件指令時,將文件類型和創(chuàng)建標(biāo)準(zhǔn)文件或備份文件指令中的文件大小對應(yīng)存儲在卡中,根據(jù)文件大小得到創(chuàng)建文件需要的空間;當(dāng)?shù)诙袛鄦卧袛喑鰟?chuàng)建文件指令類型為創(chuàng)建值文件指令時,將文件類型對應(yīng)存儲在卡中,將創(chuàng)建文件需要的空間設(shè)為第十六預(yù)設(shè)值;當(dāng)?shù)诙袛鄦卧袛喑鰟?chuàng)建文件指令類型為創(chuàng)建線性數(shù)據(jù)文件或循環(huán)數(shù)據(jù)文件指令時,將文件類型、創(chuàng)建線性數(shù)據(jù)文件或循環(huán)數(shù)據(jù)文件指令中的記錄大小和記錄數(shù)對應(yīng)存儲在卡中,根據(jù)記錄大小和記錄數(shù)得到創(chuàng)建文件需要的空間;組織文件頭,將文件鏈表、文件ID、通信級別和訪問權(quán)限對應(yīng)存儲在卡中;
      [0293]第二十四判斷單元,用于判斷創(chuàng)建文件指令是否為創(chuàng)建值文件指令;
      [0294]第二存儲單元,用于當(dāng)?shù)诙呐袛鄦卧袛喑鰟?chuàng)建文件指令為創(chuàng)建值文件指令時,在文件頭中存儲上下限,余額和改限允許標(biāo)識;
      [0295]第二創(chuàng)建單元,用于當(dāng)?shù)诙呐袛鄦卧袛喑鰟?chuàng)建文件指令不為創(chuàng)建值文件指令時,或者第二存儲單元在文件頭中存儲上下限,余額和改限允許標(biāo)識之后,根據(jù)創(chuàng)建文件需要的空間在當(dāng)前應(yīng)用中創(chuàng)建文件結(jié)點,在文件鏈表中查找當(dāng)前應(yīng)用最后一個文件結(jié)點,在當(dāng)前應(yīng)用最后一個文件結(jié)點的指針域中存儲創(chuàng)建的文件結(jié)點的地址,向上位機(jī)返回成功
      ?目息O
      [0296]創(chuàng)建文件模塊208還包括:第二十五判斷單元和第二十六判斷單元;
      [0297]第二十五判斷單元,用于當(dāng)?shù)诙慌袛鄦卧袛喑霎?dāng)前在根應(yīng)用下時,根據(jù)主控密鑰的密鑰屬性判斷是否需要認(rèn)證主控密鑰,若判斷出不需要認(rèn)證主控密鑰則觸發(fā)第四獲取單元進(jìn)行工作;
      [0298]第二十六判斷單元,用于當(dāng)?shù)诙迮袛鄦卧袛喑鲂枰J(rèn)證主控密鑰時,根據(jù)與主控密鑰對應(yīng)的認(rèn)證標(biāo)識判斷主控密鑰是否通過安全認(rèn)證,是則觸發(fā)第四獲取單元進(jìn)行工作,否則向上位機(jī)返回錯誤碼,結(jié)束。
      [0299]裝置還包括第三選擇模塊,用于當(dāng)獲取到卡外傳入的第四應(yīng)用AID時,判斷是否能在卡內(nèi)查找到具有與第四應(yīng)用AID相同的應(yīng)用AID的應(yīng)用,是則將查找到的應(yīng)用設(shè)置為當(dāng)前應(yīng)用,觸發(fā)寫數(shù)據(jù)模塊209進(jìn)行工作,否則向上位機(jī)返回錯誤碼。
      [°30°]寫數(shù)據(jù)模塊209包括:第二十七判斷單元、第二十八判斷單元、第二十九判斷單元、第三十判斷單元、第三i^一判斷單元、第三十二判斷單元、第三十三判斷單元和寫入單元;
      [0301]第二十七判斷單元,用于判斷當(dāng)前是否在根應(yīng)用下,是則向上位機(jī)返回錯誤碼,結(jié)束;
      [0302]第二十八判斷單元,用于當(dāng)?shù)诙吲袛鄦卧袛喈?dāng)前不在根應(yīng)用下時,根據(jù)寫數(shù)據(jù)指令中的第二文件ID在當(dāng)前應(yīng)用中查找對應(yīng)的文件,判斷是否能夠查找到與寫數(shù)據(jù)指令中的第二文件ID對應(yīng)的文件,是則將查找到的文件作為當(dāng)前文件,否則向上位機(jī)返回錯誤碼,結(jié)束;
      [0303]第二十九判斷單元,用于當(dāng)?shù)诙伺袛鄦卧袛喑瞿軌虿檎业脚c寫數(shù)據(jù)指令中的第二文件ID查找對應(yīng)的文件時,判斷寫權(quán)限和讀寫權(quán)限否為自由,是則將通信級別設(shè)置為明文通信,否則獲取當(dāng)前文件的通信級別;
      [0304]第三十判斷單元,用于當(dāng)?shù)诙排袛鄦卧袛鄬憴?quán)限和讀寫權(quán)限否為自由之后,根據(jù)數(shù)據(jù)長度判斷是否接收到完整的寫數(shù)據(jù)指令中的數(shù)據(jù),若未接收到完整的寫數(shù)據(jù)指令中的數(shù)據(jù)則繼續(xù)接收寫數(shù)據(jù)指令中的數(shù)據(jù);
      [0305]第三十一判斷單元,用于當(dāng)?shù)谌袛鄦卧袛喑鲆呀邮盏酵暾膶憯?shù)據(jù)指令中的數(shù)據(jù)時,判斷通信級別的類型,若為明文通信則將寫數(shù)據(jù)指令中的初始數(shù)據(jù)作為數(shù)據(jù)內(nèi)容;
      [0306]第三十二判斷單元,用于當(dāng)?shù)谌慌袛鄦卧袛喑鐾ㄐ偶墑e的類型為明文校驗時,對寫數(shù)據(jù)指令中的初始數(shù)據(jù)進(jìn)行校驗,判斷校驗是否成功,是則將初始數(shù)據(jù)中除校驗碼之外的數(shù)據(jù)作為數(shù)據(jù)內(nèi)容,否則向上位機(jī)返回錯誤碼,結(jié)束;
      [0307]第三十三判斷單元,用于當(dāng)?shù)谌慌袛鄦卧袛喑鐾ㄐ偶墑e的類型為密文校驗時,對寫數(shù)據(jù)指令中的初始數(shù)據(jù)進(jìn)行校驗,判斷校驗是否成功,是則對初始數(shù)據(jù)中除校驗碼之外的數(shù)據(jù)進(jìn)行解密
      當(dāng)前第4頁1 2 3 4 5 6 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1