CN112241519A - 一种软件版权保护的实现方法 - Google Patents
一种软件版权保护的实现方法 Download PDFInfo
- Publication number
- CN112241519A CN112241519A CN202011224595.0A CN202011224595A CN112241519A CN 112241519 A CN112241519 A CN 112241519A CN 202011224595 A CN202011224595 A CN 202011224595A CN 112241519 A CN112241519 A CN 112241519A
- Authority
- CN
- China
- Prior art keywords
- software
- machine code
- original
- supplier
- original supplier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 239000002131 composite material Substances 0.000 claims description 26
- 230000008878 coupling Effects 0.000 claims description 13
- 238000010168 coupling process Methods 0.000 claims description 13
- 238000005859 coupling reaction Methods 0.000 claims description 13
- 230000006399 behavior Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 238000009434 installation Methods 0.000 claims description 2
- 238000010960 commercial process Methods 0.000 claims 2
- 230000002441 reversible effect Effects 0.000 claims 2
- 238000005516 engineering process Methods 0.000 abstract description 11
- 238000005336 cracking Methods 0.000 abstract description 2
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 8
- 150000001875 compounds Chemical class 0.000 description 7
- 239000000047 product Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 208000000044 Amnesia Diseases 0.000 description 2
- 208000026139 Memory disease Diseases 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000006984 memory degeneration Effects 0.000 description 2
- 208000023060 memory loss Diseases 0.000 description 2
- 208000030984 MIRAGE syndrome Diseases 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- TVLSRXXIMLFWEO-UHFFFAOYSA-N prochloraz Chemical group C1=CN=CN1C(=O)N(CCC)CCOC1=C(Cl)C=C(Cl)C=C1Cl TVLSRXXIMLFWEO-UHFFFAOYSA-N 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本发明方法可防止通过复制软件机器代码或对软件机器代码进行反编译或对软件机器代码进行破解而实施对软件的盗版,达到从技术上杜绝软件盗版的行为(或者说从物理上,而非从法律或商务上杜绝软件盗版的行为,从而本质上让软件提供者达到零成本维权)。本发明实际内容包括或者涉及两大部分,即技术实现部分和商务实现部分。依赖于本方案在硬件技术上的实现而订立了相互制衡但相互受益的商业关系和商业行为,在确保各商家智力劳动成果不会被侵害的情况下,确保本方案所构建的的商务架构不能被合法商业行为打破。
Description
技术领域
本发明涉及集成电路及计算机技术领域,尤其指一种实现对于软件机器代码进行加密和解密的方法以及一种对于软件使用版权进行保护的方法。
背景技术
技术与商业虽然是两个不同范畴的概念,但却只能是相辅相成的两件客观事物。没有商业的存在,技术的价值得不到具体体现。而没有技术,商业便是海市蜃楼、空中楼阁。软件作为一项技术,在现有背景技术条件下,从它诞生开始便被盗版问题所困扰至今。软件的盗版问题不仅极大地伤害了软件商业环境,更多的是损害了软件设计者对于创造更多智力劳动成果的积极性,极大地制约了软件技术的发展。
在现有背景技术条件下,并不能从根本上杜绝盗版者可以通过“复制机器代码”、“反编译机器代码”、“破解机器代码”、“破解授权文件”等手段来实现对正版软件的盗版。其重要症结在于,安装到用户计算机内的机器代码虽然不是使用计算机高级语言完成的源代码,但是却是以汇编语言实现的机器代码。换句话说,对于通晓相应汇编语言的专业人士而言,软件以什么样的具体方法来防止不法商贩进行盗版行为,事实上对于这些专业人士而言等同于“大白天下”。因此,在现有背景技术条件下,安装在用户计算机内的机器代码从理论上讲不具备软件版权自我保护的可能性。
事实上在现有背景技术条件下,对于软件版权的保护更大程度上依赖于法务的保障。然而,对于大多数的“软件创意”,“法务”无论从时间上或是经济利益上看,都是较大的维权成本。换而言之,只有商业规模足够大,才能在一定范围内而非全部范围内维护自身软件的版权不受侵犯。
因此,需要一种从理论上具备软件版权自我保护能力的技术为基础,构建合理而稳固的商业架构,从而使商业环境能够更好地激励软件设计者生产出更多、功能更强大、效率更好的软件智力劳动成果,带来更多的商业经济价值,从而形成软件行业的良性的、积极的循环。
发明内容
本发明的目的是提供一种从理论上和实际应用上都具备软件版权自我保护能力的技术基础,并在该技术基础之上构建合理而稳固的商业架构,从而彻底杜绝不法商贩对于原始软件(包括原始软件中的原创算法)的盗版行为,从而健全软件行业的商业环境,激励软件设计者的积极性。本发明所提供的技术基础并不因为增加具有软件版权保护功能而增加软件实际运行的负荷,更不需要额外增加在软件运行时对于操作系统或其它程序的负荷或干扰。本发明将基于自身所发明的技术基础构建一种软件商业架构,在确保原始软件使用版权绝对不被侵犯以及原始软件的源代码不被泄密的情况下,实现软件产业链条中不同商家相互依存并且共同获益的商业关系和商业行为。
本方案基于一种可实现的“加密及解密方法”的技术,但不限制基于某一种具体的“加密及解密方法”的技术。“加密及解密方法”,简称为但不限制简称为EDF,即Encryptionand Decryption Function的英文缩写,是一种通过秘钥实现对一定字节数量的数据进行加密或者解密的方法。硬件或软件使用EDF时需要提供一定比特位宽的秘钥对一定字节数量的未加密数据进行加密运算,硬件或软件使用EDF时需要提供对数据进行加密时所使用的相同秘钥对已加密数据进行解密运算。
参考图2所示,在本文中,将使用到专用名词对于某项具体事物或具体功能进行命名,包括如下:
“原始供应商”表示“软件原始供应商”或者“算法原始供应商”(即“软件原始供应商”和“算法原始供应商”的统称);
“原始软件源代码”表示由“软件原始供应商”使用计算机高级语言所开发的正版软件源代码;
“原始算法源代码”表示由“算法原始供应商”使用计算机高级语言所开发的正版算法源代码;
“原始源代码”表示“原始软件源代码”或者“原始算法源代码”(即“原始软件源代码”和“原始算法源代码”的统称);
“编译软件机器代码”表示“软件原始供应商”使用“离线编译器”对“原始软件源代码”进行编译后所生成的机器代码,此时的机器代码并不能在计算机上运行,因为此时“离线编译器”所输出的“编译软件机器代码”已被“离线编译器”加密,需要被“离线编译器”解密后才能被使用(“离线编译器”解密“编译软件机器代码”需要从“编译服务商”获得相应的解密秘钥);
“编译算法机器代码”表示“算法原始供应商”使用“离线编译器”对“原始算法源代码”进行编译后所生成的机器代码,此时的机器代码并不能在计算机上运行,因为此时“离线编译器”所输出的“编译算法机器代码”已被“离线编译器”加密,需要被“离线编译器”解密后才能被使用(“离线编译器”解密“编译算法机器代码”需要从“编译服务商”获得相应的解密秘钥);
“编译机器代码”表示“编译软件机器代码”或者“编译算法机器代码”(即“编译软件机器代码”和“编译算法机器代码”的统称);
“编译软件序列号”表示“软件原始供应商”在使用“离线编译器”生成“编译软件机器代码”的同时,“离线编译器”所生成的与当前所生成的“编译软件机器代码”所对应的序列号,该序列号将被用于向“编译服务商”申请获得解密“编译软件机器代码”的具体解密秘钥;
“编译算法序列号”表示“算法原始供应商”在使用“离线编译器”生成“编译算法机器代码”的同时,“离线编译器”所生成的与当前所生成的“编译算法机器代码”所对应的序列号,该序列号将被用于向“编译服务商”申请获得解密“编译算法机器代码”的具体解密秘钥;
“编译序列号”表示“编译软件序列号”或者“编译算法序列号”(即“编译软件序列号”和“编译算法序列号”的统称);
“原始软件机器代码”表示“编译软件机器代码”被“离线编译器”解密后的机器代码,此时的机器代码即为未经任何加密的汇编语言机器代码;
“原始算法机器代码”表示“编译算法机器代码”被“离线编译器”解密后的机器代码,此时的机器代码即为未经任何加密的汇编语言机器代码;
“原始机器代码”表示“原始软件机器代码”或者“原始算法机器代码”(即“原始软件机器代码”和“原始算法机器代码”的统称);
“编译软件解密秘钥”表示用于对“编译软件机器代码”进行解密的秘钥;
“编译算法解密秘钥”表示用于对“编译算法机器代码”进行解密的秘钥;
“编译解密秘钥”表示“编译软件解密秘钥”或者“编译算法解密秘钥”(即“编译软件解密秘钥”和“编译算法解密秘钥”的统称);
“加密编译解密秘钥”表示“编译解密秘钥”被“编译服务商”加密后的信息,“编译解密秘钥”并不是直接由“编译服务商”提供给“离线编译器”的,而是“编译服务商”将“编译解密秘钥”通过加密运算后生成“加密编译解密秘钥”,并将该“加密编译解密秘钥”直接交付给“原始供应商”,由“原始供应商”将“加密编译解密秘钥”输入给“离线编译器”,“离线编译器”自动对“加密编译解密秘钥”进行解密并得到“编译解密秘钥”,再以“编译解密秘钥”对“编译机器代码”进行解密;
“软件复合加密秘钥”表示“软件原始供应商”期望对其“原始软件机器代码”进行由“芯片原始供应商”所提供的加密服务时,要求“芯片原始供应商”将“软件复合加密秘钥”作为对“原始软件机器代码”进行加密的秘钥的一部分;
“算法复合加密秘钥”表示“算法原始供应商”期望对其“原始算法机器代码”进行由“芯片原始供应商”所提供的加密服务时,要求“芯片原始供应商”将“算法复合加密秘钥”作为对“原始算法机器代码”进行加密的秘钥的一部分;
“复合加密秘钥”表示“软件复合加密秘钥”或者“算法复合加密秘钥”(即“软件复合加密秘钥”和“算法复合加密秘钥”的统称);
“软件机器代码加密秘钥”表示由“芯片原始供应商”为“软件原始供应商”所提供的加密服务所需要被“离线加密器”具体使用的加密秘钥;
“算法机器代码加密秘钥”表示由“芯片原始供应商”为“算法原始供应商”所提供的加密服务所需要被“离线加密器”具体使用的加密秘钥;
“机器代码加密秘钥”表示“软件机器代码加密秘钥”或者“算法机器代码加密秘钥”(即“软件机器代码加密秘钥”和“算法机器代码加密秘钥”的统称),“机器代码加密秘钥”同样也表示在内核硬件中所寄存的用于对于“加密机器代码”进行解密所使用到的解密秘钥,因为内核硬件中EDF解密算法是“离线加密器”对“原始机器代码”进行加密的EDF加密算法的逆运算,它们使用同样的秘钥,即“机器代码加密秘钥”;
“加密机器代码加密秘钥”表示“机器代码加密秘钥”被“芯片原始供应商”加密后的信息,“机器代码加密秘钥”并不是直接由“芯片原始供应商”提供给“离线加密器”的,而是“芯片原始供应商”将“机器代码加密秘钥”通过加密运算后生成“加密机器代码加密秘钥”,并将该“加密机器代码加密秘钥”直接交付给“原始供应商”,由“原始供应商”将“加密机器代码加密秘钥”输入给“离线加密器”,“离线加密器”自动对“加密机器代码加密秘钥”进行解密并得到“机器代码加密秘钥”,再以“机器代码加密秘钥”对“原始机器代码”进行加密;
“加密软件机器代码”表示“原始软件机器代码”经过“芯片原始供应商”的加密服务后所生成的最终被加密过的机器代码,亦即“软件原始供应商”最终交付给“用户”的机器代码;
“加密算法机器代码”表示“原始算法机器代码”经过“芯片原始供应商”的加密服务后所生成的最终被加密过的机器代码,亦即“算法原始供应商”最终交付给“软件原始供应商”的机器代码;
“加密机器代码”表示“加密软件机器代码”或者“加密算法机器代码”(即“加密软件机器代码”和“加密算法机器代码”的统称);
“非解密转移指令”表示处理器内核的一个不具解密功能的内核缓存操作专用指令,该指令完成将机器代码从“指令耦合缓存”以外的缓存或设备中转移到“指令耦合缓存”中,内核硬件在执行该指令时并不针对所操作的目标机器代码进行任何解密运算。“非解密转移指令”以字符“ECB2ECS”作为指令符号,但不限制仅使用“ECB2ECS”作为指令符号;
“解密转移指令”表示处理器内核的一个带有解密功能的内核缓存操作专用指令,该指令完成将机器代码从“指令耦合缓存”以外的缓存或设备中转移到“指令耦合缓存”中,内核硬件在执行该指令的同时会对目标机器代码进行解密运算。“解密转移指令”以字符“EECB2ECS”作为指令符号,但不限制仅使用“EECB2ECS”作为指令符号。因此,EECB2ECS事实上是针对“加密机器代码”而使用的,其解密运算的EDF算法与“芯片原始供应商”所提供的对于“原始机器代码”进行加密服务的EDF算法为逆运算的关系,双方使用相同的秘钥。
本发明提供的技术方案如下:
本方案所涉及的对于“原始机器代码”进行加密的软件工具或硬件工具由“芯片原始供应商”所提供,“芯片原始供应商”为每个不同的芯片提供唯一的用于对“原始机器代码”进行加密的“机器代码加密秘钥”,“机器代码加密秘钥”的部分或全部被保存于处理器芯片内部,外界不可读且不可擦写的非失忆性存储部件中。本方案所涉及的处理器硬件在“加密机器代码”进入处理器内核流水线之前的最后一级缓存中(即如图1所示的“指令耦合缓存”),使用“机器代码加密秘钥”作为解密秘钥对“加密机器代码”自动进行解密(即“加密机器代码”进入到“指令耦合缓存”之后便成为了“原始机器代码”);
本方案基于一种可实现的“处理器缓存结构”,如图1所示,但不限制仅仅基于图1所示的“处理器缓存结构”。对于处理器内部某一个内核而言,处理器缓存可以存在共享缓存和私有缓存,并且不限定共享缓存的具体结构。所谓“私有缓存”是指在物理实现上,不能被内核以外的其它内核或硬件部件访问。对于一个内核,至少存在一级私有私有缓存,但不限制只存在一级私有缓存,如图1所示。对于“加密机器代码”而言,在处理器内部,包括所有共享缓存以及除“指令耦合缓存”以外的所有其它私有缓存,其内部所保存的都是“加密机器代码”而非“原始机器代码”;
所以,在软件不需要被加密的需求情况下,软件通过使用ECB2ECS指令对“原始机器代码”进行从其它缓存到“指令耦合缓存”的转移。而在“原始机器代码”已被加密的情况下,软件需要使用本发明技术方案所实现的EECB2ECS指令对“加密机器代码”进行从其它缓存到“指令耦合缓存”的转移。否则,进入内核流水线执行的机器代码将等同于乱码而无法正确执行原始软件的预定功能。由于本发明所提供技术方案对于“加密机器代码”的解密是在内核私有缓存中完成,且该私有缓存只能被内核中的流水线硬件直接访问,且内核流水线硬件只具备执行机器代码的能力而不具备保存机器代码的能力,因此解密后的机器代码在物理上不存在被泄露或者说非法复制的可能(即如果非法程序从非失忆性存储部件或者非“指令耦合缓存”的缓存中获取机器代码,那么非法程序所获得的永远都是“加密机器代码”)。
参考图2所示,实现“原始机器代码”加密安装及“加密机器代码”解密运行的技术方案具体步骤包括:
步骤1:“软件原始供应商”使用由“编译服务商”所提供的“离线编译器”完成对“原始软件源代码”的编译,并在编译过程中提供“执行加密编译”的选项参数,此时编译器所生成机器代码为“编译软件机器代码”。“编译软件机器代码”并未被“离线加密器”加密,但是使用了EECB2ECS指令替代ECB2ECS指令。在生成“编译软件机器代码”的同时,“离线编译器”针对该“编译软件机器代码”生成“编译软件序列号”,“离线编译器”所生成的“编译软件机器代码”虽然未被“离线加密器”加密,但是“编译软件机器代码”却已被“离线编译器”加密,“编译软件序列号”的作用正是为了在“步骤9”中获取“编译服务商”所提供的对应于该“编译软件序列号”的“编译软件解密秘钥”;
步骤2:“软件原始供应商”判断“原始软件源代码”是否使用属于“算法原始供应商”所提供的“加密算法机器代码”(即外挂部件)。如果不使用“加密算法机器代码”,“软件原始供应商”向“芯片原始供应商”提供处理器芯片的“处理器序列号”以及“编译软件序列号”,随后从“步骤8”继续执行。如果需要使用“加密算法机器代码”,“软件原始供应商”向“算法原始供应商”提供处理器芯片的“处理器序列号”,随后从“步骤3”继续执行;
步骤3:“算法原始供应商”使用由“编译器服务商”所提供的“离线编译器”完成对“原始算法源代码”的编译,并在编译过程中提供“执行加密编译”的选项参数,此时编译器所生成机器代码为“编译算法机器代码”。“编译算法机器代码”并未被加密,但是使用了EECB2ECS指令替代ECB2ECS指令,在生成“编译算法机器代码”的同时,“离线编译器”针对该“编译算法机器代码”生成“编译算法序列号”,“离线编译器”所生成的“编译算法机器代码”虽然未被“离线加密器”加密,但是“编译算法机器代码”却已被“离线编译器”加密,“编译算法序列号”的作用正是为了在“步骤5”中获取“编译服务商”所提供的对应于该“编译算法序列号”的“编译算法解密秘钥”;
步骤4:“算法原始供应商”向“芯片原始供应商”提供处理器芯片的“处理器序列号”、“算法复合加密秘钥”以及“编译算法序列号”。“芯片原始供应商”依据“处理器序列号”从自身所维护的产品信息数据库中获取该“处理器序列号”所对应的“处理器唯一识别号”(“处理器唯一识别号”被存储于处理器内部非失忆性存储部件内特殊区域,该区域数据软件不可读取,软件和硬件均不可擦除),并依据“算法复合加密秘钥”与“处理器唯一识别号”混合生成“算法机器代码加密秘钥”。“芯片原始供应商”使用不对外公布的秘钥对该“算法机器代码加密秘钥”信息与即时时间信息的总体信息之和进行加密,生成“加密机器代码加密秘钥”;
步骤5:“芯片原始供应商”向“编译服务商”提供“编译算法序列号”。“编译服务商”依据“编译算法序列号”在自身所维护的产品信息数据库中获取该“编译算法序列号”所对应的“编译算法解密秘钥”,“编译服务商”使用不对外公布的秘钥对该“编译算法解密秘钥”信息与即时时间信息的总体信息之和进行加密,生成“加密编译解密秘钥”,并将该“加密编译解密秘钥”反馈给“芯片原始供应商”。“芯片原始供应商”将“加密编译解密秘钥”和“加密机器代码加密秘钥”反馈给“算法原始供应商”;
步骤6:“算法原始供应商”向“离线编译器”输入“编译算法机器代码”和“加密编译解密秘钥”,“离线编译器”首先对“加密编译解密秘钥”解密,获取“编译算法解密秘钥”,然后再使用“编译算法解密秘钥”对“编译算法机器代码”进行解密,生成“原始算法机器代码”;
步骤7:“算法原始供应商”向“离线加密器”输入“原始算法机器代码”、“加密机器代码加密秘钥”,“离线加密器”首先对“加密机器代码加密秘钥”解密,获取“算法机器代码加密秘钥”,然后再使用“算法机器代码加密秘钥”完成对“原始算法机器代码”的实际加密处理,生成“加密算法机器代码”。“算法原始供应商”将“加密算法机器代码”反馈给“软件原始供应商”;
步骤8:“软件原始供应商”向“芯片原始供应商”提供处理器芯片的“处理器序列号”、“软件复合加密秘钥”以及“编译软件序列号”。“芯片原始供应商”依据“处理器序列号”从自身所维护的产品信息数据库中获取该“处理器序列号”所对应的“处理器唯一识别号”,并依据“软件复合加密秘钥”,与“处理器唯一识别号”混合生成“软件机器代码加密秘钥”。“芯片原始供应商”使用不对外公布的秘钥对该“软件机器代码加密秘钥”信息与即时时间信息的总体信息之和进行加密,生成“加密机器代码加密秘钥”;
步骤9:“芯片原始供应商”向“编译服务商”提供“编译软件序列号”。“编译服务商”依据“编译软件序列号”在自身所维护的产品信息数据库中获取该“编译软件序列号”所对应的“编译软件解密秘钥”,“编译服务商”使用不对外公布的秘钥对该“编译软件解密秘钥”信息与即时时间信息的总体信息之和进行加密,生成“加密编译解密秘钥”,并将该“加密编译解密秘钥”反馈给“芯片原始供应商”。“芯片原始供应商”将“加密编译解密秘钥”和“加密机器代码加密秘钥”反馈给“软件原始供应商”;
步骤10:“软件原始供应商”向“离线编译器”输入“编译软件机器代码”和“加密编译解密秘钥”,“离线编译器”首先对“加密编译解密秘钥”解密,获取“编译软件解密秘钥”,然后再使用“编译软件解密秘钥”对“编译软件机器代码”进行解密,生成“原始软件机器代码”;
步骤11:“软件原始供应商”向“离线加密器”输入“原始软件机器代码”、“加密机器代码加密秘钥”,“离线加密器”首先对“加密机器代码加密秘钥”解密,获取“软件机器代码加密秘钥”,然后再使用“软件机器代码加密秘钥”完成对“原始软件机器代码”的实际加密处理。在完成对于“加密算法机器代码”的集成后,生成“加密软件机器代码”。“软件原始供应商”将“加密软件机器代码”反馈给“用户”。
本发明提供的商务方案如下:
本发明商务方案的实现以上述“技术方案”所能达到的目标作为基础,归纳包括:
1、确保在用户计算机上所安装的“加密软件机器代码”不可能被不法商贩使用复制、破解等手段实现盗版;
2、在整体商务活动中,确保无论对于“软件原始供应商”还是对于“算法原始供应商”而言,其“原始源代码”及“原始机器代码”都不需要对外披露或被迫泄密;
3、在整体商务活动中,商家之间的机密通信信息不需要对外披露或被迫泄密;
如图2所示,本发明商务方案包含以下主要商务角色:
1、“用户”,即终端用户。“用户”是软件的购买者,也是对于某一软件产品所产生的整体商务活动中唯一,或者说全部软件价值的支付者(即某一软件产品的整体商务活动中,其它商务角色的受益都直接或间接地来自于“用户”);
2、“软件原始供应商”,即直接为“用户”提供所需软件的软件生产商家,也是对于某一软件产品所产生的整体商务活动中唯一需要完成ToC商业活动的商家(或者说是“用户”为了购买自身所需软件而唯一需要面对的商家)。在对于某一软件所产生的整体商务活动中,“软件原始供应商”除了需要直接面对“用户”,还需要完成与其它商家之间ToB的商业活动;
3、“算法原始供应商”,即直接为“软件原始供应商”提供重要算法实现的外挂部件生产商家;
4、“芯片原始供应商”,即“用户”计算机内处理器芯片的生产商家。“芯片原始供应商”是为“软件原始供应商”和“算法原始供应商”提供加密技术及加密服务的唯一商家;
5、“编译服务商”,即为“软件原始供应商”和“算法原始供应商”提供对“原始源代码”进项编译的编译技术及编译服务的编译器生产商家;
如图2所示,“编译服务商”与“软件原始供应商”及“算法原始供应商”之间的商务关系事实上由“芯片原始供应商”代理完成。客观上,“编译服务商”也可以直接与“软件原始供应商”或者“算法原始供应商”建立合法商务关系。但事实上“编译服务商”与“芯片原始供应商”之间存在专利授权的问题,因此,即便“编译服务商”与“软件原始供应商”或“算法原始供应商”之间直接建立商务关系,“编译服务商”也需要继续与“芯片原始供应商”保持必要的商务关系。然而对于“软件原始供应商”或“算法原始供应商”而言,如果直接与“编译服务商”建立商务关系,会因为财务变得更复杂了而增加商务活动成本。如图4所示,为图2所示商务关系的一种变体,即“芯片原始供应商”并购“编译服务商”的情况。如果“软件原始供应商”和“算法原始供应商”所维持的是图2所示的商务关系,那么对于与己无关的并购案将不会对自己的财务及商务关系产生任何影响。但如果“软件原始供应商”和“算法原始供应商”直接与“编译服务商”建立商务关系,那么“软件原始供应商”和“算法原始供应商”势必因“芯片原始供应商”与“编译服务商”之间的并购案而在财务及商务关系上受到较大影响。在实际的商务环境中,“芯片原始供应商”与“编译服务商”之间发生并购案的概率较高,因此对于本发明商务方案而言,如图2所示的商务关系架构为本发明所主张推荐的原始商务关系架构;
对于维系图2所示的商务关系架构存在必要商务客观概念包括:
1、“商品”,即商家提供给客户的软件或技术服务;
2、“商品价值”,即“商品”所包含的使用价值和版权价值;
3、“购买价格”,即为获得“商品”所支付的资金;
如图2所示,在“用户”与“软件原始供应商”之间,“软件原始供应商”提供的“商品”为“加密软件机器代码”(即“加密软件”),“用户”为获取“加密软件机器代码”而支付“财务A”作为“购买价格”。“加密软件机器代码”包含“软件使用价值”和“软件版权价值”。对于本发明所涉及商务行为,如果“用户”只获得“加密软件机器代码”在自己计算机上使用的权利,那么“用户”所支付的“财务A”只购买了“软件使用价值”而没有购买“软件版权价值”(因此,“软件原始供应商”并不能收取包含“软件版权价值”的“购买价格”)。“软件原始供应商”为了维护自身的“软件版权价值”不被侵犯,需要为此付出“软件版权价值”的“版权价值成本”,即购买对于软件版权保护的“加密服务”,并为此而向“芯片原始供应商”支付“财务B”。因此,必然需要维系图2所示“软件原始供应商”与“芯片原始供应商”之间为“加密服务”而存在的商务关系(“软件原始供应商”生产“加密软件机器代码”所需要为其“软件使用价值”所付出的“使用价值成本”来自于“编译服务商”,即由“编译服务商”所提供的对于源代码进行编译的技术服务,为此而需要支付“财务E”购买“编译服务商”提供的技术服务,如图2所示,“财务E”由“芯片原始供应商”所代理)。
如图2所示,在“软件原始供应商”与“算法原始供应商”之间,“算法原始供应商”提供的“商品”为“加密算法机器代码”(即“外挂部件”),“软件原始供应商”为获取“加密算法机器代码”而支付“财务C”作为“购买价格”。“加密算法机器代码”包含“外挂部件使用价值”和“外挂部件版权价值”。对于本发明所涉及商务行为,如果“软件原始供应商”只能获得“加密算法机器代码”集成到自己产品中的权利,那么“软件原始供应商”所支付的“财务C”只购买了“外挂部件使用价值”而没有购买“外挂部件版权价值”(因此,“算法原始供应商”并不能收取包含“外挂版权价值”的“购买价格”)。“算法原始供应商”为了维护自身的“外挂部件版权价值”不被侵犯需要为此付出“外挂部件版权价值”的“版权价值成本”,即购买对于“加密算法机器代码”版权保护的“加密服务”,并为此而向“芯片原始供应商”支付“财务D”。因此,必然需要维系图2所示“算法原始供应商”与“芯片原始供应商”之间为“加密服务”而存在的商务关系(“算法原始供应商”生产其“加密算法机器代码”所需要为“外挂部件使用价值”所付出的“使用价值成本”来自于“编译服务商”,即由“编译服务商”所提供的对于源代码进行编译的技术服务,为此而需要支付“财务E”购买“编译服务商”提供的技术服务,如图2所示,“财务E”由“芯片原始供应商”所代理)。
基于图2所示商务关系架构,本发明商务方案所涉及商务活动步骤如图3所示流程图。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对本方案的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1所示为处理器内部缓存硬件结构一种典型示例的概念图,所代表的是一种可满足本发明要求的硬件结构并不代表本方案需要限定为该种硬件结构:
图1所示“非失忆性存储设备”为处理器内部或者外部设备,泛指但不特指为传统意义上的“软盘”、“硬盘”、“固态硬盘”以“光盘”等其它非失忆性存储设备,“非失忆性存储设备”用于永久存储软件的机器代码、用户数据,等其它形式的数据;
图1所示“系统内存”为处理器内部或外部用于大量随机存储软件机器代码、用户数据、等其它形式的数据的失忆性存储部件或设备;
图1所示“指令共享缓存”为处理器内部用于缓存机器代码的专用缓存,并表示该缓存排除软件层面的访问权限问题,在物理上可以被处理器内部所有内核访问;
图1所示“指令内核缓存”为处理器内核内部用于缓存机器代码的专用缓存,并表示该缓存即便排除软件层面的访问权限问题,在物理上除其所在内核以外,其它内核或硬件均不能对该缓存进行访问;
图1所示“指令耦合缓存”为处理器内核内部最后一级用于缓存机器代码的专用缓存,并表示除该缓存以外没有其它专用缓存直接与内核流水线存在物理上存在连接。
图2所示为本发明中商务方案的示意图:
图2所示,标识为“ToC”的带箭头虚线表示商家与终端用户存在的财务支付关系,ToC是To Customer的英文缩写,表示商家与终端用户之间的商业行为;
图2所示,标识为“ToB”的带箭头虚线表示商家到商家的财务支付关系,ToB是ToBusiness的英文缩写,表示商家到商家之间的商业行为;
图2所示,“离线编译器”为“编译服务商”所提供的,被限制使用网络进行对外通信的,对“原始源代码”进行编译的编译器。该编译器本身即为加密软件,其内部存在不同于“离线加密器”所拥有的EDF,用于对于在图2所示商务关系中的交互数据,进行加密及解密运算。由于“离线编译器”本身为加密软件,从而保证了“离线编译器”EDF的算法不被破解;
图2所示,“离线加密器”为“芯片原始供应商”所提供的,被限制使用网络进行对外通信的,对“原始机器代码”进行加密的工具。该“离线加密器”本身即为加密软件,其内部存在不对外公开的EDF算法,用于对于在图2所示商务关系中的交互数据,进行加密及解密运算,以及用于对于“原始机器代码”的加密运算。由于“离线加密器”本身为加密软件,从而保证了“离线加密器”EDF的算法不被破解;
图2所示,“在线应用发布器”为“软件原始供应商”自身开发并使用的,用于实现与“用户”、“算法原始供应商”以及“芯片原始供应商”之间在线联络,并完成“软件原始供应商”在线向“用户”交付其软件产品。
图2所示,标识为“财务X”(X表示A~E)的标签表示存在资金支付的商业行为。
图3所示为本发明商务方案的基本流程图。
图4所示为图2所示商务关系架构的一种变体,即“芯片原始供应商”并购“编译服务商”的情况下所产生的商务关系架构。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案及商务方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,并获得其它的实施方式;
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构或流程。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形;
实施例1
本发明的一个实施例,本发明技术方案中对于“加密机器代码”进行解密的“机器代码加密秘钥”由以下两部分之一单独组成或者由以下两部分共同组成:
1、保存于处理器内部“非失忆性存储部件”内部(如图1所示)的“处理器唯一识别号”;
2、由“原始供应商”在生产“加密机器代码”的过程中所提供的“复合加密秘钥”;
其中“处理器唯一识别号”不能被任何软件读取、不能被任何硬件擦写、只能被处理器内核内部硬件读取;
其中“复合加密秘钥”由软件通过内核指令设置,并可以通过该指令决定“复合加密秘钥”与“处理器唯一识别号”共同组成“机器代码加密秘钥”的具体形式(即字节的排列次序);
软件不能读取“处理器唯一识别号”,但是可以通过内核指令将“处理器唯一识别号”设置为“机器代码加密秘钥”的全部内容。而“机器代码加密秘钥”为内核硬件寄存器,不能被任何软件或内核外部硬件读取,只能被内核内部硬件读取;
软件在设置“机器代码加密秘钥”的过程中,首先是通过内核指令将“处理器唯一识别号”设置为“机器代码加密秘钥”(此时“机器代码加密秘钥”的全部信息即为“处理器唯一识别号”全部信息),这一将“处理器唯一识别号”设置为内核硬件所寄存的“机器代码加密秘钥”的指令以字符“GETSEC”作为指令符号,但不限制仅使用“GETSEC”作为指令符号。然后再使用内核指令将“复合加密秘钥”按照指令所要求的字节次序及插入的字节数量插入到已有的“机器代码加密秘钥秘钥”中(此时“机器代码解密秘钥”的全部信息为“处理器唯一识别号”和“复合加密秘钥”的复合体信息,或者“机器代码解密秘钥”的全部信息被“复合加密秘钥”覆盖),这一将“复合加密秘钥”插入已有“机器代码加密秘钥”的指令以字符“SETSEC”作为指令符号,但不限制仅使用“SETSEC”作为指令符号。因此,如果软件不使用SETSEC指令,就意味着内核中的“机器代码加密秘钥”就等于“处理器唯一识别号”。或者如果SETSEC所插入的字节数量等同于已有“机器代码加密秘钥”的字节数量,就意味着内核中的“机器代码加密秘钥”就等于“复合加密秘钥”。
实施例2
本发明的一个实施例,在实施例1的基础上,软件通过EECB2ECS指令完成将“加密机器代码”从“指令耦合缓存”以外向“指令耦合缓存”的转移。EECB2ECS指令在内核硬件执行的过程中,以通过实施例1所设置的“机器代码加密秘钥”作为内核硬件内置EDF的秘钥,自动将所需转移的“加密机器代码”进行解密,并在解密后保存于“指令耦合缓存”中。内核流水线通过读取“指令耦合缓存”中已被解密的机器代码执行软件的具体指令。
实施例3
本发明的一个实施例,对于“用户”已被授权使用的“加密机器代码”,并不意味着该“加密机器代码”中的所有机器代码都处于加密状态。在实施例2的基础上,只有在EECB2ECS指令之后,并且在EECB2ECS指令所描述的指令寻址范围内的机器代码是处于加密状态的。所以,在实施1的基础上,事实上在“加密机器代码”中,所有对于“机器代码加密秘钥”具有设置功能的内核指令(包括将GETSEC指令、SETSEC指令),以及EECB2ECS指令都不会处于加密状态;
其中SETSEC指令并不直接把指令中的参数值(即在机器代码中静态体现的不变量)作为“复合加密秘钥”体现在机器代码中。SETSEC指令采用间接寻址的方式获取“复合加密秘钥”,所谓间接寻址是指在SETSEC指令参数中提供的是用于保存“复合加密秘钥”的变量在内存中的地址,内核硬件在执行该指令时需要自动从该地址中读取“复合加密秘钥”的具体信息。所以,并不会因为SETSEC指令在机器代码中处于非加密状态而暴露“复合加密秘钥”的具体信息,即任何非法程序并不能通过读取存储于非失忆性存储部件中的机器代码获得“复合加密秘钥”的信息(即保证了“芯片原始供应商”不可能在“加密机器代码”采用了“复合加密秘钥”作为“机器代码加密秘钥”的一部分或全部分的情况下,在并不知道“加密机器代码”被安装的目标计算机处理器序列号的情况下,不能通过技术手段解密“加密机器代码”。而如果“芯片原始供应商”成为“用户”或与“用户”达成某种协议在获取“加密机器代码”被安装目标计算机处理器序列号和某“加密机器代码”的情况下,通过技术手段解密该“加密机器代码”,则属于可以被轻易证实的严重商业违法行为);
本示例所解决的问题是“复合加密秘钥”是如何保存到软件变量中而不用将“复合加密秘钥”具体信息静态地体现在处于非加密状态机器代码中,包括步骤:
1、“复合加密秘钥”具体信息通过静态赋值的内核指令直接赋值给目标变量,即令目标变量等于“复合加密秘钥”;
2、在实施例1的基础上,将步骤1所述的机器代码在仅使用GETSEC指令设置“机器代码加密秘钥”的条件下进行EDF加密运算,得到步骤1所述机器代码的加密机器代码。
实施例4
本发明的一个实施例,在实施例1的基础上,仅使用GETSEC指令设置“机器代码加密秘钥”和同时使用GETSEC指令、SETSEC指令设置“机器代码加密秘钥”,这两种情况都限制“加密机器代码”只能在某一台计算机上运行,即“原始供应商”只授权单机版的软件使用权。在实施例1的基础上,本实施例实现“原始供应商”实现授权多机版的软件使用权限,包括步骤:
1、在实施例3的基础上实现对“复合加密秘钥”的加密保护;
2、在实施例1的基础上,使用SETSEC指令将“复合加密秘钥”按照指令要求覆盖已有的“机器代码加密秘钥”的全部信息内容。
Claims (7)
1.一种实现对已编译的处理器内核运行的机器代码进行加密的方法,其特征在于,包括操作和步骤:
“离线编译器”以实现“加密机器代码”为需求对“原始源代码”进行编译,但并不实现对编译后的机器代码进行加密运算而产生具体的“加密机器代码”;
“离线编译器”在编译过程中,在需要被加密的机器代码的前方位置,预先插入或预先替换为下一步执行加密处理所必要的相关内核指令,包括以下三项:
1、插入内核指令GETSEC;
2、插入内核指令SETSEC;
3、以内核指令EECB2ECS指令替换内核指令ECB2ECS指令;
执行加密运算,并生成具体的“加密机器代码”,包括步骤:
步骤1、“离线编译器”在编译过程中,在预先插入或预先替换的上述内核指令中,确保上述所有预先插入的内核指令在EECB2ECS指令之前;
步骤2、“离线加密器”解析由“离线编译器”编译后的机器代码,当解析到EECB2ECS指令时,从该指令参数中获取该指令所指定的机器代码范围;
步骤3、“离线加密器”以“芯片原始供应商”不限通信方式或数据交付方式所提供的“机器代码加密秘钥”对步骤3所述的机器代码范围进行加密运算,并将加密运算后所产生的结果覆盖相对应位置未被加密的机器代码,所使用的加密运算不限定其EDF的具体实现方式,但该EDF加密算法必须是存在与之匹配的可逆运算的EDF解密算法;
步骤4、“离线加密器”扫描“离线编译器”编译后的机器代码全部范围,对所有满足步骤2所述内容进行步骤3相同的操作,最终生成完整的“加密机器代码”。
2.一种实现对“加密机器代码”进行解密的方法,其特征在于,包括操作和步骤:
在处理器内核中至少存在一级缓存专用于缓存机器代码,即“指令耦合缓存”,“指令耦合缓存”在硬件实现上直接与内核流水线相连,即内核流水线直接从“指令耦合缓存”读取机器代码作为内核流水线上执行的内核指令;
在处理器内核中存在特定寄存器用于存储对“加密机器代码”进行解密所使用到的“机器代码加密秘钥”,该寄存器可称之为但不限制称之为“秘钥寄存器”;
软件通过单独使用GETSEC指令或者同时使用GETSEC指令、SETSEC指令实现对“秘钥寄存器”具体信息内容进行设置,将“秘钥寄存器”具体信息内容设置为存储于处理器内部非失忆性存储部件中的“处理器唯一识别号”或者由“机器代码原始供应商”所提供的“复合加密秘钥”或者由“处理器唯一识别号”及“复合加密秘钥”共同组成的信息内容;
软件通过EECB2ECS指令将“加密机器代码”从“指令耦合缓存”以外转移至“指令耦合缓存”,在转移的过程中,内核硬件以“秘钥寄存器”所存储的信息内容作为解密秘钥对被转移的“加密机器代码”自动进行解密,所使用EDF解密算法不限定具体实现方式,但必须是与“离线加密器”所拥有的EDF加密算法匹配的可逆运算的EDF解密算法。
3.根据权利要求1所述的一种实现对已编译的处理器内核运行的机器代码进行加密的方法,以及根据权利要求2所述的一种实现对“加密机器代码”进行解密的方法,其特征在于,实现“用户”与“软件原始供应商”之间关于单机版或者多机版软件版权保护的商业模式,包括商务行为和步骤:
“用户”向“软件原始供应商”索购“单机版使用版权”或者“多机版使用版权”的软件;
“软件原始供应商”确认可提供“用户”索购产品,否者终止所有商业行为;
“用户”向“软件原始供应商”支付但不限制是否通过第三方担保支付“财务A”,如果“用户”索购产品为“单机版使用版权”,“用户”还需向“软件原始供应商”提供其索购产品将被安装的目标计算机的“处理器序列号”;
如果“用户”索购产品为“单机版使用版权”,“软件原始供应商”根据权利要求1所述的一种实现对已编译的处理器内核运行的机器代码进行加密的方法,为“用户”生产出只能在“用户”所提供的“处理器序列号”所对应的处理器上运行的“加密机器代码”,亦即“用户”索购的产品;
如果“用户”索购产品为“多机版使用版权”,“软件原始供应商”根据权利要求1所述的一种实现对已编译的处理器内核运行的机器代码进行加密的方法,为“用户”生产出可以在不区分“处理器序列号”的处理器上运行的“加密机器代码”,亦即“用户”索购的产品;
“软件原始供应商”通过“在线应用发布器”但不限定只是用“在线应用发布器”向“用户”交付“用户”索购的产品;
如果“用户”索购产品为“单机版使用版权”,“用户”将“软件原始供应商”所交付的产品安装到“处理器序列号”所对应的计算机内,计算机处理器实现权利要求2所述内容,计算机运行正常,“用户”确认对“软件原始供应商”索购产品的交易成功,进入“软件原始供应商”售后商业流程;
如果“用户”索购产品为“多机版使用版权”,“用户”将“软件原始供应商”所交付的产品安装到不区分“处理器序列号”的多台计算机内,所有计算机处理器实现权利要求2所述内容,所有计算机运行正常,“用户”确认对“软件原始供应商”索购产品的交易成功,进入“软件原始供应商”售后商业流程。
4.根据权利要求1所述的一种实现对已编译的处理器内核运行的机器代码进行加密的方法,以及根据权利要求2所述的一种实现对“加密机器代码”进行解密的方法,其特征在于,实现“软件原始供应商”与“算法原始供应商”之间关于单机版或者多机版算法版权保护的商业模式,包括商务行为和步骤:
“软件原始供应商”向“算法原始供应商”索购“单机版使用版权”或者“多机版使用版权”的算法;
“算法原始供应商”确认可提供“软件原始供应商”索购产品,否者终止所有商业行为;
“软件原始供应商”向“算法原始供应商”支付但不限制是否通过第三方担保支付“财务C”,如果“软件原始供应商”索购产品为“单机版使用版权”,“软件原始供应商”还需向“算法原始供应商”提供其索购产品将被安装的目标计算机的“处理器序列号”;
如果“软件原始供应商”索购产品为“单机版使用版权”,“算法原始供应商”根据权利要求1所述的一种实现对已编译的处理器内核运行的机器代码进行加密的方法,为“软件原始供应商”生产出只能在“软件原始供应商”所提供的“处理器序列号”所对应的处理器上运行的“加密机器代码”,亦即“软件原始供应商”索购的产品;
如果“软件原始供应商”索购产品为“多机版使用版权”,“算法原始供应商”根据权利要求1所述的一种实现对已编译的处理器内核运行的机器代码进行加密的方法,为“软件原始供应商”生产出可以在不区分“处理器序列号”的处理器上运行的“加密机器代码”,亦即“软件原始供应商”索购的产品;
“算法原始供应商”通过“在线应用发布器”但不限定只是用“在线应用发布器”向“软件原始供应商”交付“用户”索购的产品;
“软件原始供应商”依据“用户”对于相关软件安装使用的反馈的正常结果,确认向“算法原始供应商”索购产品的交易成功,进入“算法原始供应商”售后商业流程。
5.根据权利要求1所述的一种实现对已编译的处理器内核运行的机器代码进行加密的方法,其特征在于,实现“软件原始供应商”与“芯片原始供应商”之间关于单机版或者多机版软件版权保护的加密服务的商业模式,包括商务行为和步骤:
“软件原始供应商”向“芯片原始供应商”索购“单机版使用版权”或者“多机版使用版权”的加密服务;
“芯片原始供应商”确认可提供“软件原始供应商”索购产品,否者终止所有商业行为;
“软件原始供应商”向“芯片原始供应商”支付但不限制是否通过第三方担保支付“财务B”,“软件原始供应商”向“芯片原始供应商”提供“软件复合加密秘钥”,如果“软件原始供应商”索购产品为“单机版使用版权”,“软件原始供应商”还需向“芯片原始供应商”提供其索购产品将被安装的目标计算机的“处理器序列号”;
如果“软件原始供应商”索购产品为“单机版使用版权”,“芯片原始供应商”依据“软件复合加密秘钥”与“处理器序列号”生成“加密机器代码加密秘钥”,并向“软件原始供应商”交付“加密机器代码加密秘钥”;
如果“软件原始供应商”索购产品为“多机版使用版权”,“芯片原始供应商”依据“软件复合加密秘钥”生成“加密机器代码加密秘钥”,并向“软件原始供应商”交付“加密机器代码加密秘钥”;
“软件原始供应商”通过“离线加密器”和“加密机器代码加密秘钥”完成对其所需加密的机器代码的加密任务。
6.根据权利要求1所述的一种实现对已编译的处理器内核运行的机器代码进行加密的方法,其特征在于,实现“算法原始供应商”与“芯片原始供应商”之间关于单机版或者多机版算法版权保护的加密服务的商业模式,包括商务行为和步骤:
“算法原始供应商”向“芯片原始供应商”索购“单机版使用版权”或者“多机版使用版权”的加密服务;
“芯片原始供应商”确认可提供“算法原始供应商”索购产品,否者终止所有商业行为;
“算法原始供应商”向“芯片原始供应商”支付但不限制是否通过第三方担保支付“财务D”,“算法原始供应商”向“芯片原始供应商”提供“算法复合加密秘钥”,如果“算法原始供应商”索购产品为“单机版使用版权”,“算法原始供应商”还需向“芯片原始供应商”提供其索购产品将被安装的目标计算机的“处理器序列号”;
如果“算法原始供应商”索购产品为“单机版使用版权”,“芯片原始供应商”依据“算法复合加密秘钥”与“处理器序列号”生成“加密机器代码加密秘钥”,并向“算法原始供应商”交付“加密机器代码加密秘钥”;
如果“算法原始供应商”索购产品为“多机版使用版权”,“芯片原始供应商”依据“算法复合加密秘钥”生成“加密机器代码加密秘钥”,并向“算法原始供应商”交付“加密机器代码加密秘钥”;
“算法原始供应商”通过“离线加密器”和“加密机器代码加密秘钥”完成对其所需加密的机器代码的加密任务。
7.一种实现“原始供应商”与“编译服务商”之间关于软件编译服务的商业模式,包括商务行为和步骤:
“原始供应商”通过“离线编译器”对“原始源代码”进行编译获得被“离线编译器”加密过的“编译机器代码”,“离线编译器”在完成编译的过程中,同时生成与“编译机器代码”存在相互唯一对应关系的“编译序列号”;
“原始供应商”向“编译服务商”索购对“编译机器代码”进行解密的技术服务;
“编译服务商”确认可提供“原始供应商”索购技术服务,否者终止所有商业行为;
“原始供应商”向“编译服务商”支付但不限制是否通过第三方担保支付“财务E”,并提供对应于“编译机器代码”的“编译序列号”;
“编译服务商”依据“编译序列号”在自身所维护的产品信息数据库中获取该“编译序列号”所对应的“编译解密秘钥”,“编译服务商”使用不对外公布的秘钥对该“编译解密秘钥”信息与即时时间信息的总体信息之和进行加密,生成“加密编译解密秘钥”,并将该“加密编译解密秘钥”反馈给“原始供应商”;
“原始供应商”向“离线编译器”输入“编译机器代码”和“加密编译解密秘钥”,“离线编译器”首先对“加密编译解密秘钥”解密获取“编译解密秘钥”,然后再使用“编译解密秘钥”对“编译机器代码”进行解密,生成“原始机器代码”,完成对“原始源代码”的整个编译过程,完成“编译服务商”的编译服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011224595.0A CN112241519A (zh) | 2020-11-05 | 2020-11-05 | 一种软件版权保护的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011224595.0A CN112241519A (zh) | 2020-11-05 | 2020-11-05 | 一种软件版权保护的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112241519A true CN112241519A (zh) | 2021-01-19 |
Family
ID=74170144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011224595.0A Pending CN112241519A (zh) | 2020-11-05 | 2020-11-05 | 一种软件版权保护的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112241519A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022151001A1 (zh) * | 2021-01-13 | 2022-07-21 | 王志平 | 一种软件版权保护的实现方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740940A (zh) * | 2005-09-09 | 2006-03-01 | 北京兆日科技有限责任公司 | 基于可信计算模块芯片实现计算机软件防盗版的方法 |
CN201029035Y (zh) * | 2006-11-13 | 2008-02-27 | 北京深思洛克数据保护中心 | 一种执行保护软件代码的装置 |
CN101281576A (zh) * | 2008-05-14 | 2008-10-08 | 北京深思洛克数据保护中心 | 用于执行保护软件代码的方法及装置 |
CN101300584A (zh) * | 2005-08-06 | 2008-11-05 | 安全尺度有限公司 | 防止软件逆向工程、未经授权修改以及运行时数据截取的方法 |
CN102346834A (zh) * | 2011-11-25 | 2012-02-08 | 武汉钢铁(集团)公司 | Java应用软件加密保护的方法 |
CN106126981A (zh) * | 2016-08-30 | 2016-11-16 | 电子科技大学 | 基于虚拟函数表替换的软件安全防护方法 |
CN106295404A (zh) * | 2015-06-17 | 2017-01-04 | 北京虎符科技有限公司 | 基于安全内核的一体化soc芯片 |
US20170039352A1 (en) * | 2014-04-15 | 2017-02-09 | Lantiq Beteiligungs-GmbH & Co. KG | Root of trust |
CN106548046A (zh) * | 2016-10-25 | 2017-03-29 | 北京深思数盾科技股份有限公司 | 一种保护代码的装置和方法 |
CN107590368A (zh) * | 2017-08-25 | 2018-01-16 | 济南中维世纪科技有限公司 | 嵌入式设备程序防拷贝的方法 |
CN110457869A (zh) * | 2019-07-23 | 2019-11-15 | Oppo广东移动通信有限公司 | 程序编译加密方法、装置、存储介质及电子设备 |
CN111159662A (zh) * | 2019-12-25 | 2020-05-15 | 郑州阿帕斯数云信息科技有限公司 | 一种数据的处理方法和装置 |
CN111680272A (zh) * | 2020-06-05 | 2020-09-18 | 深圳前海微众银行股份有限公司 | 一种字节码加密和解密方法及装置 |
WO2022151001A1 (zh) * | 2021-01-13 | 2022-07-21 | 王志平 | 一种软件版权保护的实现方法 |
-
2020
- 2020-11-05 CN CN202011224595.0A patent/CN112241519A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101300584A (zh) * | 2005-08-06 | 2008-11-05 | 安全尺度有限公司 | 防止软件逆向工程、未经授权修改以及运行时数据截取的方法 |
CN1740940A (zh) * | 2005-09-09 | 2006-03-01 | 北京兆日科技有限责任公司 | 基于可信计算模块芯片实现计算机软件防盗版的方法 |
CN201029035Y (zh) * | 2006-11-13 | 2008-02-27 | 北京深思洛克数据保护中心 | 一种执行保护软件代码的装置 |
CN101281576A (zh) * | 2008-05-14 | 2008-10-08 | 北京深思洛克数据保护中心 | 用于执行保护软件代码的方法及装置 |
CN102346834A (zh) * | 2011-11-25 | 2012-02-08 | 武汉钢铁(集团)公司 | Java应用软件加密保护的方法 |
US20170039352A1 (en) * | 2014-04-15 | 2017-02-09 | Lantiq Beteiligungs-GmbH & Co. KG | Root of trust |
CN106295404A (zh) * | 2015-06-17 | 2017-01-04 | 北京虎符科技有限公司 | 基于安全内核的一体化soc芯片 |
CN106126981A (zh) * | 2016-08-30 | 2016-11-16 | 电子科技大学 | 基于虚拟函数表替换的软件安全防护方法 |
CN106548046A (zh) * | 2016-10-25 | 2017-03-29 | 北京深思数盾科技股份有限公司 | 一种保护代码的装置和方法 |
CN107590368A (zh) * | 2017-08-25 | 2018-01-16 | 济南中维世纪科技有限公司 | 嵌入式设备程序防拷贝的方法 |
CN110457869A (zh) * | 2019-07-23 | 2019-11-15 | Oppo广东移动通信有限公司 | 程序编译加密方法、装置、存储介质及电子设备 |
CN111159662A (zh) * | 2019-12-25 | 2020-05-15 | 郑州阿帕斯数云信息科技有限公司 | 一种数据的处理方法和装置 |
CN111680272A (zh) * | 2020-06-05 | 2020-09-18 | 深圳前海微众银行股份有限公司 | 一种字节码加密和解密方法及装置 |
WO2022151001A1 (zh) * | 2021-01-13 | 2022-07-21 | 王志平 | 一种软件版权保护的实现方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022151001A1 (zh) * | 2021-01-13 | 2022-07-21 | 王志平 | 一种软件版权保护的实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4237802B2 (ja) | 安全な取引管理装置および電子権利保護のためのシステムおよび方法 | |
US20010037450A1 (en) | System and method for process protection | |
JP2001515253A (ja) | 積層式の電子式ソフトウェア分配方法 | |
CN112241519A (zh) | 一种软件版权保护的实现方法 | |
WO2022151001A1 (zh) | 一种软件版权保护的实现方法 | |
US20190044709A1 (en) | Incorporating software date information into a key exchange protocol to reduce software tampering | |
US11748459B2 (en) | Reducing software release date tampering by incorporating software release date information into a key exchange protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |