本發(fā)明總體上涉及視頻信號處理和安全,并且更具體而言,涉及用于實施傳感器的唯一標(biāo)識值的方法和/或設(shè)備。
背景技術(shù):
檢測硬件相關(guān)標(biāo)識值的變化是防硬件克隆的安全操作的基礎(chǔ)。就常規(guī)而言,使用唯一硬件標(biāo)識值作為經(jīng)常在諸如驗證等安全交易中所使用的數(shù)字簽名的基礎(chǔ)。安全水平取決于硬件標(biāo)識值的唯一性。
用于生成硬件標(biāo)識值的兩種常規(guī)技術(shù)包含由介質(zhì)存取控制地址進(jìn)行推導(dǎo)或者使用外部密碼芯片。由可配置的介質(zhì)存取控制地址導(dǎo)出的硬件標(biāo)識值不保證硬件唯一性,因為硬件的多個副本可能被配置有同一介質(zhì)存取控制地址。外部密碼芯片更可能生成唯一硬件標(biāo)識值,但是其以提高系統(tǒng)的復(fù)雜性和成本為代價。
期望的是實施傳感器的唯一標(biāo)識值。
技術(shù)實現(xiàn)要素:
本發(fā)明包含與一種具有接口和處理器的設(shè)備有關(guān)的方面。接口被配置為接收來自傳感器中的多個感測元件的多個感測值。處理器連接至接口并且被配置為(i)生成感測值之中的多個壞值的列表,以及(ii)基于壞值來計算傳感器的唯一標(biāo)識值。壞值中的每者指示感測元件中的對應(yīng)的一個的不適當(dāng)性能。
在上文描述的設(shè)備方面的一些實施例中,(i)傳感器包括電光傳感器,并且(ii)感測元件中的每者包括像素。
在上文描述的設(shè)備方面的一些實施例中,唯一標(biāo)識值基于傳感器中的與列表中的壞值相關(guān)聯(lián)的感測元件的多個位置。
在上文描述的設(shè)備方面的一些實施例中,通過對與列表中的壞值相關(guān)聯(lián)的位置執(zhí)行散列運算來計算唯一標(biāo)識值。
在上文描述的設(shè)備方面的一些實施例中,處理器還被配置為(i)通過對與列表中的壞值相關(guān)聯(lián)的位置執(zhí)行散列運算來生成額外的標(biāo)識值,并且(ii)將額外的標(biāo)識值合并到唯一標(biāo)識值中。
在上文描述的設(shè)備方面的一些實施例中,處理器還被配置為(i)將與列表中的壞值相關(guān)聯(lián)的位置與存儲在存儲器中的多個已知位置進(jìn)行比較,并且(ii)在與列表中的壞值相關(guān)聯(lián)的位置不與已知位置相關(guān)的情況下指示傳感器已經(jīng)被更換。
在上文描述的設(shè)備方面的一些實施例中,(i)處理器還被配置為基于感測值來計算多個分布值,(ii)分布值表征感測值的幅度分布,并且(iii)基于分布值來生成列表。
在上文描述的設(shè)備方面的一些實施例中,(i)分布值包括感測值的標(biāo)準(zhǔn)偏差值和感測值的平均值,并且(ii)壞值大于偏離平均值的標(biāo)準(zhǔn)偏差的倍數(shù)。
在上文描述的設(shè)備方面的一些實施例中,處理器還被配置為在計算唯一標(biāo)識值之前通過對壞值進(jìn)行過濾而從列表中去除時好時壞(inconsistently bad)的壞值。
在上文描述的設(shè)備方面的一些實施例中,接口、處理器和傳感器是數(shù)字照相機的部分。
本發(fā)明包含與用于確定傳感器的唯一標(biāo)識值的方法有關(guān)的方面,所述方法包括以下步驟:從傳感器中的多個感測元件接收多個感測值;使用處理器生成感測值之中的多個壞值的列表,其中,壞值中的每者指示感測元件中的對應(yīng)的一個的不適當(dāng)性能;以及基于壞值來計算傳感器的唯一標(biāo)識值。
在上文描述的方法方面的一些實施例中,(i)傳感器包括電光傳感器,并且(ii)感測元件中的每者包括像素。
在上文描述的方法方面的一些實施例中,唯一標(biāo)識值基于傳感器中的與列表中的壞值相關(guān)聯(lián)的感測元件的多個位置。
在上文描述的方法方面的一些實施例中,通過對與列表中的壞值相關(guān)聯(lián)的位置執(zhí)行散列運算來計算唯一標(biāo)識值。
在上文描述的方法方面的一些實施例中,所述方法還包括以下步驟:通過對與列表中的壞值相關(guān)聯(lián)的位置執(zhí)行不同的散列運算而生成額外的標(biāo)識值;以及將額外的標(biāo)識值合并到唯一標(biāo)識值中。
在上文描述的方法方面的一些實施例中,所述方法還包括以下步驟:將與列表中的壞值相關(guān)聯(lián)的位置與存儲在存儲器中的多個已知位置進(jìn)行比較;以及在與列表中的壞值相關(guān)聯(lián)的位置不與已知位置相關(guān)的情況下指示傳感器已經(jīng)被更換。
在上文描述的方法方面的一些實施例中,所述方法還包括基于感測值來計算多個分布值的步驟,其中,(i)分布值表征感測值的幅度分布,并且(ii)基于分布值而生成所述列表。
在上文描述的方法方面的一些實施例中,分布值包括感測值的標(biāo)準(zhǔn)偏差值和感測值的平均值,并且(ii)壞值大于偏離平均值的標(biāo)準(zhǔn)偏差的倍數(shù)。
在上文描述的方法方面的一些實施例中,所述方法還包括在計算唯一標(biāo)識值之前通過對壞值進(jìn)行過濾而從列表中去除時好時壞的壞值的步驟。
在上文描述的方法方面的一些實施例中,在數(shù)字照相機中執(zhí)行所述步驟。
附圖說明
通過下文的具體實施方式、所附權(quán)利要求以及附圖,本發(fā)明的實施例將變得顯而易見,在附圖中:
圖1是照相機系統(tǒng)的方框圖;
圖2是用于生成唯一標(biāo)識值的方法的流程圖;
圖3是圖片序列的示圖;
圖4是用于傳感器物理完整性檢查的方法的流程圖;
圖5是用于數(shù)據(jù)完整性檢查的方法的流程圖;
圖6是用于生成復(fù)雜唯一硬件標(biāo)識值的方法的流程圖;以及
圖7是用于生成數(shù)字簽名的方法的流程圖。
具體實施方式
本發(fā)明的實施例包括為傳感器提供唯一標(biāo)識值,該唯一標(biāo)識值可以(i)檢測支持防硬件克隆能力的照相機傳感器的硬件變化,(ii)基于傳感器數(shù)據(jù)而生成數(shù)字簽名,(iii)為驗證提供高安全級別,(iv)避免引入新硬件,(v)減小照相機的成本提高,(vi)避免照相機的硬件復(fù)雜性的提高,和/或(vii)被實施為一個或多個集成電路。
本發(fā)明的各種實施例通常實施用于由照相機系統(tǒng)中的圖像傳感器的物理不可克隆功能生成物理不可克隆的唯一硬件標(biāo)識值的技術(shù)。物理不可克隆功能可以基于傳感器的與制造有關(guān)的隨機特性(例如,特征值)。照相機系統(tǒng)通常至少包括圖像傳感器(例如,互補金屬氧化物半導(dǎo)體(CMOS)傳感器或電荷耦合器件傳感器)、一個或多個易失性存儲器電路(例如,動態(tài)隨機存取存儲器)、一個或多個非易失性存儲器電路(例如,閃速存儲器)以及至少一個處理電路。圖像傳感器通常是具有多個感測元件(或像素)的電光傳感器。感測元件可以被布置成二維陣列。每個感測元件可以被配置為由在圖像傳感器的表面處接收到的光來生成圖片序列。圖片序列通常存儲在易失性存儲器中并由處理電路進(jìn)行處理。處理可以利用圖像傳感器的隨機特性來計算唯一標(biāo)識值。所述特性可以具有相對穩(wěn)定的壞像素定位的形式。可以通過在多種照明條件下、多個溫度下和/或多個操作電壓下均顯著偏離預(yù)期值的相應(yīng)感測值(或壞值)來識別出壞像素定位。壞像素(或壞感測元件)通常在將光轉(zhuǎn)化成電信號的過程中表現(xiàn)出不適當(dāng)?shù)男阅堋?/p>
通?;趶挠蓚鞲衅魃傻膱D片序列所收集到的統(tǒng)計數(shù)據(jù)來確定相對穩(wěn)定的壞像素定位??梢酝ㄟ^對統(tǒng)計數(shù)據(jù)進(jìn)行過濾而導(dǎo)出壞像素定位圖案,以建立最差且相對穩(wěn)定的壞像素列表??梢酝ㄟ^處理電路對壞像素列表中緩存的壞像素定位圖案進(jìn)行處理,以計算出傳感器的唯一硬件標(biāo)識值。接下來,可以將壞像素定位圖案和/或唯一硬件標(biāo)識值存儲在非易失性存儲器中。以后可以使用所存儲的壞像素定位圖案和/或唯一硬件標(biāo)識值來檢測傳感器是否被物理更換和/或電子更換。還可以使用所存儲的壞像素定位圖案和唯一硬件標(biāo)識值來判斷是否更換了某一存儲器電路。由傳感器的與制造有關(guān)的壞像素圖案導(dǎo)出唯一硬件標(biāo)識值的特征可以是有益的,因為唯一硬件標(biāo)識值實際上是不可克隆的,提供了高安全級別,不會引入新的硬件,降低了向照相機添加特征所帶來的成本提高,并且避免了在添加特征時引起照相機的硬件復(fù)雜性的提高。
參考圖1,其顯示了示出照相機/錄像機系統(tǒng)(或設(shè)備)的示例性實施方式的照相機系統(tǒng)90的方框圖。在一些實施例中,照相機系統(tǒng)90可以是數(shù)字視頻照相機、數(shù)字靜物照相機或者混合數(shù)字視頻/靜物照相機,它們被共同以及單獨地稱為數(shù)字照相機。在一個示例中,可以將照相機系統(tǒng)90的電子器件實施為一個或多個集成電路。例如,可以使用專用集成電路或芯片上系統(tǒng)來實施照相機系統(tǒng)90的處理部分。
在各實施例中,照相機系統(tǒng)90可以包括照相機芯片(或電路)100、鏡頭組件104、圖像傳感器106、音頻編解碼器108、動態(tài)隨機存取存儲器(DRAM)110、非易失性存儲器(例如,NAND閃速存儲器、NOR閃速存儲器等)112、一個或多個串行接口114、用于連接至通用串行總線(USB)主機或者起著USB主機的作用的接口116、連接至可移除介質(zhì)118(例如,SD—安全數(shù)字介質(zhì)、SDXC—安全數(shù)字?jǐn)U展容量介質(zhì)等)的接口、用于與便攜式用戶裝置通信的無線接口120、用于記錄音頻的麥克風(fēng)122以及用于播放視頻的揚聲器124。在一些實施例中,鏡頭組件104和圖像傳感器106可以是(例如,經(jīng)由視頻電纜、高清晰度介質(zhì)接口(HDMI)電纜、通用串行總線(USB)電纜、以太網(wǎng)電纜或無線鏈路)連接至系統(tǒng)90的處理部分的單獨照相機的部分。
照相機電路100通常包括若干模塊(或電路),其包括但不限于脈寬調(diào)制(PWM)模塊、實時時鐘和監(jiān)視計時器(RTC/WDT)、直接存儲器存取(DMA)引擎、高清晰度多媒體接口(HDMI)、LCD/TV/并行接口、通用輸入/輸出(GPIO)及模數(shù)轉(zhuǎn)換器(ADC)模塊、紅外(IR)遠(yuǎn)程接口、安全數(shù)字輸入輸出(SDIO)接口模塊、安全數(shù)字(SD)卡接口、音頻IC內(nèi)置聲音(I2S)接口、圖像傳感器輸入接口和同步數(shù)據(jù)通信接口(IDCSPI/SSI)。照相機電路100還可以包括嵌入式處理器(例如,ARM等)、圖像數(shù)字信號處理器(DSP)以及視頻和/或音頻DSP。在系統(tǒng)90中并入了鏡頭組件104和圖像傳感器106的實施例中,照相機電路100可以被配置(例如,編程)為控制鏡頭組件104以及從傳感器106接收圖像數(shù)據(jù)。無線接口120可以包括通過一種或多種無線協(xié)議來支持無線通信,所述無線協(xié)議例如電氣與電子工程師協(xié)會802.11、電氣與電子工程師協(xié)會802.15、電氣與電子工程師協(xié)會802.15.1、電氣與電子工程師協(xié)會802.15.2、電氣與電子工程師協(xié)會802.15.3、電氣與電子工程師協(xié)會802.15.4、電氣與電子工程師協(xié)會802.15.5和/或電氣與電子工程師協(xié)會802.20。照相機電路100還可以包括對使用通用串行總線協(xié)議(例如,USB 1.0、2.0、3.0等)中的一種或多種協(xié)議進(jìn)行通信的支持。照相機電路100還可以被配置為經(jīng)由通用串行總線連接而被供電。然而,也可以相應(yīng)地實施其他通信和/或電源接口,以滿足特定應(yīng)用的設(shè)計標(biāo)準(zhǔn)。
在各實施例中,可以將編程代碼(例如,用于控制照相機電路100的各種處理器和編碼器的可執(zhí)行指令)存儲在存儲器110和112中的一者或多者中。編程代碼在由照相機電路100執(zhí)行時通常使得照相機電路100中的一個或多個處理器對視頻同步操作進(jìn)行配置并且開始視頻幀處理操作??梢詫⑺玫降膲嚎s視頻信號提供給SD/SDXC卡118和/或無線接口120和/或USB接口116。
參考圖2,示出了用于生成唯一標(biāo)識值的示例性方法140的流程圖??梢酝ㄟ^照相機電路100執(zhí)行方法(或過程)140。方法140通常包括步驟(或狀態(tài))142、步驟(或狀態(tài))144、步驟(或狀態(tài))146、步驟(或狀態(tài))148、步驟(或狀態(tài))150、步驟(或狀態(tài))152、決策步驟(或狀態(tài))154、步驟(或狀態(tài))156、步驟(或狀態(tài))158、步驟(或狀態(tài))160、步驟(或狀態(tài))162、步驟(或狀態(tài))164以及步驟(或狀態(tài))166。
參考圖3,示出了示例性圖片組180的示圖。通常使用圖片組來示出照相機電路100在確定傳感器106的唯一硬件標(biāo)識值的過程中的示例性操作情形??梢詫嵤┢渌樾危詽M足特定應(yīng)用的設(shè)計標(biāo)準(zhǔn)。
返回到圖2,照相機系統(tǒng)90的初始條件組(例如,圖3中的條件A)可以是默認(rèn)設(shè)置的和/或可以是在步驟142中手動輸入的設(shè)置。所述條件可以包括但不限于光圈數(shù)或光圈(或虹膜)值、快門速度、模擬增益和/或數(shù)字增益。初始條件通常影響傳感器106所采集的圖片序列的亮度。
在步驟144中,照相機電路100可以接收來自傳感器106的圖片。在步驟146中,可以通過照相機電路100將圖片序列中的多幅圖片(例如,圖3中的圖片182a-182n)平均到一起。例如,平均操作可以由8到16幅個體圖片生成平均圖片(例如,圖3中的圖片184)。平均操作通常降低平均圖片184中的噪聲。在一些狀況下,平均操作可以是在逐像素的基礎(chǔ)上應(yīng)用的時間平均。在其他情況下,平均操作可以是圖片內(nèi)空間平均和圖片間時間平均的組合。
在通過平均操作降低了噪聲之后,照相機電路100可以在步驟148中計算多個亮度(或幅度)分布值(例如,標(biāo)準(zhǔn)偏差值和平均值)。在各實施例中,幅度分布值可以遵循正態(tài)分布(例如,高斯分布)。可以在逐像素的基礎(chǔ)上計算分布值。例如,照相機電路100可以基于圖片序列中的處于共同定位上的像素的序列來確定每個像素的平均感測值和每個像素的標(biāo)準(zhǔn)偏差值(例如,基于8幅連續(xù)圖片的序列中的8個處于共同定位上的像素的標(biāo)準(zhǔn)偏差)。在其他實施例中(例如,其中照相機系統(tǒng)90被指為空間均勻的光源或者關(guān)閉光圈),那么可以在多個區(qū)域(例如,宏塊、片層、象限等)上或者在整個平均圖片上計算分布值。
如果來自各圖片的每個感測值是獨立且隨機的,那么感測值可以遵循正態(tài)(或高斯)分布。可以通過下述公式(1)計算數(shù)量n個的感測值i之間的平均值A(chǔ)VG:
通常通過下述公式(2)計算像素值的標(biāo)準(zhǔn)偏差σ:
大部分像素值i在幅度上可以處于AVG-3σ到AVG+3σ的范圍內(nèi)。任何給定像素值處于3倍的標(biāo)準(zhǔn)偏差以內(nèi)的概率可以是百分之99.7。任何給定像素值處于4倍的標(biāo)準(zhǔn)偏差以內(nèi)的概率可以是百分之99.997。
在步驟150中,照相機電路100可以通過找到對應(yīng)的壞像素值而識別出壞像素的定位。壞像素值可以是偏離預(yù)期平均值多個(例如,3、4或更多)標(biāo)準(zhǔn)偏差的感測值??梢詫⒔南袼刂档南袼囟ㄎ环Q為壞像素定位。如圖3所示的示例中所示出的,經(jīng)平均的圖片可以具有由“X”指示的壞像素定位以及由白色指示的好像素定位??梢栽诓襟E152中將壞像素定位的圖案186存儲在存儲器(例如,存儲器110、112或118)內(nèi)的列表中。
在一些實施例中,照相機電路100通常將壞像素值識別為僅過亮的壞像素(例如,僅為比超過平均值的多個標(biāo)準(zhǔn)偏差更亮的像素值)。在尋找亮的壞像素的同時,可以通過擋光蓋覆蓋鏡頭104,可以完全或者幾乎完全關(guān)閉光圈和/或短時打開快門。在其他實施例中,照相機電路100可以將壞像素值識別為僅過暗的像素(例如,僅為比低于平均值的多個標(biāo)準(zhǔn)偏差更暗的像素值)。在尋找暗的壞像素的同時,可以將光圈完全或者幾乎完全打開,和/或可以長時間打開快門。在一些實施例中,可以將壞像素值識別為比平均值更亮的多個標(biāo)準(zhǔn)偏差的像素值以及比平均值更暗的多個標(biāo)準(zhǔn)偏差的像素值。在尋找亮的壞像素和暗的壞像素二者的同時,可以采用拍攝典型圖片的正常方式操作光圈和/或快門。在一些情況下可以使用一個或多個固定閾值來識別過亮像素值和/或過暗像素值。在各實施例中,可以針對傳感器106的溫度變化對閾值進(jìn)行補償。可以實施用于識別壞像素值的其他技術(shù),以滿足特定應(yīng)用的設(shè)計標(biāo)準(zhǔn)。
在決策步驟154中,照相機電路100可以檢查是否已經(jīng)在列表中存儲了多個(例如,8到16個)壞像素定位圖案。如果在尋找更多壞像素定位圖案的過程中應(yīng)當(dāng)檢查更多的感測條件,那么照相機電路100可以在步驟156中改變感測條件。方法140可以返回至步驟144,以使用經(jīng)調(diào)整的(新)感測條件接收另一圖片序列。方法140通常多次(例如,2到10次)從步驟144循環(huán)到步驟156,并且回到步驟144。
在最終的循環(huán)(例如,圖3中的條件N)中,可以在步驟144中由照相機電路100接收所接收到的圖片。可以在步驟146中將各圖片(例如,圖3中的圖片188a-188n)平均起來,以形成最終的平均圖片(例如,圖3中的圖片190)。照相機電路100可以在步驟148中計算最終的平均圖片190的多個分布值。在步驟150中,照相機電路100可以識別出最終的壞像素定位(例如,圖3中的壞像素定位圖案192)??梢栽诓襟E152中將最終的壞像素定位添加到存儲在存儲器中的列表。
一旦已經(jīng)將幾個壞像素定位圖案添加到列表中,照相機電路100就可以在步驟158中從存儲器110、112和/或118讀取整個列表??梢栽诓襟E160中對列表中的壞像素定位圖案進(jìn)行過濾,以從列表中去除不穩(wěn)定的壞像素定位。一般而言,可以通過過濾操作從列表中去除在一些、但并非大部分或全部壞像素定位圖案中被限定為壞像素定位的像素定位??梢员4嬖诟鞣N感測條件(例如,圖3中的條件A到條件N)下均一貫地生成壞值(或壞感測像素值)的像素定位??梢詣h除未能一貫地生成壞值的像素定位??梢栽诓襟E162中通過照相機電路100將經(jīng)過濾的壞像素定位圖案(例如,圖3中的圖案194)寫入到存儲器(例如,存儲器112或118)中。
在步驟164中,照相機電路100可以對壞像素定位圖案(或壞像素列表)進(jìn)行處理,以生成唯一標(biāo)識值??梢酝ㄟ^對壞像素定位圖案的壞像素定位執(zhí)行散列運算(或函數(shù))來完成處理。在各實施例中,散列運算可以包括但不限于MD5散列運算和安全散列算法,安全散列算法包括安全散列算法-1散列系列、安全散列算法-2散列系列、安全散列算法-3散列系列、以及安全散列算法-256散列運算(在安全散列算法-2系列中)??梢詫嵤┢渌⒘羞\算,以滿足特定應(yīng)用的設(shè)計標(biāo)準(zhǔn)??梢栽诓襟E166中將所得到的唯一標(biāo)識值(例如,圖3中的值196)寫入到存儲器(例如,112或118)中。
參考圖4,示出了用于傳感器的物理完整性檢查的示例性方法200的流程圖??梢酝ㄟ^照相機電路100實施方法(或過程)200。方法200通常包括方法140、步驟(或狀態(tài))202、步驟(或狀態(tài))204、決策步驟(或狀態(tài))206、步驟(或狀態(tài))208以及步驟(或狀態(tài))210。
照相機電路100可以最初使用方法140確定傳感器106的當(dāng)前壞像素定位圖案??梢詫?dāng)前壞像素定位圖案存儲在當(dāng)前最差且相對穩(wěn)定的壞像素列表中。在步驟202中,可以從存儲器中讀出早前由照相機電路100所確定并存儲的先前已知的壞像素定位圖案。可以將已知的壞像素定位圖案存儲在已知最差且相對穩(wěn)定的壞像素列表中。
可以在步驟204中將當(dāng)前壞像素定位圖案與已知的壞像素定位圖案進(jìn)行比較。如果當(dāng)前壞像素定位圖案和已知的壞像素定位圖案是相似的,那么照相機電路100可以得出這樣的結(jié)論,即,來自用于確定當(dāng)前壞像素定位圖案的傳感器元件106的數(shù)據(jù)與用于在較早時間(例如,在制造測試和/或校準(zhǔn)期間)確定已知的壞像素定位圖案的傳感器106是相同的。接下來,照相機電路100可以在步驟208中指示已經(jīng)通過了傳感器物理完整性檢查。如果當(dāng)前壞像素定位圖案和已知的壞像素定位圖案不相似,那么照相機電路100可以得出這樣的結(jié)論,即,用于生成當(dāng)前壞像素定位圖案的傳感器106與用于生成已知的壞像素定位圖案的傳感器106是不同的。照相機電路100可以在步驟210中指示傳感器106的物理和/或電氣變化。
通常存在這樣的問題,即,即使傳感器106沒有發(fā)生物理和電氣變化,從像素值感測到的當(dāng)前壞像素定位圖案也會隨著時間的推移而變化。當(dāng)前壞像素定位圖案可能隨著不同的內(nèi)部和/或外部因素而變化,所述因素例如但不限于環(huán)境溫度、芯片老化以及隨機電路熱噪聲。盡管傳感器106保持相同,但是每當(dāng)生成當(dāng)前壞像素定位圖案時,如果直接由壞像素定位圖案生成對應(yīng)的唯一硬件標(biāo)識值,那么結(jié)果仍然可能是不同的??紤]到所述因素,傳感器106的每個當(dāng)前壞像素定位圖案可以根據(jù)不同的外部因素而發(fā)生變化,但是所述變化通常是有限的。
為了解決時變的當(dāng)前壞像素定位圖案的問題,照相機電路100通常采用過濾操作(例如,圖2中的步驟160)來建立最差且相對穩(wěn)定的壞像素列表及相關(guān)聯(lián)的信息。列表中的壞像素可以具有顯著偏離預(yù)期平均(或中間或中位數(shù))亮度值的亮度值,并且保持相對穩(wěn)定。不同的個體傳感器106的壞像素定位圖案可以不同,但是其差別通常是有限的??梢栽诒容^步驟204中使用具有相似度閾值的裁斷,以考慮時變的壞像素定位圖案。本發(fā)明的各種實施例可以將相似度定義為傳感器106中的具有相同物理位置和/或電氣位置的壞像素定位的百分比。在一些實施例中,相似度閾值可以約為百分之50??梢允褂孟嗨贫乳撝档闹祦砼袛噙M(jìn)行比較的兩個壞像素列表具有小于閾值的相似度還是大于閾值的相似度。
為了相對于閾值確定相似度的概率估值,考慮傳感器106總共具有n個像素并且具有m個壞像素,而且每個像素獨立于所有其他像素的情況??梢酝ㄟ^下述公式(3)計算兩個物理上不同的傳感器106具有超過m/2個共同的壞像素的概率P:
考慮如下示例性情況,其中,進(jìn)行比較的每個傳感器的分辨率為1920×1080像素,值n=1920×1080=2073600個總像素,并且假設(shè)m=40個壞像素定位。根據(jù)公式(3),兩個不同的傳感器具有超過百分之50的共同的壞像素位置(在40個壞像素位置中有20個共同的壞像素位置是相同的)的概率約為百分之4.48×10-86。在根據(jù)實驗的實際情況下,CMOS類型的傳感器可以具有大于1920×1080像素的分辨率,并且可以具有40個以上的壞像素定位。所得到的找到百分之50的共同壞像素定位的概率通常比示例性情況中的小。
對于來自同一傳感器的兩個不同壞像素定位圖案而言,假設(shè)每個壞像素表現(xiàn)得像正常像素的概率為p,表現(xiàn)得像壞像素的概率為1-p。根據(jù)二項式分布,如果系統(tǒng)具有n個元件,其中每個元件是獨立的,每個元件處于狀態(tài)a的概率為p,處于另一狀態(tài)b的概率為1-p,那么系統(tǒng)遵循二項式分布??梢酝ㄟ^下述公式(4)計算m個元件處于狀態(tài)a而n-m個元件處于狀態(tài)b的概率X:
可以通過下述公式(5)計算m/2個以上的壞像素表現(xiàn)得像正常像素的概率Y:
考慮m=40并且p=百分之5(0.05)的示例性情況。一半的壞像素表現(xiàn)得像正常像素的概率可以小于大約百分之2.7×10-17。在實際情況下,最差且相對穩(wěn)定的壞像素列表中的一些壞像素可以一貫地充當(dāng)壞像素。因此,壞像素表現(xiàn)得像正常像素的概率p小于百分之5,因此一半的壞像素表現(xiàn)得像正常像素的概率可以比在示例性情況中小。換言之,來自同一傳感器106的兩個最差且相對穩(wěn)定的壞像素列表相同的概率可以接近百分之100。
參考圖5,示出了用于數(shù)據(jù)完整性檢查的示例性方法220的流程圖??梢栽谡障鄼C電路100中實施方法(或過程)220。方法220通常包括方法200、步驟(或狀態(tài))222、步驟(或狀態(tài))224、步驟(或狀態(tài))226、步驟(或狀態(tài))228、決策步驟(或狀態(tài))230、步驟(或狀態(tài))232以及步驟(或狀態(tài))234。方法220可以是有用的,其中,壞像素列表和唯一硬件標(biāo)識值存儲在不同的存儲器(例如,存儲器112和118)中。
照相機電路100可以最初執(zhí)行傳感器物理完整性測試200,以判斷傳感器106是否相同。如果傳感器106未發(fā)生變化,那么照相機電路100可以在步驟222中從存儲器(例如,存儲器112或118)讀取先前已知的壞像素定位圖案。在步驟224中,通常對先前已知的壞像素定位圖案執(zhí)行散列運算,以計算當(dāng)前唯一硬件標(biāo)識值。在步驟226中,可以從其他存儲器(例如,存儲器118或112)讀取先前已知的唯一硬件標(biāo)識值。
在步驟228中可以通過照相機電路100執(zhí)行對兩個唯一硬件標(biāo)識值的比較。如果根據(jù)決策步驟230兩個標(biāo)識值是相同的,那么照相機電路100可以在步驟232中指示在步驟232中已經(jīng)通過了數(shù)據(jù)完整性檢查。如果兩個標(biāo)識值是不同的,那么照相機電路100可以在步驟234中指示存儲器112和/或118的至少其中之一已經(jīng)發(fā)生了物理和/或電氣變化。
例如,可以將已知的最差且相對穩(wěn)定的壞像素列表存儲在照相機系統(tǒng)90的非易失性存儲器112中,并且可以將已知的唯一硬件標(biāo)識值存儲在可移除非易失性存儲卡118中。接下來,可以將照相機系統(tǒng)90所采集的圖片和/或視頻存儲在存儲卡118中。在從照相機系統(tǒng)90移除存儲卡118時,存儲卡118包含圖片/視頻和指示圖片/視頻的來源的唯一硬件標(biāo)識值二者。
如果使存儲卡118返回至照相機系統(tǒng)90,那么照相機系統(tǒng)90恢復(fù)初始硬件配置,并且數(shù)據(jù)完整性檢查可以得出存儲器112和118未改變的結(jié)論。如果將不同的存儲卡118安裝在照相機系統(tǒng)90中,那么數(shù)據(jù)完整性檢查可以得出存儲卡118不同的結(jié)論。此后,照相機電路100可以根據(jù)存儲器112中的最差且相對穩(wěn)定的壞像素列表來重新計算唯一硬件標(biāo)識值,并將重新計算的唯一硬件標(biāo)識值存儲在新的存儲卡118中。
參考圖6,示出了用于生成復(fù)雜唯一硬件標(biāo)識值的示例性方法240的流程圖??梢酝ㄟ^照相機電路100實施方法(或過程)240。方法240通常包括步驟(或狀態(tài))242、步驟(或狀態(tài))244、步驟(或狀態(tài))246以及步驟(或狀態(tài))248。
在步驟242中,照相機電路100可以確定傳感器106的當(dāng)前唯一硬件標(biāo)識值。步驟242中的確定可以使用在步驟164中具有散列運算A的方法140(圖2)。在步驟242之后或者與步驟242同時,照相機電路100可以在步驟244中確定傳感器106的額外的唯一硬件標(biāo)識值。步驟244中的確定可以使用在步驟164中具有不同的散列運算B的方法140(圖2)??梢栽诓襟E246中將兩個唯一硬件標(biāo)識值相互合并,以產(chǎn)生復(fù)雜的(新的當(dāng)前)唯一硬件標(biāo)識值。利用兩種不同的散列函數(shù)并且隨后將結(jié)果合并通常降低標(biāo)識值沖突的概率??梢栽诓襟E248中將合并的唯一硬件標(biāo)識值存儲在存儲器中。
步驟246中的合并操作可以實施若干數(shù)學(xué)和/或邏輯運算中的一者或多者。例如,可以通過安全散列函數(shù)SHA-256以及安全散列函數(shù)MD5對64字節(jié)數(shù)據(jù)塊進(jìn)行處理,以生成32個數(shù)據(jù)字節(jié)和16個字節(jié)的散列摘要,即總共48個字節(jié)。將兩個散列結(jié)果附加到一起可以創(chuàng)建48字節(jié)值,其通常提供大約248=2.8×1014個可能值。將48字節(jié)散列值與另一16字節(jié)自定義數(shù)據(jù)附加到一起通常產(chǎn)生64字節(jié)唯一標(biāo)識值,其提供264=1.8×1019個可能值。在另一個示例中,根據(jù)步驟246,可以對步驟242的散列結(jié)果進(jìn)行邏輯XOR運算、相加、相減或者使之與步驟244的散列結(jié)果相乘??梢詫蓚€散列值實施其他類型的組合運算,以滿足特定應(yīng)用的設(shè)計標(biāo)準(zhǔn)。
參考圖7,示出了用于生成數(shù)字簽名的示例性方法260的流程圖??梢酝ㄟ^照相機電路100實施方法(或過程)260。方法260通常包括步驟(或狀態(tài))262、決策步驟(或狀態(tài))264、步驟(或狀態(tài))266、步驟(或狀態(tài))268以及步驟(或狀態(tài))270。
照相機電路100可以在步驟262中檢查傳感器106的變化。在一些實施例中,步驟262可以包括傳感器物理完整性檢查方法200。在決策步驟264中,照相機電路100可以判斷傳感器106是否保持不變。如果照相機電路100確定傳感器106發(fā)生了變化,那么照相機電路100可以在步驟266中指示傳感器106的物理和/或電氣變化,而不為傳感器106生成數(shù)字簽名。如果照相機電路100確定傳感器106未發(fā)生變化,那么照相機電路100可以在步驟268中由唯一硬件標(biāo)識值和私有數(shù)字秘鑰計算數(shù)字簽名值。在步驟270中,照相機電路100可以將數(shù)字簽名值用于對網(wǎng)絡(luò)(例如,無線網(wǎng)絡(luò))上的安全連接進(jìn)行驗證。
數(shù)字簽名值可以在網(wǎng)絡(luò)(例如因特網(wǎng))上為照相機系統(tǒng)90提供安全標(biāo)識符。一般而言,只有私有秘鑰所有者(例如,照相機電路100)可以生成對應(yīng)的數(shù)字簽名,并且只有傳感器106可以通過傳感器物理完整性檢查。任何有公共秘鑰的人都可以相對于所述唯一硬件標(biāo)識值對數(shù)字簽名進(jìn)行核實。驗證通常確保所導(dǎo)出的通信信道具有高安全級,其可以例如避免潛在的中間人攻擊。
對于相關(guān)領(lǐng)域技術(shù)人員而言顯而易見的是,可以使用根據(jù)本說明書的教導(dǎo)進(jìn)行編程的常規(guī)通用處理器、數(shù)字計算機、微處理器、微控制器、分布式計算機資源和/或類似的計算機器中的一個或多個來對圖1到圖7的示圖中所示的功能和結(jié)構(gòu)進(jìn)行設(shè)計、建模、仿真和/或模擬。對于相關(guān)領(lǐng)域技術(shù)人員而言顯而易見的是,熟練程序員可以基于本公開的教導(dǎo)容易地制備適當(dāng)?shù)能浖?、固件、編碼、例程、指令、操作碼、微碼和/或程序模塊。通常將軟件體現(xiàn)成一種或幾種介質(zhì)(例如,非暫態(tài)存儲介質(zhì)),并且可以通過處理器中的一個或多個來順次或同時執(zhí)行所述軟件。
還可以在專用集成電路、現(xiàn)場可編程門陣列、可編程邏輯器件、復(fù)雜可編程邏輯器件、門海、專用標(biāo)準(zhǔn)產(chǎn)品和集成電路中的一者或多者中實施本發(fā)明的實施例??梢曰谝环N或多種硬件描述語言來實施電路??梢越Y(jié)合閃速存儲器、非易失性存儲器、隨機存取存儲器、只讀存儲器、磁盤、軟盤、諸如數(shù)字通用盤(或數(shù)字視頻盤)和數(shù)字通用盤隨機存取存儲器的光盤、磁光盤和/或分布式存儲系統(tǒng)來對本發(fā)明的實施例加以利用。
術(shù)語“可以”和“通常”在文中與系動詞和動詞結(jié)合使用時意在傳達(dá)如下意圖,即,描述是示例性的,并且應(yīng)當(dāng)被認(rèn)為具有足夠?qū)挿旱暮x,以包含在本公開中介紹的具體示例、以及可以基于本公開來導(dǎo)出的替代示例二者。文中使用的術(shù)語“可以”和“通?!辈粦?yīng)被解釋為一定暗示省略對應(yīng)元件的預(yù)期或可能。
盡管已經(jīng)參考本發(fā)明的實施例對本發(fā)明進(jìn)行了詳盡的圖示和描述,但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,可以做出形式和細(xì)節(jié)上的各種變化,而不脫離本發(fā)明的范圍。