CN101853352B - 程序执行设备 - Google Patents

程序执行设备 Download PDF

Info

Publication number
CN101853352B
CN101853352B CN2010101163101A CN201010116310A CN101853352B CN 101853352 B CN101853352 B CN 101853352B CN 2010101163101 A CN2010101163101 A CN 2010101163101A CN 201010116310 A CN201010116310 A CN 201010116310A CN 101853352 B CN101853352 B CN 101853352B
Authority
CN
China
Prior art keywords
security procedure
program
programmed instruction
group
key
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.)
Active
Application number
CN2010101163101A
Other languages
English (en)
Other versions
CN101853352A (zh
Inventor
松岛秀树
广田照人
庄田幸惠
原田俊治
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Corp of America
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=34213903&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN101853352(B) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101853352A publication Critical patent/CN101853352A/zh
Application granted granted Critical
Publication of CN101853352B publication Critical patent/CN101853352B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/86Secure or tamper-resistant housings
    • G06F21/87Secure or tamper-resistant housings by means of encapsulation, e.g. for integrated circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect

Abstract

提出了一种程序执行设备,该程序执行设备能够防止程序被未授权地分析或更改。该程序执行设备包括执行单元、第一保护单元和第二保护单元。执行单元执行第一程序和第二程序,并且与能够控制执行的外部设备相连接。当执行单元执行第一程序时,第一保护单元将执行单元从外部设备断开。当执行单元执行第二程序时,第二保护单元保护第一程序。

Description

程序执行设备
本申请是2004年8月26日提交的申请号为200480030743.8、名称为“程序执行设备”专利申请的分案申请。
技术领域
本发明涉及防止程序被未授权更改和分析的技术。
背景技术
近年来,个人电脑和因特网的广泛使用使得可以容易地复制或编辑例如软件这样的数字内容。因此,需要使用抗篡改技术来防止软件被未授权更改和分析。
已对抗篡改技术进行了多年的研究。例如,日经电子(NikkeiElectronics)1998年1月5日的209页至220页的文章“ProtectingSoftware against Inverse Analysis and Falsification”描述了防止未授权的软件分析的基本原理和具体方法。而且,富士施乐(Fuji Xerox)技术报告13号的20至28页中的文章“Software Tamper-resistantTechniques”涉及关于防止未授权的软件分析的技术问题和方法。
尽管已有这些研究,但是仍需要更多各种用于保护程序对抗恶意用户的技术。
发明内容
鉴于存在以上问题,本发明的目的是提供一种程序执行设备,该设备能够通过防止未授权的更改和分析来安全地执行程序。
可以通过执行第一安全程序和第二安全程序的程序执行设备来实现上述目的,所述第一安全程序在第一安全级中运行,所述第二安全程序在低于所述第一安全级的第二安全级中运行,所述程序执行设备包括:执行单元,用于通过在第一模式和第二模式之间进行切换来进行操作,所述第一模式在所述第一安全级中,所述第二模式在所述第二安全级中;外部设备断开单元,用于根据所述第一安全程序的指令,将所述执行单元从外部设备断开;以及保护单元,用于保护所述第二安全程序。
根据这种结构,可以保护程序免受使用硬件的外部攻击和使用软件的攻击。而且,通过断开外部设备可以获得高级别的安全性。
这里,程序执行设备还包括中断检测单元,用于检测中断,其中,所述保护单元包括存储区域,当所述执行单元根据所述第二安全程序进行操作时,所述执行单元将数据写入所述存储区域,以及如果所述中断检测单元在所述执行单元根据所述第二安全程序进行操作时检测到中断,则所述保护单元加密写入所述存储区域中的所述数据,并且,在所述执行单元完成处理所述中断后,在所述执行单元重新开始根据所述第二安全程序进行操作之前,解密所述存储区域中的所述加密的数据。
根据这种结构,在控制从第二安全程序转移到另一个程序之前,加密存储区域中的数据。因此,由于能够防止使用软件对第二安全程序进行未授权的分析,所以能够保护第二安全程序使用的数据免受其它程序的分析和影响。而且,通过仅加密存储区域中的数据可以减少存储器的使用。这使得例如移动电话或PDA这样的、CPU处理速度和存储容量等资源有限的设备能够保持较高的安全性。
这里,第二安全程序可以包含用于调用所述第一安全程序的调用指令,其中,所述执行单元根据所述调用指令将所述第二篡改检测值、所述至少一部分所述第二安全程序的开始地址以及所述至少一部分所述第二安全程序的大小传递给所述第一安全程序。
这里,在所述执行单元执行所述调用指令之前,所述保护单元可以禁止由所述执行单元执行中断处理,其中所述执行单元,(a)根据所述调用指令,将加密的程序密钥传递给所述第一安全程序,(b)如果所述第一篡改检测值与所述第二篡改检测值相同,则根据所述第一安全程序,使用包含在所述第一安全程序中的主密钥解密从所述第二安全程序接收的所述加密的程序密钥,并将所述解密过的程序密钥传递给所述第二安全程序,以及(c)根据所述第二安全程序,使用从所述第一安全程序接收的所述解密过的程序密钥来解密所述第二安全程序的加密的部分,然后删除所述解密过的程序密钥,以及在所述执行单元删除所述解密过的程序密钥后,所述保护单元允许由所述执行单元执行所述中断处理。
根据这些结构,在删除用于解密加密的程序的程序密钥之前不接受任何中断。因此,由于能够防止第二安全程序的未授权的分析,所以可以防止程序密钥遭受通过中断而执行的未授权的分析。
这里,所述执行单元根据所述第一安全程序,可以使用密钥对至少一部分所述第二安全程序执行散列运算,以计算第一篡改检测值;所述执行单元将所述第一篡改检测值与第二篡改检测值进行比较,其中,已经在生成所述第二安全程序时基于所述至少一部分所述第二安全程序计算出所述第二篡改检测值;以及如果所述第一篡改检测值与所述第二篡改检测值不同,则所述执行单元终止所述操作,如果所述第一篡改检测值与所述第二篡改检测值相同,则所述执行单元继续所述操作。
根据这种结构,如果所述第二安全程序被判断为已被篡改,则所述执行单元终止所述操作。这减小了当第二安全程序已被篡改时的危害。
而且,所述第二安全程序包含基于至少一部分第二安全程序生成的篡改检测值。因此,当所述第二安全程序需要被改变时,例如当第二安全程序已被篡改时,可以只对第二安全程序进行改变,而不改变程序执行设备的其它处理模块。
根据本发明的另一方面,提供一种程序执行设备,其执行(i)判断另一程序是否被篡改的第一程序和(ii)与所述第一程序不同的第二程序,所述程序执行设备包括:
执行单元,用于执行所述第一程序和第二程序;以及
断开单元,用于当所述第一程序判断所述第二程序已经被篡改时将所述执行单元从外部设备断开,其中在所述执行单元被所述断开单元从所述外部设备断开后,所述第一程序对所述第二程序执行篡改检测处理,以及当作为篡改检测处理的结果没有检测到篡改时执行所述第二程序的一部分。
根据本发明的另一方面,提供一种用于程序执行设备的程序执行方法,所述程序执行设备执行(i)判断另一程序是否被篡改的第一程序和(ii)与所述第一程序不同的第二程序,所述程序执行设备包括用于执行所述第一程序和第二程序的执行单元;所述程序执行方法包括:
在所述执行单元执行所述第一程序时,保护用于运行所述第一程序的存储器免于从外部看到;
当所述第一程序判断所述第二程序已经被篡改时从外部设备断开所述执行单元;
在所述执行单元通过所述断开从所述外部设备断开后执行对所述第二程序的篡改检测处理;以及
仅当作为篡改检测处理的结果没有检测到篡改时,执行所述第二程序的一部分。
根据本发明的另一方面,提供一种信息处理设备,包括:
存储单元,存储包括用于检测篡改的一个或多个程序指令的第一组程序指令,以及第二组程序指令;以及
控制单元,用于(i)通过使用受保护的存储器执行所述第一组程序指令中的一个或多个程序指令,判断所述第二组程序指令的至少一部分是否被篡改,所述受保护的存储器被保护成外部设备不能看到所述存储器的内容,以及(ii)在判断为否的情况下执行所述第二组程序指令中的一个或多个程序指令。
根据本发明的另一方面,提供一种用于信息处理设备的方法,所述信息处理设备存储包括用于检测篡改的一个或多个程序指令的第一组程序指令以及第二组程序指令;以及
所述方法包括如下步骤:
通过使用受保护的存储器执行所述第一组程序指令中的一个或多个程序指令,判断所述第二组程序指令的至少一部分是否被篡改,所述受保护的存储器被保护成外部设备不能看到所述存储器的内容;以及
在判断为否的情况下执行所述第二组程序指令中的一个或多个程序指令。
附图说明
图1显示了本发明的实施例所涉及的安全处理系统的整体结构;
图2是显示图1所示的认证机构设备的结构的框图;
图3是显示图2所示的编译器的操作的流程图;
图4是显示图1所示的存储卡的结构的框图;
图5是显示图1所示的便携终端的结构的框图;
图6显示存储在图5所示的存储器中的程序;
图7显示图6所示的第二安全处理程序的数据结构;
图8显示图7所示的调用程序的数据结构;
图9是显示图7所示的中断处理程序的执行过程的流程图;
图10显示图6所示的第一安全处理程序的数据结构;
图11显示图6所示的向量表的数据结构;
图12是显示图5所示的CPU的操作的流程图;
图13是显示音乐数据播放过程的流程图;
图14是显示音乐数据播放过程的流程图;
图15是显示音乐数据播放过程的流程图;
图16是显示音乐数据播放过程的流程图;
图17是显示音乐数据播放过程的流程图;
图18是显示认证过程的流程图;
图19是显示当中断出现时CPU的操作的流程图。
具体实施方式
下面参照附图详细描述本发明的实施例。
1.安全处理系统1的结构
图1显示了本发明的实施例所涉及的安全处理系统的整体结构。在图中,总体上,安全处理系统1由认证机构(certificate authority)设备100、ROM写入器200、便携式终端300以及存储卡400构成。
安全处理系统1保护在便携式终端300中执行的程序免受未授权地分析和更改。将被保护的程序是在认证机构设备100中生成的,并由ROM写入器200将其写入ROM。然后将包含程序的ROM安装在便携式终端300中。
在本实施例中,作为一个例子,将被保护的程序是用于解密记录在存储卡400上的加密的音乐数据的加密音乐数据解密程序。
1.1.认证机构设备100
认证机构设备100生成第二安全处理程序,该第二安全处理程序包含图7所示的区域分配程序511、中断禁止程序512、调用程序513、密钥接收程序514、执行标记515、中断处理程序518、解密程序516以及安全程序。安全程序包含需要被保护的加密音乐数据解密程序524。通过ROM写入器200将生成的第二安全处理程序写入ROM,并将其安装在便携式终端300中。后面详细描述每一个程序。
图2显示了认证机构设备100的结构。在图中,证书机构设备100包括编译器101、程序加密单元102、密钥加密单元103、散列值计算单元104、数据嵌入单元105、存储单元106、以及传输单元107。
实际上由包括微处理器、ROM、RAM、硬盘单元、显示单元以及键盘的计算机系统来实现证书机构设备100。通过执行存储在RAM或硬盘单元中的计算机程序的微处理器来实现认证机构设备100的功能。
(1)编译器101
编译器101接收保护程序、调用程序513、解密程序516以及安全程序的源代码的输入。保护程序由区域分配程序511、中断禁止程序512、密钥接收程序514、执行标记515以及中断处理程序518构成。调用程序513用于发送检测第二安全处理程序是否已被篡改所需的数据。调用程序513包含便携式终端300的存储器上的TRS区域程序的开始地址。TRS区域程序对应于第二安全处理程序的解密程序516和加密的程序517。通过加密安全程序生成加密的程序517。
当接收到调用程序513、解密程序516、安全程序以及保护程序的源代码后,编译器101编译这些程序中的每一个。
图3是显示由编译器101编译程序的操作的流程图。
编译器101执行词法分析(S621)和语法分析(S622)。最后,编译器101生成表示可由计算机执行的程序的二进制数据(S623)。
编译器101将调用程序513的二进制数据和保护程序的二进制数据输出到数据嵌入单元105。编译器101还将解密程序516的二进制数据和安全程序的二进制数据输出到程序加密单元102。
(2)程序加密单元102
程序加密单元102接收解密程序516的二进制数据和安全程序的二进制数据。程序加密单元102还接收程序密钥。程序加密单元102根据加密算法E1使用程序密钥加密安全程序,以生成加密的程序517。作为一个例子,加密算法E1是AES(Advanced EncryptionStandard,高级加密标准)。在所述领域,AES是公知的,因此在此省略对其的说明。除AES以外的其它算法也可以被用作加密算法E1。
程序加密单元102将解密程序516和加密的程序517作为TRS区域程序输出到数据嵌入单元105。
程序加密单元102还将TRS区域程序输出至散列值计算单元104。
(3)密钥加密单元103
密钥加密单元103接收程序密钥和主密钥。
密钥加密单元103根据加密算法E1使用主密钥加密程序密钥,以生成加密的密钥。密钥加密单元103将加密的密钥输出到数据嵌入单元105。
(4)散列值计算单元104
散列值计算单元104计算第二安全处理程序的至少一部分的散列值。
在该实施例中,散列值计算单元104接收TRS区域程序和密钥,并根据散列函数使用密钥计算TRS区域程序的散列值。
例如,用于HMAC(Keyed-Hashing for Message Authentication,用于消息认证的密钥散列法)的算法可以被用于计算散列值。
设H为散列函数,K为密钥,文本为将被散列的数据,opad是由重复64次的字节值0x36构成的字符串,并且ipad是由重复64次的字节值0x5C构成的字符串。因此,用于计算散列值的算法可以被表示为H(KXOR opad,H(KXOR ipad,text))。
散列值计算单元104还计算TRS区域程序的二进制大小(binarysize)。
散列值计算单元104将散列值和二进制大小输出到数据嵌入单元105。
(5)数据嵌入单元105
数据嵌入单元105从编译器101接收调用程序513的二进制数据和保护程序的二进制数据,并从散列值计算单元104接收散列值和二进制大小。数据嵌入单元105还从密钥加密单元103接收加密的密钥,并从程序加密单元102接收TRS区域程序。
数据嵌入单元105将散列值作为篡改检测值嵌入调用程序513。数据嵌入单元105还将二进制大小和加密的密钥嵌入调用程序513。数据嵌入单元105将生成的调用程序513包含到保护程序中,并将保护程序和TRS区域程序进行组合以形成第二安全处理程序。数据嵌入单元105将第二安全处理程序写入存储单元106。
(6)存储单元106
存储单元106存储由数据嵌入单元105写入的第二安全处理程序。
(7)传输单元107
传输单元107将存储在存储单元106中的第二安全处理程序输出到ROM写入器200。
1.2.ROM写入器200
ROM写入器200与认证机构设备100相连。ROM写入器200从认证机构设备100接收第二安全处理程序,并将第二安全处理程序写入ROM。然后,将由ROM写入器200写入第二安全处理程序的ROM安装在便携式终端300中。
13.存储卡400
图4显示了存储卡400的结构。在图中,存储卡400包括控制单元401、输入/输出单元402、认证(authentication)单元403、信息存储单元404。
(1)输入/输出单元402
当存储卡400连接到便携式终端300上时,输入/输出单元402在控制单元401和便携式终端300之间执行数据的传输。
(2)信息存储单元404
信息存储单元404包括数据区域410和安全区域420。
数据区域410存储加密的音乐数据411。通过根据加密算法E1使用标题密钥421加密MP3音乐数据从而生成加密的音乐数据411。
安全区域420存储标题密钥421。只有当与认证单元403相互认证成功后,便携式终端300才能访问安全区域420。
这里,可以使用只有存储卡400才具有的信息来加密存储在信息存储单元404中的数据。
(3)认证单元403
认证单元403基于CPRM(Content Protection for RecordableMedia,可记录介质内容保护)与便携式终端300执行相互认证。如果相互认证成功,则认证单元403与便携式终端300建立共享密钥,并将该共享密钥输出到控制单元401。在本领域中,CPRM是公知的,因此,在此不再对其进行说明。除CPRM以外的其它方法也可以被用于相互认证。
(4)控制单元401
控制单元401经由输入/输出单元402与便携式终端300执行数据的传输。只有当便携式设备300与认证单元403的相互认证成功时,控制单元401才允许便携式终端300访问存储在安全区域420中的数据。当输出存储在安全区域420中的数据时,控制单元401使用从认证单元403接收的共享密钥加密数据。
同时,控制单元401允许便携式终端300访问存储在数据区域410中的数据,而无需相互认证。
1.4.便携式终端300
图5显示了便携式终端300的结构。在图中,便携式终端300包括CPU 301、调试器接口302、调试器禁止电路303、中断控制器304、存储器305、存储卡接口306、输入单元307、显示单元308、扬声器309、解码器310、麦克风312、转换单元313、无线电控制单元314、无线电单元315以及天线316。便携式终端303的这些部件与总线317相连。而且,通过中断线318,中断控制器304被连接到CPU 301。
下面描述便携式终端300的这些部件中的每一个。
(1)调试器禁止电路303和调试器接口302
在CPU 301和调试器接口302之间设置调试器禁止电路303,从而将CPU 301与调试器接口302连接/断开。
从CPU 301接收到指示“允许”的调试器控制信号后,调试器禁止电路303将CPU 301连接到调试器接口302。从CPU 301接收到指示“禁止”的调试器控制信号后,调试器禁止电路303将CPU 301从调试器接口302断开。
当CPU 301和调试器接口302彼此连接时,允许连接到调试器接口302的外部调试器设备工作。如果将CPU 301和调试器接口302彼此断开,则禁止调试器设备工作。例如,可以通过开关来实现调试器禁止电路303。这里,可以通过开关电路在CPU 301和调试器接口302之间进行物理地连接/断开,或者进行电气的连接/断开。
调试器接口302用于连接便携式终端300和调试器设备。
(2)存储器305
如图6所示,存储器305存储第一安全处理程序501、第二安全处理程序502、向量表503、音乐播放程序504、应用程序505。
(A)第二安全处理程序502
通过认证机构设备100生成第二安全处理程序502,并通过ROM写入器200将其存储在ROM中。
图7显示了第二安全处理程序502的数据结构。下面说明构成第二安全处理程序502的每一个程序。
(区域分配程序511)
区域分配程序511在存储器305中分配存储空间,以便动态地分配当执行认证程序523和加密音乐数据解密程序524时使用的存储区域。
(中断禁止程序512)
中断禁止程序512禁止(即,屏蔽)中断。
(调用程序513)
调用程序513调用第一安全处理程序501。
如图8所示,调用程序513包括篡改检测数据,该篡改检测数据包括篡改检测值541、TRS区域开始地址542、二进制大小543、以及加密的密钥544。当调用第一安全处理程序501时,调用程序513还将由认证机构设备100的数据嵌入单元105嵌入的篡改检测数据传递给第一安全处理程序501。
这里,篡改检测值541是由认证机构设备100的散列值计算单元104为第二安全处理程序502中的TRS区域程序计算的散列值。
TRS区域开始地址542是存储器305中的接受散列值计算的TRS区域程序的开始地址。
二进制大小543是TRS区域程序的二进制大小。
加密的密钥544是由认证机构设备100的密钥加密单元103使用主密钥加密的程序密钥。
(密钥接收程序514)
密钥接收程序514从第一安全处理程序501接收程序密钥,并将该程序密钥传递给解密程序516。
(执行标记515)
执行标记515显示是否正在执行安全程序。在解密程序516解密加密的程序517之前,执行标记515被设置为“ON”,其指示正在执行安全程序。当完成执行通过解密加密的程序517而获得的安全程序时,执行标记515被设置为“OFF”。
(解密程序516)
解密程序516从密钥接收程序514接收程序密钥,并根据解密算法D1使用程序密钥解密加密的程序517,以获得安全程序。这里,解密算法D1是加密算法E1的逆。
例如,在国际专利申请公开No.WO 04/013744(2004年2月12日公开)中公开的技术可以被用于解密加密的程序517。根据该技术,加密的程序517被加载到存储器并且被以小部分为单位进行解密。这可以防止全部安全程序都存在于存储器中。因此,即使当未授权的用户访问存储器中的数据时,也不能获得全部安全程序。
(加密的程序517)
通过加密安全程序生成加密的程序517。如图7所示,安全程序包括中断允许程序521、区域初始化程序522、认证程序523、加密音乐数据解密程序524、区域密钥525、区域加密程序526、区域解密程序527、区域释放程序528。在加密的程序517中,中断允许程序521、区域初始化程序522、认证程序523、区域密钥525、区域加密程序526、区域解密程序527、区域释放程序528保护加密音乐数据解密程序524免受其它程序的分析或更改。
(a)中断允许程序521
中断允许程序521释放通过中断禁止程序512产生的中断禁止。
(b)区域初始化程序
区域初始化程序522对由区域分配程序511分配的存储空间进行初始化,以在存储空间中分配将接受加密的存储区域。
分配存储区域以将认证程序523和加密音乐数据解密程序524执行期间使用的数据写入。
(c)认证程序523
认证程序523包含认证密钥531。
认证程序523执行单向认证以判断第一安全处理程序501是否有效。
(d)加密音乐数据解密程序524
加密音乐数据解密程序524根据解密算法D1,使用标题密钥421解密存储在存储卡400上的加密的音乐数据411,以获得音乐数据。
(e)区域密钥525
由区域加密程序526使用区域密钥525以加密由区域初始化程序522分配的存储区域中的数据,并由区域解密程序527使用以解密存储区域中的加密数据。
(f)区域加密程序526
区域加密程序526根据加密算法E2使用区域密钥525来加密存储区域中的数据。这里,加密算法E2使得能够进行比加密算法E1更快速的处理。作为一个例子,加密算法E2是XOR(异或)运算。或者,除XOR运算以外的其它算法也可以被用作加密算法E2,这是基于所需的安全级别和CPU 301的处理能力来确定的。
在第二安全处理程序502调用第一安全安全处理程序501以将控制传递给第一安全处理程序501之前,区域加密程序526加密存储区域中的数据。
(g)区域解密程序527
当控制从第一安全处理程序501返回到第二安全处理程序502时,区域解密程序527根据解密算法D2使用区域密钥525来解密存储区域中的加密数据,以获得原始的明文数据。
(h)区域释放程序528
区域释放程序528释放由区域初始化程序522分配的存储区域,并调用第一安全处理程序501的退出函数以结束音乐数据播放过程。
(中断处理程序518)
当在第二安全处理程序502执行期间出现中断时,执行中断处理程序518。中断处理程序518包含加密/解密密钥(未说明)。
图9是显示中断处理程序518的执行过程的流程图。虽然中断处理程序518实际上是计算机程序,但是图9以便于说明的流程图说明了中断处理程序518的执行过程。
中断处理程序518读取执行标记515(S611),判断执行标记515是“ON”还是“OFF”(S612)。如果执行标记是“ON”(S612:ON),则中断处理程序518根据加密算法E2使用加密/解密密钥来加密存储区域中的数据(S613)。之后,中断处理程序518处理中断。如果执行标记是“OFF”(S612:OFF),则中断处理程序518在不加密存储区域中的数据的情况下处理中断。
在处理中断之后,如果执行标记515是“ON”(S614:ON),则在返回原始处理之前,中断处理程序518根据解密算法D2使用加密/解密密钥来解密存储区域中的加密数据(S615)。如果执行标记515是“OFF”(S614:OFF),则中断处理程序518在不解密存储区域中的数据的情况下返回到原始处理。
(B)第一安全处理程序501
图10显示了第一安全处理程序501的数据结构。在图中,第一安全处理程序501包括断开程序551、篡改检测程序552、密钥解密程序553、密钥发送程序554、认证程序555、数据读取程序556以及连接程序557。在CPU 301的安全处理模式中执行第一安全处理程序501。后面详细说明安全处理模式。
(断开程序551)
当第一安全处理程序501起动时,断开程序551向调试器禁止电路303输出指示“禁止”的调试器控制信号。
(篡改检测程序552)
篡改检测程序552包含密钥562、并检测第二安全处理程序502是否已被篡改。为此,篡改检测程序552从第二安全处理程序502的调用程序513获取包含篡改检测值541、TRS区域开始地址542、二进制大小543以及加密的密钥544的篡改检测数据。
篡改检测程序552从由TRS区域开始地址指定的存储器305中的位置读取对应于二进制大小543的数据量,作为TRS区域程序。篡改检测程序552根据散列函数使用密钥562计算TRS区域程序的散列值。篡改检测程序552将计算的散列值与篡改检测值541进行比较。如果两个值匹配,则篡改检测程序552判断第二安全处理程序502还未被篡改。如果两个值不匹配,则篡改检测程序552判断第二安全处理程序502已被篡改,并且停止后续处理。
(密钥解密程序553)
密钥解密程序553包含主密钥563。如果篡改检测程序552判断第二安全处理程序502还未被篡改,则密钥解密程序553根据解密算法D1使用主密钥563解密加密的密钥544,以获得程序密钥。密钥解密程序553将程序密钥传递给密钥发送程序554。
(密钥发送程序554)
密钥发送程序554从密钥解密程序553接收程序密钥,并将程序密钥发送到第二安全处理程序502。
(认证程序555)
认证程序555包含认证密钥565,并且接受由第二安全处理程序502使用认证密钥565进行的认证。如果认证成功,则认证程序555与第二安全处理程序502建立共享会话密钥。使用该会话密钥来加密接下来在第一安全处理程序501和第二安全处理程序502之间传输的数据。
(数据读取程序556)
数据读取程序556基于CPRM与存储卡400执行相互认证。如果相互认证是成功的,则数据读取程序556访问存储卡400的安全区域420并获取标题密钥421。
(连接程序557)
连接程序557向调试器禁止电路303输出指示“允许”的调试器控制信号。
(c)向量表503
图11显示了向量表503的数据结构。如图所示,向量表503显示了当出现软件中断、终止以及硬件中断时将被执行的指令的地址。
(D)音乐播放程序504
音乐播放程序504播放通过第二安全处理程序502解密的音乐数据。音乐播放程序504向解码器310中的缓冲器311输出音乐数据。
(E)应用程序505
应用程序505接收用户操作的输入。如果用户操作将播放存储卡400中的音乐数据,则应用程序505起动第二安全处理程序502。
(3)CPU 301
CPU 301根据存储在存储器305中的程序进行操作。通过从与调试器接口302连接的调试器设备发出的指令来控制CPU 301的操作。
图12是显示CPU 301的操作的流程图。CPU 301提取存储在存储器305中的程序的指令(S601),解码该指令(S602),然后执行该指令(S603)。然后CPU 301增加程序计数器(S604)以提取下一条指令。
这里,CPU 301工作在安全处理模式或常规处理模式。在常规处理模式中,CPU 301执行常规处理。在安全处理模式中,CPU 301以高级别的安全性执行处理,从而使得不能从外部访问存储器305中的数据。
CPU 301在安全处理模式中执行第一安全处理程序501,在常规处理模式中执行第二安全处理程序502。
当出现中断时,中断控制器304通过中断线318输出中断信号。如果由中断禁止程序512禁止了中断,则CPU 301拒绝中断信号。如果未禁止中断,则CPU 301接受中断信号,参考图11所示的向量表503,并读取对应于中断信号的地址。CPU 301根据位于读取地址的中断处理程序处理中断。处理完中断之后,CPU 301返回原始处理。
当在执行第二安全处理程序502期间接收到中断信号时,CPU301参考向量表503并执行图9所示的中断处理程序518。
(4)输入单元307
输入单元307接收用户操作的输入。
当接收到输入时,输入单元307向中断控制器304通知中断。
(5)中断控制器304
当输入单元307或无线电控制单元314向中断控制器304通知例如邮件接收、调用接收或用户操作这样的中断时,中断控制器304经由中断线318向CPU 301输出中断信号。
(6)扬声器309和解码器310
解码器310包括缓冲器311。缓冲器311对从CPU 301接收的音乐数据进行缓冲。扬声器309根据缓冲器311中的音乐数据生成音频信号,并输出音频信号。
(7)存储卡接口306
存储卡接口306用于连接便携式终端300和存储卡400。在CPU301的控制下,存储卡接口306将数据输出到存储卡400,并从存储卡400接收数据并将其输出到CPU 301。
(8)无线电控制单元314,无线电单元315,天线316
天线316、无线电单元315、无线电控制单元314与一个设备发送/接收声音或信息,便携式终端300通过无线电基站和便携式终端网络连接到该设备。
当经由天线316和无线电单元315接收到邮件或调用时,无线电控制单元314向中断控制器304通知中断。
(9)麦克风312和转换单元313
转换单元313将从麦克风312接收到的声音转换为电子信号,并将其输出到无线电控制单元314。
2.安全处理系统1的操作
2.1.认证机构设备100的操作
编译器101接收调用程序513的源代码和保护程序的源代码的输入,并将所述源代码编译为调用程序513的二进制数据和保护程序的二进制数据。编译器101将二进制数据输出到数据嵌入单元105。编译器101还接收解密程序516的源代码和安全程序的源代码的输入,并将所述源代码编译为解密程序516的二进制数据和安全程序的二进制数据。编译器101将所述二进制数据输出到程序加密单元102。
程序加密单元102接收解密程序516的二进制数据和安全程序的二进制数据。程序加密单元102还接收程序密钥。程序加密单元102使用所述程序密钥加密安全程序,以生成加密的程序517。程序加密单元102将解密程序516和加密的程序517输出到数据嵌入单元105和散列值计算单元104,作为TRS区域程序。
散列值计算单元104接收TRS区域程序。散列值计算单元104还接收密钥。散列值计算单元104根据散列函数使用密钥计算TRS区域程序的散列值。散列值计算单元104还计算TRS区域程序的二进制大小。散列值计算单元104将散列值和二进制大小输出到数据嵌入单元105。
密钥加密单元103接收程序密钥和主密钥,使用主密钥加密程序密钥以生成加密的密钥。密钥加密单元103将加密的密钥输出到数据嵌入单元105。
数据嵌入单元105从编译器101接收调用程序513的二进制数据,并从散列值计算单元104接收散列值和二进制大小,并从密钥加密单元103接收加密的密钥。数据嵌入单元105将散列值嵌入调用程序513作为篡改检测值541。数据嵌入单元105还将二进制大小和加密的密钥嵌入调用程序513作为二进制大小543和加密的密钥544。数据嵌入单元105还从编译器101接收保护程序的二进制数据,并从程序加密单元102接收TRS区域程序。数据嵌入单元105将调用程序513包含进保护程序,并将保护程序和TRS区域程序进行组合以形成第二安全处理程序502。数据嵌入单元105将第二安全处理程序502写入存储单元106。
传输单元107从存储单元106读取第二安全处理程序502,并将第二安全处理程序502输出到ROM写入器200。
2.2.便携式终端300的音乐数据播放操作
(1)播放
下面参考图13至17说明由便携式终端300通过执行程序来播放记录在存储卡400上的音乐数据的操作。
当经由输入单元307接收到播放存储卡400上的音乐数据的用户操作的输入时,应用程序505起动第二安全处理程序502(S701)。
在第二安全处理程序502中,区域分配程序511在存储器305中分配虚拟的存储空间,用于在安全程序的执行期间,动态地分配存储区域(S702)。并且,中断禁止程序512禁止中断(S703)。因此,禁止了使用中断的未授权的程序分析和更改。中断的禁止一直有效直到中断允许。接着,调用程序513调用第一安全处理程序501,并将由篡改检测值541、TRS区域开始地址542、二进制大小543以及加密的密钥544构成的篡改检测数据传递给第一安全处理程序501(S704)。
第一安全处理程序501从第二安全处理程序502接收篡改检测数据(S705)。在第一安全处理程序501中,断开程序551将指示“禁止”的调试器控制信号输出到调试器禁止电路303(S706)。因此,调试器禁止电路303断开调试器设备。因此,禁止使用调试器设备进行未授权的程序分析和更改。
接着,篡改检测程序552执行下列过程。
篡改检测程序552从由TRS区域开始地址542指定的存储器305上的位置读取对应于二进制大小543的数据量,作为TRS区域程序。篡改检测程序552使用密钥562计算TRS区域程序的散列值(S709)。
篡改检测程序552将所计算的散列值与篡改检测值541进行比较(S710)。如果两个值不匹配(S710:否),则篡改检测程序552判断第二安全处理程序502已被篡改,并且停止后续处理。连接程序557将指示“允许”的调试器控制信号输出到调试器禁止电路303(S737),并终止操作。
如果两个值匹配(S710:是),则篡改检测程序552判断第二安全处理程序502未被篡改。因此,密钥解密程序553使用主密钥563解密加密的密钥544,以得到程序密钥(S711)。密钥解密程序553将程序密钥传递给密钥发送程序554。密钥发送程序554将程序密钥传递给第二安全处理程序502(S712)。
在第二安全处理程序502中,密钥接收程序514接收程序密钥(S713)。并且,将执行标记515设置为“ON”(S714)。之后,解密程序516使用程序密钥解密加密的程序517,以得到安全程序(S715)。完成之后,解密程序516删除程序密钥(S716)。
安全程序执行下列过程(S717)。
在安全程序中,中断允许程序521释放在步骤S703执行的中断的禁止(S718)。其后,如果出现中断,则挂起安全程序以处理中断。后面详细说明当出现中断时将被执行的过程。
然后,区域初始化程序522在存储空间中分配存储区域(S719),在该存储区域中将存储由认证程序523和加密音乐数据解密程序524使用的数据。
认证程序523根据认证过程认证第一安全处理程序501(随后描述)(S720)。第一安全处理程序501中的认证程序555经受由认证程序523进行的认证。如果认证失败,则第二安全处理程序502停止后续处理,并且在终止操作之前,第一安全处理程序501中的连接程序557将指示“允许”的调试器控制信号输出到调试器禁止电路303(S737)。
如果认证成功,则第二安全处理程序502与第一安全处理程序501建立共享的会话密钥。使用该会话密钥加密随后在第二安全处理程序502和第一安全处理程序501之间传输的数据。
如果认证成功,则第二安全处理程序502将控制传递给音乐播放程序504。
音乐播放程序504从存储卡400读取加密的音乐数据411(S721)。音乐播放程序504还请求第二安全处理程序502解密加密的音乐数据411(S722)。
当接收到解密加密的音乐数据411的请求时,第二安全处理程序502调用区域加密程序526。区域加密程序526使用区域密钥525加密在步骤S719分配的存储区域中的数据(S723)。之后,第二安全处理程序502请求第一安全处理程序501获取标题密钥421(S724)。
在第一安全处理程序501中,数据读取程序556与存储卡400中的认证单元403执行相互认证(S725)。如果相互认证成功(S726:是),则数据读取程序556访问存储卡400中的安全区域420并获取标题密钥421(S727)。如果相互认证失败,则数据读取程序556不能获取标题密钥421。在这种情况下,连接程序557在终止操作前将指示“允许”的调试器控制信号输出到调试器禁止电路303(S737)。
第一安全处理程序501使用会话密钥加密标题密钥421,以生成加密的标题密钥(S728)。第一安全处理程序501将加密的标题密钥传递给第二安全处理程序502。
在第二安全处理程序502中,区域解密程序527使用区域密钥525解密存储区域中的加密的数据,以恢复原始数据(S729)。认证程序523使用会话密钥解密加密的标题密钥,以获得标题密钥421(S730)。之后,加密音乐数据解密程序524使用标题密钥421解密由音乐播放程序504从存储卡400读取的加密的音乐数据411(S731)。因此,获得音乐数据。加密音乐数据解密程序524将音乐数据传递给音乐播放程序504。
音乐播放程序504播放音乐数据(S732)。
一旦完成音乐数据的播放(S733),则音乐播放程序504将控制传递给第二安全处理程序502。在第二安全处理程序502中,区域释放程序528释放在步骤S719中分配的存储区域(S734),并调用第一安全处理程序501的退出函数(S735)。而且,将执行标记515设置为“OFF”(S736)。
在第一安全处理程序501中,在终止操作前,连接程序557将指示“允许”的调试器控制信号输出到调试器禁止电路303(S737)。
(2)认证
下面参照图18说明在步骤S720中由第二安全处理程序502对第一安全处理程序501进行认证的过程。
第二安全处理程序502生成随机数R0,并将随机数R0传递给第一安全处理程序501(S751)。
第一安全处理程序501接收随机数R0,并使用认证密钥565加密随机数R0以生成认证值R1(S752)。第一安全处理程序501将认证值R1传递给第二安全处理程序502(S753)。
第二安全处理程序502从第一安全处理程序501接收认证值R1。第二安全处理程序502使用认证密钥531加密随机数R0,以生成认证值R2(S754)。第二安全处理程序502将认证值R1与认证值R2进行比较(S755)。如果两个值不匹配(S755:否),则第二安全处理程序502将指示“不匹配”的判断结果传递给第一安全处理程序501(S756),并终止过程。如果两个值匹配(S755:是),则第二安全处理程序502将指示“匹配”的判断结果传递给第一安全处理程序501(S757)。然后,第二安全处理程序502使用单向函数根据随机数R0和认证密钥531生成会话密钥(S759)。
如果所接收的判断结果指示“不匹配”(S758:否),则第一安全处理程序501终止过程。如果所接收的判断结果指示“匹配”(S758:是),则第一安全处理程序501使用单向函数根据随机数R0和认证密钥565生成会话密钥(S760)。
因此,第二安全处理程序502认证第一安全处理程序501,并且如果认证成功,则共享会话密钥。使用该会话密钥加密随后在第一安全处理程序501和第二安全处理程序502之间传输的数据。
(3)中断
下面参照图19说明当在执行第二安全处理程序502期间出现中断时的CPU 301的操作。这里,以邮件接收作为中断的一个例子。
当从中断控制器304接收到中断信号时(S771),CPU 301读取向量表503(S772),并根据向量表503执行中断处理程序518(S773)。
首先,CPU 301读取执行标记515(S774)。如果执行标记515是“ON”(S775:否),则CPU 301使用加密/解密密钥来加密存储区域中的数据(S776)。CPU 301还存储运行环境(context)(S777),并执行邮件接收处理(S778)。如果执行标记515是“OFF”(S775:OFF),则CPU 301在不加密存储区域中的数据的情况下执行步骤S777和S778。
在邮件接收处理之后,如果执行标记515是“ON”(S779:ON),则在返回原始处理之前,CPU 301解密存储区域中的数据(S780)。如果执行标记515是“OFF”(S779:OFF),则CPU 301在不解密存储区域中的数据的情况下返回原始处理。
3.变形
已经通过以上实施例描述了本发明,但是很明显,本发明并不局限于上述实施例。以下给出示例性的变形。
(1)上述实施例描述了保护加密音乐数据解密程序的例子,其中,由便携式终端执行加密音乐数据解密程序,但是本发明并不限于其。
执行待保护的程序的示例性设备包括DVD播放器、DVD记录器、PC以及PDA。
而且,待保护的示例性程序包括当在便携式终端上播放视频内容或游戏时使用的解密程序,以及当在DVD记录器上记录内容时使用的记录程序。因此,本发明可应用于任何需要被保护以防止未授权的分析和更改的程序。
(2)上述实施例描述了散列值被用作篡改检测值的例子,但是唯一属于TRS区域程序的任何值都能被用作篡改检测值。例如,对TRS区域程序的数字签名或通过加密TRS区域程序而生成的数据可以被用作篡改检测值。而且,除实施例中使用的算法以外的算法可以被用于计算散列值。
上述实施例描述了为TRS区域程序生成篡改检测值的例子,但是也可以为至少一部分TRS区域程序生成篡改检测值。或者,可以为至少一部分第二安全处理程序生成篡改检测值。
而且,可以通过为至少一部分TRS区域程序或第二安全处理程序执行匹配计算,或者通过将伪随机数(psuedo-random number)嵌入至少一部分TRS区域程序或第二安全处理程序来执行篡改检测。也就是说,任何能够检测程序是否已被篡改的篡改检测方法都是可用的。
上述实施例描述了在调试器禁止电路断开调试器设备后执行篡改检测的例子。作为另一个例子,可以在由调试器禁止电路断开之前执行篡改检测。在这种情况下,如果未检测到篡改,则调试器禁止电路断开调试器设备以进行后续处理。
(3)上述实施例描述了第二安全处理程序中的调用程序将篡改检测数据传递给第一安全处理程序的例子。作为另一个例子,不同于第二安全处理程序的程序可以将篡改检测数据传递给第一安全处理程序。在这种情况下,第二安全处理程序中的调用程序仅调用第一安全处理程序。同时,在存储器305中存储用于将篡改检测数据发送到第一安全处理程序的发送程序。因此,当被第二安全处理程序调用时,第一安全处理程序请求发送程序发送篡改检测数据。作为响应,发送程序将篡改检测数据发送到第一安全处理程序。
在这种情况下,认证机构设备不在第二安全处理程序的保护程序中包括该发送程序,而是根据第二安全处理程序独立地生成其。
而且,第一安全处理程序可以预先包含第二安全处理程序的篡改检测数据。
(4)上述实施例描述了第二安全处理程序对第一安全处理程序执行单向认证的例子,但是,第二安全处理程序与第一安全处理程序可以执行双向认证。而且,上述实施例描述了挑战应答认证方法的使用,但是,可以等价地使用其它用于认证程序的认证方法。
上述实施例描述了通过使用认证密钥来加密随机数R0,从而生成认证值R1和R2的例子,但是,也可以通过对随机数R0应用单向函数来生成它们。
上述实施例描述了使用单向函数根据随机数R0和认证密钥来生成会话密钥的例子,但是也可以通过加密来生成会话密钥。
(5)上述实施例描述了在将控制从第二安全处理程序传递给第一安全处理程序之前,区域加密程序加密存储区域中的数据的例子。当将控制从第二安全处理程序传递给其它程序时,例如当第二安全处理程序调用外部函数时,区域加密程序也可以加密存储区域中的数据以保护数据。
在这种情况下,当控制返回到第二安全处理程序时,区域解密程序解密存储区域中的加密数据以恢复原始数据。
(6)可以为每个执行应被保护的程序的设备分配唯一的主密钥。在这种情况下,即使未授权的用户窃取了一个设备的主密钥并试图使用该主密钥去攻击其它设备,该未授权的用户也不能正确地操作其它设备。这最小化了由未授权行为导致的破坏。
(7)上述实施例描述了第一安全处理程序和第二安全处理程序都分别包含认证密钥的例子。可选择地,可以基于程序密钥或篡改检测值来计算认证密钥。
而且,认证机构设备可以使用主密钥加密认证密钥。在这种情况下,可以基于认证密钥计算用于解密加密的程序的程序密钥。
当用于认证的密钥和用于解密加密的程序的密钥因此具有依赖关系时,任何密钥都可以被加密。此外,可以使用更多的密钥来进行多级加密,例如,通过使用另一个密钥加密已加密的密钥。
(8)本发明还应用于上述方法。该方法可以通过由计算机执行的计算机程序来实现。这种计算机程序可以作为数字信号来分发。
本发明可以通过其上记录有上述计算机程序或数字信号的计算机可读存储介质来实现,例如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD或半导体存储器。相反地,本发明也可以通过记录在这种存储介质上的计算机程序或数字信号来实现。
也可以通过网络(例如,电子通信网络、有线或无线通信网络、或因特网)来传送实现本发明的计算机程序或数字信号。
也可以通过包含微处理器和存储器的计算机系统来实现本发明。在这种情况下,计算机程序可以被存储在存储器中,微处理器根据该计算机程序运行。
可以通过分发其上记录有计算机程序或数字信号的存储介质,或者通过经由网络传送计算机程序或数字信号,从而将计算机程序或数字信号提供给独立的计算机系统。然后,独立的计算机系统可以执行计算机程序或数字信号以用作本发明。
(8)可以自由地组合上述实施例和变形。
工业适用性
可以将本发明反复地以及连续地用于提供软件(例如计算机程序和电影、音乐的数字内容等等)的软件行业。而且,可以在电子产品等的制造行业中制造并销售本发明。

Claims (17)

1.一种程序执行设备,其执行(i)在第一安全级中运行的、确定另一程序是否被篡改的第一安全程序和(ii)在低于所述第一安全级的第二安全级中运行的、与所述第一安全程序不同的第二安全程序,所述程序执行设备包括:
执行单元,用于在指示所述第一安全级中的操作状态的第一模式下执行所述第一安全程序,和在指示所述第二安全级中的操作状态的第二模式下执行所述第二安全程序,同时在所述第一模式和所述第二模式之间进行切换;以及
外部设备断开单元,用于根据来自所述第一安全程序的指令,将所述执行单元与外部设备断开,其中
所述第一安全程序和所述第二安全程序彼此互相关联,用作单个应用程序,
所述第一安全程序命令所述外部设备断开单元将所述执行单元与所述外部设备断开,并且在所述执行单元被与所述外部设备断开之后,确定所述第二安全程序是否被篡改,以及
只有当作为所述确定的结果,所述第一安全程序确认所述第二安全程序没有被篡改时,执行所述第二安全程序的一部分。
2.如权利要求1所述的程序执行设备,其中
所述第一安全程序持有所述第二安全程序所使用的秘密信息,以及
所述执行单元根据所述第一安全程序执行与所述第二安全程序的相互认证,与所述第二安全程序建立公共的会话密钥,使用所述会话密钥来加密所述秘密信息,并将加密后的秘密信息传递给所述第二安全程序。
3.如权利要求2所述的程序执行设备,其中
所述第一安全程序所持有的所述秘密信息是从外部存储介质的安全区域获得的密钥信息。
4.如权利要求2所述的程序执行设备,其中
所述执行单元根据所述第一安全程序,使用密钥对所述第二安全程序的至少一部分执行散列运算以计算第一篡改检测值,将所述第一篡改检测值与已经在生成所述第二安全程序时基于所述第二安全程序的所述至少一部分而计算出的第二篡改检测值进行比较,并且如果所述第一篡改检测值与所述第二篡改检测值不同,则终止操作,而如果所述第一篡改检测值与所述第二篡改检测值相同,则继续操作。
5.如权利要求4所述的程序执行设备,其中
所述第二安全程序包括用于调用所述第一安全程序的调用指令,并且
所述执行单元根据所述调用指令将所述第二篡改检测值、所述第二安全程序的所述至少一部分的开始地址以及所述第二安全程序的所述至少一部分的大小传递给所述第一安全程序。
6.如权利要求5所述的程序执行设备,其中
所述执行单元,
(a)根据所述调用指令,将加密后的程序密钥传递给所述第一安全程序,
(b)根据所述第一安全程序,如果所述第一篡改检测值与所述第二篡改检测值相同,则使用包含在所述第一安全程序中的主密钥来解密从所述第二安全程序接收的所述加密后的程序密钥,并将解密后的程序密钥传递给所述第二安全程序,以及
(c)根据所述第二安全程序,使用从所述第一安全程序接收的所述解密后的程序密钥来解密所述第二安全程序的经加密的部分,然后删除所述解密后的程序密钥,并且
所述程序执行设备还包括:
保护单元,用于在所述执行单元执行所述调用指令之前禁止由所述执行单元执行中断处理,以及在所述执行单元删除所述解密后的程序密钥之后允许由所述执行单元执行所述中断处理。
7.如权利要求6所述的程序执行设备,进一步包括:
中断检测单元,用于检测中断,其中
所述保护单元包括存储区域,当所述执行单元根据所述第二安全程序进行操作时将数据写入所述存储区域,以及
当所述中断检测单元在所述执行单元根据所述第二安全程序进行操作时检测到中断时,所述保护单元加密写入所述存储区域中的所述数据,并且,在所述执行单元完成处理所述中断之后,在所述执行单元重新开始根据所述第二安全程序进行操作之前,解密所述存储区域中的加密后的数据。
8.如权利要求1所述的程序执行设备,其中
所述第一安全程序将所述第二安全程序的执行所必须的执行信息传递给所述第二安全程序。
9.如权利要求8所述的程序执行设备,其中
所述第二安全程序的至少一部分被加密,
所述第一安全程序所持有的所述执行信息是用于对所述第二安全程序的经加密的部分进行解密的程序密钥,以及
所述执行单元根据所述第一安全程序将所述程序密钥传递给所述第二安全程序,根据所述第二安全程序使用从所述第一安全程序获得的所述程序密钥来解密并执行所述第二安全程序的所述经加密的部分。
10.一种用于程序执行设备的程序执行方法,所述程序执行设备执行在第一安全级中运行的、确定另一程序是否被篡改的第一安全程序和在低于所述第一安全级的第二安全级中运行的第二安全程序,其中,
所述程序执行设备包括:
执行单元,用于在指示所述第一安全级中的操作状态的第一模式下执行所述第一安全程序,和在指示所述第二安全级中的操作状态的第二模式下执行所述第二安全程序,同时在所述第一模式和所述第二模式之间进行切换;以及
外部设备断开单元,用于根据来自所述第一安全程序的指令,将所述执行单元与外部设备断开,
一安全程序包括在所述第一安全级中运行的、确定另一程序是否被篡改的所述第一安全程序和在低于所述第一安全级的所述第二安全级中运行的所述第二安全程序,
所述第一安全程序和所述第二安全程序彼此互相关联,用作单个应用程序,
所述程序执行方法包括如下步骤:
由所述第一安全程序命令所述外部设备断开单元将所述执行单元与所述外部设备断开;
在所述执行单元被与所述外部设备断开之后,由所述第一安全程序确定所述第二安全程序是否被篡改;以及
只有当作为所述确定的结果,所述第一安全程序确认所述第二安全程序没有被篡改时,执行所述第二安全程序的一部分。
11.一种在多种操作模式其中之一下运行的信息处理设备,包括:
存储单元,用于存储包括用于检测篡改的一个或多个程序指令的第一组程序指令,以及第二组程序指令;
控制单元,用于(i)通过使用受保护的存储器执行所述第一组程序指令中的一个或多个程序指令,判断所述第二组程序指令的至少一部分是否被篡改,所述受保护的存储器被保护成外部设备不能访问所述存储器的内容,以及(ii)在判断为否的情况下执行所述第二组程序指令中的一个或多个程序指令;
接口,用于将所述控制单元连接到所述外部设备;
断开单元,用于将所述控制单元与所述接口断开;以及
连接单元,用于将所述控制单元连接到所述接口,其中
所述第一组程序指令包括通过使所述断开单元将所述控制单元与所述接口断开而将所述控制单元与所述外部设备断开的一个或多个程序指令,以及通过使所述连接单元将所述控制单元连接到所述接口而将所述控制单元连接到所述外部设备的一个或多个程序指令,
所述控制单元还(i)当所述第一组程序指令中的一个或多个程序指令被执行时,将所述信息处理设备的操作模式改变成第一模式,在所述第一模式下通过使所述断开单元将所述控制单元与所述接口断开,所述存储器中的内容受到保护而不能被所述外部设备访问,以及(ii)当所述第二组程序指令中的一个或多个程序指令被执行时,将所述信息处理设备的操作模式改变成第二模式,在所述第二模式下通过使所述连接单元将所述控制单元连接到所述接口,所述存储器中的内容不受保护而能被所述外部设备访问。
12.如权利要求11的信息处理设备,进一步包括:
密钥存储单元,用于存储(i)仅通过执行所述第一组程序指令中的一个或多个程序指令而允许访问的第一密钥;以及(ii)已使用所述第一密钥加密的第二密钥。
13.如权利要求12的信息处理设备,其中
所述第一密钥对所述信息处理设备是唯一的。
14.如权利要求11的信息处理设备,其中
由所述控制单元执行的所述第一组程序指令中的所述一个或多个程序指令通过如下方式来判断所述第二组程序指令的所述至少一部分是否被篡改:(i)计算所述第二组程序指令的所述至少一部分的散列值,以及(ii)将所计算的散列值与篡改检测值进行比较,其中所述篡改检测值是针对所述第二组程序指令的所述至少一部分而预先计算的散列值。
15.如权利要求11的信息处理设备,其中
所述第一组程序指令包括用于管理对加密后的数字内容进行解密所使用的密钥的一个或多个其它程序指令。
16.如权利要求11的信息处理设备,其中
所述第二组程序指令包括利用解密密钥对加密后的数字内容进行解密的一个或多个其它程序指令。
17.一种用于在多种操作模式其中之一下运行的信息处理设备的安全处理方法,
所述信息处理设备存储包括用于检测篡改的一个或多个程序指令的第一组程序指令,以及第二组程序指令,并且包括:
控制单元,用于执行所述第一组程序指令中的一个或多个程序指令和所述第二组程序指令中的一个或多个程序指令;以及
接口,用于将所述控制单元连接到外部设备,
所述安全处理方法包括如下步骤:
执行将所述控制单元与所述接口断开的一个或多个程序指令;
执行将所述控制单元连接到所述接口的一个或多个程序指令;
通过使用受保护的存储器执行所述第一组程序指令中的一个或多个程序指令,判断所述第二组程序指令的至少一部分是否被篡改,所述受保护的存储器被保护成外部设备不能访问所述存储器的内容;以及
在判断为否的情况下执行所述第二组程序指令中的一个或多个程序指令,其中
(i)当所述第一组程序指令中的一个或多个程序指令被执行时,所述信息处理设备的操作模式被改变成第一模式,在所述第一模式下通过执行所述的将所述控制单元与所述接口断开的一个或多个程序指令,所述存储器中的内容受到保护而不能被所述外部设备访问,以及(ii)当所述第二组程序指令中的一个或多个程序指令被执行时,所述信息处理设备的操作模式被改变成第二模式,在所述第二模式下通过执行所述的将所述控制单元连接到所述接口的一个或多个程序指令,所述存储器中的内容不受保护而能被所述外部设备访问。
CN2010101163101A 2003-08-26 2004-08-26 程序执行设备 Active CN101853352B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003-301554 2003-08-26
JP2003301554 2003-08-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2004800307438A Division CN1871568B (zh) 2003-08-26 2004-08-26 程序执行设备

Publications (2)

Publication Number Publication Date
CN101853352A CN101853352A (zh) 2010-10-06
CN101853352B true CN101853352B (zh) 2013-01-30

Family

ID=34213903

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2010101163101A Active CN101853352B (zh) 2003-08-26 2004-08-26 程序执行设备
CN2004800307438A Active CN1871568B (zh) 2003-08-26 2004-08-26 程序执行设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2004800307438A Active CN1871568B (zh) 2003-08-26 2004-08-26 程序执行设备

Country Status (6)

Country Link
US (13) US7533276B2 (zh)
EP (3) EP3043232A1 (zh)
JP (2) JP4892018B2 (zh)
KR (1) KR101059257B1 (zh)
CN (2) CN101853352B (zh)
WO (1) WO2005020043A2 (zh)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3043232A1 (en) 2003-08-26 2016-07-13 Panasonic Intellectual Property Corporation of America Program execution device
KR101037006B1 (ko) * 2003-11-28 2011-05-25 파나소닉 주식회사 데이터 처리장치
US8793602B2 (en) 2004-01-15 2014-07-29 The Mathworks, Inc. System and method for scheduling the execution of model components using model events
US8683426B2 (en) * 2005-06-28 2014-03-25 The Mathworks, Inc. Systems and methods for modeling execution behavior
US20060184803A1 (en) * 2005-02-12 2006-08-17 Rainer Ulrich Method and system for digital rights management in a mobile multimedia processor
US7395385B2 (en) * 2005-02-12 2008-07-01 Broadcom Corporation Memory management for a mobile multimedia processor
US20060182129A1 (en) * 2005-02-16 2006-08-17 Mutch Karl N Distributed markup and processing apparatus and method
CN100424611C (zh) * 2005-07-28 2008-10-08 国际商业机器公司 用于处理加密软件的方法和中央处理单元
JP4631658B2 (ja) * 2005-11-09 2011-02-16 ソニー株式会社 デジタル放送受信システム及びデジタル放送受信装置
JP2007215162A (ja) * 2006-01-11 2007-08-23 Canon Inc 情報処理装置及びその制御方法、プログラム、記憶媒体
TWI330795B (en) * 2006-11-17 2010-09-21 Via Tech Inc Playing systems and methods with integrated music, lyrics and song information
US7882365B2 (en) * 2006-12-22 2011-02-01 Spansion Llc Systems and methods for distinguishing between actual data and erased/blank memory with regard to encrypted data
US20080229115A1 (en) * 2007-03-16 2008-09-18 Microsoft Corporation Provision of functionality via obfuscated software
US8571211B2 (en) * 2007-05-14 2013-10-29 Samsung Electronics Co., Ltd Method and apparatus for generating security key in a mobile communication system
EP2172866A4 (en) * 2007-07-25 2011-06-15 Panasonic Corp INFORMATION PROCESSOR AND MANIPULATION VERIFICATION PROCEDURE
EP2240857A4 (en) * 2007-12-21 2013-12-25 Univ Virginia Patent Found SYSTEM, METHOD AND COMPUTER PROGRAM FOR PROTECTING SOFTWARE THROUGH ANTI-FALSIFICATION AND OBSCURING TRANSFORMATIONS
US20090172420A1 (en) * 2007-12-31 2009-07-02 Kabushiki Kaisha Toshiba Tamper resistant method and apparatus for a storage device
WO2009113273A1 (ja) * 2008-03-14 2009-09-17 パナソニック株式会社 プログラム実行装置およびその制御方法
CN101686124B (zh) * 2008-09-23 2016-11-09 Vixs系统公司 保护加密信号的安全模块及与之结合使用的系统和方法
US9117071B2 (en) * 2009-06-03 2015-08-25 Apple Inc. Methods and apparatuses for secure compilation
US8677329B2 (en) * 2009-06-03 2014-03-18 Apple Inc. Methods and apparatuses for a compiler server
US8281154B2 (en) * 2009-07-23 2012-10-02 International Business Machines Corporation Encrypting data in volatile memory
US9135434B2 (en) * 2010-04-19 2015-09-15 Appcentral, Inc. System and method for third party creation of applications for mobile appliances
JP2012084071A (ja) 2010-10-14 2012-04-26 Toshiba Corp デジタルコンテンツの保護方法、復号方法、再生装置、記憶媒体、暗号装置
JP2012173870A (ja) * 2011-02-18 2012-09-10 Toshiba Corp 半導体装置及びメモリ保護方法
JP5225412B2 (ja) * 2011-03-03 2013-07-03 株式会社東芝 通信装置および通信方法
JP5775738B2 (ja) * 2011-04-28 2015-09-09 富士通株式会社 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム
US8661527B2 (en) 2011-08-31 2014-02-25 Kabushiki Kaisha Toshiba Authenticator, authenticatee and authentication method
CN103140856B (zh) 2011-09-13 2016-02-17 松下电器产业株式会社 内容再生系统、信息处理终端、媒体服务器、安全器件以及服务器安全器件
JP5275432B2 (ja) 2011-11-11 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
JP5100884B1 (ja) 2011-12-02 2012-12-19 株式会社東芝 メモリ装置
JP5204291B1 (ja) 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、装置、システム
JP5112555B1 (ja) 2011-12-02 2013-01-09 株式会社東芝 メモリカード、ストレージメディア、及びコントローラ
JP5204290B1 (ja) 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、システム、及び装置
CN107612685A (zh) 2011-12-29 2018-01-19 英特尔公司 使用在物理上不可克隆的函数的安全密钥存储
JP5275482B2 (ja) 2012-01-16 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
US9742563B2 (en) * 2012-09-28 2017-08-22 Intel Corporation Secure provisioning of secret keys during integrated circuit manufacturing
US8938792B2 (en) 2012-12-28 2015-01-20 Intel Corporation Device authentication using a physically unclonable functions based key generation system
US9201811B2 (en) 2013-02-14 2015-12-01 Kabushiki Kaisha Toshiba Device and authentication method therefor
US8984294B2 (en) 2013-02-15 2015-03-17 Kabushiki Kaisha Toshiba System of authenticating an individual memory device via reading data including prohibited data and readable data
CN104346299B (zh) * 2013-08-01 2018-03-06 展讯通信(上海)有限公司 一种移动终端更新的控制方法和装置
JP6265783B2 (ja) * 2014-03-06 2018-01-24 キヤノン株式会社 暗号化/復号化システム及びその制御方法、並びにプログラム
WO2017042702A1 (en) * 2015-09-07 2017-03-16 Karamba Security Context-based secure controller operation and malware prevention
US10475034B2 (en) 2016-02-12 2019-11-12 Square, Inc. Physical and logical detections for fraud and tampering
EP3427518B1 (en) * 2016-03-10 2019-11-27 Telefonaktiebolaget LM Ericsson (PUBL) Radio resource control connection establishment
CN105930721B (zh) 2016-04-28 2018-11-23 北京小米移动软件有限公司 一种管理应用程序的方法和装置
WO2018127816A1 (en) * 2017-01-03 2018-07-12 Karamba Security Mode-based controller security and malware prevention
US10169563B2 (en) 2017-01-27 2019-01-01 International Business Machines Corporation Encryption authorization dongle having volatile memory
JP6746085B2 (ja) * 2017-03-09 2020-08-26 日本電気株式会社 異常検知装置、異常検知方法および異常検知プログラム
JP6463435B1 (ja) * 2017-10-04 2019-02-06 三菱電機株式会社 制御装置および制御方法
JP7000895B2 (ja) * 2018-02-09 2022-01-19 株式会社デンソー 配布対象データの配布システム、及び配布対象データの取得方法
US11257072B1 (en) 2018-03-29 2022-02-22 Square, Inc. Detecting unauthorized devices
US11182794B1 (en) 2018-03-29 2021-11-23 Square, Inc. Detecting unauthorized devices using proximity sensor(s)
US11105850B2 (en) * 2018-05-24 2021-08-31 Seagate Technology Llc Secure debug system for electronic devices
US10733291B1 (en) * 2018-06-11 2020-08-04 Square, Inc. Bi-directional communication protocol based device security

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991399A (en) * 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4590552A (en) * 1982-06-30 1986-05-20 Texas Instruments Incorporated Security bit for designating the security status of information stored in a nonvolatile memory
US4558176A (en) * 1982-09-20 1985-12-10 Arnold Mark G Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software
US5475826A (en) * 1993-11-19 1995-12-12 Fischer; Addison M. Method for protecting a volatile file using a single hash
JP3344810B2 (ja) * 1994-03-02 2002-11-18 松下電器産業株式会社 ソフトウェア保護システム
US20120166807A1 (en) * 1996-08-12 2012-06-28 Intertrust Technologies Corp. Systems and Methods Using Cryptography to Protect Secure Computing Environments
CA2225805C (en) 1995-06-29 2002-11-12 Allan E. Alcorn Electronic casino gaming system with improved play capacity, authentication and security
US5757914A (en) * 1995-10-26 1998-05-26 Sun Microsystems, Inc. System and method for protecting use of dynamically linked executable modules
JP3627384B2 (ja) 1996-01-17 2005-03-09 富士ゼロックス株式会社 ソフトウェアの保護機能付き情報処理装置及びソフトウェアの保護機能付き情報処理方法
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6202153B1 (en) * 1996-11-22 2001-03-13 Voltaire Advanced Data Security Ltd. Security switching device
US5969632A (en) * 1996-11-22 1999-10-19 Diamant; Erez Information security method and apparatus
US6523119B2 (en) * 1996-12-04 2003-02-18 Rainbow Technologies, Inc. Software protection device and method
US6094724A (en) * 1997-11-26 2000-07-25 Atmel Corporation Secure memory having anti-wire tapping
CA2309627A1 (en) 1998-09-25 2000-04-06 Hughes Electronics Corporation An apparatus for providing a secure processing environment
US6374402B1 (en) * 1998-11-16 2002-04-16 Into Networks, Inc. Method and apparatus for installation abstraction in a secure content delivery system
JP3389186B2 (ja) 1999-04-27 2003-03-24 松下電器産業株式会社 半導体メモリカード及び読み出し装置
JP4395302B2 (ja) 1999-04-27 2010-01-06 パナソニック株式会社 半導体メモリカード及びその制御方法
US7143445B1 (en) * 1999-05-31 2006-11-28 Sony Corporation Information processing apparatus, information processing method, and program storage medium
KR100735503B1 (ko) * 1999-08-27 2007-07-06 소니 가부시끼 가이샤 정보 송신 시스템, 장치 및 방법 및 정보 수신 시스템,장치 및 방법
DE19962547A1 (de) * 1999-12-23 2001-09-13 Pag Parkhaus Ag Remontierbares Parkhaus
US6983374B2 (en) * 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
US7043641B1 (en) * 2000-03-08 2006-05-09 Igt Encryption in a secure computerized gaming system
US6990579B1 (en) * 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
EP1295200A2 (en) * 2000-06-12 2003-03-26 Koninklijke Philips Electronics N.V. Data processing method and device for protected execution of instructions
US7477742B2 (en) * 2000-07-06 2009-01-13 Fujitsu Limited Method and apparatus for controlling contents utilization, and a computer product
ES2180391B1 (es) * 2000-09-25 2003-12-16 Telesincro S A Circuito integrado.
JP4153653B2 (ja) * 2000-10-31 2008-09-24 株式会社東芝 マイクロプロセッサおよびデータ保護方法
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
JP4074057B2 (ja) 2000-12-28 2008-04-09 株式会社東芝 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法
JP4098478B2 (ja) 2001-01-31 2008-06-11 株式会社東芝 マイクロプロセッサ
WO2002065287A1 (en) * 2001-02-16 2002-08-22 Sony Corporation Data processing method and its apparatus
JP2002244757A (ja) * 2001-02-19 2002-08-30 Sony Corp 半導体回路
JP3995894B2 (ja) * 2001-03-16 2007-10-24 日本電信電話株式会社 アプリケーション又はデータ格納メモリを具えた装置の使用可能記憶容量増大方法
US20020144138A1 (en) * 2001-03-29 2002-10-03 Maliszewski Richard L. Method for maintaining a security perimeter during the handling of digital content
US20030037237A1 (en) 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US20020157002A1 (en) * 2001-04-18 2002-10-24 Messerges Thomas S. System and method for secure and convenient management of digital electronic content
US6925570B2 (en) 2001-05-15 2005-08-02 International Business Machines Corporation Method and system for setting a secure computer environment
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
JP3837368B2 (ja) * 2001-08-08 2006-10-25 松下電器産業株式会社 著作権保護システム、記録機器及び復号機器
JP4145118B2 (ja) 2001-11-26 2008-09-03 松下電器産業株式会社 アプリケーション認証システム
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US7063440B2 (en) * 2002-06-03 2006-06-20 Everbrite, Llc LED accent lighting units
JP4475894B2 (ja) 2002-08-01 2010-06-09 パナソニック株式会社 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法
DE60317242T2 (de) * 2002-08-01 2008-02-14 Matsushita Electric Industrial Co., Ltd., Kadoma Apparate und Verfahren zum Entschlüsseln von verschlüsselten Datenblöcken und zum Lokalisieren der verschlüsselten Datenblöcke im für die Ausführung verwendeten Speicherbereich
US7478248B2 (en) * 2002-11-27 2009-01-13 M-Systems Flash Disk Pioneers, Ltd. Apparatus and method for securing data on a portable storage device
EP3043232A1 (en) * 2003-08-26 2016-07-13 Panasonic Intellectual Property Corporation of America Program execution device
ATE357710T1 (de) * 2003-12-12 2007-04-15 Banksys Sa Elektronische datenverarbeitungseinrichtung
EP1560172A1 (en) * 2004-02-02 2005-08-03 Matsushita Electric Industrial Co., Ltd. Secure device and mobile terminal which carry out data exchange between card applications
US7886345B2 (en) * 2004-07-02 2011-02-08 Emc Corporation Password-protection module
US7584366B2 (en) * 2004-07-08 2009-09-01 At&T Intellectual Property I, L.P. Methods, systems and computer program products for detecting tampering of electronic equipment based on constrained time to obtain computational result
JP4391375B2 (ja) * 2004-09-30 2009-12-24 フェリカネットワークス株式会社 情報管理装置および方法、並びにプログラム
US7509419B2 (en) * 2005-01-13 2009-03-24 International Business Machines Corporation Method for providing remote access redirect capability in a channel adapter of a system area network
US7650515B2 (en) * 2006-02-06 2010-01-19 Panasonic Corporation Secure processing device, method and program
US7845005B2 (en) * 2006-02-07 2010-11-30 International Business Machines Corporation Method for preventing malicious software installation on an internet-connected computer
US7519830B2 (en) * 2006-08-03 2009-04-14 Motorola, Inc. Secure storage of data
US20080077767A1 (en) * 2006-09-27 2008-03-27 Khosravi Hormuzd M Method and apparatus for secure page swapping in virtual memory systems
JP4956292B2 (ja) * 2007-06-25 2012-06-20 パナソニック株式会社 情報セキュリティ装置およびカウンタ制御方法
JP5152571B2 (ja) 2008-03-24 2013-02-27 スタンレー電気株式会社 車両前照灯
EP2068068B1 (en) 2007-12-07 2013-11-20 Stanley Electric Co., Ltd. Vehicle headlamp
US8549631B2 (en) * 2009-02-12 2013-10-01 Ahnlab, Inc. Internet site security system and method thereto
US8938625B2 (en) * 2011-06-29 2015-01-20 Sonic Ip, Inc. Systems and methods for securing cryptographic data using timestamps
US20130004142A1 (en) * 2011-06-29 2013-01-03 Rovi Corp. Systems and methods for device authentication including timestamp validation
US8695060B2 (en) * 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
US20180096143A1 (en) * 2016-09-30 2018-04-05 Li Xiaoning Secure change log for drive analysis
US10855465B2 (en) * 2016-11-10 2020-12-01 Ernest Brickell Audited use of a cryptographic key
US10521613B1 (en) * 2018-08-08 2019-12-31 Carlos Manuel Gonzalez Adaptive standalone secure software

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991399A (en) * 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system

Also Published As

Publication number Publication date
US11651113B2 (en) 2023-05-16
US20090150685A1 (en) 2009-06-11
EP3798874A1 (en) 2021-03-31
JP2009151805A (ja) 2009-07-09
EP1680724A2 (en) 2006-07-19
CN101853352A (zh) 2010-10-06
US20200167509A1 (en) 2020-05-28
CN1871568B (zh) 2010-04-28
KR101059257B1 (ko) 2011-08-24
JP4892018B2 (ja) 2012-03-07
US20140380503A1 (en) 2014-12-25
US20160070938A1 (en) 2016-03-10
EP1680724B1 (en) 2019-05-08
US20210192095A1 (en) 2021-06-24
US9524404B2 (en) 2016-12-20
KR20060119876A (ko) 2006-11-24
US10108821B2 (en) 2018-10-23
US10607036B2 (en) 2020-03-31
US20230306145A1 (en) 2023-09-28
US20190251300A1 (en) 2019-08-15
US9218485B2 (en) 2015-12-22
US20130312064A1 (en) 2013-11-21
WO2005020043A3 (en) 2005-06-30
WO2005020043A2 (en) 2005-03-03
JP5291159B2 (ja) 2013-09-18
US20180247089A1 (en) 2018-08-30
JP2011253558A (ja) 2011-12-15
CN1871568A (zh) 2006-11-29
US20170061165A1 (en) 2017-03-02
US20120198243A1 (en) 2012-08-02
US8181040B2 (en) 2012-05-15
US10970424B2 (en) 2021-04-06
US20180025184A1 (en) 2018-01-25
US10318768B2 (en) 2019-06-11
EP3043232A1 (en) 2016-07-13
US8522053B2 (en) 2013-08-27
US8874938B2 (en) 2014-10-28
US9811691B2 (en) 2017-11-07
US7533276B2 (en) 2009-05-12
US20060294369A1 (en) 2006-12-28

Similar Documents

Publication Publication Date Title
CN101853352B (zh) 程序执行设备
CN100423041C (zh) 数据处理设备和数据处理方法
US6058478A (en) Apparatus and method for a vetted field upgrade
CN101325485A (zh) 处理电子设备中信息的方法、系统、电子设备和处理块
JP2006295872A (ja) 機器固有鍵の生成方法、これを用いた機密情報処理機能を備えた機密情報lsi、これを搭載したホスト機器、これに用いられる認証機能付き記録媒体、および認証機能を備えた記録媒体付き携帯端末
CN104956620B (zh) 用于验证和密钥交换的方法、装置和计算机可读存储媒体
CN102460456A (zh) 用于内容的适应性保护的存储器器件和方法
CN110659506A (zh) 基于密钥刷新对存储器进行重放保护
US20080104396A1 (en) Authentication Method
JP4691337B2 (ja) プログラム実行装置、認証局装置
KR20020071274A (ko) Pc기반의 암호칩 및 플래시 메모리를 이용한 유.에스.비보안보조기억장치
CN1954542A (zh) 加密设备、密钥分发设备和密钥分发系统
JP2004126745A (ja) データ保護装置
JP2004240719A (ja) ソフトウェア実行制御方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MATSUSHITA ELECTRIC (AMERICA) INTELLECTUAL PROPERT

Free format text: FORMER OWNER: MATSUSHITA ELECTRIC INDUSTRIAL CO, LTD.

Effective date: 20140924

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20140924

Address after: Seaman Avenue Torrance in the United States of California No. 2000 room 200

Patentee after: PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AMERICA

Address before: Osaka Japan

Patentee before: Matsushita Electric Industrial Co.,Ltd.