胡 星,鄺繼順,李少青
(1.湖南大學(xué)信息科學(xué)與工程學(xué)院, 湖南 長(zhǎng)沙 410082;2.國(guó)防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院,湖南 長(zhǎng)沙 410073)
GDSII圖片生成與校正*
胡 星1,鄺繼順1,李少青2
(1.湖南大學(xué)信息科學(xué)與工程學(xué)院, 湖南 長(zhǎng)沙 410082;2.國(guó)防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院,湖南 長(zhǎng)沙 410073)
隨著芯片設(shè)計(jì)、生產(chǎn)環(huán)節(jié)的增多,芯片中存在硬件木馬的可能性越來越高,對(duì)于安全性要求較高的芯片就需要對(duì)其進(jìn)行硬件木馬檢測(cè)。反向解剖芯片并將其與原始GDSII文件進(jìn)行一致性比對(duì)是檢測(cè)芯片是否被植入硬件木馬的主要方法之一。而從GDSII文件生成與反向解剖芯片的照片一一對(duì)應(yīng)的圖片(后面統(tǒng)稱為GDSII圖片)是木馬分析的重要步驟,為此提出了兩點(diǎn)定位算法對(duì)GDSII圖片進(jìn)行分割;同時(shí),針對(duì)芯片照相和拼接過程中存在圖片信息位置偏移的問題,提出了一種基于偏差統(tǒng)計(jì)的校正算法。經(jīng)過工程實(shí)際應(yīng)用證明,該算法較好地校正了GDSII圖片與芯片照片的偏差,消除了因?yàn)閳D片信息位置偏移所帶來的影響。
GDSII;圖片;生成;校正
現(xiàn)階段我國(guó)部分自主芯片是在國(guó)外生產(chǎn)制造,不能排除被惡意植入有害邏輯或硬件木馬的可能,硬件木馬將成為未來國(guó)家間打擊對(duì)手的秘密武器[1],因此需要對(duì)芯片進(jìn)行硬件木馬分析檢測(cè)。物理檢查[2]是最常見的一種硬件木馬檢查方法,它本質(zhì)上是一種基于失效分析的技術(shù),屬于破壞性的木馬檢測(cè)手段。將流片后的芯片進(jìn)行解剖照相,提取照相圖片中的金屬線圖案,與從GDSII文件提取的圖片作比較,標(biāo)注出照相圖片與GDSII圖片之間差異圖案的形狀位置,以備技術(shù)人員對(duì)其進(jìn)行分析,驗(yàn)證其是否為有害邏輯或木馬。
但是,研究發(fā)現(xiàn),當(dāng)芯片的全部信息存在于一整張照片中時(shí),其處理結(jié)果無法準(zhǔn)確地對(duì)信息不同的位置進(jìn)行定位。因此,本文采用將解剖照相的圖片與GDSII圖片進(jìn)行分割的方法,即把解剖芯片得到的照相圖片拼接后再重新將整個(gè)芯片照相圖片切分成很多個(gè)小塊圖片,同時(shí)將GDSII圖片生成與小塊圖片一一對(duì)應(yīng)的圖片,將兩者進(jìn)行一致性比對(duì)。
對(duì)于芯片的解剖和照相工作,已有專門的公司對(duì)其進(jìn)行處理,可得到切分的芯片照相圖片。但是,本文的數(shù)據(jù)只有GDSII文件生成的整個(gè)芯片的圖片,需要在它的基礎(chǔ)上生成與切分的芯片照相圖片一一對(duì)應(yīng)的GDSII圖片。針對(duì)此問題,本文提出了兩點(diǎn)定位切圖算法進(jìn)行GDSII圖片生成;同時(shí),針對(duì)位置偏移的問題,本文提出了一種基于偏差統(tǒng)計(jì)的校正算法,最終生成校正好的GDSII圖片,使得硬件木馬分析檢測(cè)能夠施行。
芯片照片是jpg格式的,其信息與像素相關(guān)的,而GDSII的信息則與物理坐標(biāo)相關(guān)。兩者文件格式不一樣,因此應(yīng)知道像素與物理坐標(biāo)之間的關(guān)系。本算法首先要確定兩對(duì)坐標(biāo),一是確定芯片照片中的任意兩點(diǎn)在整個(gè)芯片照片中的坐標(biāo),二是與上述兩點(diǎn)相對(duì)應(yīng)的EDA軟件GDSII圖形界面中的物理坐標(biāo),利用這些坐標(biāo)找出照片與GDSII之間的對(duì)應(yīng)關(guān)系,從而算出每張芯片小照片對(duì)應(yīng)在EDA中GDSII的區(qū)域范圍,并將此區(qū)域范圍切割下來形成圖片,最終得到一一對(duì)應(yīng)的目標(biāo)GDSII小圖片。
芯片的解剖照片采用的命名方式如圖1a所示。圖1a中芯片照片由m行、n列組成,照相圖片采用的命名方式為a_b.jpg,其中a和b分別代表照片所在的行和列。
Figure 1 Naming of photographic images and the two points found in the images圖1 照相圖片的命名方式與芯片照片中尋找到的兩點(diǎn)
設(shè)定照相圖片的像素坐標(biāo)系如圖2a所示,其坐標(biāo)原點(diǎn)處于坐標(biāo)系左下角。然而在EDA中打開的GDSII圖形界面中,GDSII物理坐標(biāo)系的坐標(biāo)原點(diǎn)可能出現(xiàn)在圖像的內(nèi)部,如圖2b所示。
Figure 2 The pixel coordinate system of photographic image and physics image coordinate system of GDSII picture in EDA圖2 照相圖片中的像素坐標(biāo)系與EDA中GDSII物理坐標(biāo)系
根據(jù)兩坐標(biāo)系間的區(qū)別與聯(lián)系,確定算法步驟如下:
(1)根據(jù)不同兩點(diǎn)算出照相圖片對(duì)應(yīng)的物理坐標(biāo)寬度。為了縮小累計(jì)誤差,分別在芯片照片中的左下角和右上角找到兩點(diǎn),如圖1b中的點(diǎn)phy_imga和點(diǎn)phy_imgb。同時(shí)定義點(diǎn)的數(shù)據(jù)結(jié)構(gòu)為:
structphy_img{
intimg_x;/*該點(diǎn)在芯片照相圖片中x軸的像素坐標(biāo)*/
intimg_y;/*該點(diǎn)在芯片照相圖片中y軸的像素坐標(biāo)*/
doublephy_x;/*該點(diǎn)在GDSII中x軸的物理坐標(biāo)*/
doublephy_y;/*該點(diǎn)在GDSII中y軸的物理坐標(biāo)*/}
記錄這兩點(diǎn)的四個(gè)值img_x、img_y、phy_x和phy_y,分別生成結(jié)構(gòu)體phy_imga和phy_imgb,計(jì)算出照相圖片對(duì)應(yīng)的物理坐標(biāo)寬度為:
(2)算出照相圖片的原點(diǎn)對(duì)應(yīng)的物理坐標(biāo):
origin_x= phy_imga.phy_x-
phy_imga.imgx*pixel_x
origin_y= phy_imga.phy_y-
phy_imga.imgy*pixel_y
(3)根據(jù)照相圖片對(duì)應(yīng)的物理坐標(biāo)和照相圖片像素點(diǎn)對(duì)應(yīng)的物理寬度算出任意一張GDSII圖片的左下角點(diǎn)的物理坐標(biāo)和右上角點(diǎn)對(duì)應(yīng)的物理坐標(biāo)。
(4)根據(jù)每張相片對(duì)應(yīng)的左下角物理點(diǎn)和右上角物理點(diǎn)在GDSII中進(jìn)行切割,并分別以照片相應(yīng)名字進(jìn)行命名,最終生成與芯片照相圖片一一對(duì)應(yīng)的GDSII圖片,圖3為切割后的一組圖片。
Figure 3 Segmental photographic image and corresponding GDSII picture圖3 切割后的照片與相對(duì)應(yīng)的GDSII圖片
很明顯,在圖3中,照片與GDSII圖之間存在嚴(yán)重偏差(由虛框標(biāo)出),這主要是由于照相和拼接照片不精確造成的。如果用此圖進(jìn)行匹配,可能無法得到滿意結(jié)果,所以必須調(diào)整。因?yàn)樾酒掌瑘D片已經(jīng)固定,無法調(diào)整,所以針對(duì)此情況,本文根據(jù)照相圖片與GDSII圖片間的偏差對(duì)GDSII圖片進(jìn)行校正,從而得到對(duì)應(yīng)較少偏差的GDSII圖片。
針對(duì)圖片偏差現(xiàn)象,應(yīng)對(duì)GDSII圖片進(jìn)行校正。算法原理:由于兩點(diǎn)切圖算法只確定了照片的兩個(gè)點(diǎn)進(jìn)行定位再切圖,所以精度不夠。因此,可以通過對(duì)照相圖片和GDSII進(jìn)行細(xì)粒度的校正,最終提高照相圖片和GDSII圖片對(duì)準(zhǔn)的精度。該算法是對(duì)每組圖片進(jìn)行細(xì)粒度的基于偏差統(tǒng)計(jì)的校正,目標(biāo)是將GDSII圖片移動(dòng)到與之對(duì)應(yīng)的照相圖片一致的位置上。通過該處理,使比對(duì)精度更高。
GDSII圖片是二值化圖片,其中包含的信息有金屬線與背景,其中金屬線用黑色表示,背景用白色表示。為方便校正,需要將照相圖片進(jìn)行預(yù)處理,把金屬線從圖片中提取出來,將其轉(zhuǎn)化成二值化圖片。本文利用文獻(xiàn)[3]中的相關(guān)算法得到二值化的照相圖片。具體算法如下:
(1)將二值化的照相圖片與相對(duì)應(yīng)的GDSII圖片的每個(gè)坐標(biāo)點(diǎn)的像素值作差,若差的絕對(duì)值大于128個(gè)像素,就將該位置的像素值置為黑色,否則置為白色,由此得到作差圖。以圖3中的一組圖片為例,已將二值化的照相圖片與相對(duì)應(yīng)的GDSII圖片之間的偏差置為黑色,如圖4所示。
Figure 4 Image subtraction between binary photographic image and GDSII image圖4 二值化照相圖片與GDSII圖片的作差圖
(2)將上一步驟得到的作差圖分塊。用八鄰域搜索的方法,將作差圖中的各個(gè)連通區(qū)域標(biāo)記為不同的塊,得到分塊圖片,便于之后的偏差統(tǒng)計(jì)。以圖4為例,用該方法將其轉(zhuǎn)換成標(biāo)記為4個(gè)塊的圖片,由此將從上到下的各個(gè)黑色區(qū)域分別記為塊1、塊2、塊3和塊4。
(3)統(tǒng)計(jì)水平方向和垂直方向的偏差。由于金屬線的最小線寬為8個(gè)像素,因此需統(tǒng)計(jì)步驟(2)得到的圖片中小于8個(gè)像素的塊的平均寬度。若寬度大于8個(gè)像素,即GDSII圖片與照相圖片之間的偏差可能是一條金屬線,則認(rèn)為GDSII圖片與照相圖片存在不同,沒有匹配上,需進(jìn)一步判斷該不同是否為有害邏輯或者硬件木馬,因此這種情況就不需要對(duì)GDSII圖片進(jìn)行校正。拍照過程中的灰塵或沒對(duì)準(zhǔn)焦距等的影響使得拍照?qǐng)D片質(zhì)量不好,導(dǎo)致所得到的的二值化圖片中有可能出現(xiàn)金屬線邊沿模糊、灰塵誤被認(rèn)為是金屬線等現(xiàn)象,會(huì)對(duì)偏差統(tǒng)計(jì)造成干擾。為排除這些干擾,統(tǒng)計(jì)時(shí)只將滿足一定條件的塊納入統(tǒng)計(jì)范圍。以垂直方向的偏差統(tǒng)計(jì)為例。在統(tǒng)計(jì)時(shí),對(duì)每一塊按列遍歷,統(tǒng)計(jì)每塊中第三列之后的每一列黑色區(qū)域的點(diǎn)的個(gè)數(shù),記為count。其中將前三列忽略是因?yàn)橐话闱闆r下拍照?qǐng)D片中金屬線邊沿模糊。若0 (4)判斷移動(dòng)的方向:水平方向是向左還是向右,垂直方向是向上還是向下。以垂直方向?yàn)槔?。找到步驟(2)得到的圖片中某個(gè)不在邊界上的塊,若該塊在GDSII圖片相應(yīng)位置上屬于金屬線而在照相圖片相應(yīng)位置上屬于背景,則找到該塊的最左上的坐標(biāo)點(diǎn),其坐標(biāo)假設(shè)為(x,y),判斷該點(diǎn)的上邊一個(gè)坐標(biāo)點(diǎn)即(x,y-1),若照相圖片在該坐標(biāo)點(diǎn)屬于金屬線,則GDSII圖片應(yīng)向上移,若屬于背景則向下移;若作差得到的塊在GDSII圖片相應(yīng)位置上屬于背景而在照相圖片相應(yīng)位置上屬于金屬線,則找到該塊的最左上的坐標(biāo)點(diǎn),其坐標(biāo)假設(shè)為(x,y),判斷該點(diǎn)的上邊一個(gè)坐標(biāo)點(diǎn)即(x,y-1),若GDSII圖片在該坐標(biāo)點(diǎn)屬于金屬線,則GDSII圖片應(yīng)向下移,若屬于背景則向上移。水平方向的判斷與垂直方向的判斷類似。以圖4為例,因步驟(3)得出只有垂直方向的偏差,故只考慮垂直方向是向上還是向下移動(dòng)。找到圖4中不在邊界的塊1,其左上角點(diǎn)的坐標(biāo)為(490,57),而該塊在照相圖片相應(yīng)位置上屬于金屬線而在GDSII圖片相應(yīng)位置上屬于背景。對(duì)于該點(diǎn)上邊的坐標(biāo)點(diǎn)(490,57-1),即(490,56),GDSII圖片在該坐標(biāo)點(diǎn)屬于背景,則判斷移動(dòng)方向?yàn)橄蛏稀?/p> (5)判斷是否滿足移動(dòng)條件。若分塊的作差圖中沒有滿足條件的塊,即統(tǒng)計(jì)不出移動(dòng)距離,則不需要對(duì)GDSII圖片進(jìn)行移動(dòng);若作差圖中有滿足條件的塊,則根據(jù)步驟(3)和步驟(4)所求得的距離和方向,將GDSII圖片進(jìn)行移動(dòng),從而使偏差消除。以圖4為例,將GDSII圖片向上移動(dòng)7個(gè)像素就能與相對(duì)應(yīng)的照相圖片比對(duì)上,如圖5所示。 Figure 5 Photographic image and the revised GDSII picture圖5 照相圖片與校正后的GDSII圖片 本文針對(duì)硬件木馬分析檢測(cè)步驟中的GDSII圖片生成提出了一種基于兩點(diǎn)切圖的算法,該算法能夠?qū)⒁徽麖圙DSII圖片生成一張張與照相圖片一一對(duì)應(yīng)的小塊圖片。但生成的這些圖片與照相圖片存在偏差,針對(duì)這個(gè)問題又提出了基于偏差統(tǒng)計(jì)的算法來校正GDSII圖片。本文提出的算法已應(yīng)用于實(shí)際工程中,對(duì)多款芯片的GDSII圖片進(jìn)行了切割與校正,結(jié)果表明GDSII圖片的生成算法與校正算法能很好地完成GDSII圖片的生成與校正,使得后續(xù)的硬件木馬分析檢測(cè)工作能夠順利實(shí)現(xiàn)。 [1] ADEE S. The hunt for the kill swich[J]. IEEE Spectrum, 2008,45(5):34-39. [2] Chip security-hardware trojan detection technology[EB/OL].[2013-04-25].http://www.ceprei.com/ceprei_system/News_View.asp?NewsID=511.(in Chinese) [3] Wang Wei, Zhang Min, Zhu Qing-shan, et al. An IP-tort identify method based on chip anti-project photos[C]∥Proc of the 16th Annual Conference on Computer Engineering and Technology and Microprocessor Technology Forum,2012:353-358.(in Chinese) 附中文參考文獻(xiàn): [2] 芯片安全性——硬件木馬檢測(cè)技術(shù)[EB/OL].[2013-04-25].http://www.ceprei.com/ceprei_system/News_View.asp?NewsID=511. [3] 王偉,張民,朱青山,等.一種基于芯片解剖照片的IP核侵權(quán)鑒定方法[C]∥第十六屆計(jì)算機(jī)工程與工藝年會(huì)暨第二屆微處理器技術(shù)論壇論文集,2012:353-358. HUXing,born in 1989,MS,CCF member(E200034039G),her research interest includes IC testing. 鄺繼順(1959-),男,湖南永興人,博士,教授,CCF會(huì)員(E20-0005331S),研究方向?yàn)榧呻娐窚y(cè)試。E-mail:jshkuang@hotmail.com KUANGJi-shun,born in 1959,PhD,professor,CCF member(E20-0005331S),his research interest includes IC testing. RevisionofdeviationbetweenthepicturesgeneratedfromGDSIIdataandthephotosofdie HU Xing1,KUANG Ji-shun1,LI Shao-qing2 (1.College of Information Science and Engineering,Hunan University, Changsha 410082;2.College of Computer,National University of Defense Technology,Changsha 410073,China) As the steps for the design and manufacture of the die increase, it is more and more possible to have hardware Trojans implanted in the chip. So it is necessary to detect the hardware Trojans for the die, especially with high security requirements. Reversely anatomizing the die and comparing it with the original GDSII file on the consistency is one of the main methods to test whether the die has been implanted hardware Trojans or not. It is an important step to generate the pictures from the GDSII file and make the pictures correspond to the photos which are got by reversely anatomizing the die. Therefore, we propose a two-point position algorithm for the segmentation of GDSII pictures. Meanwhile, for the position offset of the picture information generated in the process of taking photos of die and splicing, we propose a correction algorithm based on deviation statistics. Engineer practical application proves that the algorithm revises the deviation between the pictures generated from GDSII file and the photos of the die well. And it eliminates the impact from the position offset of the picture information. GDSII;pictures;generation;revise 2013-06-15; :2013-09-18 超級(jí)計(jì)算機(jī)處理器研發(fā)(2013ZX01028001-002);核高基重大專項(xiàng)資助項(xiàng)目(2012ZX01027004-003) 1007-130X(2014)02-0222-04 TN407 :A 10.3969/j.issn.1007-130X.2014.02.006 胡星(1989-),女,江西贛州人,碩士,CCF會(huì)員(E200034039G),研究方向?yàn)榧呻娐窚y(cè)試。E-mail:huxing890521@hnu.edu.cn 通信地址:410082 湖南省長(zhǎng)沙市湖南大學(xué)信息科學(xué)與工程學(xué)院Address:College of Information Science and Engineering,Hunan University,Changsha 410082,Hunan,P.R.China4 結(jié)束語(yǔ)