发明名称 以保护位元码对一程式进行加密保护之装置
摘要 本发系提出一种以保护位元码对一程式进行加密保护之装置,该程式具有复数之指令(P为正整数),该装置包含一保护位元码产生装置、一第一保护位元码位置产生装置及一保护位元码插入装置。该保护位元码产生装置系依据该程式之复数指令以产生复数个保护位元码,该复数个指令具有复数个位元I(I为正整数);第一保护位元码位置产生装置依据执行该程式时之处理器状态以产生该复数个保护位元妈的复数个插入位置N(N为正整数);该保护位元码插入装置依据该第一保护位元码位置产生装置所产生之插入位置N,分别将该复数个保护位元码插入该程式之复数指令之第N-1与第 N位元之中,以产生一加密之程式。
申请公布号 TWI221966 申请公布日期 2004.10.11
申请号 TW092123814 申请日期 2003.08.28
申请人 凌阳科技股份有限公司 发明人 梁伯嵩
分类号 G06F12/14 主分类号 G06F12/14
代理机构 代理人 吴冠赐 台北市松山区敦化北路一○二号九楼;林志鸿 台北市松山区敦化北路一○二号九楼;杨庆隆 台北市松山区敦化北路一○二号九楼
主权项 1.一种以保护位元码对一程式进行加密保护之装置,该程式具有复数个指令,每一指令具有I位元(I为正整数),该装置包含:一保护位元码产生装置,系依据该程式之复数个指令以产生对应之复数个保护位元码,每一保护位元码具有P个位元(P为正整数);一第一保护位元码位置产生装置,其依据执行该程式时之处理器状态以产生每一保护位元码的插入位置N(N为正整数);以及一保护位元码插入装置,系依据该第一保护位元码位置产生装置所产生之插入位置N,分别将每一保护位元码插入该程式之对应指令之第N-1与第N位元之中,以产生一加密之程式。2.如申请专利范围第1项所述之装置,其更包含:一第二保护位元码位置产生装置,其依据执行该程式时之处理器状态以产生每一保护位元码的插入位置N;以及一保护位元码去除装置,系输入该程式,并依据该第二保护位元码位置产生装置所产生之插入位置N,以将该程式之对应指令之第N位元去除。3.如申请专利范围第2项所述之装置,其中,该第一及第二保护位元码位置产生装置系依据执行该程式时之处理器状态以产生插入位置,每一第一及第二保护位元码位置产生装置包含:一位置状态暂存器,用以指示该处理器系存取资料区段或是存取程式区段;一程式状态暂存器,用以指示该处理器所处之状态;复数个插入位置产生装置,依据其预定之功能以产生插入位置;以及一多工器,其具有复数个输入端,以耦合至该复数个插入位置产生装置之输出端,并依据该位置状态暂存器及该程式状态暂存器,由复数个输入端中选择一插入位置以做为输出。4.如申请专利范围第3项所述之装置,其中,该复数个插入位置产生装置可为一空装置,以表示无插入位置。5.如申请专利范围第3项所述之装置,其中,该复数个插入位置产生装置可将一给定値经由函数运算以产生插入位置。6.如申请专利范围第3项所述之装置,其中,该复数个插入位置产生装置可将一第一给定値减去经由函数运算之一第二给定値,以产生插入位置。7.如申请专利范围第3项所述之装置,其中,该复数个插入位置产生装置可将一第一给定値与该处理器之部分位址値结合后,再经由函数运算,以产生插入位置。8.如申请专利范围第3项所述之装置,其中,该复数个插入位置产生装置可将该位置状态暂存器与该程式状态暂存器结合后,以产生插入位置。9.如申请专利范围第3项所述之装置,其中,该复数个插入位置产生装置可将该位置状态暂存器与该程式状态暂存器结合后,再经由函数运算,以产生插入位置。10.如申请专利范围第2项所述之装置,其中,该保护位元码去除装置更可依据该第二保护位元码位置产生装置所产生之插入位置N,而将该程式之对应指令之第N位元移至最高位元处。11.如申请专利范围第2项所述之装置,其中,该保护位元码去除装置更可依据该第二保护位元码位置产生装置所产生之插入位置N,而将该程式之对应指令之第N位元移至最低位元处。12.如申请专利范围第2项所述之装置,其中,该保护位元码去除装置更可依据该第二保护位元码位置产生装置所产生之插入位置N,而将该程式之对应指令直接输出。13.如申请专利范围第3项所述之装置,其中,I+P=32。14.如申请专利范围第3项所述之装置,其中,I=32。15.一种对一加密程式进行解密之装置,该加密程式系将保护位元码插置于原始程式中而加密,该加密程式具有复数之指令,该装置包含:一第二保护位元码位置产生装置,其依据执行该程式时之处理器状态以产生该复数个保护位元码的插入位置;以及一保护位元码去除装置,系输入该程式,并依据该第二保护位元码位置产生装置所产生之插入位置N,以将该程式之对应指令之第N位元去除。16.如申请专利范围第15项所述之装置,其中,该第二保护位元码位置产生装置系依据执行该程式时之处理器状态以产生插入位置,该第二保护位元码位置产生装置包含:一位置状态暂存器,用以指示该处理器系存取资料区段或是存取程式区段;一程式状态暂存器,用以指示该处理器所处之状态;复数个插入位置产生装置,依据其预定之功能以产生插入位置;以及一多工器,其具有复数个输入端,以耦合至该复数个插入位置产生装置之输出端,并依据该位置状态暂存器及该程式状态暂存器,由复数个输入端中选择一插入位置以做为输出。17.如申请专利范围第16项所述之装置,其中,该复数个插入位置产生装置可为一空装置,以表示无插入位置。18.如申请专利范围第16项所述之装置,其中,该复数个插入位置产生装置可将一给定値经由函数运算以产生插入位置。19.如申请专利范围第16项所述之装置,其中,该复数个插入位置产生装置可将一第一给定値减去经由函数运算之一第二给定値,以产生插入位置。20.如申请专利范围第16项所述之装置,其中,该复数个插入位置产生装置可将一第一给定値与该处理器之部分位址値値结合后,再经由函数运算,以产生插入位置。21.如申请专利范围第16项所述之装置,其中,该复数个插入位置产生装置可将该位置状态暂存器与该程式状态暂存器结合后,以产生插入位置。22.如申请专利范围第16项所述之装置,其中,该复数个插入位置产生装置可将该位置状态暂存器与该程式状态暂存器结合后,再经由函数运算,以产生插入位置。23.如申请专利范围第16项所述之装置,其中,I+P=32。24.如申请专利范围第16项所述之装置,其中,I=32。25.一种对一加密程式进行解密之装置,该加密程式系将两组保护位元码插置于原始程式中而加密,该加密程式具有复数之指令,其中一个字组可包含二个加密指令,该装置包含:一第三保护位元码位置产生装置,其依据执行该程式时之处理器状态以产生该复数个保护位元码的第三插入位置;一第四保护位元码位置产生装置,其依据执行该程式时之处理器状态以产生该复数个保护位元码的第四插入位置;以及一第三保护位元码去除装置,系输入该加密程式之低半字组,并依据该第三保护位元码位置产生装置所产生之第三插入位置N1,以将该该程式之对应指令之第0至(K-1)位元之第N1位元去除;以及一第四保护位元码去除装置,系输入该加密程式之高半字组,并依据该第四保护位元码位置产生装置所产生之第四插入位置N2,以将该该程式之对应指令之第K至(2K-1)位元之第N2位元去除。26.如申请专利范围第25项所述之装置,其中,K=16。27.一种以保护位元码对一程式进行加密保护之方法,该程式具有复数个指令,每一指令具有I位元(I为正整数),该方法包含下列步骤:一保护位元码产生步骤,系依据该程式之复数个指令以产生对应之复数个保护位元码,每一保护位元码具有P个位元(P为正整数);一第一保护位元码位置产生步骤,其依据执行该程式时之处理器状态以产生每一保护位元码的插入位置N(N为正整数);以及一保护位元码插入步骤,系依据该第一保护位元码位置产生步骤所产生之插入位置N,分别将每一保护位元码插入该程式之对应指令之第N-1与第N位元之中,以产生一加密之程式。28.如申请专利范围第27项所述之方法,其更包含下列步骤:一第二保护位元码位置产生步骤,其依据执行该程式时之处理器状态以产生每一保护位元码的插入位置N;以及一保护位元码去除步骤,系输入该程式,并依据该第二保护位元码位置产生步骤所产生之插入位置N,以将该程式之对应指令之第N位元去除。29.如申请专利范围第28项所述之方法,其中,该第一及第二保护位元码位置产生步骤系依据执行该程式时之处理器状态以产生插入位置,其中,一位置状态旗标系用以指示该处理器系存取资料区段或是存取程式区段,一程式状态旗标系用以指示该处理器所处之状态,每一第一及第二保护位元码位置产生步骤更包含下列步骤:复数个插入位置产生步骤,依据其预定之功能以产生插入位置;以及一多工步骤,依据该位置状态旗标及该程式状态旗标,由复数个插入位置产生步骤之输出,选择一插入位置以做为输出。30.如申请专利范围第29项所述之方法,其中,该复数个插入位置产生步骤可为一空步骤,以表示无插入位置。31.如申请专利范围第29项所述之方法,其中,该复数个插入位置产生步骤可将一给定値经由函数运算以产生插入位置。32.如申请专利范围第29项所述之方法,其中,该复数个插入位置产生步骤可将一第一给定値减去经由函数运算之一第二给定値,以产生插入位置。33.如申请专利范围第29项所述之方法,其中,该复数个插入位置产生步骤可将一第一给定値与该处理器之部分位址値结合后,再经由函数运算,以产生插入位置。34.如申请专利范围第29项所述之方法,其中,该复数个插入位置产生步骤可将该位置状态旗标与该程式状态旗标结合后,以产生插入位置。35.如申请专利范围第29项所述之方法,其中,该复数个插入位置产生步骤可将该位置状态旗标与该程式状态旗标结合后,再经由函数运算,以产生插入位置。36.如申请专利范围第28项所述之方法,其中,该保护位元码去除步骤更可依据该第二保护位元码位置产生步骤所产生之插入位置N,而将该程式之对应指令之第N位元移至最高位元处。37.如申请专利范围第28项所述之方法,其中,该保护位元码去除步骤更可依据该第二保护位元码位置产生步骤所产生之插入位置N,而将该程式之对应指令之第N位元移至最低位元处。38.如申请专利范围第28项所述之方法,其中,该保护位元码去除步骤更可依据该第二保护位元码位置产生步骤所产生之插入位置N,而将该程式之对应指令直接输出。39.如申请专利范围第29项所述之方法,其中,I+P=32。40.如申请专利范围第29项所述之方法,其中,I=32。41.一种对一加密程式进行解密之方法,该加密程式系将保护位元码插置于原始程式中而加密,该加密程式具有复数之指令,该方法包含下列步骤:一第二保护位元码位置产生步骤,其依据执行该程式时之处理器状态以产生该复数个保护位元码的插入位置;以及一保护位元码去除步骤,系输入该程式,并依据该第二保护位元码位置产生步骤所产生之插入位置N,以将该程式之对应指令之第N位元去除。42.如申请专利范围第41项所述之方法,其中,该第二保护位元码位置产生步骤系依据执行该程式时之处理器状态以产生插入位置,其中,一位置状态旗标系用以指示该处理器系存取资料区段或是存取程式区段,一程式状态旗标系用以指示该处理器所处之状态,该第二保护位元码位置产生步骤更包含下列步骤:复数个插入位置产生步骤,依据其预定之功能以产生插入位置;以及一多工步骤,依据该位置状态旗标及该程式状态旗标,由复数个插入位置产生步骤之输出,选择一插入位置以做为输出。43.如申请专利范围第42项所述之方法,其中,该复数个插入位置产生步骤可为一空步骤,以表示无插入位置。44.如申请专利范围第42项所述之方法,其中,该复数个插入位置产生步骤可将一给定値经由函数运算以产生插入位置。45.如申请专利范围第42项所述之方法,其中,该复数个插入位置产生步骤可将一第一给定値减去经由函数运算之一第二给定値,以产生插入位置。46.如申请专利范围第42项所述之方法,其中,该复数个插入位置产生步骤可将一第一给定値与该处理器之部分位址値结合后,再经由函数运算,以产生插入位置。47.如申请专利范围第42项所述之方法,其中,该复数个插入位置产生步骤可将该位置状态暂存器与该程式状态暂存器结合后,以产生插入位置。48.如申请专利范围第42项所述之方法,其中,该复数个插入位置产生步骤可将该位置状态暂存器与该程式状态暂存器结合后,再经由函数运算,以产生插入位置。49.如申请专利范围第42项所述之方法,其中,I+P=32。50.如申请专利范围第42项所述之方法,其中,I=32。51.一种对一加密程式进行解密之方法,该加密程式系将两组保护位元码插置于原始程式中而加密,该加密程式具有复数之指令,其中一个字组可包含二个加密指令,该方法包含下列步骤:一第三保护位元码位置产生步骤,其依据执行该程式时之处理器状态以产生该复数个保护位元码的第三插入位置;一第四保护位元码位置产生步骤,其依据执行该程式时之处理器状态以产生该复数个保护位元码的第四插入位置;以及一第三保护位元码去除步骤,系输入该加密程式之低半字组,并依据该第三保护位元码位置产生步骤所产生之第三插入位置N1,以将该该程式之对应指令之第0至(K-1)位元之第N1位元去除;以及一第四保护位元码去除步骤,系输入该加密程式之高半字组,并依据该第四保护位元码位置产生步骤所产生之第四插入位置N2,以将该该程式之对应指令之第K至(2K-1)位元之第N2位元去除。52.如申请专利范围第51项所述之方法,其中,K=16。图式简单说明:图1:系本发明之以保护位元码对一程式进行加密保护之装置的方块图。图2:系本发明之第二保护位元码位置产生装置之电路图。图3~图4:系本发明之第二保护位元码位置产生装置所产生插入位置的之示意图。图5:系本发明之保护位元码去除装置之电路图。图6:系本发明之以保护位元码对一程式进行加密保护之装置另一实施例的方块图。
地址 新竹县科学园区创新一路十九号