程序变换装置和变换方法制造方法及图纸

技术编号:2829228 阅读:213 留言:0更新日期:2012-04-11 18:40
提供一种生成非法解析者不能容易地解析原始程序的秘密保持程序的程序变换装置。程序变换装置生成取得代入到多个选择参数中的值的第1指令群;包含根据使用所述多个选择参数的运算式、取得表示接着处理的选择对象数据的选择识别符的指令群的第2指令群;使选择参数的值反映表示过去处理的选择对象数据的选择识别符、或过去代入所述运算式中的1个以上选择参数的值中至少1个选择参数的值的第3指令群;和通过按规定顺序处理输出与所述原始程序相同的执行结果、并对应于不同的选择识别符的多个选择对象数据,生成包含所述第1指令群、所述第2指令群、所述第3指令群与所述多个选择对象数据的秘密保持程序。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种将保持并执行秘密信息的程序变换为难以对秘 密信息进行非法解析的程序的技术。
技术介绍
以前,要求使用秘密要素进行处理的程序不想让非法解析者解 析。这种程序中有例如加密程序。加密程序使用作为秘密信息的加密 密钥进行处理,但期望其不被解析。另外,例如是执行图像中埋入的拷贝控制信息的水印检测的程 序。在水印检测程序的处理被非法解析者解析的情况下,担心制作去 除图像中埋入的水印的工具。从而,期望非法解析者难以解析这种程 序。对于这种期望,例如有对程序进行加密、在执行时解密后执行该 程序的方法。但是,即使使用这种方法,也由于程序在执行时在存储 器上变为明文,所以存在提取并解析存储器上的程序的威协。针对这 种威协,若难以对提取出的程序中包含的程序指令群按什么样的执行 顺序执行进行解析,则难以制作去除水印的工具。以前,作为防止使用秘密要素进行处理的程序的非法解析/篡改用的方法,考虑如下程序难破解化(obfiiscation)方法,即通过将程序 的控制构造/处理等变换为与原来程序不同的形式,将控制构造变复 杂,变为解析困难的程序(例如参照非专利文献1)。在非专利文献1中,公开了通过将包含秘密信息的程序指令置换 为多个程序指令群、使程序难以破解的方法。例如,在M0=1234' 的程序指令中,'1234'为被隐匿信息的情况下,将<(10=1234'的 程序指令置换为M0=10(T 、'dO=dOX2' 、M0=d0+30,、 ^()=(10+1000, 、 <dO=dO+4,这样的程序指令群,将它们分散配置。 若使用这种方法,贝卿使收集程序中存在的常数数据,也不能从中发 现被隐匿信息。但是,若知道程序中包含的各指令群的执行顺序,则非法解析者可根据该执行顺序,通过算出d0的值,发现被隐匿信息。因此,以前作为将程序的执行顺序的解析变困难的方法,有如下方法,即使用根据表示执行的指令群的值来确定分支目的地的分支指令(例如switch语句)与阵列(army),控制各指令群的执行顺序(非专 利文献2)。此时,原始程序中包含的多个指令群(例如为指令群1 3, 按该顺序来执行。),与表示执行的指令群的值1对1对应,另外, 在指令群1~3的最后,插入程序指令,该程序指令利用使用了阵列的 运算式算出表示接着执行的指令群的值、并将算出的值存储在switch 语句中使用的变量Var中。若将阵列的个数设为10,则插入的程序 指令一例为Var=g [3] +g [4]。由此,即使替换指令群1~3的配置顺序,也可利用switch语句, 将执行顺序保持正当不变。另外,通过替换指令群1~3的配置顺序, 可使原始程序的构造解析变困难。即,可使水印的检测程序的解析或 被隐匿信息的取得变困难。非专利文献l:鴨志田、松本、井上,耐夕y^—V:7卜夕工 7(D構成手法C関卞^)考察,ISEC97-59非专禾!j文献2 : Chenxi Wang, A Security Architecture for Survivability Mechanisms, Ph.D. Dissertation (2000)但是,插入各指令群最后的程序指令与阵列中存储的各数据例如 有可能从计算机装置的存储区域取得。因此,若非法解析者知道l插 入各指令群最后的程序指令与阵列中存储的各数据,则非法解析者取得switch语句中使用的变量的值,可再构成原始程序的控制构造,可容易地执行原始程序的解析。
技术实现思路
因此,本专利技术的目的在于提供一种生成非法解析者不能容易解析 原始程序的秘密保持程序的程序变换装置、执行所述秘密保持程序的 秘密处理装置、变换方法、和秘密处理方法。为了实现上述目的,本专利技术是一种程序变换装置,根据原始程序 生成秘密保持程序,其特征在于具备程序取得部件,取得原始程 序;选择对象数据生成部件,生成通过按规定顺序处理、输出与所述 原始程序相同的执行结果、并对应了不同选择识别符的多个选择对象 数据;预处理指令群生成部件,生成将值代入多个选择参数的每个中 的预处理指令群;选择处理指令群生成部件,根据使用了所述多个选 择参数的运算式,生成选择处理指令群,该选择处理指令群包含取得 表示接着处理的选择对象数据的选择识别符的指令群;更新处理指令 群生成部件,生成更新处理指令群,该更新处理指令群使选择参数的 值,反映表示过去处理的选择对象数据的选择识别符、或过去代入所 述选择参数中的1个以上选择参数值中的至少1个选择参数的值;和 秘密保持程序生成部件,生成包含所述预处理指令群、所述处理选择 指令群、所述更新处理指令群、所述多个选择对象数据的秘密保持程 序,该秘密保持程序重复进行执行所述处理选择指令群的处理、处理 由所述选择处理指令群取得的选择识别符表示的选择对象数据的处 理、和若处理所述选择对象数据则执行所述更新处理指令群的处理。专利技术效果根据上述所示的构成,由程序变换装置生成的秘密保持程序当更 新运算式的所述多个选择参数时,使选择参数值反映表示过去处理的 选择对象数据的选择识别符、或过去代入所述运算式中的1个以上选 择参数值中的至少1个选择参数值。以前,当确定接着应执行的块时, 使用存储多个固定值的阵列,但由本专利技术的程序变换装置生成的秘密 保持程序在确定接着应执行的块之后,始终更新运算式中使用的选择 参数,所以难以确定存储在多个选择参数中的值。因此,非法解析者 不能容易地解析原始程序。这里,也可以是,所述规定顺序是向所述多个选择参数赋予规定 的初始值、通过重复执行所述选择处理指令群和所述更新处理指令 群、从而依次算出的选择识别符的顺序。根据该构成,程序变换装置在向各选择参数赋予规定的初始值的 情况下,可生成输出与原始程序相同执行结果的秘密保持程序。 这里,也可以是,所述多个选择对象数据的每个由1个以上的数 据构成。根据该构成,程序变换装置可生成将选择对象数据处理为数据的 秘密保持程序。这里,也可以是,所述原始程序具有应隐匿的秘密信息,所述选 择处理指令群生成部件生成选择处理指令群,该选择处理指令群由通 过使用所述多个选择参数的第1运算式来算出所述选择识别符的指 令群构成,所述更新处理指令群生成部件生成更新处理指令群,该更 新处理指令群根据由所算出的所述选择识别符表示的选择对象数据 的值,更新所述多个选择参数,所述程序变换装置还具备变迁处理 指令群生成部件,生成变迁处理指令群,该变迁处理指令群利用使用 了更新后的多个选择参数的第2运算式,算出与所述秘密信息相同的 值,所述秘密保持程序生成部件,将生成的变迁处理指令群配置在所 述更新处理指令群的配置位置与所述秘密信息的配置位置之间,并置 换成由所述变迁处理指令群算出所述秘密信息的处理。根据该构成,由于程序变换装置生成的秘密保持程序利用所述选 择处理指令群、所述更新处理指令群和所述变迁处理指令群来隐匿算 出与秘密信息相同值的方法,所以非法解析者难以解析秘密信息。这里,也可以是,程序变换装置还具备分割部件,将所述原始程 序分割成1个以上的块,所述多个选择对象数据的每个包含不同的 块。根据该构成,程序变换装置可生成将选择对象数据处理为从原始 程序分割的块的秘密保持程序。这里,也可以是,所述多个选择参数是从第1本文档来自技高网
...

【技术保护点】
一种程序变换装置,根据原始程序生成秘密保持程序,其特征在于:具备:程序取得部件,取得原始程序;选择对象数据生成部件,生成多个选择对象数据,其中该多个选择对象数据通过按规定顺序进行处理、输出与所述原始程序相同的执行结果 ,并且对应了不同的选择识别符;预处理指令群生成部件,生成将值代入多个选择参数的每个中的预处理指令群;选择处理指令群生成部件,根据使用了所述多个选择参数的运算式,生成选择处理指令群,该选择处理指令群包含取得表示接着处理的选择对 象数据的选择识别符的指令群;更新处理指令群生成部件,生成更新处理指令群,该更新处理指令群使选择参数的值,反映表示过去处理的选择对象数据的选择识别符、或过去代入所述选择参数中的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[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1