本發(fā)明涉及數(shù)字保安領(lǐng)域,特別是,涉及一種管理密鑰的加密裝置及方法,使智能卡等IC保安模塊中可防止物理攻擊。
技術(shù)背景
智能卡作為信用卡大小的塑料卡,其包含可加工處理數(shù)據(jù)的集成電路IC(Integrated Circuit)。與現(xiàn)有的磁卡相比,該智能卡具有多種優(yōu)點(diǎn),其自身具數(shù)據(jù)存儲(chǔ)容量,并具有與微處理器一起的協(xié)處理器(co-processor)等的處理單元。
因此,為獲取用于識(shí)別身份(Identification)的個(gè)人信息及金融結(jié)算信息等,利用加密算法來(lái)自動(dòng)執(zhí)行加密演算(encryption)。
此外,隨各IT技術(shù)的發(fā)展,智能卡被廣泛應(yīng)用,同時(shí)對(duì)于智能卡的多種保安侵犯也在不斷增加。
在這種情況下,類(lèi)似利用IC芯片的逆向工程(Reverse Engineering)技術(shù)來(lái)讀取IC芯片的信息的物理性攻擊在保安中存在較大的問(wèn)題。
根據(jù)硬件保安模塊中所使用的電可擦只讀存儲(chǔ)器EEPROM和只讀存儲(chǔ)器ROM的存儲(chǔ)特征及數(shù)據(jù)存儲(chǔ)方式,已知的幾個(gè)物理性攻擊為總線探測(cè)(Bus probing)、測(cè)試模式探測(cè)(test-mode probing)、只讀存儲(chǔ)器ROM或電可擦只讀存儲(chǔ)器EEPROM的重寫(xiě)(overwriting)等攻擊方式。
技術(shù)實(shí)現(xiàn)要素:
技術(shù)課題
提供一種加密裝置及方法,可強(qiáng)力防止對(duì)于智能卡的物理性攻擊。
特別是,提供一種加密裝置及方法,不直接從存儲(chǔ)器中提取生成或存儲(chǔ)的密鑰。此外,提供一種不會(huì)通過(guò)智能卡的IC芯片內(nèi)的總線(bus)被泄漏的加密裝置及方法。
技術(shù)方案
根據(jù)本發(fā)明的一個(gè)側(cè)面,提供一種接收將要加密的輸入數(shù)據(jù),執(zhí)行利用密鑰的加密算法的加密裝置,所述加密裝置包括:加密模塊,將提供密鑰的密鑰模塊包含在內(nèi)部,利用所述密鑰模塊所提供的密鑰來(lái)執(zhí)行所述加密算法。
所述加密模塊分別包含在用于提供不同密鑰的多個(gè)密鑰模塊的內(nèi)部。在這種情況下,所述加密模塊可包括:密鑰模塊選擇單元,選擇所述多個(gè)密鑰模塊中的任何一個(gè);和加密單元,利用所述選擇的密鑰模塊所提供的密鑰來(lái)執(zhí)行所述加密算法。
此外,所述密鑰模塊選擇單元,選擇所述多個(gè)密鑰模塊中對(duì)應(yīng)于預(yù)先被附于識(shí)別索引的密鑰模塊。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述加密模塊包括多個(gè)標(biāo)準(zhǔn)單元,所述多個(gè)密鑰模塊被配置在所述加密模塊中包含的多個(gè)標(biāo)準(zhǔn)單元布局的任意位置中。標(biāo)準(zhǔn)單元可以是用于體現(xiàn)加密模塊的規(guī)格化元件或功能塊。
如上所述的集成電路,其中,所述加密模塊,利用所述加密模塊內(nèi)部包含的所述密鑰模塊所提供的密鑰,來(lái)執(zhí)行所述加密算法,且所述密鑰模塊所提供的密鑰不泄露至所述加密模塊的外部,且為執(zhí)行所述加密算法,其他附加的密鑰不泄露至所述加密模塊。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述密鑰模塊是將預(yù)先生成的所述密鑰存儲(chǔ)的非易失性存儲(chǔ)模塊。
根據(jù)本發(fā)明的另一個(gè)實(shí)施例,所述密鑰模塊是生成并提供所述密鑰的非存儲(chǔ)模塊。
在這種情況下,所述密鑰模塊,違反半導(dǎo)體工程中所提供的設(shè)計(jì)規(guī)定,概率性地來(lái)確定所述密鑰模塊內(nèi)的節(jié)點(diǎn)之間是否短路,且所述密鑰模塊,可根據(jù)讀取所述節(jié)點(diǎn)之間是否短路的結(jié)果來(lái)生成并提供所述密鑰。
在此,所述密鑰模塊內(nèi)的節(jié)點(diǎn)為半導(dǎo)體的導(dǎo)電層,且所述設(shè)計(jì)規(guī)定,與所述半導(dǎo)體的導(dǎo)電層之間所形成的接點(diǎn)或通路的尺寸有關(guān),且所述密鑰模塊,利用所述半導(dǎo)體的導(dǎo)電層之間所形成的接點(diǎn)或通路致使所述導(dǎo)電層短路與否,來(lái)生成所述密鑰。
此外,所述密鑰模塊,違反半導(dǎo)體工程中所提供的設(shè)計(jì)規(guī)定,使所述半導(dǎo)體的導(dǎo)電層之間所形成的所述接點(diǎn)或通路(via)致使所述導(dǎo)電層短路的概率與不短路的概率的差異保持在一定的誤差范圍內(nèi),并具所述接點(diǎn)或通路(via)的尺寸。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述密鑰模塊,具有N個(gè)利用一對(duì)導(dǎo)電層和連接其之間的一個(gè)接點(diǎn)或通路來(lái)生成1比特的數(shù)字值的單元結(jié)構(gòu),并將通過(guò)所述N個(gè)的單元結(jié)構(gòu)所生成的N比特的數(shù)字值生成為所述密鑰,其中,N為自然數(shù)。
在這種情況下,所述密鑰模塊,將所述生成的N比特的數(shù)字值以k個(gè)單位進(jìn)行分組,并在被分組的多個(gè)組中比較第1組和第2組,當(dāng)所述第1組中包含的k個(gè)數(shù)字比特所構(gòu)成的值大于所述第2組中包含的k個(gè)數(shù)字比特所構(gòu)成的值時(shí),將代表所述第1組和所述第2組的數(shù)字值確定為1,且相反時(shí),將代表所述第1組和所述第2組的數(shù)字值確定為0,從而將N/k比特的數(shù)字值生成為所述密鑰,其中,k為自然數(shù)。
根據(jù)本發(fā)明的另一個(gè)實(shí)施例,所述密鑰模塊內(nèi)的節(jié)點(diǎn)為半導(dǎo)體的導(dǎo)電層,且所述設(shè)計(jì)規(guī)定,與所述半導(dǎo)體的導(dǎo)電層之間的間隔(gap)有關(guān),且所述密鑰模塊,利用所述半導(dǎo)體的導(dǎo)電層之間的短路與否,來(lái)生成并提供所述密鑰。
根據(jù)本發(fā)明的又另一個(gè)實(shí)施例,所述密鑰模塊,包括:N個(gè)的單位晶格,分別輸出1比特的數(shù)字值,N為自然數(shù),且所述N個(gè)的單位晶格,分別基于半導(dǎo)體制備工程變差(Process variation)來(lái)生成1比特的數(shù)字值,從而所述密鑰模塊生成并提供N比特的密鑰。
在這種情況下,所述N個(gè)的單位晶格中第1單位晶格包括:具第1邏輯閾值的第1逆變器;和具第2邏輯閾值的第2逆變器,且所述第1逆變器的輸入端和所述第2逆變器的輸出端與第1節(jié)點(diǎn)連接,且所述第1逆變器的輸出端和所述第2逆變器的輸入端與第2節(jié)點(diǎn)連接,形成反饋結(jié)構(gòu),且所述第1邏輯閾值和所述第2邏輯閾值,基于半導(dǎo)體制備工程變差互不相同,根據(jù)所述第1節(jié)點(diǎn)的邏輯電平和所述第2節(jié)點(diǎn)的邏輯電平,來(lái)確定對(duì)應(yīng)于所述第1單位晶格的1比特?cái)?shù)字值。
此外,根據(jù)本發(fā)明的又另一個(gè)實(shí)施例,所述密鑰模塊,包括:N個(gè)的差分?jǐn)U大器,N為自然數(shù),且所述N個(gè)的差分?jǐn)U大器中的第1差分?jǐn)U大器,當(dāng)所述第1差分?jǐn)U大器的兩個(gè)輸入端被短路時(shí),所述第1差分?jǐn)U大器的兩個(gè)輸出端的邏輯電平基于半導(dǎo)體制備工程變差互不相同,根據(jù)所述兩個(gè)輸出端的邏輯電平,來(lái)確定對(duì)應(yīng)于所述第1差分?jǐn)U大器的1比特?cái)?shù)字值,且所述密鑰模塊生成并提供N比特的密鑰。
根據(jù)本發(fā)明的另一個(gè)側(cè)面,提供一種加密方法,包括以下步驟:接收將要加密的數(shù)據(jù),輸入至內(nèi)部包含有提供密鑰的密鑰模塊的加密模塊中;以及利用所述密鑰模塊所提供的密鑰,來(lái)執(zhí)行所述加密算法,從而來(lái)加密所述數(shù)據(jù)。
根據(jù)本發(fā)明的又另一個(gè)側(cè)面,提供一種接收將要加密的輸入數(shù)據(jù),執(zhí)行利用密鑰的加密算法的IC芯片,所述IC芯片包括:加密模塊,其內(nèi)部包含有提供密鑰的密鑰模塊,利用所述密鑰模塊所提供的密鑰來(lái)執(zhí)行所述加密算法。
在這種情況下,所述IC芯片被內(nèi)藏在智能卡中,在應(yīng)用所述智能卡時(shí)可執(zhí)行所述加密算法。
技術(shù)效果
由于不是在加密模塊外部生成密鑰來(lái)存儲(chǔ)在存儲(chǔ)器中或通過(guò)總線來(lái)傳輸密鑰,因此,對(duì)于非易失性存儲(chǔ)器的攻擊或總線探測(cè)(bus probing)等物理性攻擊具安全性。
由于密鑰模塊在模塊內(nèi)部與其他標(biāo)準(zhǔn)單元(standard cell)相似地被分散配置,因此,較難直接發(fā)現(xiàn),對(duì)于通過(guò)物理性攻擊來(lái)提取存儲(chǔ)器內(nèi)容的攻擊具安全性。
由于不需要存儲(chǔ)密鑰的非易失性存儲(chǔ)器,因此,可改善空間和電力的使用量。
附圖說(shuō)明
圖1是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的加密裝置的示圖。
圖2是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的加密模塊的示圖。
圖3是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的加密模塊的示例性結(jié)構(gòu)的框圖。
圖4是用于說(shuō)明根據(jù)本發(fā)明的一個(gè)實(shí)施例,利用工程變差來(lái)生成密鑰的物理防克隆功能PUF(Physical Unclonable Functions)形式的密鑰模塊的單位晶格的概念的示例性電路圖。
圖5是用于理解圖4的實(shí)施例的參照?qǐng)D表。
圖6是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的密鑰模塊的的示例性體現(xiàn)的框圖。
圖7是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例,利用差分?jǐn)U大器的工程變差來(lái)生成數(shù)字值的密鑰模塊的單位晶格的示圖。
圖8是根據(jù)本發(fā)明的一個(gè)實(shí)施例,示出密鑰模塊被體現(xiàn)的示例性電路圖。
圖9是根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于說(shuō)明違反半導(dǎo)體設(shè)計(jì)規(guī)定來(lái)生成密鑰模塊的原理的概念圖。
圖10是根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于說(shuō)明違反半導(dǎo)體設(shè)計(jì)規(guī)定的密鑰模塊的結(jié)構(gòu)的圖表。
圖11是根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于說(shuō)明調(diào)整導(dǎo)電層之間的間隔來(lái)生成密鑰模塊的過(guò)程的概念圖。
圖12是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于體現(xiàn)密鑰模塊的半導(dǎo)體層中所形成的通路或接點(diǎn)陣列的示例性結(jié)構(gòu)的概念圖。
圖13是根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于說(shuō)明不直接將圖12的實(shí)施例中所生成的數(shù)字值作為密鑰來(lái)使用,而是為了0和1的平衡進(jìn)行后處理的該過(guò)程的概念圖。
具體實(shí)施方式
以下,參照附圖對(duì)本發(fā)明的一部分實(shí)施例進(jìn)行詳細(xì)地說(shuō)明。但是,本發(fā)明并不受實(shí)施例限制或局限,各附圖中所示出的相同符號(hào)表示相同的部件。
圖1是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的加密裝置100的示圖。
根據(jù)一個(gè)例子,加密裝置100可以是包含在智能卡的IC芯片中的結(jié)構(gòu),具有存儲(chǔ)數(shù)據(jù)的電可擦只讀存儲(chǔ)器(EEPROM)120、中央處理器(CPU)130、及可選擇的同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(SDRAM)140,并可通過(guò)I/O界面101與外部通信。
加密裝置100中包括加密模塊110,例如,加密模塊110可以是用于加密的協(xié)處理器(Crypto co-processor)。
以下,根據(jù)包含智能卡或智能卡的IC芯片的加密裝置100的應(yīng)用實(shí)例,電可擦只讀存儲(chǔ)器(EEPROM)120、中央處理器(CPU)130、及可選擇的同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(SDRAM)140中的至少一部分可被省略,并在不超出本發(fā)明的思想范圍下可進(jìn)行多種改變或應(yīng)用,在此不作詳細(xì)說(shuō)明。
此外,不管是接觸式和/或非接觸式的方式,I/O界面101為將數(shù)據(jù)輸出及輸入加密裝置100的輸出入線路,在此不作詳細(xì)說(shuō)明,
此外,根據(jù)本發(fā)明的一個(gè)實(shí)施例的加密裝置100的加密模塊110可在執(zhí)行加密算法的過(guò)程中使用密鑰。該密鑰可以是公開(kāi)密鑰和保密密鑰等概念。
現(xiàn)有技術(shù)中,將用于執(zhí)行加密算法的密鑰以數(shù)字值的形式存儲(chǔ)在加密模塊110外部,從而加密模塊110執(zhí)行加密算法,在將數(shù)據(jù)加密和/或解碼的過(guò)程中通過(guò)總線102來(lái)接收密鑰。
但是,該方法,在打算識(shí)別加密算法和/或密鑰的物理性攻擊中較脆弱。
該物理性攻擊可在電可擦只讀存儲(chǔ)器(EEPROM)120等存儲(chǔ)器中直接攻擊具密鑰的區(qū)域,以類(lèi)似探測(cè)(probing)或存儲(chǔ)器掃描的方法來(lái)提取存儲(chǔ)器內(nèi)的密鑰。此外,由于可執(zhí)行逆向工程來(lái)獲取IC芯片中總線102的位置,因此,將特定的命令語(yǔ)人為地來(lái)執(zhí)行,并在該情況下執(zhí)行利用微探針(Micro-probe)的總線探測(cè)(Bus probing)的話可提取密鑰。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,加密模塊110中所包含的密鑰模塊111將直接生成和/或預(yù)先生成的密鑰在密鑰模塊111中存儲(chǔ)一段時(shí)間后,在加密模塊110執(zhí)行加密算法時(shí)來(lái)提供密鑰。
因此,根據(jù)上述實(shí)施例,加密模塊110在執(zhí)行加密算法的過(guò)程中,不將使用的密鑰以數(shù)字值的形式存儲(chǔ)在加密模塊110的外部,且由于密鑰不會(huì)通過(guò)總線102被傳輸,因此,可防止對(duì)于加密模塊110的加密算法的物理性攻擊。
生成和/或存儲(chǔ)密鑰從而在加密模塊110的加密算法執(zhí)行時(shí)進(jìn)行提供的密鑰模塊111,其可物理性地包括在加密模塊110中,有關(guān)其結(jié)構(gòu)和運(yùn)作的一些示例性實(shí)施例將參照?qǐng)D2進(jìn)行說(shuō)明。
圖2是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的加密模塊110的示圖。
如圖1中所示出的,加密模塊110在加密裝置100中可通過(guò)其他結(jié)構(gòu)與總線102連接。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,加密模塊110中包括至少一個(gè)的密鑰模塊210、220、230、240、250。
如示例的圖所示,密鑰模塊210、220、230、240、250各自獨(dú)立或互相關(guān)聯(lián),生成和/或存儲(chǔ)執(zhí)行加密算法時(shí)所需的密鑰,并提供給加密模塊110。
在一些實(shí)施例中,加密模塊110中可能只包括一個(gè)密鑰模塊,但是,在其他是實(shí)施例中如圖2所示,包括多個(gè)密鑰模塊。
此外,當(dāng)加密模塊110中包括多個(gè)密鑰模塊時(shí),多個(gè)密鑰模塊210、220、230、240、250中的至少一部分可能是實(shí)際上不提供密鑰的虛擬(dummy)。
在體現(xiàn)密鑰模塊210、220、230、240、250的實(shí)施例中,密鑰模塊210、220、230、240、250可以是存儲(chǔ)裝置(memory device)和非存儲(chǔ)裝置(non-memory device)兩種情況。
當(dāng)然,也可以是密鑰模塊210、220、230、240、250中的一部分為存儲(chǔ)裝置,且另一部分為非存儲(chǔ)裝置,本發(fā)明并不僅局限于該一部分實(shí)施例。
示例性地,在密鑰模塊210、220、230、240、250為存儲(chǔ)裝置的實(shí)施例中,預(yù)先生成的數(shù)字值形式的密鑰被單純地存儲(chǔ)在作為存儲(chǔ)裝置的密鑰模塊210、220、230、240、250一段時(shí)間后,在加密模塊110執(zhí)行加密算法的過(guò)程中需要時(shí)進(jìn)行讀取(read)并使用。
在其他實(shí)施例中,當(dāng)密鑰模塊210、220、230、240、250為非存儲(chǔ)裝置時(shí),密鑰模塊210、220、230、240、250的至少一部分可通過(guò)物理防克隆功能PUF(Physical Unclonable Functions)來(lái)實(shí)現(xiàn)。
在密鑰模塊210、220、230、240、250由類(lèi)似PUF的非存儲(chǔ)裝置構(gòu)成的實(shí)施例中,體現(xiàn)PUF的實(shí)施例具多種方式,例如,可違反半導(dǎo)體制備工程上的設(shè)計(jì)規(guī)定或利用半導(dǎo)體制備工程的工程變差來(lái)實(shí)現(xiàn)。
對(duì)于該實(shí)施例,將參照?qǐng)D4至圖13進(jìn)行更詳細(xì)地說(shuō)明。
圖3是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的加密模塊110的示例性結(jié)構(gòu)的框圖。
當(dāng)進(jìn)行加密的數(shù)據(jù)可通過(guò)總線102等被輸入至數(shù)據(jù)輸入單元310時(shí),便開(kāi)始執(zhí)行加密算法。
參照?qǐng)D2,如上所述,被物理性地包含在加密模塊110中的密鑰模塊320可以是一個(gè)或多個(gè)。
例如,當(dāng)密鑰模塊01 321至密鑰模塊N322存在時(shí),密鑰模塊選擇單元330選擇密鑰模塊,用于提供加密算法中將使用的密鑰,其中,N為自然數(shù)。
該選擇,可以是用于識(shí)別密鑰模塊320的索引中實(shí)際被選擇的密鑰模塊的索引信息,或是密鑰模塊320與加密模塊110一起被設(shè)計(jì),并可在被制備的過(guò)程中,通過(guò)接線(wiring)被預(yù)先設(shè)置。
通過(guò)該過(guò)程設(shè)定密鑰后,加密單元340利用該密鑰執(zhí)行加密算法,從而將輸入的數(shù)據(jù)加密,并經(jīng)由數(shù)據(jù)輸出單元350通過(guò)總線102傳輸至其他結(jié)構(gòu)。
以上,雖然只對(duì)數(shù)據(jù)加密過(guò)程進(jìn)行了詳細(xì)地說(shuō)明,但利用加密算法的解碼過(guò)程也與此相似。本發(fā)明的實(shí)施例并僅不局限于加密或解碼的任何一方。
由此,密鑰的管理在加密模塊110中自動(dòng)形成,因此,密鑰不會(huì)被傳輸至加密模塊110的外部,或是從外部傳輸至加密模塊110中,從而物理性攻擊成功的可能性較低。特別是,探測(cè)總線102的物理性攻擊成功的可能性十分低。
以上參照?qǐng)D1至圖2對(duì)密鑰模塊為存儲(chǔ)裝置時(shí)進(jìn)行了說(shuō)明,以下,參照?qǐng)D4至圖13,對(duì)密鑰模塊由非存儲(chǔ)裝置的PUF被體現(xiàn)的實(shí)施例進(jìn)行說(shuō)明。
作為參考,本發(fā)明中所提到的PUF不可執(zhí)行物理性復(fù)制,在一次性制備后,生成至少理論上不會(huì)變化的密鑰。
以下,對(duì)密鑰模塊由非存儲(chǔ)裝置的PUF被體現(xiàn)的多種實(shí)施例進(jìn)行說(shuō)明,圖4至圖8對(duì)應(yīng)于利用半導(dǎo)體工程(Semiconductor Process)中的工程變差來(lái)生成密鑰的密鑰模塊的實(shí)施例。
此外,圖9至圖13對(duì)應(yīng)于設(shè)計(jì)電路時(shí)違反設(shè)計(jì)規(guī)定從而生成密鑰模塊的實(shí)施例。
圖4是用于說(shuō)明根據(jù)本發(fā)明的一個(gè)實(shí)施例,利用工程變差來(lái)生成密鑰的物理防克隆功能PUF形式的密鑰模塊的單位晶格的概念的示例性電路圖。
在圖4的實(shí)施例中,示出第1逆變器410和第2逆變器420。
在半導(dǎo)體工程中,工程變差經(jīng)多種原因而發(fā)生。例如,在制備晶體管時(shí),有效柵(gate)長(zhǎng)度、半導(dǎo)體摻雜物密度相關(guān)指數(shù)、氧化層厚度相關(guān)指數(shù)、或閾值電壓等參數(shù)都可能成為工程變差的原因。
一般情況下,認(rèn)為較小的半導(dǎo)體制備工程其工程變差較為優(yōu)秀,但是,在物理性特征上,可使工程變差盡可能化小但不可能完全消除。
在本實(shí)施例中,第1逆變器410可具有第1邏輯閾值,且第2逆變器420具有第2邏輯閾值。邏輯閾值(logic threshold)為逆變器的輸入電壓和輸出電壓具相同的值時(shí)的電壓值,以下將參照?qǐng)D5來(lái)進(jìn)行說(shuō)明。
逆變器的邏輯閾值可被檢測(cè)為使運(yùn)作中的逆變器的輸出端和輸入端短路(short)時(shí)的電壓值。
在相同的工程中被制備的逆變器,理論上被設(shè)計(jì)為具有相同的邏輯閾值,但如上所述,由于在實(shí)際的制備工程中存在工程變差,因此,任何的兩個(gè)逆變器不可能具有完全相同的邏輯閾值。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述第1逆變器410和所述第2逆變器420在相同的制備工程中被制備,因此,具有因工程變差的邏輯閾值的差異性。
所述邏輯閾值的差異雖然根據(jù)工程工程而不同,但可能相差數(shù)毫伏至數(shù)十毫伏的差異。因此,由于檢測(cè)上的誤差,利用另外的比較器電路來(lái)檢測(cè)所述第1逆變器410的邏輯閾值和所述第2逆變器420的邏輯閾值并不準(zhǔn)確。
因此,需要一種可相對(duì)性地比較兩個(gè)逆變器的邏輯閾值(即,不使用另外的比較器電路來(lái)進(jìn)行檢測(cè))的方法。在本發(fā)明的一些實(shí)施例中,將兩個(gè)逆變器之間的邏輯閾值進(jìn)行相對(duì)性地(不使用另外的比較器電路而是自動(dòng)地)比較,從而可判斷哪一方的邏輯閾值較大。
假設(shè)第2逆變器420不存在,當(dāng)?shù)?逆變器410的輸入端和輸出端短路時(shí),第1逆變器410的輸出電壓與所述第1逆變器410的邏輯閾值相同。
此外,假設(shè)第1逆變器410不存在,當(dāng)?shù)?逆變器420的輸入端和輸出端短路時(shí),第2逆變器420的輸出電壓與所述第2逆變器420的邏輯閾值相同。
但是,如圖4所示,第1逆變器410的輸入端和第2逆變器420的輸出端被短路,通過(guò)第1節(jié)點(diǎn)被連接時(shí),且第1逆變器410的輸出端和第2逆變器420的輸入端被短路,通過(guò)第2節(jié)點(diǎn)被連接時(shí),具有與上述不同的結(jié)果。
利用開(kāi)關(guān)430使所述第1節(jié)點(diǎn)和所述第2節(jié)點(diǎn)短路時(shí),被短路的所述兩個(gè)節(jié)點(diǎn)的電壓值為所述第1逆變器410的邏輯閾值和所述第2逆變器420的邏輯閾值的中間值(可能為平均值以下)。
與所述兩個(gè)逆變器的邏輯閾值中哪一方的值較高無(wú)關(guān),在所述開(kāi)關(guān)430關(guān)閉期間,輸出電壓的值為所述兩個(gè)逆變器的邏輯閾值的中間值。
此外,之后將開(kāi)關(guān)430打開(kāi),在使所述第1節(jié)點(diǎn)和所述第2節(jié)點(diǎn)開(kāi)路(open)時(shí),所述第1節(jié)點(diǎn)和所述第2節(jié)點(diǎn)中任何一個(gè)的電壓值的邏輯電平(logical level)為“0”,且另一個(gè)的邏輯電平為“1”。
例如,假設(shè)當(dāng)?shù)?逆變器410的邏輯閾值比所述第2逆變器420的邏輯閾值低時(shí),所述開(kāi)關(guān)430被關(guān)閉,第1節(jié)點(diǎn)(輸出Out的相反節(jié)點(diǎn))和第2節(jié)點(diǎn)(輸出Out節(jié)點(diǎn))被短路期間的第1節(jié)點(diǎn)的電壓比所述第1逆變器410的邏輯閾值要高。
因此,所述開(kāi)關(guān)430重新打開(kāi),所述第1節(jié)點(diǎn)和所述第2節(jié)點(diǎn)開(kāi)路后,第1逆變器410將(自身的輸入端)第1節(jié)點(diǎn)的電壓識(shí)別為高(High)邏輯電平,因此,第1逆變器210的輸出端第2節(jié)點(diǎn)的電壓為低(Low)邏輯電平。
在這種情況下,第2逆變器420將(自身的輸入端)第2節(jié)點(diǎn)的電壓識(shí)別為低邏輯電平,因此,第2逆變器420的輸出端第1節(jié)點(diǎn)的電壓為高邏輯電平。
結(jié)果,圖4的輸出端("Out")第2節(jié)點(diǎn)的電壓為高(High)邏輯電平。
相反,假設(shè)第1逆變器410的邏輯閾值比所述第2逆變器420的邏輯閾值高時(shí),所述開(kāi)關(guān)430關(guān)閉,第1節(jié)點(diǎn)和第2節(jié)點(diǎn)被短路期間的第1節(jié)點(diǎn)的電壓比所述第1逆變器410的邏輯閾值低。
因此,所述開(kāi)關(guān)430重新打開(kāi),所述第1節(jié)點(diǎn)和所述第2節(jié)點(diǎn)開(kāi)路后,第1逆變器410將(自身的輸入端)第1節(jié)點(diǎn)的電壓識(shí)別為低邏輯電平,因此,第1逆變器410的輸出端第2節(jié)點(diǎn)的電壓為高邏輯電平。
在這種情況下,第2逆變器420將(自身的輸入端)第2節(jié)點(diǎn)的電壓識(shí)別為高邏輯電平,因此,第2逆變器420的輸出端第1節(jié)點(diǎn)的電壓為低邏輯電平。
結(jié)果,圖4的輸出端("Out")第2節(jié)點(diǎn)的電壓為低邏輯電平。
如上所述,根據(jù)第1逆變器410的邏輯閾值和第2逆變器420的邏輯閾值中哪一方較高,來(lái)決定開(kāi)關(guān)430的短路-開(kāi)路后的輸出端("Out")的邏輯電平為高(或是“1”)還是低(或是“0”)。
但是,在相同的制備工程中所制備的所述第1逆變器410和第2逆變器420中,哪一方的邏輯閾值較高具隨機(jī)性(random),概率性地兩個(gè)逆變器中一方的邏輯閾值比另一方的邏輯閾值高的概率約為50%。
此外,制備后,較難改變所述邏輯閾值較高一方為哪一方。
結(jié)果,通過(guò)圖4的實(shí)施例,可生成1比特的數(shù)字值(為“1”或“0”的概率雖然相同,但一旦決定后較難改變)。
參照?qǐng)D5時(shí),上述過(guò)程將會(huì)更清楚地被理解。
圖5是用于理解圖4的實(shí)施例的參照?qǐng)D表。
在本示例性參照?qǐng)D表中,示出圖4的第1逆變器410的邏輯閾值比第2逆變器420的邏輯閾值低時(shí)的電壓特性(voltage characteristic)。
曲線510為第1逆變器410的電壓特征曲線,且曲線520為第2逆變器420的電壓特征曲線。根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)?shù)?逆變器410和第2逆變器420在相同的制備工程中被制備時(shí),曲線510和曲線520雖然基本一致,但由于工程變差的原因具有一點(diǎn)差異。
在找到曲線510和傾斜的1條直線530的交點(diǎn)時(shí),可確定第1逆變器410的邏輯閾值V1。此外,在找到曲線520和直線530的交點(diǎn)時(shí),可確定第2逆變器420的邏輯閾值V2。
在本實(shí)施例中V1比V2低,因此,圖4的開(kāi)關(guān)430關(guān)閉,當(dāng)?shù)?節(jié)點(diǎn)和第2節(jié)點(diǎn)被短路時(shí)(也稱(chēng)為“Reset”),第1節(jié)點(diǎn)和第2節(jié)點(diǎn)的電壓(VReset)為V1和V2之間的任何值。
此外,所述開(kāi)關(guān)430重新打開(kāi),所述第1節(jié)點(diǎn)和所述第2節(jié)點(diǎn)開(kāi)路后,第1逆變器410將第1節(jié)點(diǎn)的電壓(VReset)識(shí)別為高邏輯電平,因此,第1逆變器410的輸出端第2節(jié)點(diǎn)的電壓為低邏輯電平。
在這種情況下,第2逆變器420將第2節(jié)點(diǎn)的電壓(VReset)識(shí)別為低邏輯電平,因此,第2逆變器420的輸出端第1節(jié)點(diǎn)的電壓為高邏輯電平。
因此,圖4的輸出端("Out")第2節(jié)點(diǎn)的電壓為高邏輯電平。
如圖4所示,單位晶格為1比特的數(shù)字值時(shí),將該單位晶格集成N個(gè)時(shí),N比特的數(shù)字值可生成密鑰。
根據(jù)本發(fā)明的一些實(shí)施例,密鑰模塊320可通過(guò)該方式被體現(xiàn)。
密鑰模塊可如以下圖6所示的結(jié)構(gòu)被體現(xiàn),通過(guò)利用半導(dǎo)體工程變差的逆變器裝置的邏輯閾值差異來(lái)生成數(shù)字值形式的密鑰。
圖6是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的密鑰模塊600的的示例性體現(xiàn)的框圖。
在本實(shí)施例中,密鑰模塊600包括:逆變器611至逆變器615的5個(gè)逆變器、選擇單元620、和比較單元630。
選擇單元620可選擇圖6中所示出的5個(gè)逆變器中的任何兩個(gè),例如,可選擇逆變器612和逆變器613。
在這種情況下,比較單元630比較逆變器612的邏輯閾值和逆變器613的邏輯閾值,并根據(jù)比較結(jié)果,向輸出(Out)端提供輸出電壓。此外,可根據(jù)所述輸出(Out)端的輸出電壓的邏輯電平來(lái)生成1比特的數(shù)字值。
此外,當(dāng)選擇單元620選擇另外的兩個(gè)逆變器時(shí),所述比較單元630可重新生成1比特的數(shù)字值。
如上所述,選擇單元620可選擇5個(gè)逆變器(611至615)中的兩個(gè),且當(dāng)比較單元630將選擇的兩個(gè)逆變器的邏輯閾值進(jìn)行比較來(lái)生成數(shù)字值時(shí),最多可獲取10比特的數(shù)字值。
在本實(shí)施例中,雖然包括5個(gè)逆變器,但本發(fā)明并不局限于,用關(guān)生成的數(shù)字值的比特?cái)?shù)、電路的面積等都可進(jìn)行多種改變。
此外,當(dāng)半導(dǎo)體芯片內(nèi)可集成的比較單元630的面積比逆變器(611至615)的面積大時(shí),在本實(shí)施例中,多個(gè)逆變器和一個(gè)比較單元630通過(guò)選擇單元620被連接。但是,在其他應(yīng)用實(shí)施例中,每?jī)蓚€(gè)逆變器可與一個(gè)比較單元形成對(duì)來(lái)生成N比特的數(shù)字值。
此外,利用半導(dǎo)體工程變差的逆變器裝置的邏輯閾值差異來(lái)生成數(shù)字值形式的密鑰的密鑰模塊也可通過(guò)如圖7所示的結(jié)構(gòu)被體現(xiàn)。
圖7是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例,利用差分?jǐn)U大器的工程變差來(lái)生成數(shù)字值的密鑰模塊的單位晶格700的示圖。
單位晶格700為差分?jǐn)U大器電路。由晶體管和電阻中的至少一個(gè)所構(gòu)成的差分?jǐn)U大器電路單位晶格700,其將第1輸入端711和第2輸入端712的電壓差異擴(kuò)大,作為第1輸出端721和第2輸出端722之間的電壓差異來(lái)提供。
因此,當(dāng)所述第1輸入端711和第2輸入端712短路時(shí),理論上,輸出電壓值第1輸出端721和第2輸出端722之間的電壓差異應(yīng)該為0。
但是,由于半導(dǎo)體工程變差,裝置之間具電器特征差異,因此,第1輸出端721的電壓和第2輸出端722的電壓不可能完全一樣。
因此,在圖6的實(shí)施例中,通過(guò)類(lèi)似將逆變器的邏輯閾值進(jìn)行比較的方法,在比較兩個(gè)輸出端中哪個(gè)輸出端的電壓較高時(shí),可生成1比特的數(shù)字值。
例如,在使第1輸入端711和第2輸入端712短路的情況下,當(dāng)?shù)?輸出端721的電壓值高于第2輸出端722的電壓值時(shí),識(shí)別為數(shù)字值“1”,且在相反的情況下,可識(shí)別為數(shù)字值“0”
因此,當(dāng)該差分?jǐn)U大器單位晶體700被集成N個(gè)時(shí),可通過(guò)N比特的數(shù)字值形式來(lái)提供密鑰,從而根據(jù)本發(fā)明的一些實(shí)施例的密鑰模塊可被體現(xiàn)。該體現(xiàn)在圖8中被示出。
圖8是根據(jù)本發(fā)明的一個(gè)實(shí)施例,示出密鑰模塊800被體現(xiàn)的示例性電路圖。
在圖示的實(shí)施例中,密鑰模塊800包括:6個(gè)差分?jǐn)U大器(811至816);用于選擇所述6個(gè)差分?jǐn)U大器中的任何一個(gè)的選擇單元820;和比較器830,比較經(jīng)所述選擇單元820被選擇的差分?jǐn)U大器的兩個(gè)輸出電壓,來(lái)生成1比特的數(shù)字值。
在這種情況下,所述6個(gè)差分?jǐn)U大器(811至816)的整個(gè)輸入端被短路,具有相同的電壓。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,選擇單元820可以是6:1多路復(fù)用器(6:1 MUX)。但是,其僅僅是用于體現(xiàn)本發(fā)明的一個(gè)實(shí)施例,本發(fā)明并不局限于該特定實(shí)施例。
因此,MUX裝置的輸入/輸出端口的個(gè)數(shù)可改變,進(jìn)一步,選擇單元820可以是其他裝置而不是MUX裝置,所述6:1 MUX裝置將通過(guò)12個(gè)輸入端輸入的6個(gè)差分?jǐn)U大器的輸出電壓向兩個(gè)輸出端輸出。此外,該兩個(gè)輸出端與比較器830的兩個(gè)輸入端連接。
在所述實(shí)施例中,密鑰模塊800可生成6比特的數(shù)字值密鑰。
以上,參照?qǐng)D4至圖8對(duì)利用半導(dǎo)體工程的工程變差來(lái)體現(xiàn)密鑰模塊的實(shí)施例進(jìn)行說(shuō)明。
以下,參照?qǐng)D9至13,對(duì)違反半導(dǎo)體設(shè)計(jì)規(guī)定從而來(lái)體現(xiàn)密鑰模塊的實(shí)施例進(jìn)行說(shuō)明。
圖9是根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于說(shuō)明違反半導(dǎo)體設(shè)計(jì)規(guī)定來(lái)生成密鑰模塊的原理的概念圖。
通常,接點(diǎn)或通路被設(shè)計(jì)用來(lái)使導(dǎo)電層之間連接,通常,確定接點(diǎn)或通路尺寸來(lái)使導(dǎo)電層短路。此外,在常規(guī)的設(shè)計(jì)規(guī)定(rule)中,規(guī)定有最起碼的接點(diǎn)或通路尺寸來(lái)確保導(dǎo)電層之間短路。
但是,在根據(jù)本發(fā)明的一個(gè)實(shí)施例的密鑰模塊的體現(xiàn)中,使接點(diǎn)或通路的尺寸比設(shè)計(jì)規(guī)定中所指定要小,從而一部分的接點(diǎn)或通路使導(dǎo)電層之間短路,且其他一部分的接點(diǎn)或通路不會(huì)使導(dǎo)電層之間短路,該導(dǎo)電與否被概率性地確定。
在現(xiàn)有的半導(dǎo)體工程中,當(dāng)接點(diǎn)或通路不能使導(dǎo)電層之間短路時(shí),為工程上的失敗,但可利用其來(lái)生成具隨機(jī)數(shù)的密鑰。
參照?qǐng)D9,示出在半導(dǎo)體制備工程中,金屬1層902和金屬2層901之間通路被形成。
在根據(jù)設(shè)計(jì)規(guī)定使通路尺寸較大的組910中,所有通路使金屬1層902和金屬2層901短路,將短路與否以數(shù)字值來(lái)表示時(shí),都為0。
此外,在通路尺寸較小的組930中,所有通路沒(méi)有使金屬1層902和金屬2層901短路。因此,將短路與否以數(shù)字值來(lái)表示時(shí),都為1。
此外,在通路尺寸為組910和組930之間的組920中,一部分通路使金屬1層902和金屬2層901短路,且其他一部分的通路沒(méi)有使金屬1層902和金屬2層901短路。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,為實(shí)現(xiàn)密鑰模塊,如組920所示,一部分通路使金屬1層902和金屬2層901短路,且其他一部分通路被設(shè)定通路尺寸來(lái)構(gòu)成,從而不會(huì)使金屬1層902和金屬2層901短路。
有關(guān)通路尺寸的設(shè)計(jì)規(guī)定根據(jù)半導(dǎo)體制備工程有所不同。例如,在0.18微米(um)的互補(bǔ)金屬氧化物半導(dǎo)體CMOS(Complementary metal oxide semiconductor),當(dāng)通路的設(shè)計(jì)規(guī)定為0.25微米時(shí),在根據(jù)本發(fā)明的一個(gè)實(shí)施例的密鑰模塊的體現(xiàn)中,違反設(shè)計(jì)規(guī)定,將通路尺寸設(shè)置為0.19微米,從而使金屬層之間的短路與否概率性的分布。
優(yōu)選是,該短路與否的概率分布具有50%的短路概率,在根據(jù)本發(fā)明的一個(gè)實(shí)施例的密鑰模塊的體現(xiàn)中,使概率分布最大限度地接近50%來(lái)設(shè)置并構(gòu)成通路尺寸。在該通路尺寸設(shè)置中,可通過(guò)工程試驗(yàn)來(lái)確定通路尺寸。
圖10是根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于說(shuō)明違反半導(dǎo)體設(shè)計(jì)規(guī)定的密鑰模塊的結(jié)構(gòu)的圖表。
在圖表中,通路尺寸越大,金屬層之間的短路概率可為接近于1。根據(jù)設(shè)計(jì)規(guī)定的通路尺寸Sd,是充分確保金屬層之間短路的值。
此外,SM是理論上金屬層的短路概率為0.5的通路尺寸,如上所述,根據(jù)工程,值不同時(shí),可通過(guò)試驗(yàn)獲取最大相似值,但較難獲取準(zhǔn)確的SM。
因此,在根據(jù)本發(fā)明的一個(gè)實(shí)施例的密鑰模塊的體現(xiàn)中,根據(jù)具體的試驗(yàn),金屬層之間的短路與否可設(shè)置在0.5中具一定許可誤差的Sx1和Sx2范圍內(nèi)(所述Sx1和Sx2雖然沒(méi)有另外示圖,但可以是圖示的Sx附近的具一定邊緣的區(qū)域)。
在圖9至圖10中,雖然對(duì)違反有關(guān)通路尺寸的設(shè)計(jì)規(guī)定來(lái)體現(xiàn)密鑰模塊的實(shí)施例進(jìn)行了說(shuō)明,但根據(jù)本發(fā)明的其他一些實(shí)施例,也可通過(guò)違反有關(guān)導(dǎo)電層之間的間隔(gap)的設(shè)計(jì)規(guī)定來(lái)體現(xiàn)密鑰模塊。
圖11是根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于說(shuō)明調(diào)整導(dǎo)電層之間的間隔來(lái)生成密鑰模塊的過(guò)程的概念圖。
如上所述,根據(jù)本發(fā)明的實(shí)施例,調(diào)整金屬線之間的間隔,從而來(lái)概率性地確定金屬線之間的短路與否。
在為充分確保金屬線之間的短路,金屬線間隔較小的組1110中,在所有的情況下金屬線都被短路。
此外,金屬線間隔較大的組1130中,在所有的情況下金屬線沒(méi)有被短路。
在本實(shí)施例中,為實(shí)現(xiàn)密鑰模塊,如組1120所示,設(shè)置用于概率性地形成短路的金屬線間隔,從而使金屬線中的一部分被短路,且一部分沒(méi)有被短路。
圖12是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于體現(xiàn)密鑰模塊1200的半導(dǎo)體層中所形成的通路或接點(diǎn)陣列的示例性結(jié)構(gòu)的概念圖。
半導(dǎo)體基板(substrate)中被積層的金屬層之間形成有橫向M個(gè),縱向N個(gè)(但M和N為自然數(shù)),總共M*N個(gè)通路。
密鑰模塊1200根據(jù)M*N個(gè)的通路各自使金屬層之間短路(數(shù)字值為0)或不短路(數(shù)字值為1)的與否,來(lái)生成M*N比特(bit)的密鑰。
圖13是根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于說(shuō)明不直接將圖12的實(shí)施例中所生成的數(shù)字值作為密鑰來(lái)使用,為了0和1的平衡進(jìn)行后處理的過(guò)程的概念圖。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,密鑰模塊1200中所生成的M*N比特的數(shù)字值被集聚成所定的k個(gè)單位,且k為自然數(shù)。
當(dāng)然,圖13中所示出的集聚是便于說(shuō)明的示例性附圖,在實(shí)際的體現(xiàn)中,可使用將密鑰模塊1200內(nèi)的晶體管或觸發(fā)器進(jìn)行集聚的方法。
因此,通過(guò)將數(shù)字值集聚等方法來(lái)執(zhí)行0和1的平衡的過(guò)程可由本領(lǐng)域的普通技術(shù)人員通過(guò)多種變形和應(yīng)用來(lái)執(zhí)行,且不超出本發(fā)明的范圍。
在圖13的實(shí)施例中,4個(gè)數(shù)字值被集聚成一個(gè)組。
密鑰模塊1200將組1310和組1320各自生成的4比特的數(shù)字值的大小進(jìn)行比較。此外,當(dāng)組1310的4比特?cái)?shù)字值比組1320的4比特?cái)?shù)字值大時(shí),代表所述組1310和組1320的數(shù)字值為1。
相反,當(dāng)組1310的4比特?cái)?shù)字值比組1320的4比特?cái)?shù)字值小時(shí),代表所述組1310和組1320的數(shù)字值為0。
在其他實(shí)施例中,可比較組之間的數(shù)字值1的個(gè)數(shù)來(lái)選擇代表組的數(shù)字值。
根據(jù)本發(fā)明的實(shí)施例的方法可通過(guò)多種計(jì)算機(jī)手段以可執(zhí)行的程序命令形式記錄在計(jì)算機(jī)可讀媒體中。該計(jì)算機(jī)可讀媒體可包括獨(dú)立的或結(jié)合的程序指令、數(shù)據(jù)文件、數(shù)據(jù)結(jié)構(gòu)等。該媒體記錄的程序指令可專(zhuān)門(mén)為本發(fā)明的目的設(shè)計(jì)和創(chuàng)建,或?yàn)橛?jì)算機(jī)軟件技術(shù)人員熟知而應(yīng)用。計(jì)算機(jī)可讀媒體的例子包括:磁媒體(magnetic media),如硬盤(pán)、軟盤(pán)和磁帶;光學(xué)媒體(optical media),如CD ROM、DVD;磁光媒體(magneto-optical media),如光盤(pán)(floptical disk);和專(zhuān)門(mén)配置為存儲(chǔ)和執(zhí)行程序指令的硬件設(shè)備,如只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)等。程序指令的例子,既包括機(jī)器代碼,如由編譯器產(chǎn)生的,也包括含有可由計(jì)算機(jī)使用解釋程序執(zhí)行的更高級(jí)代碼的文件。所述硬件設(shè)備可配置為作為一個(gè)以上軟件模塊運(yùn)行以執(zhí)行上面所述的本發(fā)明的運(yùn)作,反之亦然。
如上所示,本發(fā)明雖然已參照有限的實(shí)施例和附圖進(jìn)行了說(shuō)明,但是本發(fā)明并不局限于所述實(shí)施例,在本發(fā)明所屬領(lǐng)域中具備通常知識(shí)的人均可以從此記載中進(jìn)行各種修改和變形。
因此,本發(fā)明的范圍不受說(shuō)明的實(shí)施例的局限或定義,而是由后附的權(quán)利要求范圍以及權(quán)利要求范圍等同內(nèi)容定義。