IC卡智能燃氣表中,軟件必須接收和處理多種CPU卡:用戶購氣卡、檢查卡、廠家生產(chǎn)測試卡(如閥門檢測卡等6種)、修改主密鑰卡等。每種CPU卡的目錄文件結構和認證訪問方式不盡相同,以使用用戶購氣卡購氣后在燃氣表上插卡為例,說明軟件認證過程:
(1)從卡的可讀二進制文件中識別出卡的類型,即用戶購氣卡。
(2)燃氣表從用戶卡中讀取卡序列號和用戶號,并比較用戶號是否與SAM中存儲的一致,不一致則拒絕讀卡。
(3)若用戶號一致,IC卡智能燃氣表將卡序列號送至SAM模塊。SAM模塊對卡序列號進行加密,并生成相應的內(nèi)部認證密鑰。
(4)燃氣表用內(nèi)部認證密鑰對用戶卡做內(nèi)部認證。
(5)燃氣表用氣表外部認證密鑰對用戶卡做外部認證。
(6)燃氣表從用戶卡購氣應用二進制文件中讀取購氣數(shù)據(jù),判斷其完整性,同時判斷購氣次數(shù)是否與IC卡智能燃氣表內(nèi)一致。若不一致則向IC卡燃氣表返寫應用二進制文件(返寫數(shù)據(jù))退出;若判斷一致,則進入(7)。
(7)由IC卡智能燃氣表用氣量外部認證密鑰對SAM模塊進行外部認證,若一致則將購氣量及狀態(tài)數(shù)據(jù)存入SAM模塊,并返寫數(shù)據(jù)退出,完成購氣操作;否則只返寫數(shù)據(jù)退出。