新四季網

一種基於橢圓曲線公鑰密碼的無線終端安全鎖網鎖卡方法

2023-08-11 00:06:01 3

專利名稱:一種基於橢圓曲線公鑰密碼的無線終端安全鎖網鎖卡方法
技術領域:
本發明涉及移動通信終端,特別涉及一種基於橢圓曲線公鑰密碼的無線終端安全鎖網鎖卡方法。
背景技術:
隨著WCDMA網絡在全球範圍內的大規模商用,以及WCDMA用戶數量的增多,各運營商為了擴大和鞏固用戶數量,在無線終端或手機銷售模式上採用話費補貼或附送手機方式來吸引用戶。在一些國家和地區,運營商為了保證手機用戶不流失,要求所採購的手機只能在自己的網絡使用,並且使用運營商自己發行的SIM/USIM卡,因此對手機提出了鎖網鎖卡的要求。通過鎖網及鎖卡技術,可以防止部分3G運營商通過某個地區運營商低價獲得手機,然後轉到其它地區高價出售,從而賺取運營商為發展市場所進行的補貼。另一方面,為了防止黑客攻擊,各運營商對手機鎖網鎖卡的安全性提出了很高要求。
手機鎖網是指依照當初運營商與手機製造商達成的協議,此手機機型只能使用該運營商網內的SIM/USIM卡,其他運營商提供的SIM/USIM卡均不能使用。手機鎖卡是指該手機只認插入的第一張卡,其他卡均不能使用。不能使用的技術原因在於,該手機是通過安全軟體加了鎖,解鎖需要進行軟體重寫。
關於鎖網鎖卡要求的相關標準規範有3GPP TS 22.022,但在安全實現方面,不存在任何3GPP相關標準,也沒有解決上述問題的方便可靠的方法從鎖網鎖卡安全技術及安全管理的角度來說,要求提供網絡鎖網鎖卡的安全實現及方法,在手機製造商內仍然需要嚴格保密。另外,為保證鎖網鎖卡軟體不被偽造,要求只有經過授權或數字籤名的相關軟體才可以在手機內運行,同時,對鎖網鎖卡的敏感數據要進行安全保護。
為保障安全的鎖網鎖卡功能,對手機軟體進行編程/重編的軟體也應嚴格進行安全管理,以便不能使用或發現任何軟體對手機進行去鎖網鎖卡功能,這就要求在手機安全引導進程中,要進行鎖網相關的軟體完整性檢查,同時,保證每種軟體使用之前經過授權,或要通過數字籤名與驗證。另外,也不能通過降低軟體版本,對軟體進行重新構造,從而對鎖網鎖卡功能造成威脅。
按相關標準規範3GPP TS22.022要求,手機內鎖網鎖卡功能的解鎖功能,只有通過解鎖密鑰DCK,即解鎖密碼,才可以解除。並要求解鎖密鑰不可被重新編碼,並且要阻止任何偽造/反向工程推導。解鎖密鑰DCK是需要嚴格保密的信息,在存儲與傳輸時要採取必要的安全手段和安全級別。只有廠家或運營商才有可能存取DCK。除了解鎖密鑰外,要防止任何黑客在可用商業機上,使用任何物理或軟體方法來解鎖手機的鎖網鎖卡功能。
基於以上鎖網鎖卡的安全技術與管理需求,要求手機鎖網鎖卡軟體安全機制應足夠強,不能被逆向推導或受到一個非授權第三方的危害,同時要求安全機制不能被繞過。
而解決以上問題的有效途徑就是藉助於公鑰密碼體制PKI技術。
目前實用的公鑰密碼體制根據其所依據的難題一般分為三類大整數分解問題類-RSA算法、離散對數問題類-數字籤名算法DSA、橢圓曲線類-橢圓曲線密碼ECC。
橢圓曲線密碼體制是目前已知公鑰密碼體制中,每比特所提供加密強度最高的一種體制。RSA公鑰密碼算法的特點之一是數學原理簡單、在工程應用中比較易於實現,但它的單位安全強度相對較低。目前國際上公認的對於RSA算法最有效的攻擊方法--數域篩NFS方法去破譯和攻擊,證明RSA算法的破譯或求解難度是亞指數級的。而ECC算法的數學理論非常深奧和複雜,在工程應用中比較難於實現,但它的單位安全強度相對較高。用國際上公認的對於ECC算法最有效的攻擊方法--Pollard rho方法去破譯和攻擊ECC算法,它的破譯或求解難度基本上是指數級的。正是由於RSA算法和ECC算法這一明顯不同,使得ECC算法的單位安全強度高於RSA算法,也就是說,要達到同樣的安全強度,ECC算法所需的密鑰長度遠比RSA算法低。這就有效地解決了為了提高安全強度必須增加密鑰長度所帶來的工程實現難度的問題,特別是對於手機這樣處理能力不強,內存資源比較緊張的情況。例如,當RSA算法密鑰使用2048位時,ECC密鑰僅使用234位,而所獲得的安全強度要高出許多。它們之間的密鑰長度相差達9倍以上,當ECC密鑰更大時它們之間差距將更大。ECC密鑰短的優點是非常明顯的,隨加密強度的提高,密鑰長度變化不大。
隨著全球範圍內為避免預先設置的鎖網鎖卡功能不被運營商或用戶非法取消,各大運營商對手機安全鎖網鎖卡提出的越來越高的安全強度的需求。

