一種集成電路ip配置參數(shù)加密、解密方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子技術(shù)領(lǐng)域,尤其涉及一種集成電路IP配置參數(shù)加密、解密方法及加密、解密裝置。
【背景技術(shù)】
[0002]集成電路的設(shè)計(jì)過(guò)程中,使用現(xiàn)成的經(jīng)過(guò)驗(yàn)證的IP是非常重要的一步,可以大大加快電路的設(shè)計(jì)進(jìn)度。這些IP可以是設(shè)計(jì)者過(guò)去設(shè)計(jì)的積累,也可以是第三方專門從事IP設(shè)計(jì)的廠家所提供。通常這些IP都是某個(gè)專用領(lǐng)域的IP,根據(jù)不用的工藝、頻率、面積、速度等要求,可以配置成適用的電路模塊,用于另一個(gè)設(shè)計(jì)中。在IP配置的過(guò)程中,需要暴露給設(shè)計(jì)者一些重要的參數(shù),以便完成電路的配置過(guò)程;但I(xiàn)P的原設(shè)計(jì)者或第三方廠商往往不希望這些參數(shù)被知悉,導(dǎo)致IP的秘密被泄露。所以需要對(duì)這些可配置參數(shù)進(jìn)行保密。
[0003]在現(xiàn)有的IP配置參數(shù)保護(hù)方法中,一是采用隨機(jī)無(wú)意義的代碼替換原有參數(shù),使人難于理解,這種方法是明文,保護(hù)強(qiáng)度低。二是采用二進(jìn)制文件的格式,如果不知道它們與各個(gè)參數(shù)的對(duì)應(yīng)關(guān)系,比較難以破解,但仍難以抵擋窮舉法的識(shí)別方法。三是把重要參數(shù)隱藏在復(fù)雜的計(jì)算方法里面,需要?jiǎng)討B(tài)跟蹤算法的過(guò)程。四是采用專用的加密方法對(duì)參數(shù)項(xiàng)進(jìn)行保密,在加密方法中,RSA公鑰加密算法(RSA algorithm)是一種非對(duì)稱性的加密方法,保密強(qiáng)度大,但計(jì)算量也大,速度慢,不適于對(duì)大量的數(shù)據(jù)進(jìn)行加密。AES (AdvancedEncrypt1n Standard,高級(jí)加密標(biāo)準(zhǔn))是一種對(duì)稱性的加密方法,速度快,但要求加解密雙方都知道密碼,在IP開發(fā)者眾多的情況下,密碼交換過(guò)程易出問(wèn)題,保密強(qiáng)度不如RSA。
[0004]如何提供一種方法,使得既能保護(hù)IP設(shè)計(jì)者的秘密,又能使IP本身的參數(shù)配置得以正常進(jìn)行,同時(shí)能方便IP開發(fā)者與IP的分發(fā)、使用是目前需要解決的問(wèn)題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供的集成電路IP配置參數(shù)加密、解密方法及裝置,解決現(xiàn)有的集成電路IP配置參數(shù)加密、解密方案不完善的問(wèn)題。
[0006]為解決上述技術(shù)問(wèn)題,本發(fā)明采用以下技術(shù)方案:
[0007]—種集成電路IP配置參數(shù)加密方法,包括:
[0008]按照預(yù)設(shè)的第一加密算法,使用第一密鑰對(duì)IP配置參數(shù)進(jìn)行加密,生成參數(shù)密文,按照預(yù)設(shè)的編碼規(guī)則對(duì)所述參數(shù)密文進(jìn)行編碼;并且按照預(yù)設(shè)的第二加密算法,使用第二密鑰對(duì)所述第一密鑰進(jìn)行加密,生成密鑰密文,按照所述編碼規(guī)則對(duì)所述密鑰密文進(jìn)行編碼;
[0009]對(duì)編碼后的參數(shù)密文和編碼后的密鑰密文進(jìn)行保存。
[0010]在一些實(shí)施例中,所述第一加密算法包括:高級(jí)加密標(biāo)準(zhǔn)AES加密算法。
[0011]在一些實(shí)施例中,使用第一密鑰對(duì)IP配置參數(shù)進(jìn)行加密及使用第二密鑰對(duì)所述第一密鑰進(jìn)行加密之前,還包括:隨機(jī)數(shù)發(fā)生器生成的所述第一密鑰。
[0012]在一些實(shí)施例中,所述第二加密算法包括:RSA公鑰加密算法。
[0013]在一些實(shí)施例中,使用第二密鑰對(duì)所述第一密鑰進(jìn)行加密之前,還包括:讀取IP配置參數(shù)的配置工具中的公鑰,作為所述第二密鑰。
[0014]在一些實(shí)施例中,所述的集成電路IP配置參數(shù)加密方法,還包括:根據(jù)所述IP配置參數(shù)生成第一校驗(yàn)碼,對(duì)所述第一校驗(yàn)碼進(jìn)行保存。
[0015]在一些實(shí)施例中,對(duì)編碼后的參數(shù)密文和編碼后的密鑰密文進(jìn)行保存包括:將編碼后的參數(shù)密文和編碼后的密鑰密文一并封裝成XML文件進(jìn)行保存。
[0016]在一些實(shí)施例中,對(duì)編碼后的參數(shù)密文和編碼后的密鑰密文進(jìn)行保存之前,還包括:預(yù)定義XML文件的格式,包括protected、key和data元素,其中protected是根元素,它包括key和data元素,key元素保存編碼后的密鑰密文,data元素保存編碼后的參數(shù)密文。
[0017]在一些實(shí)施例中,將編碼后的參數(shù)密文和編碼后的密鑰密文一并封裝成XML文件進(jìn)行保存包括:將編碼后的參數(shù)密文寫入protected之data元素中,將編碼后的密鑰密文寫入protected之key元素中,再封裝成XML文件。
[0018]—種集成電路IP配置參數(shù)解密方法,包括:
[0019]讀取上述任一項(xiàng)所述的集成電路IP配置參數(shù)加密方法中保存的編碼后的密鑰密文,按照預(yù)設(shè)的解碼規(guī)則對(duì)所述編碼后的密鑰密文進(jìn)行解碼,得到密鑰密文,按照預(yù)設(shè)的第二解密算法,使用第三密鑰對(duì)所述密鑰密文進(jìn)行解密,得到第一密鑰;讀取上述任一項(xiàng)所述的集成電路IP配置參數(shù)加密方法中保存的編碼后的參數(shù)密文,按照所述解碼規(guī)則對(duì)所述編碼后的參數(shù)密文進(jìn)行解碼,得到參數(shù)密文,按照預(yù)設(shè)的第一解密算法,使用所述第一密鑰對(duì)所述參數(shù)密文進(jìn)行解密,得到IP配置參數(shù)。
[0020]在一些實(shí)施例中,所述第一解密算法包括:AES解密算法。
[0021 ] 在一些實(shí)施例中,所述第二解密算法包括:RSA解密算法。
[0022]在一些實(shí)施例中,使用第三密鑰對(duì)所述密鑰密文進(jìn)行解密之前,還包括:讀取IP配置參數(shù)的配置工具中的私鑰,作為所述第三密鑰。
[0023]在一些實(shí)施例中,所述的集成電路IP配置參數(shù)解密方法,還包括:根據(jù)解密出的IP配置參數(shù)生成第二校驗(yàn)碼,將所述第二校驗(yàn)碼與讀取的第一校驗(yàn)碼進(jìn)行比較,如果第二校驗(yàn)碼與第一校驗(yàn)碼一致,則解密出的IP配置參數(shù)正確,否則,不正確。
[0024]—種集成電路IP配置參數(shù)加密裝置,包括:
[0025]第一加密模塊,用于按照預(yù)設(shè)的第一加密算法,使用第一密鑰對(duì)IP配置參數(shù)進(jìn)行加密,生成參數(shù)密文;
[0026]第一編碼模塊,用于按照預(yù)設(shè)的編碼規(guī)則對(duì)所述參數(shù)密文進(jìn)行編碼;
[0027]第二加密模塊,用于按照預(yù)設(shè)的第二加密算法,使用第二密鑰對(duì)所述第一密鑰進(jìn)行加密,生成密鑰密文;
[0028]第二編碼模塊,用于按照所述編碼規(guī)則對(duì)所述密鑰密文進(jìn)行編碼;
[0029]保存模塊,用于對(duì)編碼后的參數(shù)密文和編碼后的密鑰密文進(jìn)行保存。
[0030]在一些實(shí)施例中,所述保存模塊具體用于將編碼后的參數(shù)密文和編碼后的密鑰密文一并封裝成XML文件進(jìn)行保存。
[0031 ] 在一些實(shí)施例中,所述的集成電路IP配置參數(shù)加密裝置,還包括定義模塊,用于預(yù)定義XML文件的格式,包括protected、key和data元素,其中protected是根元素,它包括key和data元素,key元素保存編碼后的密鑰密文,data元素保存編碼后的參數(shù)密文。
[0032]在一些實(shí)施例中,所述保存模塊具體用于將編碼后的參數(shù)密文寫入protected之data元素中,將編碼后的密鑰密文寫入protected之key元素中,再封裝成XML文件。
[0033]—種集成電路IP配置參數(shù)解密裝置,包括:
[0034]第一讀取模塊,用于讀取上述任一項(xiàng)所述的集成電路IP配置參數(shù)加密裝置中保存的編碼后的密鑰密文;
[0035]第一解碼模塊,用于按照預(yù)設(shè)的解碼規(guī)則對(duì)所述編碼后的密鑰密文進(jìn)行解碼,得到密鑰密文;
[0036]第一解密模塊,用于按照預(yù)設(shè)的第二解密算法,使用第三密鑰對(duì)所述密鑰密文進(jìn)行解密,得到第一密鑰;
[0037]第二讀取模塊,用于讀取上述任一項(xiàng)所述的集成電路IP配置參數(shù)加密裝置中保存的編碼后的參數(shù)密文;
[0038]第二解碼模塊,用于按照所述解碼規(guī)則對(duì)所述編碼后的參數(shù)密文進(jìn)行解碼,得到參數(shù)密文;
[0039]第二解密模塊,用于按照預(yù)設(shè)的第一解密算法,使用所述第一密鑰對(duì)所述參數(shù)密文進(jìn)行解密,得到IP配置參數(shù)。
[0040]在一些實(shí)施例中,所述的集成電路IP配置參數(shù)解密裝置,還包括校驗(yàn)?zāi)K,用于根據(jù)第二解密模塊解密得到的IP配置參數(shù)生成第二校驗(yàn)碼,將所述第二校驗(yàn)碼與讀取的第一校驗(yàn)碼進(jìn)行比較,如果第二校驗(yàn)碼與第一校驗(yàn)碼一致,則解密出的IP配置參數(shù)正確,否則,不正確。
[0041]本發(fā)明提供的集成電路IP配置參數(shù)加密、解密方法及裝置,能夠在開放的環(huán)境內(nèi),既能保證IP的參數(shù)可配置性,又能保護(hù)IP開發(fā)者的知識(shí)產(chǎn)權(quán)利益,具有靈活的可擴(kuò)展性。
[0042]進(jìn)一步地,按照RSA算法對(duì)第一密鑰(AES算法使用的密碼)進(jìn)行加密、解密,按照AES算法使用該第一密鑰對(duì)IP配置參數(shù)進(jìn)行加密。因?yàn)镽SA僅需對(duì)少量的AES算法使用的密碼采用公鑰加密、私鑰解密,運(yùn)算速度比用RSA加解密全部IP配置參數(shù)速度要快得多,而且不涉及加解密雙方的密碼交換,安全性好。
【附圖說(shuō)明】
[0043]圖1為本發(fā)明一實(shí)施例提供的一種集成電路IP配置參數(shù)加密方法的流程圖;
[0044]圖2為本發(fā)明一實(shí)施例提供的一種集成電路IP配置參數(shù)解密方法的流程圖;
[0045]圖3為本發(fā)明一實(shí)施例提供的一種集成電路IP配置參數(shù)加密裝置的示意圖;
[0046]圖4為本發(fā)明一實(shí)施例提供的一種集成電路IP配置參數(shù)解密裝置的示意圖。
【具體實(shí)施方式】
[0047]下