<strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

        <em id="tpvd9"></em>

          <address id="tpvd9"></address>
            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

            <thead id="tpvd9"><noframes id="tpvd9">
            <ruby id="tpvd9"></ruby>

                  <thead id="tpvd9"></thead>
                  歡迎您訪(fǎng)問(wèn)鄭州興邦電子股份有限公司官方網(wǎng)站!
                  阿里巴巴誠信通企業(yè)
                  全國咨詢(xún)熱線(xiàn):40000-63966
                  興邦電子,中國水控機第一品牌

                  聯(lián)系興邦電子

                  全國咨詢(xún)熱線(xiàn):40000-63966

                  售后:0371-55132951/55132952

                  工廠(chǎng):河南省 鄭州市 高新區蓮花街電子電器產(chǎn)業(yè)園

                  關(guān)于非接觸式智能卡及其讀寫(xiě)器ASIC模塊之“密碼操作”研究及其應用程序開(kāi)發(fā)

                  文章出處:http://psychicreadingswithdeb.com 作者:張敏&nbsp;&nbsp; 人氣: 發(fā)表時(shí)間:2011年09月03日

                  [文章內容簡(jiǎn)介]:關(guān)于非接觸式智能卡及其讀寫(xiě)器ASIC模塊之“密碼操作”研究及其應用程序開(kāi)發(fā)

                     關(guān)鍵字: 非接觸式智能卡  ASIC模塊  

                  1、序言
                    非接觸式智能卡已經(jīng)廣泛地應用于各類(lèi)門(mén)禁控制系統,公共交通支付系統,e-purse系統,高速公路不停車(chē)收費系統,IBMS(智能大樓管理系統),海關(guān)過(guò)境身份識別,以及醫療保險系統等等。
                    非接觸式智能卡以其高度安全保密性,通信高速性,使用方便性,成本日漸低廉等而受到廣泛使用,給我們的生活質(zhì)量帶來(lái)了很大的提高。因此,如何認識、理解智能卡,特別是帶有非常神秘色彩的非接觸式智能卡,已引起很多智能卡的使用者,包括智能卡專(zhuān)業(yè)研發(fā)的IT科研人員的極大的興趣和愛(ài)好。筆者在此很愿意將自己多年來(lái)在智能卡(接觸式智能卡及非接觸式智能卡)方面的研究及其軟硬件應用開(kāi)發(fā)的經(jīng)驗與大家一同交流和分享,以取得我國金卡工程事業(yè)的更進(jìn)一步的發(fā)展。
                    在此,筆者將以符合ISO/IEC14443TYPEA標準的Mifare1S50系列非接觸式智能卡及其讀寫(xiě)設備專(zhuān)用IC(ASIC)RC150/170模塊為對象,與大家一起就“關(guān)于非接觸式智能卡及其讀寫(xiě)器ASIC模塊之‘密碼操作’”作一些研究與探討,并將用標準的Intel-51系列微處理器匯編語(yǔ)言進(jìn)行實(shí)際的應用程序的開(kāi)發(fā)。在筆者曾設計和開(kāi)發(fā)的眾多智能卡項目中,本文所給出的應用程序都有著(zhù)良好的運行效果。

                  2、非接觸式智能卡及其讀寫(xiě)器ASIC模塊RC150/170
                    Mifare1S50非接觸式智能卡片有著(zhù)16個(gè)Sector(扇區);每個(gè)Sector包含4個(gè)Block(塊);每個(gè)Block具有16個(gè)byte的存儲容量。Sector被定義為Sector0至Sector15;Block被分為Block0至Block3;整個(gè)Mifare1S50非接觸式智能卡共有64個(gè)Block。
                    Sector0中的Block0記錄了該張智能卡的序列號(SerialNumber)以及生產(chǎn)廠(chǎng)商的標志信息等,這些信息已在卡片出廠(chǎng)時(shí)固化,不能更改。因此該Block不能再復用為應用數據塊。
                    每個(gè)Sector中的Block3被特別用來(lái)存放對該Sector中應用塊Block0,1,2及其本身Block3進(jìn)行數據存取的密碼及存取權限。整個(gè)Mifare1S50非接觸式智能卡共有16個(gè)Block3。根據絕對地址編址,他們可被編為Block3(在Sector0中),Block7(在Sector1中),Block11(在Sector2中),以及Block63(在Sector15中)等等。
                    對于某一Sector中的Block3的絕對地址編址可以由下列公式計算得到:
                    Block X=(N+1)*4-1
                    其中:X:絕對地址編址的Block塊號
                       N:Sector扇號,0至15
                    通常每個(gè)扇區的Block0,1,2都存放著(zhù)非常保密的數據,例如坐公交車(chē)/出租車(chē)前在公交公司指定地點(diǎn)已購買(mǎi)的車(chē)資錢(qián)款,智能大廈/智能小區進(jìn)出時(shí)所需的控制信息,股票交易時(shí)持有股票交易智能卡片者必須對已存放在智能卡中的交易密碼數據(例如帳戶(hù)、存款信息、已買(mǎi)進(jìn)股票數量/品種等等)進(jìn)行確認,才能得以股票交易,等等。
                    由于每一個(gè)Block3中包含了該扇區的密碼字節以及對該扇區中其余Block0,1,2進(jìn)行數據處理的存取控制權限字節,因此如何操作處理Block3將是很重要的內容。以下將展開(kāi)對每個(gè)扇區的Block3進(jìn)行研究。
                    Block3有16個(gè)byte組成。前6個(gè)字節是密碼A(KEYA),KEYA的缺省值可能為“A0A1A2A3A4A5”;最后6個(gè)字節是密碼B(KEYB),KEYB的缺省值可能為“B0B1B2B3B4B5”;中間4個(gè)字節是控制字節,缺省值可能為“FFH07H80H69H”;利用KEYA或KEYB并遵守早已定義在4個(gè)控制字節中的存取條件,我們便能對該密碼(KEYA或KEYB)所對應的Sector內的應用塊Block0,1,2進(jìn)行數據讀/寫(xiě)/更新等操作。
                    由于非接觸式智能卡的操作,包括數據流的傳遞等都是以“非接觸”方式來(lái)完成的,因此在MCU與非接觸式智能卡之間必須有一個(gè)傳遞密碼(或數據流)的中間媒體,即ASIC模塊。RC150/170就是這樣一種ASIC模塊。它擔負著(zhù)非接觸式智能卡與MCU(微處理機)之間所有的密碼/數據相互傳遞的重要任務(wù)。對非接觸式智能卡進(jìn)行密碼操作,變成對RC150/170ASIC模塊進(jìn)行密碼操作。RC150/170ASIC模塊與非接觸式智能卡之間的信息傳遞(包括密碼等)對用戶(hù)來(lái)說(shuō)是透明的,會(huì )自動(dòng)傳遞并完成。因此如何對非接觸式智能卡進(jìn)行“密碼操作”(對Block3的操作)變成如何對RC150/170ASIC模塊進(jìn)行密碼操作。Philips公司的MCM200模塊,MCM500模塊或SB201,SB601(Uni-VisionEngineeringLtd.的產(chǎn)品)模塊中都包含有RC150/170ASIC模塊,因此本文所討論的內容,包括下面設計的程序等,也適用于這些模塊。RC170是RC150的新一代ASIC模塊,速度較快。
                    現在我們廣泛使用的非接觸式智能卡讀寫(xiě)設備中大都包含有以上所列的ASIC模塊之一。
                    圖1顯示了在用戶(hù)(MCU)與非接觸式智能卡之間基本的密碼傳輸關(guān)系,并請特別注意ASIC模塊RC150/170的作用等等。

                  圖1ASIC模塊密碼傳輸關(guān)系圖
                    在研究ASIC模塊RC150/170的時(shí)候,我們必須關(guān)注所有與“密碼操作”有關(guān)的寄存器/存儲器的情況。
                    ●密碼數據寄存器KeyDataRegister(寄存器地址:0x0A);
                    ●密碼地址寄存器KeyAddressRegister(寄存器地址:0x0C);
                    ●密碼狀態(tài)/控制寄存器KeyStatus&ControlRegister(KEYSTACON)(寄存器地址:0x0B);
                    ●其他相關(guān)寄存器。
                  所有這些與“密碼操作”相關(guān)的寄存器都是“只可寫(xiě)不可讀”的,即WOM(Write-Only-Memory)。因此不要試圖去讀取這些寄存器的內容。

                  3、“密碼操作”的研究及其應用程序開(kāi)發(fā)
                    通常,對非接觸式智能卡的“密碼操作”有兩個(gè)主要步驟。每一個(gè)主要步驟又有若干個(gè)小的步驟有序并且必須是連續地完成。
                    “密碼操作”的兩個(gè)主要步驟是:
                    ●“LOAD_KEY”密碼存取
                    ●“AUTHENTICATION”密碼認證

                  3.1“LOAD_KEY”密碼存取
                    “LOAD_KEY”密碼存取必須由以下步驟有序并連續地完成:
                    ●設置新的密碼值
                    ●設置密碼狀態(tài)/控制寄存器KeyStatus&ControlRegister(KEYSTACON)
                    ●設置密碼地址寄存器KeyAddressRegister(寄存器地址:0x0C)
                    ●設置密碼數據寄存器KeyDataRegister(寄存器地址:0x0A)
                    ●校驗STACON寄存器,以確定這次的“LOAD_KEY”密碼存取是否有效
                    以下將按照上述的次序進(jìn)行具體的程序設計,所有的程序都使用標準的Intel-51MCU指令,以利于讀者在LOW-LEVEL級上移植到其相應的應用項目中。

                  3.1.1設置新的密碼值
                    新的密碼值為6個(gè)bytes,在如下的程序設計中被依次存放在MCU內部RAM的72H~77H的6個(gè)單元中;程序員亦可自定義其他的存儲單元作為新的密碼值存放的緩沖區;R1寄存器為新密碼緩存首地址指針。如下所設置新的密碼值為:“AAAAAAAAAAAA”
                    SETUP_NEW_KEY_VALUE:
                        ;MOV R7,#06H;密碼長(cháng)度為6bytes
                        MOV R1,#72H;R1為新密碼緩存首地址指針
                        MOV @R1,#0AAH;設置新密碼值
                        MOV 73H,#0AAH
                        MOV 74H,#0AAH
                        MOV 75H,#0AAH
                        MOV 76H,#0AAH
                        MOV 77H,#0AAH
                    良好的經(jīng)驗告訴我們,為了確保整個(gè)智能卡系統的高度安全保密,我們有必要在程序設計中,在完成了“密碼操作”之后,立即清除存放新的密碼值的緩沖區,簡(jiǎn)單的方法如下:
                    CLEAR_NEW_KEY_BUFFER:
                        MOV R7,#06H;密碼長(cháng)度為6bytes
                        MOV R1,#72H;R1為新密碼緩存首地址指針
                  CLEAR_LOOP:
                        MOV @R1,#00H;清除新密碼值所在緩沖區
                        INC R1
                        DJNZ R7,CLEAR_LOOP

                  3.1.2設置密碼狀態(tài)/控制寄存器KeyStatus&ControlRegister(KEYSTACON)
                    KEYSTACON寄存器是一個(gè)只可讀不可寫(xiě)的寄存器(存儲器),它指示出“密碼操作”時(shí)所處的狀態(tài)和要控制的ASIC內部“密碼存儲器RAM”的選擇。這里所指的“狀態(tài)”是指本次“密碼操作”兩個(gè)主要步驟中的一個(gè)。
                  KEYSTACON寄存器是一個(gè)8-bit的存儲器,其中有用的位(bit)只有3位。其具體內容為:

                    其中,MSB(“A/L”位)若被設置為“0”,則意味著(zhù)當前“密碼操作”的“狀態(tài)”是“LOAD_KEY(密碼存取)”;若被設置為“1”,則當前“密碼操作”的“狀態(tài)”是“AUTHENTICATION(密碼認證)”。
                    最后 2個(gè)bit:KS0KS1是密碼集keyset的選擇。在A(yíng)SIC中共有3套密碼集(keyset)和一個(gè)傳輸密碼(TransportKey)可被選擇。設置KS0、KS1的值實(shí)際上是在選擇(尋址)ASIC模塊內部存放密碼的不同的存儲器單元(密碼箱)。如果“LOAD_KEY”(密碼存?。r(shí)使用了keyset0,則“AUTHENTICATION”(密碼認證)時(shí)只能使用keyset0,而不能使用keyset1或keyset2或其他,因為在A(yíng)SIC模塊內,keyset0指定的密碼存儲器地址單元與keyset1或keyset2所指定的密碼存儲器地址單元是不同的單元。這就好比去超級市場(chǎng)購物,入超市前您把您的包裹寄存在超市門(mén)前包裹箱A中,并得到打印有開(kāi)起包裹箱A的(開(kāi)箱)密碼紙條;當您欲取回包裹時(shí),拿著(zhù)包裹箱A的(開(kāi)箱)密碼紙條而去開(kāi)包裹箱B或C的箱門(mén),當然不能打開(kāi),因為您的地址(箱號)不對,當然您的包裹也不能拿到。這是密碼的認證出錯。在A(yíng)SIC中有相同之處。如果“LOAD_KEY”(密碼存?。r(shí)使用了keyset0,并存放上密碼,而在“AUTHENTICATION”(密碼認證)時(shí)卻使用keyset1或keyset2或其他而來(lái)驗證剛才存放的密碼,當然會(huì )得到ASIC模塊返回的認證出錯(“AE=1”)。
                    當KS1KS0=“00”時(shí),選擇使用keyset0;
                    當KS1KS0=“01”時(shí),選擇使用keyset1;
                    當KS1KS0=“10”時(shí),選擇使用keyset2;
                    當KS1KS0=“11”時(shí),選擇使用傳輸密碼(TransportKey)。
                    以下是設置密碼狀態(tài)/控制寄存器KeyStatus&ControlRegister(KEYSTACON)的程序:
                    SETUP_KEYSTACON:
                      MOV 7EH,#00000000B;選擇使用keyset0,并指明是“LOAD_KEY”
                      MOV A,7EH   ;7EH單元存放了設置KEYSTACON的值
                      MOV R0,#0BH  ;KEYSTACON寄存器地址為0Bh
                      OVX @R0,A   ;設置KEYSTACON寄存器
                    如果我們要選擇使用keyset2,則相應可以設置7EH單元為#00000010b(0x02),即:
                      MOV 7EH,#00000010B

                  3.1.3設置密碼地址寄存器KeyAddressRegister(寄存器地址:0x0C)
                    在成功地完成了對密碼狀態(tài)/控制寄存器(KEYSTACON)的設置之后,必須立即對密碼地址寄存器KeyAddressRegister進(jìn)行設置,而不能對密碼數據寄存器KeyDataRegister進(jìn)行設置或做其他設置,否則將出錯。因為ASIC內部接收MCU指令/數據的存儲單元是按照FIFO(“FirstInFirstOut”即“先進(jìn)先出”)方式工作的。
                    由于一張非接觸式智能卡有16個(gè)Sector(扇區),并且每個(gè)Sector都可能有著(zhù)各自不同的密碼,因此在A(yíng)SIC模塊中就會(huì )有不同的密碼存儲器與之相對應。當對16個(gè)Sector中的一個(gè)Sector進(jìn)行密碼操作時(shí),就必須對ASIC模塊中與該Sector對應的密碼存儲器進(jìn)行尋址,找到這一密碼存儲器確切位置。不過(guò),MCU送出的尋址地址只是ASIC在其內部做第二次尋址(地址變化)的“一部分”地址。這里所指的“一部分”是出于高度安全保密的原因。
                    以下是8位(bit)密碼地址寄存器的說(shuō)明:

                    這里,
                    ●MSB(“A/L”bit)與KEYSTACON寄存器中的MSB有著(zhù)相同的意義;
                    ●“A/B”bit位指出MCU要使用的密碼的類(lèi)型。當“A/B”=“0”時(shí),MCU使用KEYA;當“A/B”=“1”時(shí),MCU使用KEYB;
                    ●“A5~A0”指出要求密碼操作的某一Sector的地址。當要對Sector0進(jìn)行密碼操作時(shí),“A5~A0”應該被設置為“00000b”(0x00);如果是Sector1,“A5~A0”應該被設置為“00001b”(0x01);如果是Sector5,“A5~A0”應該被設置為“00101b(0x05),等等。
                    以下是設置密碼地址寄存器KeyAddressRegister的程序:
                    SETUP_Key_Address_Reg:
                      MOV 7DH,#00000001B ;使用KEYA,對Sector1進(jìn)行“LOAD_KEY”
                      MOV A,7DH      ;7DH單元存儲了密碼地址寄存器值
                      MOV R0,#0CH     ;密碼地址寄存器地址為“0Ch”
                      MOV X@R0,A      ;設置密碼地址寄存器
                    如果要對Sector1使用KEYB,則7DH單元必須設置為“#01000001b”(0x41),即:
                      MOV 7DH,#01000001B
                    更進(jìn)一步,如果要對Sector5使用KEYB,則7DH單元必須設置為“#01000101b”(0x45),即:
                      V 7DH,#01000101B
                    這樣,Sector5中Block0,1,2(相應于絕對塊地址為:Block20,21,22)中原有數據將可以被操作。Sector5中Block3也可以按照預先定義的存取控制條件而被改寫(xiě)密碼,或被讀出密碼或控制字節。

                  3.1.4設置密碼數據寄存器KeyDataRegister(寄存器地址:0x0A)
                    如果成功地完成了以上幾個(gè)方面的設置,ASIC模塊現在可以接收MCU送出的新的密碼值了,即,現在應該設置密碼數據寄存器KeyDataRegister。
                    密碼數據寄存器KeyDataRegister也是WOM類(lèi)型的存儲器。只可寫(xiě)入數據,不可讀出數據,或讀到的數據是無(wú)效的。由于密碼的長(cháng)度為6bytes,因此密碼數據寄存器KeyDataRegister也將由6個(gè)bytes的FIFO存儲器組成。
                    以下是設置密碼數據寄存器KeyDataRegister的程序:
                    SETUP_Key_Data_Reg:
                      MOV R1,#72H   ;R1為新密碼緩存(72H~77H)首地址指針
                      MOV R7,#06H   ;密碼長(cháng)度=6bytes
                      MOV R0,#0AH   ;密碼數據寄存器地址為:“0Ah”
                    WRITE_Key_Data_Reg_LOOP:
                      MOV A,@R1    ;取出一個(gè)byte的新密碼值
                      MOV X@R0,A    ;將一個(gè)byte的新密碼值送入密碼數據寄
                  ;存器中(ASIC模塊中)
                      INC R1
                      DJNZ R7,WRITE_Key_Data_Reg_LOOP
                    這里有一個(gè)非常重要的問(wèn)題,即傳送6bytes長(cháng)度的密碼時(shí),這6bytes的順序必須引起高度重視。
                    由于每一個(gè)Block3都有著(zhù)如下的存儲格式存放著(zhù)密碼KEYA,KEYB及4個(gè)字節的存取控制條件:

                    因此,密碼數據寄存器接收MCU發(fā)送的第一個(gè)密碼字節(byte)必須是KEYA中的第一個(gè)字節,即表中的“A0”字節。否則送入非接觸式智能卡中的密碼將是反向的6個(gè)字節。
                    密碼KEYB具有相同之處。
                  3.1.5校驗STACON寄存器,以確定這次的“LOAD_KEY”(密碼存取)是否有效
                    在完成上述操作后,接著(zhù)應該對以上的結果進(jìn)行校驗,以確定這次的“LOAD_KEY”(密碼存取)是否有效。這可以通過(guò)校驗STACON寄存器中的“AE”bit位來(lái)完成。
                    STACON寄存器是ASIC模塊中極為重要的狀態(tài)寄存器和控制寄存器。
                  當對ASIC模塊進(jìn)行任何讀/寫(xiě)操作時(shí),它是一個(gè)狀態(tài)寄存器,指出當時(shí)讀/寫(xiě)操作的狀態(tài)是如何的。此時(shí)的STACON寄存器有著(zhù)如下的8個(gè)bit的狀態(tài)格式:

                    當對ASIC模塊進(jìn)行任何控制操作時(shí),它是一個(gè)控制寄存器,此時(shí)的STACON寄存器又有著(zhù)如下的8個(gè)bit的控制格式:

                    我們進(jìn)行密碼操作,讀寫(xiě)ASIC模塊時(shí),只是會(huì )涉及STACON寄存器中的“AuthenticationError”bit(即“AE”位)。
                    ●當“AE”=“1”時(shí),指明剛才的密碼操作(“LOAD_KEY”或“AUTHENTICATION”)沒(méi)有成功;
                    ●當“AE”=“0”時(shí),指明剛才的密碼操作(“LOAD_KEY”或“AUTHENTICATION”)成功;
                    以下是校驗STACON寄存器,以確定這次“LOAD_KEY”密碼存取操作是否有效的校驗程序:
                    VERIFY_LOAD_KEY_Operationroutine:
                    VERIFY_LOAD_KEY_OP:
                      MOV R0,#01H  ;STACON寄存器地址為“01H”
                      MOV XA,@R0   ;讀ASIC內的STACON寄存器;如果“AE”=“1”,轉出錯處理
                      JB ACC.2, LOAD_KEY_Operation_ERR  ;否則“AE”=“00”,此次“LOAD_KEY”成功
                      MOV B,#00H;送OK標志“00”
                      AJMP LOAD_KEY_Operation_OK
                     LOAD_KEY_Operation_ERR:
                      MOV B,#99H;送出錯標志“99”,此次“LOAD_KEY”失敗
                      ......
                     ?。ǔ鲥e處理)
                      ......
                      AJMP VERIFY_EXIT
                     LOAD_KEY_Operation_OK:
                      MOV A,B
                      ACALL DISPLAY
                      ......
                     ?。ā癘K”處理)
                      ......
                     VERIFY_EXIT:
                      RET

                  3.2“AUTHENTICATION”(密碼認證)
                    “AUTHENTICATION”(密碼認證)操作必須按照如下的幾個(gè)步驟進(jìn)行:
                     ●設置ASIC模塊中的TOC/BCNTS寄存器等
                     ●設置密碼狀態(tài)/控制寄存器KeyStatus&ControlRegister(KEYSTACON)
                     ●設置密碼地址寄存器KeyAddressRegister(寄存器地址:0x0C)
                     ●設置AUTHENTICATION指令碼
                     ●密碼地址變換
                     ●校驗STACON寄存器,以確定這次的“AUTHENTICATION”密碼認證是否有效
                     ●關(guān)閉TOC及一些其它操作等
                    由于“AUTHENTICATION”(密碼認證)操作同“LOAD_KEY”(密碼存取)操作相互類(lèi)似,在此不再重復。
                    只有在完全完成了上述的兩個(gè)主要的密碼操作步驟,并且得當了ASIC模塊“OK”的響應,非接觸式智能卡上相對應與剛才進(jìn)行過(guò)密碼操作的某一扇區Sectorm內的Block0,1,2才能被MCU進(jìn)行訪(fǎng)問(wèn),包括進(jìn)行讀/寫(xiě)等數據操作。一旦要求對另一扇區Sectorn內的Block進(jìn)行數據讀寫(xiě)時(shí),則必須重新開(kāi)始對扇區Sectorn進(jìn)行密碼操作,包括“LOAD_KEY”(密碼存取)操作和“AUTHENTICATION”(密碼認證)操作等。

                  4、結束語(yǔ)
                    非接觸式智能卡技術(shù)雖然至今只有4~5年的成熟發(fā)展期,但是由于它的高度保密性,以及使用的方便性,得到了很快的普及。這種普及又加速了非接觸式智能卡技術(shù)的飛躍發(fā)展。它同銀行用接觸式CPU卡相互融合,產(chǎn)生了新的雙界面智能卡(Contact&ContactlessInterface),在e-purse電子錢(qián)包系統等方面取得到了很大的成功。世界上一些著(zhù)名的大公司,如SONY公司等,也介入了非接觸式智能卡技術(shù)領(lǐng)域,并且SONY的非接觸式智能卡技術(shù)又有著(zhù)非常獨到之處。根據筆者對SONY非接觸式智能卡技術(shù)的使用、研究和了解,相對MIFARE而言,其在讀卡的速度、穩定性、誤碼率等性能上都有很大的提高,這也是其溶入了新的技術(shù)所致。

                  本文關(guān)鍵詞:關(guān)于非接觸式智能卡及其讀寫(xiě)器ASIC模塊,于非接觸式智能卡及其讀寫(xiě)器ASIC模塊之,非接觸式智能卡及其讀寫(xiě)器ASIC模塊之“,接觸式智能卡及其讀寫(xiě)器ASIC模塊之“密,觸式智能卡及其讀寫(xiě)器ASIC模塊之“密碼,式智能卡及其讀寫(xiě)器ASIC模塊之“密碼操,智能卡及其讀寫(xiě)器ASIC模塊之“密碼操作,能卡及其讀寫(xiě)器ASIC模塊之“密碼操作”,卡及其讀寫(xiě)器ASIC模塊之“密碼操作”研,及其讀寫(xiě)器ASIC模塊之“密碼操作”研究,其讀寫(xiě)器ASIC模塊之“密碼操作”研究及,讀寫(xiě)器ASIC模塊之“密碼操作”研究及其,寫(xiě)
                  回到頂部
                  99久热只有精品视频在线17_精品一区二区三区自拍图片_最新国产v亚洲_久久综合九色综合久
                  <strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

                        <em id="tpvd9"></em>

                          <address id="tpvd9"></address>
                            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

                            <thead id="tpvd9"><noframes id="tpvd9">
                            <ruby id="tpvd9"></ruby>

                                  <thead id="tpvd9"></thead>