【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种将保持并执行秘密信息的程序变换为难以对秘 密信息进行非法解析的程序的技术。
技术介绍
以前,要求使用秘密要素进行处理的程序不想让非法解析者解 析。这种程序中有例如加密程序。加密程序使用作为秘密信息的加密 密钥进行处理,但期望其不被解析。另外,例如是执行图像中埋入的拷贝控制信息的水印检测的程 序。在水印检测程序的处理被非法解析者解析的情况下,担心制作去 除图像中埋入的水印的工具。从而,期望非法解析者难以解析这种程 序。对于这种期望,例如有对程序进行加密、在执行时解密后执行该 程序的方法。但是,即使使用这种方法,也由于程序在执行时在存储 器上变为明文,所以存在提取并解析存储器上的程序的威协。针对这 种威协,若难以对提取出的程序中包含的程序指令群按什么样的执行 顺序执行进行解析,则难以制作去除水印的工具。以前,作为防止使用秘密要素进行处理的程序的非法解析/篡改用的方法,考虑如下程序难破解化(obfiiscation)方法,即通过将程序 的控制构造/处理等变换为与原来程序不同的形式,将控制构造变复 杂,变为解析困难的程序(例如参照非专利文献1)。在非专利文献1中,公开了通过将包含秘密信息的程序指令置换 为多个程序指令群、使程序难以破解的方法。例如,在M0=1234' 的程序指令中,'1234'为被隐匿信息的情况下,将<(10=1234'的 程序指令置换为M0=10(T 、'dO=dOX2' 、M0=d0+30,、 ^()=(10+1000, 、 <dO=dO+4,这样的程序指令群,将它们分散配置。 若使用这种方法,贝卿使收集程序 ...
【技术保护点】
一种程序变换装置,根据原始程序生成秘密保持程序,其特征在于:具备:程序取得部件,取得原始程序;选择对象数据生成部件,生成多个选择对象数据,其中该多个选择对象数据通过按规定顺序进行处理、输出与所述原始程序相同的执行结果 ,并且对应了不同的选择识别符;预处理指令群生成部件,生成将值代入多个选择参数的每个中的预处理指令群;选择处理指令群生成部件,根据使用了所述多个选择参数的运算式,生成选择处理指令群,该选择处理指令群包含取得表示接着处理的选择对 象数据的选择识别符的指令群;更新处理指令群生成部件,生成更新处理指令群,该更新处理指令群使选择参数的值,反映表示过去处理的选择对象数据的选择识别符、或过去代入所述选择参数中的1个以上选择参数值中的至少1个选择参数值;和秘密保 持程序生成部件,生成包含所述预处理指令群、所述处理选择指令群、所述更新处理指令群、所述多个选择对象数据的秘密保持程序,该秘密保持程序重复进行执行所述处理选择指令群的处理、处理由所述选择处理指令群取得的选择识别符表示的选择对象 ...
【技术特征摘要】
【国外来华专利技术】JP 2005-4-21 124115/2005;JP 2005-12-28 379128/20051、一种程序变换装置,根据原始程序生成秘密保持程序,其特征在于具备程序取得部件,取得原始程序;选择对象数据生成部件,生成多个选择对象数据,其中该多个选择对象数据通过按规定顺序进行处理、输出与所述原始程序相同的执行结果,并且对应了不同的选择识别符;预处理指令群生成部件,生成将值代入多个选择参数的每个中的预处理指令群;选择处理指令群生成部件,根据使用了所述多个选择参数的运算式,生成选择处理指令群,该选择处理指令群包含取得表示接着处理的选择对象数据的选择识别符的指令群;更新处理指令群生成部件,生成更新处理指令群,该更新处理指令群使选择参数的值,反映表示过去处理的选择对象数据的选择识别符、或过去代入所述选择参数中的1个以上选择参数值中的至少1个选择参数值;和秘密保持程序生成部件,生成包含所述预处理指令群、所述处理选择指令群、所述更新处理指令群、所述多个选择对象数据的秘密保持程序,该秘密保持程序重复进行执行所述处理选择指令群的处理、处理由所述选择处理指令群取得的选择识别符表示的选择对象数据的处理、和若处理所述选择对象数据则执行所述更新处理指令群的处理。2、 根据权利要求1所述的程序变换装置,其特征在于 所述规定顺序是向所述多个选择参数赋予规定的初始值、通过重复执行所述选择处理指令群和所述更新处理指令群、从而依次算出的 选择识别符的顺序。3、 根据权利要求2所述的程序变换装置,其特征在于 所述多个选择对象数据的每个由l个以上的数据构成。4、 根据权利要求3所述的程序变换装置,其特征在于-所述原始程序具有应隐匿的秘密信息,所述选择处理指令群生成部件生成选择处理指令群,该选择处理 指令群由通过使用所述多个选择参数的第1运算式来算出所述选择 识别符的指令群构成,所述更新处理指令群生成部件生成更新处理指令群,该更新处理 指令群根据由所算出的所述选择识别符表示的选择对象数据的值,更 新所述多个选择参数,所述程序变换装置还具备变迁处理指令群生成部件,生成变迁处理指令群,该变迁处理指 令群利用使用了更新后的多个选择参数的第2运算式,算出与所述秘 密信息相同的值,所述秘密保持程序生成部件,将生成的变迁处理指令群配置在所 述更新处理指令群的配置位置与所述秘密信息的配置位置之间,并置 换成由所述变迁处理指令群算出所述秘密信息的处理。5、 根据权利要求2所述的程序变换装置,其特征在于 程序变换装置还具备分割部件,将所述原始程序分割成1个以上的块,所述多个选择对象数据的每个包含不同的块。6、 根据权利要求5所述的程序变换装置,其特征在于所述多个选择参数是从第1到第n的选择参数,所述更新处理指令群生成部件生成更新处理指令群,该更新处理 指令群对于所述多个选择对象数据的每个,将存储在第j-l选择参数 中的值存储到第j选择参数,将常数值存储在第l选择参数中,其中j是2以上n以下的整数。7、 根据权利要求6所述的程序变换装置,其特征在于 所述选择对象数据的个数是由所述块的个数以上构成的规定数所述运算式对所述第1到第n的选择参数的每个,算出Pix第i 选择参数,将算出的结果分别相加,对加法结果实施以所述规定数量 为模数值N的模数运算,算出选择识别符,其中i是l以上n以下的整数,Pi与模数值N互质。8、 根据权利要求5所述的程序变换装置,其特征在于 选择对象数据生成部件具备存储部,存储当前时刻之前由所述运算式算出的选择识别符的每个;执行部,对l个块选择l个值,将存储在第j-l选择参数中的值 存储到第j选择参数,将选择到的值存储在第l选择参数中,执行所 述运算式,其中j是2以上n以下的整数;判断部,判断与算出的算出值相同的选择识别符是否存储在所述 存储部中;存储部,在判断结果为否定的情况下,将所述选择到的1个值确 定为对所述1个块的所述常数值,并将所述1个块存储在所算出的算 出值表示的选择对象数据中;和重复控制部,在判断结果为肯定的情况下,确定所述常数值,并 进行控制,使得在l个块被存储在选择对象数据之前的期间中,重复 所述执行部与所述判断部的处理,对全部块执行所述选择对象数据生成部件的处理。9、 根据权利要求5所述的程序变换装置,其特征在于 所述选择处理指令群生成部件生成选择处理指令群,该选择处理指令群始终取得表示是未执行的选择对象数据的识别符。10、 根据权利要求9所述的程序变换装置,其特征在于 所述选择处理指令群生成部件生成选择处理指令群,该选择处理指令群使用表示对所述多个选择对象数据的每个是否已执行完的管 理信息,取得表示是未执行的选择对象数据的识别符。11、 根据权利要求10所述的程序变换装置,其特征在于 所述多个选择参数是从第1到第n的选择参数, 所述管理信息是表示对所述多个选择对象数据的每个,在当前时刻已执行完或未执行中的某一个的状态的排列表格,所述选择对象数据的个数是由所述块的个数以上构成的规定数 所述选择处理指令群生成部件生成 所述排列表格;所述运算式,对所述第1到第n的选择参数的每个算出Pix第i 选择参数,将算出的结果分别相加,对加法结果实施以所述规定数量 为模数值N的模数运算,算出表示包含接着应执行的块的选择对象 数据的临时的选择识别符,其中i是1以上n以下的整数;禾口取得程序指令群,在由所述算出式算出的所述临时的选择识别符 所示的选择对象数据在所述排列表格中表示未执行的情况下,将所述 临时的选择识别符设为表示包含接着应执行的块的选择对象数据的 真选择识别符,在表示已执行完的情况下,根据取得未执行的选择对 象数据之前事先确定的选择顺序,取得临时的选择识别符,所述选择处理指令群包含所述排列表格、所述运算式、和所述取 得程序指令群,Pi与模数值N互质。12、 根据权利要求ll所述的程序变换装置,其特征在于 所述更新处理指令群生成部件生成所述更新处理指令群,该更新处理指令群将存储在第j选择参数中的值存储到第j-l选择参数,将 所述选择处理指令群取得的所述真选择识别符存储到第n变量,其中 j是2以上n以下的整数。13、 根据权利要求10所述的程序变换装置,其特征在于 所述运算式是第1取得程序指令群,该第1取得程序指令群使用表示1个选择参数的索引,从所述多个选择参数中取得所述1个参数, 所述管理信息是排列表格,该排列表格对所述多个选择对象数据 的每个,表示在当前时刻己执行完或未执行中的某一状态,所述选择处理指令群生成部件生成所述第1取得程序指令群; 所述排列表格;和第2取得程序指令群,根据表示所述排列表格中未执行的1个以 上选择对象数据的选择识别符的排列顺序,取得按由所述取得程序指 令群取得的参数值所示的顺序来配置的选择识别符,所述选择处理指令群包含所述第1取得程序指令群、所述排列表格和所述第2取得程序指令群。14、 根据权利要求13所述的程序变换装置,其特征在于所述更新处理指令群生成部件生成将所述索引值递增的所述更 新处理指令群。15、 根据权利要求10所述的程序变换装置,其特征在于所述选择对象数据的个数是由所述块的个数以上构成的规定数所述多个选择参数是第1到第n的参数,所述管理信息是排列表格,该排列表格对所述多个选择对象数据 的每个,表示在当前时刻已执行完或未执行中的某一个的状态,所述选择处理指令群生成部件生成所述排列表格;所述运算式,对所述第1到第n的选择参数的每个算出Pix第i 选择参数,将算出的结果分别相加,对加法结果实施以所述规定数量 为模数值N的模数运算,算出表示包含接着应执行的块的选择对象 数据的值,其中i是l以上n以下的整数;和取得程序指令群,根据在与所述排列表格相同的表格内、表示未 执行的1个以上选择对象数据的选择识别符的排列顺序,取得按由所 述运算式算出的所述值表示的顺序来配置的选择识别符,所述选择处理指令群包含所述排列表格、所述运算式、和所述取 得程序指令群。16、 根据权利要求5所述的程序变换装置,其特征在于 所述选择对象数据的个数是由所述块的个数以上构成的规定数所述秘密保持程序生成部件还在所述多个块的每个包含于选择 对象数据中之后,在未包含块的1个以上选择对象数据中,插入包含 1个以上程序指令的伪块。17、 一种秘密处理装置,通过对确定了处理顺序的多个选择对象数据进行处理,执行应隐匿的秘密处理,其特征在于 具备预处理执行部件,将值代入多个选择参数的每个中;选择处理执行部件,根据使用了所述多个选择参数的运算式,取 得表示接着处理的选择对象数据的选择识别符;更新处理执行部件,使选择参数的值,反映表示过去处理的选择 对象数据的选择识别符、或过去代入所述选择参数中的1个以上选择 参数值中的至少l个选择参数值;和选择对象数据执行部件,对由所述选择处理执行部件取得的选择 识别符表示的选择对象数据进行处理,在视为所述秘密保持程序结束之前,重复所述选择处理执行部 件、更新处理指令执行部件、选择对象数据执行部件进行的处理。18、 根据权利要求17所述的秘密处理装置,其特征在于 所述多个选择对象数据的每个由1个以上的数据构成。19、 根据权利要求18所述的秘密处理装置,其特征在于 所述秘密处理是代替使用应隐匿的秘密信息、实施规定处理后算出所述秘密信息的处理,所述选择处理执行部件利用使用了所述多个选择参数的运算式, 算出所述选择识别符,所述更新处理执行部件根据由所述选择识别符表示的选择对象 数据的值,更新所述多个选择参数,所述秘密处理装置还具备变迁处理执行部件,该变迁处理执行部 件利用使用了更新后的多个选择参数的所述规定处理,算出与所述秘 密信息相同的值。20、 根据权利要求17所述的秘密处理装置,其特征在于所述秘密处理是由外部装置执行被分割成1个以上块的原始程 序的处理,所述块包含1个以上的程序指令, 所述多个选择对象数据的每个包含不同的块。21、 根据权利要求20所述的秘密处理装置,其特征在于-所述多个选择参数是从第1到第n的选择参数, 所述更新处理执行部件对于所述多个选...
【专利技术属性】
技术研发人员:佐藤太一,大森基司,浅井理惠子,布田裕一,芳贺智之,满保雅浩,
申请(专利权)人:松下电器产业株式会社,
类型:发明
国别省市:JP[日本]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。