發明內容
本發明需要解決的技術問題是提供一種基於橢圓曲線公鑰密碼的無線終端安全鎖網鎖卡方法,能夠實現鎖網鎖卡,同時在一定密鑰長度可以提供更高的安全強度。
本發明的上述第一個技術問題這樣解決,提供一種基於橢圓曲線公鑰密碼的無線終端安全鎖網鎖卡方法,包括以下步驟1.1)使用橢圓曲線公鑰證書籤名生成的數字籤名和存儲在該終端內的橢圓曲線私鑰密碼在開機初始階段進行軟體的合法性檢查;1.2)通過驗證的軟體根據終端當前註冊的網絡與預存網絡信息比較結果決定提供網絡服務與否或者讀取USIM/SIM卡內的IMSI號並與預存的IMSI號比較決定是否提供服務。
按照本發明提供的鎖網鎖卡方法,所述預存的網絡信息和IMSI號是基於ElGamal算法模擬的橢圓曲線進行加密保存並解密讀取的;這些安全數據還保存在終端內的安全存儲區域中,保證它們不被非法篡改。
按照本發明提供的鎖網鎖卡方法,所述預存的網絡信息和IMSI號也可直接設置在軟體中,保證它們不被非法篡改但這種架構不利於功能的完善和增加。(建議保留用於支撐較大的權利要求1)按照本發明提供的鎖網鎖卡方法,所述步驟1.1)還包括使用對應數字籤名對所述加密保存進行合法和完整性檢查;進一步確保了這些安全數據的安全和正確性。
按照本發明提供的鎖網鎖卡方法,所述網絡信息可以是MNC,還可以是MNC和MCC。
按照本發明提供的鎖網鎖卡方法,所述加密保存,即安全數據,還包括軟體籤名的認證碼、HPLMN、FLEXFILE、EF_GID1、軟體版本號、網絡控制鎖NCK、運營商控制鎖SPC、鎖網鎖卡狀態標誌、網絡/卡解鎖剩餘嘗試次數、鎖卡校驗碼、公鑰、版本校驗碼、IMEI號校驗碼或鎖卡校驗碼,並保存在終端內的安全存儲區域中。
按照本發明提供的鎖網鎖卡方法,該方法還包括位於步驟1.1)和1.2)之間的步驟解密讀取鎖網鎖卡狀態標誌,「鎖網/卡狀態」進入步驟1.2)「不鎖網/卡狀態」則跳過步驟1.2)進入正常開機流程。
按照本發明提供的鎖網鎖卡方法,該方法還包括根據所述軟體版本號與通過橢圓曲線公鑰密碼加密、橢圓曲線私鑰密碼解密的待下載軟體版本號的比較是否在版本號的安全區域決定是否允許下載;進行版本控制。
按照本發明提供的鎖網鎖卡方法,所述網絡/卡解鎖剩餘嘗試次數不為零,該方法還包括根據輸入所述網絡控制鎖NCK將鎖網鎖卡狀態標誌從「鎖網/卡狀態」改為「不鎖網/卡狀態」。
按照本發明提供的鎖網鎖卡方法,所述網絡/卡解鎖剩餘嘗試次數為零,該方法還包括根據輸入所述運營商控制鎖SPC將鎖網鎖卡狀態標誌從「鎖網/卡狀態」改為「不鎖網/卡狀態」,同時再輸入所述網絡控制鎖NCK鎖網鎖卡狀態標誌不發生變化。
按照本發明提供的鎖網鎖卡方法,所述步驟1.1)中數字籤名源於所述軟體的二進位可加載格式映像文件。
按照本發明提供的鎖網鎖卡方法,所述無線終端包括但不限制於2G或3G終端。
本發明提供的一種基於橢圓曲線公鑰密碼的無線終端安全鎖網鎖卡方法,採用的橢圓曲線密碼體制在已知公鑰密碼系統中具有每比特最高強度安全性,最快的處理速度和最低的開銷,特別適用於具有低內存與低處理能力手機終端實現鎖網鎖卡公鑰密碼安全技術。


下面結合附圖和具體實施例進一步對本發明進行詳細說明。
圖1為本發明實施例方法的手機鎖網鎖卡軟體及數據保護流程圖;圖2為本發明實施例方法手機終端基於橢圓曲線的加密解密流程圖;圖3為本發明實施例方法安全數據編碼為橢圓曲線上的點的流程圖;圖4為本發明實施例方法鎖網鎖卡安全軟體籤名流程圖;圖5為本發明實施例方法鎖網鎖卡安全軟體合法性認證流程圖;圖6為本發明實施例方法鎖網鎖卡的解鎖網/鎖卡功能流程圖。
具體實施例方式
首先,說明本發明關鍵(一)從橢圓曲線離散對數出發,輔以抗碰撞散列函數,利用橢圓曲線公鑰證書數字籤名方法,實現手機的鎖網與鎖卡方法,包括手機鎖網鎖卡軟體授權使用確認、軟體完整性檢查,對鎖網鎖卡相關安全參數的加密保存,及鎖網鎖卡安全實現及鎖網鎖卡的安全解鎖等方法。
(二)本發明安全基礎是基於橢圓曲線離散對數問題。給定一條定義在有限域GF(p)上橢圓曲線E,一個階為n的點P∈E及一個點Q=kP,其中0≤k≤n-1,確定k。橢圓曲線離散對數問題具有可證明的安全性,相對於目前流行的RSA公鑰密碼體制,具有速度快,安全性高及對終端的處理能力要求低等優點。
(三)本發明實現3G網絡下的手機安全鎖網鎖卡方法,就是通過對手機開機引導過程中,通過對系統軟體或手機鎖網鎖卡相關軟體實施橢圓曲線數字籤名,保證保證手機鎖網鎖卡軟體是合法授權的,並且沒有經過竄改的。在保證了鎖網鎖卡軟體的安全性後,通過對USIM/SIM卡內鎖網鎖卡相關欄位或信息的檢查,並與手機內的鎖網鎖卡相關信息進行比較判斷,實現手機安全的鎖網與鎖卡技術。對於鎖網鎖卡相關的需要高強度安全保護的信息或數據,利用橢圓曲線公鑰密碼技術實施加密進行保護。通過以上高安全強度的基於橢圓曲線數字籤名,加密與解密安全技術手段,保證手機只有在運營商網絡範圍及所發行的USIM/SIM卡上安全使用。
第二步,具體說明本發明工作原理本發明基於橢圓曲線上離散對數困難問題假設出發,藉助於哈希函數,橢圓曲線公鑰密碼或證書,利用橢圓曲線加密及數字籤名方法實現3G手機安全鎖網鎖卡方法,包括手機安全鎖網鎖卡的安全實現過程;手機引導時安全軟體完整性或系統性檢測;鎖網鎖卡相關安全數據,如IMEI手機軟體版本號、鎖網狀態等安全加密與解密方法,手機鎖網鎖卡安全解鎖過程等內容。
所述手機鎖網鎖卡過程包括鎖網鎖卡安全軟體數字籤名,相關安全數據的加密。首先藉助PC側軟體對手機鎖網鎖卡安全軟體進行編譯,構造,其次對構造的二進位映象文件進行橢圓曲線數字籤名;再次,對鎖網鎖卡相關安全信息基於橢圓曲線公鑰密碼技術進行加密與解密處理;最後,通過PC側提供的手機下載軟體,將相關軟體與安全數據通過數據線下載到手機內存區域中,對於安全相關數據,藉助於物理手段,保存到手機內安全存儲區域中,如公鑰證書,鎖網鎖卡相關數據,鎖網鎖卡狀態等,防止外部用戶進行竊取,竄改等。本發明假定手機內的橢圓曲線私鑰,是安全保存在手機中,不能被外部軟體、硬體所讀取。
所述手機鎖網鎖卡安全軟體的數字籤名方法,用於該軟體完整性與合法性檢查。首先對於安全軟體程序中的各種源文件,包括C語言程序,彙編程序,經過編譯器編譯後生成嵌入式可加載格式ELF文件。這些目標文件與手機處理器系統所帶的C/C++運行時庫文件,經過連接器處理後,生成ELF格式的映象文件image,這種映象文件然後寫入到手機ROM Flash內。為實現數字籤名,本發明假設運營商或製造商有一個支持橢圓曲線公鑰密碼的證書中心CA網站,也可以利用一個支持橢圓曲線密碼的政府或商業公共CA。用戶安全申請一個橢圓曲線密碼公鑰證書,用於手機軟體安全與鎖網鎖卡實現中的根CA證書,以此證書完成對其它公鑰證書籤名,保證手機公鑰證書的不可偽造性及合法性證明。本發明利用根CA證書籤名的手機公鑰證書,完成手機安全軟體的籤名,及相關安全數據的籤名,以實現安全軟體的完整性及合法性等檢查,防止第三方惡意代碼的入侵。
所述手機鎖網鎖卡安全軟體的數字籤名過程,首先給出橢圓曲線密碼參數集D=(p,a,b,G,n,h),其中p為一個大素數,如大於160bit的素整數,指定了有限域GF(p);a,b指定橢圓曲線E;G=(xG,yG)∈E(GF(p))為一個基點;素數n為基點G的階; h=#E(GF(p))/n為協因子整數;#E(GF(p))表示橢圓曲線點群的階;同時也得到了密鑰對(d,Q),其中d是私鑰,Q=dG是公鑰;其次,使用哈希函數對所構造的手機安全軟體映象文件進行散列運算,生成固定長度的映象文件摘要,如20位元組長。再次,針對映象文件摘要數據進行橢圓曲線籤名過程,生成一個籤名數據並存入到手機存儲器中。
生成了手機安全軟體數字籤名後,在手機引導時,可通過對手機鎖網鎖卡安全軟體的籤名認證過程完成手機安全軟體合法性及完整性檢查。首先,基於橢圓曲線根CA證書或手機公鑰證書,取出公共橢圓曲線參數集D={p,a,b,G,n,h}與相關公鑰Q。然後,手機引導程序檢查驗證手機鎖網鎖卡安全軟體文件的籤名(r,s)是否合法的籤名,如果是合法的,則進行手機鎖網鎖卡判別過程;如果是不合法的安全軟體,對於研發過程中的手機,則進入到JTAG普通文件映象文件下載模式;對於產品階段,手機終端檢測到安全不一致性,則直接關機,防止手機被非法使用。
所述手機安全加密與解密方法,是基於EIGamal算法模擬的橢圓曲線加密與解密方案來實現安全數據的加密保護。首先對加密的數據按橢圓曲線參數集中的模大小進行分組,然後對分組數據進行編碼,將加密的分組數據轉換成橢圓曲線上的點,然後利用ElGamal算法進行數據的加密運算。解密過程中,通過橢圓曲線根證書公鑰與手機內安全存儲的橢圓曲線私鑰完成加密分組數據的解密,最後通過快速的解碼方法,恢復出明文安全數據。所給出的解密方法的特點是解密速度快,特別適於手機終端這種內存與處理能力受限的設備。
藉助於以上所述發明方法,可以實現手機開機過程中的軟體合法性安全檢查及鎖網鎖止的判斷,包括手機安全軟體完整性檢測,IMEI號、軟體版本號等安全數據的完整性檢查,以及網絡服務狀態確定後的鎖網鎖卡狀態檢測。
本發明所述鎖網實現方法、首先手機開機時,檢查手機鎖網狀態標識是否有效,如果是要求鎖網,則把當前手機註冊上的MNC,MCC和手機內安全區域中橢圓曲線加密或安全保存的行動網路碼MNC,移動國家碼MCC列表相比較,如果在鎖網範圍內,則繼續運行;否則,彈出提示框,並限制手機業務。
鎖網鎖卡的狀態檢查過程中,手機判斷USIM卡或SIM卡型號,藉助於USIM卡或SIM卡驅動接口函數讀出USIM/SIM卡內的IMSI號,並從中析出HPLMN欄位,讀出EF_GID1與運營商相關信息。檢查手機鎖網狀態標識是否有效,如果是要求鎖網或鎖卡,則把當前手機註冊上的MNC,MCC和手機中加密保存的鎖網鎖卡相關信息,如MNC,MCC值,解密出來後進行比較。如果一致,則說明手機是合法的,否則,手機可能是非法的,阻止手機進行網絡相關的業務或關機。手機鎖網鎖卡相關的網絡狀態值有鎖網,不鎖網,無效網絡狀態三種狀態。
手機安全版本號用於控制軟體版本的下載,對於不同型號的手機,分配不同的安全版本號區間。
所述手機軟體版本控制與版本號校驗方法是,利用PC側專門軟體與數據線連上手機,手機軟體下載工具連上手機後選擇待下載安全軟體版本。開始下載時,下載工具對下載的軟體進行數字籤名,軟體安全版本號數據通過橢圓曲線加密算法進行加密,發送給手機。手機接收到軟體安全版本號,與保存在手機中的安全版本號進行比較;如果待下載軟體安全版本號在合法安全版本號區間,並且下載的新的軟體版本通過手機內的安全認證,則手機接受下載,繼續下載流程,否則手機應拒絕下載。
以上所述方法中,所需要通過橢圓曲線密碼實施安全保護的相關數據有,軟體籤名的認證碼,HPLMN,FLEXFILE,EF_GID1,軟體版本號,網絡控制鎖NCK,運營商控制鎖SPC,MNC,MCC,鎖網鎖卡狀態標示,網絡/卡解鎖剩餘嘗試次數,鎖卡校驗碼,公鑰,版本校驗碼,IMEI號校驗碼,鎖卡校驗碼等數據。
第三步,結合軟體流程和具體實現進一步詳細說明本發明本發明實施例方法所述的手機所實施的鎖網鎖卡軟體流程,具體如圖1所示,包括以下步驟步驟101中,為了完成鎖網鎖卡軟體的數字籤名,相關安全數據的加密,需要藉助PC側軟體2實現手機1鎖網鎖卡等安全相關軟體的編譯,構造與進行橢圓曲線數字籤名,及對相關安全信息進行加密處理。然後通過PC側提供的手機下載軟體,將相關軟體與安全數據通過數據線下載到手機內存區域中,對於安全相關數據,藉助於物理手段,保存到手機內安全存儲區域中,如公鑰證書,鎖網鎖卡相關數據,鎖網鎖卡狀態等,防止外部用戶進行竊取,竄改等。
步驟102中,為實現手機1鎖網鎖卡數據安全及相關軟體合法性與完整性檢查,本發明假設運營商或製造商已經建立起一個支持橢圓曲線公鑰密碼的證書中心CA網站,也可以利用一個支持橢圓曲線密碼的政府或商業公共CA,也可以運營商或製造商自己提供一個橢圓曲線安全軟體,可以生成製造商或運營商的根證書CA,以及手機終端或用戶使用橢圓曲線證書或公、私鑰的密鑰對。通過運營商或製造商的根證書,保證手機終端或用戶的證書是合法籤名的證書,而不是偽造的。另外在本發明中,根證書的作用除驗證軟體與數據完整性外,還完成對鎖網鎖卡相關安全數據的加密與解密功能。
所述方法步驟102中,橢圓曲線數字籤名證書內部格式由CCITT X.509規定,可以包含以下幾方面內容證書版本號、數字證書序列號、證書擁有者姓名(可以是手機的IEMI號)、籤名算法、頒發數字證書的單位(可以是運營商或手機製造商)、頒發數字證書的單位(可以是運營商或製造商)籤名、公開秘鑰有效期等。
步驟103所述方法中,用橢圓曲線公鑰加密相關鎖網鎖卡安全相關數據有,軟體籤名認證碼,HPLMN,相關配置數據,鎖運營商卡相關信息EF_GID1,軟體版本號,網絡控制鎖NCK,運營商控制鎖SPC,MNC,MCC,鎖網鎖卡狀態標示,網絡/卡解鎖剩餘嘗試次數,鎖卡校驗碼,IMEI號校驗碼,鎖卡認證碼等數據。如鎖網鎖卡狀態標示、(MCC,MNC)列表、軟體版本號等數據。本發明後面給出具體橢圓曲線實現安全數據加密與解密的過程。
步驟104中,對於鎖網鎖卡安全相關各種源文件,包括C語言程序或彙編程序,經過編譯器(如ARM處理器系統)編譯後生成嵌入式可加載格式ELF二進位目標文件。這些目標文件與手機終端處理器系統所帶的C/C++運行時庫文件,經過ARM連接器處理後,生成ELF格式的映象文件image,這種映象文件,通過PC側下載軟體下載到手機ROM Flash內。
步驟105中,利用手機終端證書對構造的安全軟體進行橢圓曲線數字籤名,生成籤名數據,用於手機開機時安全鎖網鎖卡軟體的合法性認證。
步驟106中,將安全軟體及籤名,相關加密數據下載到手機步驟107中,手機內部生成鎖網鎖卡的解鎖碼,並保存在手機中。
步驟108中,手機將鎖網解鎖碼和IMEI號發送給PC側工具步驟109中,PC側軟體在資料庫中保存鎖網鎖卡的解鎖碼及手機IMEI號,與手機終端橢圓曲線公鑰證書與對應私鑰,以方便製造商或運營商為手機進行鎖網鎖卡的解鎖之用。
上面步驟103所述安全數據加密與解密方法中,本發明給出ElGamal算法模擬的橢圓曲線加密與解密方案來實現安全數據的加密保護。
該方法的特點是解密速度快,特別適於手機終端這種內存與處理能力受限的設備,下面結合圖2,詳細說明基於橢圓曲線加密與解密過程。
步驟201中,PC側安全軟體從根證書導出橢圓曲線參數集D={p,a,b,G,n,h},其中p為一個大素數,如大於160bit的素整數,指定了有限域GF(p);a,b指定橢圓曲線E;G=(xG,yG)∈E(GF(p))為一個基點;素數n為基點G的階;h=#E(GF(p))/n為協因子整數;#E(GF(p))表示橢圓曲線點群的階;同時也得到了密鑰對(d,Q),其中d是私鑰,Q=dG是公鑰。
步驟202中,將要加密的安全數據,如軟體版本號,軟體數字籤名、鎖網鎖卡密鑰等安全數據,如果長度大於n的話就進行分組,如果加密的安全數據長度不夠,則在高字節處填充0。基於ECC的密碼體制中,在傳輸一個明文數據m之前,我們必須把它編碼嵌入到曲線E上的一個點。假設消息A是一個整數,0<A<p/256-1以及曲線E是由橢圓曲線參數集D給出。我們試著填加二位十進位數字到A上,直到我們得到一個整數x,256A≤x<p,其中f(x)=x3+ax2+b=yA mod p是一個平方剩餘(q.r.)。然後,我們解這個二次同餘方程y2=f(x)mod p,以得到曲線E上的一個明文消息點PA=(xA,yA)。很明顯,只要去掉xA坐標中的最後2位十進位數,我們可以容易地從PA中解出A。
步驟203中,將加密的數據轉換成橢圓曲線方程上的點的橫坐標xA,計算A=xA3+axA+b(mod p),Q=p,利用數論相關定理及圖3給出的平方剩餘判斷算法,判斷大整數A是否模平方剩餘數。如果A不是模p的平方剩餘數時,則說明xA不是橢圓曲線上的點,即不滿足橢圓曲線方程等式成立。在最低字節內重新選取xA並重複這個平方剩餘算法進行判斷,直到滿足為止。在圖3的算法中,Q為橢圓曲線範圍Domain參數D中的模p的值,A為模Q或模p上的平方剩餘時,xA則為所選的橫坐標。圖3中的J表示Jacobi符號,則J為1是表示A為模平方剩餘,為-1是表示A為一個模平方非剩餘。基於J與模p的值情況可以計算出yA。
步驟203與步驟204為根據明文安全數據轉換成橢圓曲線的點的橫坐標後,利用二次同餘方程解的計算法,給出對應橫坐標xA的縱坐標yA,從而完成了把明文的安全數據編碼為橢圓曲線上的點。然後基於橢圓曲線上的點完成安全數據的加密與解密步驟205中,如果p具有2u+1,u為奇數的形式時,即滿足p≡3(mod 4)或p≡7(mod 8)時,橢圓曲線方程的解為yA≡±A((p+1)/4)(mod p)步驟206中,當p具有4u+1,u為奇數的形式時,即滿足p≡1(mod 4)或p≡5(mod 8),如果A((p-1)/4)≡1(mod p),則yA≡±A((p+3)/8)(mod p);如果A((p-1)/4)≡1(mod p),則yA≡±2((p-1)/4)·A((p+3)/8)(mod p)步驟207,通過步驟202到步驟206的過程及圖3所示的過程,完成了將安全數據編碼為橢圓曲線上的點PA=(yA,yA)。為以後數據加密奠定基礎。
步驟208中是安全數據的加密運算。對安全數據編碼為橢圓曲線上的點後,就可能利用根證書私鑰dR及手機終端證書公鑰QR對數據進行加密運算。加密計算過程如下PA+dR QR=PA+dR(dAG),然後將根證書公鑰,與加密的點保存到手機內存區域中,即點對(QR,PA+dR(dAG))。
步驟209中,手機在進行鎖網鎖卡過程中,當需要解密出安全數據時,使用其私鑰dA完成如下計算PA+dR(dAG)-dA(QR)=PA+dR(dAG)-dA(dRG)=PA;對解密出的點PA中的橫坐標xA進行解碼處理,即去掉xA中的最後二位數字即可,然後將該整數轉換成字節串,即可恢復出安全數據來。
本發明給出的基於橢圓曲線數據加、解密方案的優點是解密與解碼速度快。編碼較複雜,但沒有實時性的要求。另外,通過運營商或製造商根證書與手機公鑰證書來實施數據的加密與解密,除了可以通過PC側軟體與手機相連完成手機安全鎖網鎖卡外,還可以便於通過網上下載來實現手機的鎖網鎖卡技術。
本發明中所述步驟105中,利用要證書可以驗證手機證書的合法性,利用手機終端證書對構造的安全軟體進行橢圓曲線數字籤名,生成籤名數據,用於手機開機時安全鎖網鎖卡軟體的合法性認證。下面結合圖4的代碼籤名流程,說明本發明中給出的手機安全軟體完整性與合法性檢查。
本發明實施例中,圖4所給出的流程假設以ARM系列嵌入式處理器系統進行代碼構造說明。
步驟601中,對於安全引導程序中各種源文件,包括C語言程序或彙編程序,經過ARM編譯器編譯後生成嵌入式可加載格式ELF文件。這些目標文件與ARM處理器系統所帶的C/C++運行時庫文件,經過ARM連接器處理後,生成ELF格式的映象文件image,這種映象文件然後寫入到手機ROMFlash內。
步驟602中,為實現手機終端軟體安全與鎖網鎖卡技術實現,假設運營商或製造商有一個支持橢圓曲線公鑰密碼的證書中心CA網站,也可以利用一個支持橢圓曲線密碼的政府或商業公共CA。用戶通過橢圓曲線密碼CA中心,安全申請一個橢圓曲線密碼公鑰證書,用於手機軟體安全與鎖網鎖卡實現中的根CA證書,以此證書完成對其它公鑰證書籤名,保證手機公鑰證書的不可偽造性及合法性證明。本發明要利用根CA證書籤名的手機公鑰證書,完成手機安全軟體的籤名,及相關安全數據的籤名,以實現安全軟體的完整性及合法性等檢查,防止第三方惡意代碼的入侵。
所述方法步驟602中,橢圓曲線數字籤名證書內部格式由CCITT X.509規定,可以包含以下幾方面內容證書版本號、數字證書序列號、證書擁有者姓名、籤名算法、頒發數字證書的單位、頒發數字證書的單位的籤名、公開秘鑰有效期等。
步驟603所述方法中,基於步驟602中所獲得的橢圓曲線根公鑰證書,生成橢圓曲線密碼參數集D=(p,a,b,G,n,h),其中p為一個大素數,如大於160bit的素整數,指定了有限域GF(p);a,b指定橢圓曲線E;G=(xG,yG)∈E(GF(p))為一個基點;素數n為基點G的階;h=#E(GF(p))/n為協因子整數;#E(GF(p))表示橢圓曲線點群的階;同時也得到了密鑰對(d,Q),其中d是私鑰,Q=dG是公鑰;向網守發送哈希函數,橢圓曲線參數a,b和公鑰Q。
步驟604所述方法是使用安全哈希函數SHA,使用哈希函數對所構造的作業系統軟體系統或應用系統軟體映象文件進行散列運算,生成固定長度的映象文件摘要,如20位元組長。
步驟605-步驟610的過程,是針對映象文件摘要數據進行橢圓曲線籤名的過程步驟606選擇一個隨機或偽隨機數k,1≤k≤n-1;步驟607計算kG=(x1,y1),r=x1 mod n,如果r=0,說明所選擇的橢圓曲線隨機點是一個特殊點,不符合籤名安全要求,返回步驟606進行重新選取。
步驟608計算s=k-1(e+dr)mod n,如果s=0,則返回步驟606。
步驟609完成對手機安全軟體映象文件的籤名(r,s)。該籤名將隨映象文件一起放到手機ROM Flash中;如圖5所示,為根據本發明實施例所述的手機引導過程中,對鎖網鎖卡安全軟體進行合法性檢查,其具體步驟為步驟701手機引導程序,基於橢圓曲線根CA證書或手機公鑰證書,取出公共橢圓曲線參數集D={p,a,b,G,n,h}與相關公鑰Q。
步驟702手機引導程序檢查驗證手機鎖網鎖卡安全軟體文件(作業系統或應用系統軟體)的籤名(r,s)是否超過橢圓曲線基點群階的範圍,如果是,則表示不合法的籤名。引導程序轉到步驟708,安全認證失敗對於產品研發階段,則進入到JTAG普通文件映象文件下載模式,對於產品階段,手機終端檢測到安全不一致性,直接關機,防止手機非法使用。
步驟703生成手機安全軟體映象文件的消息摘要e。
步驟704分別計算w=s-1 mod n;u1=ew mod n;u2=rw mod n;及X=u1G+u2Q=(x1,y1)的值。
步驟705當X的橫坐標x1為0時,說明籤名無效,手機引導程序轉到步驟708,安全認證失敗,而後進到產品研發階段的JTAG普通文件映象文件下載模式,或手機終端檢測到安全不一致性,直接關機,防止手機非法使用。
步驟706當X的橫坐標x1不等於r時,則表示不合法的籤名。手機引導程序轉到步驟708,安全認證失敗。對於產品研發階段,則進入到JTAG普通文件映象文件下載模式,對於產品階段,手機終端檢測到安全不一致性,直接關機,防止手機非法使用。
步驟707驗證了手機安全軟體籤名的正確性後,說明了該軟體映象文件籤名沒有被竄改,手機引導程序可以完成鎖網鎖卡狀態檢查。
藉助於以上所述發明方法,可以實現手機開機過程中的軟體合法性安全檢查及鎖網鎖止的判斷,包括手機安全軟體完整性檢測,IMEI號、軟體版本號等安全數據的完整性檢查,以及網絡服務狀態確定後的鎖網鎖卡狀態檢測。
鎖網鎖卡的狀態檢查過程中,手機判斷USIM卡或SIM卡型號,藉助於USIM卡或SIM卡驅動接口函數讀出USIM/SIM卡內的IMSI號,並從中析出HPLMN欄位,讀出EF_GID1與運營商相關信息。檢查手機鎖網狀態標識是否有效,如果是要求鎖網或鎖卡,則把當前手機註冊上的MNC,MCC和手機中加密保存的鎖網鎖卡相關信息,如MNC,MCC值,解密出來後進行比較。如果一致,則說明手機是合法的,否則,手機可能是非法的,阻止手機進行網絡相關的業務或關機。手機鎖網鎖卡相關的網絡狀態值有鎖網,不鎖網,無效網絡狀態三種狀態。
對於手機鎖網鎖卡的解鎖方案,下面結合圖6說明具體過程。
步驟301用戶選擇手機鎖網/鎖卡的解鎖功能。用戶可以通過PC側專利軟體來實現,也可以在手機提供相關解鎖網鎖卡界面實現。
步驟302判斷解鎖次數是否超過5次,這包括以前進行的已保存的安全解鎖次數累加比較。因此包括對安全解鎖次數數據的的解密過程,如前所述的橢圓曲線加密與解密過程。如果解鎖次數超過5次,則按標準要求,則手機將處於永遠鎖定狀態。
步驟303判斷手機是否在解鎖狀態。
步驟304如果手機已解鎖,則相關的解鎖密鑰,即鎖網控制密鑰NCK與運營商加鎖控制密鑰SPC,將恢復出明文狀態,放在手機NV項中,即非易失內存中。
步驟305如果手機在鎖定狀態,則可通過手機或專門的PC側軟體提供一種提示用戶輸入解鎖碼,包括鎖網控制碼NCK,或SPC。
步驟306手機或PC側軟體解密出相關的NCK或SPC,與用戶輸入的相關值進行比較?步驟307判斷手機解密出的NCK或SPC與用戶輸入的解鎖碼是否相等?步驟308如果相等,則解鎖成功,相關的解鎖密鑰,即鎖網控制密鑰NCK與運營商加鎖控制密鑰SPC,將恢復出明文狀態,放在手機NV項中。
步驟309在步驟307中比較值如果不相等,則失敗次數加1,並且用戶退出鎖網鎖卡應用時,要將與此相關的安全數據進行加密保存。
步驟310提示用戶已進行失敗的解鎖次數,並將返回到步驟305用戶解鎖碼輸入界面,給用戶嘗試解鎖機會。
最後,要特別說明的是(一)對於手機引導來說,無論什麼時候手機安全軟體代碼發生改變或軟體版本發生變化,都要重新進行軟體籤名,以保證軟體的完整性、一致性。
(二)本領域技術人員在實施本發明實施例時,為簡化描述本發明思想,對於手機安全軟體及安全數據籤名認證中,採用的是同一個CA根證書,可選地也可以通過證書鏈方式對手機公鑰證書進行籤名,以驗證手機公鑰的合法性。其思想是本發明給的代碼籤名與認證思想相同。
(三)本發明方法所採用的橢圓曲線密碼體制在已知公鑰密碼系統中具有每比特最高強度安全性,最快的處理速度和最低的開銷,特別適用於具有低內存與低處理能力的3G手機終端實現網絡鎖網鎖卡及其它安全接入。
(四)基於本發明思想,也完全可以實現3GPP TS22.022其它安全需求,如鎖內容提供商應用,鎖公司應用及網絡子網鎖定等安全應用。本發明思想也可以為手機終端提供一個3G終端可信計算平臺,以使手機安全接入3G網絡。
權利要求
1.一種基於橢圓曲線公鑰密碼的無線終端(1)安全鎖網鎖卡方法,其特徵在於,包括以下步驟1.1)使用橢圓曲線公鑰證書籤名生成的數字籤名和存儲在該終端(1)內的橢圓曲線私鑰密碼在開機初始階段進行軟體的合法性檢查;1.2)通過驗證的軟體根據終端當前註冊的網絡與預存網絡信息比較結果決定提供網絡服務與否或者讀取USIM/SIM卡內的IMSI號並與預存的IMSI號比較決定是否提供服務。
2.根據權利要求1所述鎖網鎖卡方法,其特徵在於,所述預存的網絡信息和IMSI號是基於ElGamal算法模擬的橢圓曲線進行加密保存並解密讀取的。
3.根據權利要求1或2所述鎖網鎖卡方法,其特徵在於,所述步驟1.1)還包括使用對應數字籤名對所述加密保存進行合法和完整性檢查。
4.根據權利要求1或2所述鎖網鎖卡方法,其特徵在於,所述網絡信息可以是MNC,還可以是MNC和MCC。
5.根據權利要求2所述鎖網鎖卡方法,其特徵在於,所述加密保存還包括軟體籤名的認證碼、HPLMN、FLEXFILE、EF_GID1、軟體版本號、網絡控制鎖NCK、運營商控制鎖SPC、鎖網鎖卡狀態標誌、網絡/卡解鎖剩餘嘗試次數、鎖卡校驗碼、公鑰、版本校驗碼、IMEI號校驗碼或鎖卡校驗碼,並保存在終端內的安全存儲區域中。
6.根據權利要求1或5所述鎖網鎖卡方法,其特徵在於,該方法還包括位於步驟1.1)和1.2)之間的步驟解密讀取鎖網鎖卡狀態標誌,「鎖網/卡狀態」進入步驟1.2)「不鎖網/卡狀態」則跳過步驟1.2)進入正常開機流程。
7.根據權利要求5所述鎖網鎖卡方法,其特徵在於,該方法還包括根據所述軟體版本號與通過橢圓曲線公鑰密碼加密、橢圓曲線私鑰密碼解密的待下載軟體版本號的比較決定是否允許下載。
8.根據權利要求5所述鎖網鎖卡方法,其特徵在於,所述網絡/卡解鎖剩餘嘗試次數不為零,該方法還包括根據用戶輸入所述網絡控制鎖NCK將鎖網鎖卡狀態標誌從「鎖網/卡狀態」改為「不鎖網/卡狀態」。
9.根據權利要求5所述鎖網鎖卡方法,其特徵在於,所述網絡/卡解鎖剩餘嘗試次數為零,該方法還包括根據運營商輸入所述運營商控制鎖SPC將鎖網鎖卡狀態標誌從「鎖網/卡狀態」改為「不鎖網/卡狀態」,同時再輸入所述網絡控制鎖NCK鎖網鎖卡狀態標誌不發生變化。
10.根據權利要求1所述鎖網鎖卡方法,其特徵在於,所述步驟1.1)中數字籤名源於所述軟體的二進位可加載格式映像文件。
全文摘要
本發明涉及一種基於橢圓曲線公鑰密碼的無線終端(1)安全鎖網鎖卡方法,包括使用橢圓曲線公鑰證書籤名生成的數字籤名和在該終端內的橢圓曲線私鑰密碼在開機初始階段進行軟體合法性檢查;通過驗證的軟體根據終端當前註冊的網絡與預存網絡信息比較結果決定提供網絡服務與否或者讀取USIM/SIM卡內的IMSI號並與預存的IMSI號比較決定是否提供服務;進一步基於ElGamal算法模擬的橢圓曲線對數據進行加密和解密。這種方法基於橢圓曲線公鑰PKI技術,實現了身份認證、訪問控制、信息加密和數字籤名,保障了鎖網鎖卡的安全性,同時相對於RSA公鑰在同等安全情況下密鑰長度又相對小許多,更適於處理能力和內存較主機差的終端。
文檔編號H04L9/32GK101018125SQ20071008032
公開日2007年8月15日 申請日期2007年3月2日 優先權日2007年3月2日
發明者盧忱, 王雲峰, 胡焰龍, 張瑞娟, 於宏全, 郭豔玲 申請人:中興通訊股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