CN1886712B - 数据处理装置 - Google Patents

数据处理装置 Download PDF

Info

Publication number
CN1886712B
CN1886712B CN2004800352503A CN200480035250A CN1886712B CN 1886712 B CN1886712 B CN 1886712B CN 2004800352503 A CN2004800352503 A CN 2004800352503A CN 200480035250 A CN200480035250 A CN 200480035250A CN 1886712 B CN1886712 B CN 1886712B
Authority
CN
China
Prior art keywords
mentioned
program
safe
music
operating system
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
CN2004800352503A
Other languages
English (en)
Other versions
CN1886712A (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.)
SK Hynix Inc
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
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1886712A publication Critical patent/CN1886712A/zh
Application granted granted Critical
Publication of CN1886712B publication Critical patent/CN1886712B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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
    • G06CDIGITAL COMPUTERS IN WHICH ALL THE COMPUTATION IS EFFECTED MECHANICALLY
    • G06C1/00Computing aids in which the computing members form at least part of the displayed result and are manipulated directly by hand, e.g. abacuses or pocket adding devices
    • 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
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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/2105Dual mode as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明的数据处理装置,切换访问作为保护对象的安全资源的安全模式和不能访问安全资源的普通模式来执行,如果在安全模式下上述安全资源增大,则有关保护上述源的保护机构的负荷变大。因而,有对能够削减安全资源的数据处理装置的需求。本发明是如下的数据处理装置:存储有包含利用上述安全资源的1个以上的处理过程和调出在普通模式下执行的普通程序的调出指令的安全程序,在上述安全程序的执行过程中,通过上述调出指令调出普通程序,按照所调出的普通程序动作。

Description

数据处理装置
技术领域
本发明涉及在切换可访问安全资源的安全模式和仅可访问安全资源以外的普通资源的普通模式来执行程序的装置中,使由安全模式执行的程序和由普通模式执行的程序对应地动作的技术。
背景技术
近年来,在各种设备中,处理包括音乐及影像的数字内容。这些设备能够不使数字内容劣化地进行复制、编辑。但是,从著作权的观点出发,这些数字内容需要保护起来进行处理。
根据以往的技术,公开有通过监视器切换并执行可对需要保护的安全数据及需要保护的安全应用程序进行访问的安全模式、和不能访问这些安全数据及安全应用程序的普通模式的数据处理装置。根据该技术,在普通模式下工作的应用程序,经由在普通模式下工作的操作系统,向安全应用程序委托处理。操作系统向监视器委托执行模式的切换,监视器切换执行模式。安全应用程序进行被委托的处理,将处理结果经由在安全执行模式下工作的安全操作系统返回给应用程序。安全操作系统向监视器委托执行模式的切换,监视器切换执行模式。根据这样的结构,通过切换并执行安全模式和普通模式,在普通模式下工作的应用程序不能直接访问安全数据或安全应用程序。因而,能够保护安全数据及安全应用程序。
非专许文献1:A New Foundation for CPU Systems Security(平成15年11月20日检索,URL:
http://www.arm.com/armtech.nsf/htmlall/FC4C07580E29428080256D1A004A2345/$File/TrustZone#WP.pdf?OpenElement)
但是,在以往技术所示的方法中,需要分开确保用于存储在安全模式下使用的数据及程序等的存储器与在普通模式下使用的存储器。在安全模式下使用的存储器需要保护该存储器不受非法的访问的保护机构。因而,如果增加在安全模式下使用的存储器,则有关保护机构的负荷变大,产生了增大保护机构的规模的需要。因此,需求能够削减在安全模式下使用的存储器的数据处理装置。
发明内容
所以,本发明是鉴于这种问题点而做出的,其目的是提供一种能够削减在安全模式下使用的存储器的数据处理装置、数据处理方法、数据处理程序以及存储介质。
为了实现上述目地,本发明的数据处理装置,切换允许利用保护对象的安全资源的安全模式和仅允许利用保护对象外的普通资源的普通模式,来执行程序,其特征在于,具备:普通存储机构,存储由利用上述普通资源的1个以上的处理过程构成的普通程序;安全存储机构,存储由利用上述安全资源的1个以上的处理过程构成、并包含至少调出上述普通程序的调出指令的安全程序;判断机构,在安全模式下,判断接着要执行的指令是否是上述调出指令;输出机构,在安全模式下,在判断为是上述调出指令的情况下,输出表示由该调出指令调出的上述普通程序的识别信息;切换机构,在判断为是上述调出指令的情况下,保护安全资源,从安全模式切换为普通模式;接受机构,在普通模式下接受上述识别信息;读出机构,在普通模式下,从上述普通存储机构读出由所接受的上述识别信息表示的上述普通程序;以及处理机构,在普通模式下按照所读出的普通程序动作,上述切换机构通过中断用于控制上述安全程序的安全操作系统、启动用于控制上述普通程序的普通操作系统,从安全模式切换为普通模式,该数据处理装置切换第1操作系统和第2操作系统,将在各操作系统中生成的进程转移到执行状态、执行等待状态、休止状态中的某一个,来执行并管理进程,该数据处理装置还具备:第1生成机构,在上述第1操作系统中生成第1进程;第2生成机构,在上述第2操作系统中生成与上述第1进程对应的第2进程;第1检测机构,在上述第1操作系统中检测上述第1进程的状态转移;第1输出机构,在上述第1操作系统中输出表示检测到的状态转移的转移信息;第2取得机构,在上述第2操作系统中取得上述转移信息;以及第2转移机构,按照所取得的上述转移信息,转移上述第2进程的状态,上述切换机构将上述第1操作系统切换为上述第2操作系统。
根据该结构,在上述第1操作系统中,上述第1输出机构输出上述转移信息,上述切换机构将上述第1操作系统切换为上述第2操作系统,在上述第2操作系统中,第2转移机构按照上述转移信息而转移上述第2进程的状态。因而,在排他地执行2个操作系统动作的上述数据处理装置中,在上述第2操作系统中也能够经由上述第2进程监视由上述第1操作系统控制的上述第1进程的动作状态。
其特征在于,上述数据处理装置还具有:第2检测机构,在上述第2操作系统中,检测上述第2进程的状态转移;第2输出机构,在上述第2操作系统中,输出表示检测到的状态转移的转移信息;上述切换结构还将上述第2操作系统切换为上述第1操作系统;上述数据处理装置还具有:第1取得机构,在上述第1操作系统中取得上述转移信息;第1转移机构,按照所取得的上述转移信息,转移上述第1进程的状态。
根据该结构,上述第2输出机构在上述第2操作系统中输出上述转移信息,上述第1转移机构按照上述转移信息转移上述第1进程的状态。由此,在上述第1操作系统中也能够经由上述第1进程监视由上述第2操作系统控制的上述第2进程的动作状态。因而,上述第1操作系统及上述第2操作系统能够相互地监视各自所控制的第1进程及第2进程的动作状态。
进而,上述数据处理装置的特征在于,具备在第1操作系统及第2操作系统的两者中能够访问的共用存储区域;上述第1输出机构通过将上述转移信息写入到上述共用存储区域中,来输出上述转移信息;上述第2取得机构通过从上述共用存储区域中读出上述转移信息,来取得上述转移信息。
根据该结构,上述第1输出机构及上述第2取得机构在第1操作系统及第2操作系统两者中经由可访问的上述共用存储区域传递上述转移信息。由于上述共用存储区域在第1操作系统及第2操作系统两者中能够访问,所以本发明的数据处理装置能够在排他地执行第1操作系统和第2操作系统的同时,从第1操作系统向第2操作系统传递信息。
其特征在于,构成上述数据处理装置的上述第2输出机构通过将上述转移信息写入到上述共用存储区域中,来输出上述转移信息;上述第1取得机构通过从上述共用存储区域中读出上述转移信息,来取得上述转移信息。
因而,能够在排他地执行第2操作系统和第1操作系统的同时,从第2操作系统向第1操作系统传递信息。
此外,上述数据处理装置的特征在于,具有在上述第2操作系统中被管理并动作的设备;上述第2进程是控制上述设备的驱动的设备驱动程序;上述第2检测机构检测伴随上述设备的动作的上述第2进程的状态转移。
根据该结构,上述第2进程是控制上述设备的驱动的设备驱动程序,上述第2检测机构检测伴随着上述设备的动作的上述第2进程的状态转移。因而,上述第1进程也伴随着上述设备驱动程序的状态转移而状态转移,在上述第1操作系统中也能够监视上述设备的驱动状态。
其特征在于,在上述第1操作系统中,在上述第1进程从休止状态转移到执行状态的情况下,上述数据处理装置按照进行排他处理的上述第1进程动作,该排他处理用于避免对上述设备重复委托处理;在上述第1操作系统中,上述第1输出机构在上述排他处理结束后输出上述转移信息。
通常,这种排他处理是通过控制上述设备的驱动的设备驱动程序来执行的,但根据该结构,在上述数据处理装置中,在上述第1进程进行了避免对设备重复委托处理的排他处理后,在上述第1操作系统中,上述第1输出机构输出上述转移信息。根据所输出的上述转移信息,上述第2进程转移到执行状态,开始上述设备的驱动的控制。如果假设是分别需要由第1操作系统和第2操作系统使用的存储器空间、特别是需要保护由第2操作系统使用的存储器不受外部的访问的情况,则由于上述第1进程进行排他处理,所以上述第2进程不再需要进行排他处理。因而,减少了上述第2进程为了排他处理而使用的存储器区域。因此,削减了需要保护的存储器,能够减轻保护这些存储器不受外部访问的保护机构的负荷。
其特征在于,上述数据处理装置还具有:中断检测机构,在第1操作系统及第2操作系统中检测中断的发生;中断调查机构,在上述第1操作系统中,在检测到中断的情况下,调查中断发生主因;中断转移机构,在上述第1操作系统中,在通过中断调查机构判断为上述设备造成的中断的情况下,使上述第1进程从休止状态转移到执行状态。
进而,上述数据处理装置构成为,上述数据处理装置还具有通知机构,该通知机构在上述第2操作系统中,在检测到中断的情况下,输出表示检测到了中断的中断通知信息;上述切换机构将上述第2操作系统切换为上述第1操作系统;上述第1取得机构还在上述第1操作系统中取得上述中断通知信息;上述中断调查机构还在上述第1操作系统中,在取得了上述中断通知的情况下,调查中断发生主因。
根据该结构,在上述第1操作系统中,在检测到中断的情况下,中断调查机构调查中断发生主因。此外,在上述第2操作系统中,在检测到中断的情况下,上述通知机构输出表示检测到了中断的中断通知信息,在第1操作系统中,中断调查机构调查中断发生主因。
通过这样,在第2操作系统的管理下,不再需要提供中断调查机构。因而,在本发明的数据处理装置中只具备一个中断调查机构就可以。
在上述数据处理装置中,其特征在于,在检测到了中断的情况下,上述通知机构使上述中断检测机构停止检测中断;上述第1取得机构在取得了上述中断通知信息的情况下,对上述中断检测机构解除上述停止。
根据该结构,上述通知机构在检测到中断的情况下使上述中断检测机构停止中断的检测,上述第1取得机构在取得了上述中断通知信息的情况下,对上述中断检测机构解除上述停止。因而,在上述第1取得机构取得从上述通知机构输出的中断通知信息之前的期间,不会由上述中断检测机构妨碍从上述第2操作系统向上述第1操作系统的切换的动作。此外,在从第2操作系统向第1操作系统切换之前的期间,上述中断检测机构能够防止重复检测到相同的中断。
为了实现上述目的,本发明的数据处理方法,在数据处理装置中使用,该数据处理装置切换允许利用保护对象的安全资源的安全模式和仅允许利用保护对象外的普通资源的普通模式,来执行程序,其特征在于,上述数据处理装置具备:普通存储机构,存储由利用上述普通资源的1个以上的处理过程构成的普通程序;安全存储机构,存储由利用上述安全资源的1个以上的处理过程构成、并包含至少调出上述普通程序的调出指令的安全程序,该数据处理装置切换第1操作系统和第2操作系统,将在各操作系统中生成的进程转移到执行状态、执行等待状态、休止状态中的某一个,来执行并管理进程,上述数据处理方法包含:判断步骤,在安全模式下,判断接着要执行的指令是否是上述调出指令;输出步骤,在安全模式下,在判断为是上述调出指令的情况下,输出表示由该调出指令调出的上述普通程序的识别信息;切换步骤,在判断为是上述调出指令的情况下,保护安全资源,从安全模式切换为普通模式;接受步骤,在普通模式下,接受上述识别信息;读出步骤,在普通模式下,从上述普通存储机构读出由所接受的上述识别信息表示的上述普通程序;以及处理步骤,在普通模式下,按照所读出的普通程序动作,上述切换步骤通过中断用于控制上述安全程序的安全操作系统、启动用于控制上述普通程序的普通操作系统,从安全模式切换为普通模式,上述数据处理方法还包含:第1生成步骤,在上述第1操作系统中生成第1进程;第2生成步骤,在上述第2操作系统中生成与上述第1进程对应的第2进程;第1检测步骤,在上述第1操作系统中检测上述第1进程的状态转移;第1输出步骤,在上述第1操作系统中输出表示检测到的状态转移的转移信息;第2取得步骤,在上述第2操作系统中取得上述转移信息;以及第2转移步骤,按照所取得的上述转移信息,转移上述第2进程的状态,上述切换步骤将上述第1操作系统切换为上述第2操作系统。
进而,上述数据处理方法,在按照程序动作的上述数据处理装置中使用,其特征在于,上述数据处理装置具备存储由多个处理过程构成的程序的存储机构;该数据处理方法还包含:合法性判断步骤,判断存储在上述存储机构中的上述程序是否是非法的;以及无效化步骤,在判断为非法的情况下,使上述程序无效化。
进而,上述数据处理方法,在上述数据处理装置中使用,其特征在于,上述数据处理装置具备用来存储数据的存储器机构和按照由多个处理过程构成的程序动作的处理器;上述数据处理方法还包含:监视步骤,在上述存储器机构与上述处理器之间,判断从上述处理器输出的目的地为上述存储器机构的传送数据是否满足传送限制条件,在判断为满足传送限制条件的情况下,抑制向上述存储器机构传送该传送数据,在判断为不满足传送限制条件的情况下,向上述存储器机构传送该传送数据。
附图说明
图1是表示实施方式1的便携电话100的使用例。
图2是表示便携电话100及存储卡300的结构的框图。
图3表示存储在次存储部104中的信息的一例。
图4表示存储在普通存储器111中的信息的一例。
图5表示应用程序管理表166的详细情况。
图6表示存储在安全存储器113中的信息的一例。
图7表示安全应用程序管理表186的详细情况。
图8是表示存储在普通存储器111及安全存储器113中的程序的关联的框图。
图9表示普通OS151及安全存储器113的处理指令的数据结构。
图10是表示普通OS151的动作的流程图。
图11是表示安全OS171的动作的流程图。
图12是表示音乐解密守护程序156的动作的流程图。
图13是表示从普通OS151向安全OS171的切换处理的流程图。
图14是表示从安全OS171向普通OS151的切换处理的流程图。
图15是表示便携电话100的动作的流程图。
图16是表示音乐解密程序的登录处理中的各程序的动作的流程图。
图17是表示音乐解密程序的登录处理中的各程序的动作的流程图。接图16。
图18是表示对音乐解密程序176的委托处理中的各程序的动作的流程图。
图19是表示对音乐解密程序176的委托处理中的各程序的动作的流程图。上接图18。
图20是表示对音乐解密程序176的委托处理中的各程序的动作的流程图。上接图19。
图21是表示对音乐解密程序176的委托处理中的各程序的动作的流程图。上接图20。
图22是表示对音乐解密程序176的委托处理中的各程序的动作的流程图。上接图21。
图23是表示对音乐解密程序176的委托处理中的各程序的动作的流程图。上接图22。
图24是表示对音乐解密程序176的委托处理中的各程序的动作的流程图。上接图23。
图25是表示对音乐解密程序176的委托处理中的各程序的动作的流程图。上接图24。
图26是表示对音乐解密程序176的委托处理中的各程序的动作的流程图。上接图25。
图27是表示对音乐解密程序176的委托处理中的各程序的动作的流程图。上接图26。
图28是表示普通OS151的执行中的、普通输入输出设备132的中断发生时的处理的流程图。是图21的步骤S239的详细情况。
图29是表示安全OS171的执行中的、普通输入输出设备132的中断发生时的处理的流程图。
图30是表示普通OS151的执行中的、安全设备133的中断发生时的处理的流程图。是图23的步骤S287的详细情况。
图31是表示普通OS151的执行中的、安全设备133的中断发生时的处理的流程图。上接图30。
图32是表示普通OS151的执行中的、加密处理设备117的中断发生时的处理的流程图。是图27的步骤S337的详细情况。
图33是表示普通OS151的执行中的、加密处理设备117的中断发生时的处理的流程图。上接图32。
图34是表示普通OS151的执行中的、加密处理设备117的中断发生时的处理的流程图。上接图33。
图35是表示音乐解密程序176的删除处理的流程图。
图36是在便携电话110的动作中、表示程序间的指令的传递。
图37是在便携电话110的动作中、表示程序间的指令的传递。
图38是在便携电话110的动作中、表示程序间的指令的传递。上接图37。
图39是在便携电话110的动作中、表示程序间的指令的传递。上接图38。
图40是在便携电话110的动作中、表示程序间的指令的传递。上接图39。
图41是在便携电话110的动作中、表示程序间的指令的传递。上接图40。
图42是在便携电话110的动作中、表示程序间的指令的传递。上接图41。
图43表示存储在普通存储器111中的信息的一例。
图44是表示便携电话100的启动时的动作的流程图。
图45表示存储在安全存储器113中的信息的一例。
图46表示由MMU控制程序184形成的逻辑存储空间的一例。
图47是表示实施方式1的变形例中的各程序的关联的框图。
图48是在实施方式1的变形例中、表示普通OS151及安全OS171所具有的安全设备驱动器管理表231的结构。
图49表示实施方式2的便携电话400的使用例。
图50是表示无效化列表发布装置250的结构的框图。
图51是表示包含在便携电话400中的存储器保护部414及安全存储器413的结构的框图。
图52是存储器保护部414的动作的流程图。
图53是存储器保护部414的动作的流程图。上接图52。
图54是表示实施方式2的变形例中的存储器保护部454及安全存储器453的结构的框图。
图55表示安全OS证书的详细情况。
图56是在实施方式2的变形例中、表示音乐解密程序476所具备的应用程序证书501、厂商证书511、CA证书521的结构及关联。
图57表示OS无效化列表的结构的一例。
图58表示实施方式3中的无效化列表发布装置的信息存储部610中存储的信息的一例。
图59表示应用程序固有密钥矩阵592及OS固有密钥矩阵597的结构。
图60表示应用程序矩阵无效化列表611的详细结构。
图61是表示生成应用程序矩阵无效化列表的的处理过程的流程图。
图62是表示实施方式3的便携电话所具备的存储器保护部571及安全存储器613的结构的框图。
图63是表示存储器保护部571的验证动作的流程图。
图64是表示应用程序验证部578的音乐解密程序592的验证动作的流程图。
图65是表示实施方式3的变形例的家庭网络结构的结构图。
图66是表示构成实施方式4的便携电话的存储器保护部701及安全存储器713的结构的框图。
图67是在实施方式5中、表示安全存储卡820的结构及存储在安全存储卡820中的信息的一例。
图68是表示实施方式5的便携电话750及安装在便携电话750中的普通存储卡800及安全存储卡820的结构的框图。
图69是表示存储器保护部764的结构的框图。
图70表示安全存储器表811及普通存储器表861的结构。
图71是表示访问控制部783及ID检测部786的动作的流程图。
图72是表示访问控制部783的动作的流程图。上接图71。
标记说明:
10 便携电话网
15 基站
20 因特网
100 便携电话
101 调试器IF
102 CPU
103 MMU
104 次存储部
106 切换控制部
107 中断控制器
108 输入部
109 显示部
111 普通存储器
112 共用存储器
113 安全存储器
114 存储器保护部
116 输入输出部
117 加密处理设备
118 无线通信控制部
119 麦克风
120 扬声器
121 通信部
122 天线
123 缓存器
124 编码处理部
126 D/A变换部
130 总线
131 访问部
132 普通输入输出设备
133 安全输入输出设备
300 存储卡
具体实施方式
下面,利用附图详细说明本发明的实施方式。
1、实施方式1
下面,对本发明的实施方式进行说明。
图1表示本发明的便携电话100的使用例。便携电话100安装有存储卡300。
存储卡300存储有加密的音乐数据,便携电话100从存储卡300读出并再现音乐数据。
此外,便携电话100经由基站15、便携电话网10、因特网20与内容传送装置连接。便携电话100经由因特网、便携电话网取得内容传送装置所存储的由音乐、影像等构成的各种内容。
1.1 存储卡300
存储卡300如图2所示,包括:输入输出部301、安全处理部302、一般区域303及安全区域306。
一般区域303是能够由外部设备自由地访问的存储区域,存储有加密音乐数据。安全区域306是只有被许可的外部设备能够访问的存储区域,存储有内容密钥307。
加密音乐数据304……是利用内容密钥307对1曲的音乐数据执行加密算法E1来生成的。通过乐曲ID来识别各加密音乐数据。
加密算法E1作为一例而采用DES(Data Encryption Standard,数据加密标准)等。
输入输出部301在外部设备与一般区域303及安全处理部302之间输入输出各种数据。
安全处理部302在与外部设备之间根据CPRM(Content Protection forRecordable Media,可记录媒体内容保护)的结构进行相互认证,在认证成功的情况下,共用认证后的设备和密钥。利用共用的密钥,在与外部设备之间安全地进行数据的输入输出。
另外,对于CPRM,由于是公知的,所以省略说明。此外,也可以通过其他认证方法进行认证。
1.2 便携电话100的结构
便携电话100如图2所示,包括:调试器IF101、CPU102、MMU103、次存储部104、切换控制部106、中断控制器107、输入部108、显示部109、普通存储器111、共用存储器112、安全存储器113、存储器保护部114、输入输出部116、加密处理设备117、无线通信控制部118、麦克风119、扬声器120、通信部121、天线122、缓存器123、编码处理部124及D/A变换部126。各电路与总线130连接。
便携电话100具体而言是计算机系统,在普通存储器111、共用存储器112、安全存储器113、次存储部104中存储有各种计算机程序,CPU102按照这些计算机程序动作,由此,便携电话100实现其功能的一部分。
(1)次存储部104、共用存储器112
次存储部104由ROM构成,作为一例,如图3所示,存储有加密音乐解密程序141及音乐解密守护程序142等。
加密音乐解密程序141是对装载到安全存储器113上并执行的音乐解密程序进行加密而生成的。音乐解密程序是对存储在存储卡300中的加密音乐数据304进行解密的程序。对其在后面详细说明。
音乐解密守护程序142是装载到普通存储器111上来执行的程序,与音乐解密程序一一对应。
在音乐解密的处理中,音乐解密程序执行需要高安全性的处理、及使用想要保护的数据的处理,音乐解密守护程序执行不需要高安全性的处理。对于详细情况在后面叙述。
共用存储器112由RAM构成,是由普通存储器111上的程序及安全存储上的程序的某个程序都能够使用的存储器。
另外,这里次存储部104由ROM构成,但也可以由硬盘单元构成。
(2)普通存储器111及安全存储器113
普通存储器111由RAM及ROM构成,存储有由CPU102执行的各种程序。作为一例,如图4所示,存储有普通OS151、库152、音乐再现程序153、音乐解密守护程序156、普通输入输出设备驱动器157、安全输入输出条目设备驱动器158、加密条目设备驱动器159、普通切换设备驱动器160及普通中断处理器161。
安全存储器113由RAM构成,存储有由CPU102执行的各种程序。安全存储器113经由存储器保护部114与总线130连接。
作为一例,安全存储器113如图6所示,存储有安全OS171、音乐解密程序176、安全输入输出设备驱动器178、加密设备驱动器179、安全切换设备驱动器180、安全中断处理器181。
图8是功能地表示存储在普通存储器111及安全存储器113中的各程序间的关系的框图。实际上,同一存储器上的各程序间的通信是通过向普通OS151及安全OS171输出系统调用来实现的。此外,通过图4所示的普通切换设备驱动器160、图6所示的安全切换设备驱动器180、及图2所示的切换控制部106动作,来切换普通OS151和安全OS171,但在图8中,省略了有关操作系统的中继及普通OS151和安全OS171的切换的程序。
此外,在图8中,共用存储器112与普通输入输出设备132及加密处理设备117连接,但这表示共用存储器112所发挥作用的一部分,共用存储器112也可以被其他程序使用。
<普通OS151>
普通OS151是对装载到普通存储器111上来执行的各种程序进行控制的基本软件,由控制程序和控制数据构成。
在控制数据中,如图4所示,包含应用程序管理表166。应用程序管理表166如图5所示,包含多个条目167、168、……。各条目由句柄值、守护程序地址、应用程序前后关系地址构成。
句柄值是分配给装载到安全存储器113上的安全应用程序的标识符。
在以下的说明中,将装载到安全存储器113上、执行安全处理的应用程序称作安全应用程序。这里,所谓的安全处理,是指处理想要保护的数据的处理及需要保护算法本身的处理。
守护程序地址是与安全程序对应地动作的程序的普通存储器111上的装载地址。
应用程序前后关系地址是保存有对与句柄值对应的安全应用程序委托安全处理的应用程序的前后关系的普通存储器111上的地址。在前后关系中,包含CPU102的寄存器值、堆栈指针、MMU的内容等。
如果具体说明条目167,则句柄值“1”是分配给音乐再现程序153委托安全处理的音乐解密程序176(后述)的标识符。守护程序地址“0000BBBB”是与音乐解密程序176对应地动作的音乐解密守护程序156的普通存储器111上的装载地址。应用程序前后关系地址“0000AAEE”是保存有音乐再现程序153的前后关系的普通存储器111上的地址。
此外,在控制数据中包含:作为表示普通输入输出设备驱动器157的识别信息设备的设备ID_A、作为识别安全输入输出条目设备驱动器158的识别信息的设备ID_B、以及作为表示加密条目设备驱动器159的识别信息的设备ID_C。它们分别与普通输入输出设备驱动器157、安全输入输出条目设备驱动器158、及加密条目设备驱动器159的普通存储器111上的装载地址对应地存储。设备ID_B与表示安全输入输出设备驱动器178(后述)的识别信息相同,设备ID_C与表示加密设备驱动器179的识别信息相同。
普通OS151经由共用存储器112内的规定的区域(称作指令区域),在与安全OS171之间进行各种指令的收发。此外,在与普通存储器111上的程序之间也进行各种指令的收发。在与普通存储器111上的程序之间的指令的收发中,既可以使用共用存储器112,也可以使用普通存储器111。
图9(a)表示普通OS151所处理的指令的数据构造的一例。指令1000由指令部1011和数据保存部1012构成。
在保存于指令部1011中的指令中,有安全应用程序登录请求、登录结束通知、应用程序返回请求、安全应用程序删除指令、删除结束通知、系统调用、响应通知、安全处理请求、外部处理请求、休眠请求、中断发生通知等。
在数据保存部1012中,与保存在指令部1011中的指令对应地保存各种数据及指令1016、表示作为接受数据及指令1016的目的地的程序的识别信息1013等。
安全应用程序登录请求是在普通存储器111上动作的应用程序请求使委托安全处理的安全应用程序成为装载到安全存储器113上来可使用的状态的指令。此时,如图9(b)所示,在数据保存部1012中,保存有表示安全应用程序的安全应用程序信息和与安全应用程序对应地动作的程序的守护程序信息。以从音乐再现程序153输出的安全程序登录请求为例,安全应用程序信息是次存储部104上的存储有加密音乐解密程序141的地址,守护程序信息是存储有音乐解密守护程序142的地址。另外,安全应用程序信息及守护程序信息也可以是与加密音乐解密程序141及音乐解密守护程序142对应的标识符等。
登录结束通知将在安全存储器113上装载了安全应用程序、向安全应用程序管理表(后述)的登录已结束的情况进行通知。此时,在数据保存部1012中保存有与登录的安全应用程序对应的句柄值。
应用程序返回请求是结束了被委托的处理的安全应用程序请求向作为委托源的应用程序的返回的指令。此时,在数据保存部中保存有表示安全应用程序的识别信息。
安全应用程序删除指令是指示安全存储器113上的安全应用程序的删除的指令。此时,在数据保存部1012中保存有唯一识别要删除的安全应用程序的句柄值。
删除结束通知是通知将安全存储器113上的安全应用程序已删除的情况的指令。此时,在数据保存部1012中保存有唯一识别已删除的安全应用程序的句柄值。
系统调用是委托从普通存储器111上的应用程序向普通OS151、普通存储器111上的其他程序中继指令或数据的指令。此时,在数据保存部1012中,写入有表示委托了中继的应用程序的识别信息和中继目的地的程序的识别信息、和所中继的数据及指令。
作为一例,图9(c)表示音乐解密守护程序156所输出的系统调用的数据构造。在指令部1011中保存有系统调用,在数据保存部1012中,保存有:作为系统调用的发送源的音乐解密守护程序156的句柄值“1”、和表示作为数据的接受目的地的加密条目设备驱动器159的设备ID_C、和所中继的数据“处理结果”。
响应通知是通过系统调用而从应用程序接受了指令或数据的程序按照所接受的指令及数据进行处理、将向系统调用的输出源应用程序通知处理结果的工作委托给普通OS151。在数据保存部1012中,保存有表示委托了通知的程序的识别信息和表示通知目的地应用程序的识别信息、和处理结果等。
作为一例,通过图9(c)所示的系统调用接受了句柄值“1”、设备ID_C、及处理结果的加密条目设备驱动器159解除排他控制(详细情况在后面叙述),将包含句柄值“1”、设备ID_C、及处理结果的响应通知输出给普通OS151,由此,经由普通OS151将句柄值“1”、设备ID_C、及处理结果通知给音乐解密守护程序156(详细情况在后面叙述)。
安全处理请求是从普通存储器111上的程序向普通存储器113上的程序委托指令或数据的中继的指令。此时,在数据保存部1012中,保存有:表示作为安全处理请求的输出源的程序的识别信息、和表示中继目的地程序的信息及中继的数据及指令。图9(d)中,作为一例,表示从音乐解密守护程序156输出的安全处理请求的数据构造。在数据保存部1012中,保存有表示作为安全处理请求的输出源的音乐解密守护程序156的句柄值“1”、作为接受目的地的加密设备驱动器179的设备ID_C、和中继的指令“中断通知”。
外部处理请求是从安全存储器113上的程序向普通存储器111上的程序委托指令及数据的中继的指令。此时,在数据保存部1012中,保存有:表示作为安全处理请求的输出源的程序的识别信息、表示中继目的地程序的识别信息、和中继的数据及指令。图9(e)中,作为一例,表示从加密设备驱动器179输出的外部处理请求的数据结构。在指令部中保存有外部处理请求,在数据保存部中,保存有与作为外部处理请求的输出源的加密设备驱动器179对应的设备ID_C、与作为接受目的地的音乐解密守护程序156对应的句柄值“1”、和中继的指令“休眠请求”。
休眠请求是委托使向便携电话100所具备的设备的设备驱动器及设备委托了处理的程序转移到休眠状态的指令。此时,在数据保存部1012中保存有表示委托休眠请求的设备驱动器的识别信息、和与向设备委托处理的程序对应的识别信息。
中断发生通知是通知有中断发生的指令。
下面利用图10的流程图说明普通OS151的动作。另外,普通OS151除了在该流程图中说明的处理以外,也执行各种处理。
这里,对于安全应用程序登录请求、登录结束通知、应用程序返回请求、安全应用程序删除指令及删除结束通知,具体而言,设普通存储器111上的应用程序为音乐再现程序153、设安全应用程序为音乐解密程序176、设与安全应用程序成对动作的程序为音乐解密守护程序156,来进行说明。
普通OS151如果通过切换处理返回到CPU102,则从共用存储器112的指令区域中读出指令(步骤S1001)。另外,对于切换处理,在以下的普通切换设备驱动器160及安全切换设备驱动器180的说明中,详细加以说明。
将读出后的指令译码(步骤S1002),如果译码后的指令为登录结束通知,则将音乐解密守护程序156装载到普通存储器111上(步骤S1004),将装载的地址、和包含在登录结束通知的数据保存部中来接受的句柄值“1”写入到应用程序管理表166的条目167中(步骤S1005),将句柄值“1”输出给音乐再现程序153。
如果所读出的指令为外部处理请求(步骤S1002),则调出与表示包含在数据保存部中的中继目的地的识别信息对应的程序,向所调出的程序输出包含在外部处理请求的数据保存部中来接受的信息(步骤S1006)。
如果所读出的指令是中断发生通知(步骤S1002),则通过清除写入到CPU102的中断寄存器中的伪数据来解除中断掩码(步骤S1007)。对于中断掩码,在后面的有关安全中断处理器181的说明中叙述。
在所读出的指令是应用程序返回请求的情况下(步骤S1002),基于包含在数据保存部中的句柄值“1”、和应用程序管理表166,返回音乐再现程序153的前后关系(步骤S1009)。
如果所读出的指令是删除结束通知(步骤S1002),则将与包含在数据保存部中的句柄值“1”对应的音乐解密守护程序156从普通存储器111中删除(步骤S1011),从应用程序管理表166中将包含句柄值“1”的条目167删除(步骤S1012)。
接着,接受来自普通存储器111上的各程序的指令(步骤S1013)。
如果接受了系统调用(步骤S1013),则调出与写入在数据保存部中的句柄值或表示设备ID等中继目的地的识别信息对应的程序,输出包含在数据保存部中的信息(步骤S1014)。例如,如果包含有句柄值“1”,则在应用程序管理表166中选择包含句柄值“1”的条目167,基于所选择的条目167的守护程序地址调出音乐解密守护程序156,如果包含有设备ID_C,则调出加密条目设备驱动器159。
此外,虽没有具体地图示,但在接受了响应通知的情况下,也与接受了系统调用的情况同样,调出与写入在数据保存部中的识别信息对应的应用程序,输出包含在数据保存部中的信息。
如果接受了休眠请求(步骤S1013),则使与写入在数据保存部中的句柄值或设备ID等识别信息对应的程序转移到休眠状态(步骤S1016)。所谓的休眠状态,是指不进行所有的动作的状态。
如果从音乐解密程序176接受了如图9(b)所示那样在数据保存部中包含安全应用程序信息和守护程序信息的安全应用程序登录请求(步骤S1013),则将音乐再现程序153的前后关系保存到普通存储器111上,将保存目的地的地址写入到应用程序前后关系地址中,基于安全应用程序信息,将从次存储部104读出的加密音乐解密程序141写入到共用存储器112中(步骤S1017)。接着,将安全应用程序登录请求写入到共用存储器112上(步骤S1018),将处理转移到步骤S1028。此时的安全应用程序登录请求在数据保存部中,包含有加密音乐解密程序的共用存储器112上的写入目的地的地址。
如果从音乐再现程序153接受了安全应用程序删除指令(步骤S1013),则将所接受的安全应用程序删除指令写入到共用存储器112中(步骤S1019)。这里,在数据保存部中,保存有表示作为删除对象的音乐解密程序176的句柄值“1”。
如果接受了安全处理请求(步骤S1013),则将所接受的安全处理请求写入到共用存储器112中(步骤S1021)。接着进行切换处理(步骤S1028)。
此外,发生了中断,从中断控制器107接受了中断发生通知(步骤S1023),启动普通中断处理器161(步骤S1024)。解除普通中断处理器161的基于中断原因的调查结果而休眠的程序的休眠(步骤S1026)。将处理转移到步骤S1013。
另外,在本实施方式中,普通OS151与安全OS171经由共用存储器112传递各种指令,但也可以使用专用寄存器来代替共用存储器112。
<安全OS171>
安全OS171如图6所示,由操作程序172、调试无效化程序173、加密解密程序174构成。
调试无效化程序173是将伪数据写入到调试器IF101的寄存器中、使调试器IF101无效的程序。另外,在调试器IF101与CPU102之间具备开关,调试无效化程序173也可以是通过开闭该开关来构成使调试器IF101无效的结构。
加密解密程序174预先对解密密钥进行编码,对加密音乐解密程序进行解密,来生成音乐解密程序。
操作程序172是控制装载到安全存储器113上的各种程序的基本软件,由控制程序和控制数据构成。在控制部数据中,如图6所示,包含有安全应用程序管理表186。
安全应用程序管理表186如图7所示,包含多个条目187、188、……。各条目由句柄值、安全应用程序地址、安全应用程序前后关系地址构成,与装载在安全存储器113上的安全应用程序对应。
句柄值是分配给各安全应用程序的标识符。
安全应用程序地址是装载有安全应用程序的、安全存储器113上的地址。安全应用程序前后关系地址是保存有安全应用程序的前后关系的安全存储器113上的地址。
作为一例,条目187的句柄值“1”是操作程序172分配给音乐解密程序176的标识符。安全应用程序地址“1111EEEE”是存储有音乐解密程序176的安全存储器113上的地址,安全应用程序前后关系地址“11AADDDE”是存储有音乐解密程序176的前后关系的安全存储器113上的地址。
此外,在控制数据中,包含有作为与安全输入输出设备驱动器178对应的识别信息的设备ID_B、作为与加密设备驱动器179对应的识别信息的设备ID_C。它们分别与安全输入输出设备驱动器178及加密设备驱动器179的安全存储器113上的装载地址对应起来,存储在安全存储器113上。
这里,设备ID_B及设备ID_C与普通OS151所具有的控制数据中包含的设备ID_B及设备ID_C相同。
安全OS171通过共用存储器112的指令区域,在与普通OS151之间进行各种指令的收发。此外,在与安全存储器113上的各程序之间,通过安全存储器113上的操作程序172所具有的存储区域收发指令。
在以下的说明中,为了便于说明,将操作程序172所进行的处理作为安全OS171所进行的处理来呈现。
安全OS171所处理的各种指令与普通OS151所处理的指令同样,是图9(a)所示的构造。在保存于指令部1011中的指令中,有安全登录请求、登录结束通知、应用程序返回请求、安全应用程序删除指令、删除结束通知、系统调用、响应通知、安全处理请求、外部处理请求、中断发生通知等。关于安全登录请求、登录结束通知、应用程序返回请求、安全应用程序删除指令、删除结束通知、安全处理请求、外部处理请求、中断发生通知,如在上述有关普通OS151的说明中已经叙述。系统调用是从安全存储器113上的应用程序向安全存储器113上的其他程序委托数据及指令的中继的指令,响应通知是通过系统调用而接受了指令及数据的程序将处理结果等的通知委托给安全OS171的指令。
下面,利用图11的流程图说明安全OS171的动作。这里,对于安全登录请求、登录结束通知、安全应用程序删除指令、及删除结束通知,具体而言,设应用程序为音乐再现程序153,设安全应用程序为音乐解密程序176,设与安全应用程序成对地动作的程序为音乐解密程序156,来进行说明。另外,安全OS171在该流程图所示的处理以外也进行各种处理,但由于与本发明没有关系,所以这里不做说明。
通过切换处理,安全OS171返回到CPU102(步骤S1041)。安全OS171从共用存储器112的指令区域读出指令并解密(步骤S1042),通过解密后的指令,进行以下的处理。
如果所读出的指令是安全应用程序登录请求(步骤S1042),则通过加密解密程序174对共用存储器112上的加密音乐解密程序进行解密,生成音乐解密程序176,装载到安全存储器113上(步骤S1043)。将装载地址及句柄值“1”写入到安全应用程序管理表186的条目187中(步骤S1044)。接着,将登录结束通知保存在指令部中,生成将句柄值“1”保存到数据保存部中的登录结束通知,写入到共用存储器112中(步骤S1046)。接着,转移到切换处理(步骤S1062)。
如果译码后的指令是安全处理请求(步骤S1042),则调出与保存在数据保存部中的作为接受目的地的程序的识别信息对应的程序(步骤S1047)。例如,如果保存有句柄值“1”,则调出音乐再现程序153,如果保存有设备ID_B,则调出安全输入输出设备驱动器178。接着转移到步骤S1052。
如果读出的指令是安全应用程序删除指令(步骤S1042),则提取保存在数据保存部中的、表示作为删除的对象的程序的句柄值“1”,将与提取的句柄值“1”对应的音乐解密程序176从安全存储器113上删除,接着从安全应用程序管理表186中删除条目187(步骤S1049)。
结束了删除时,将删除结束通知写入到共用存储器112中(步骤1051)。此时,在指令部中保存有删除结束通知,在数据存储部中保存有句柄值“1”。接着将处理转移到步骤S1062。
接着,安全OS171从安全存储器113上的各程序接受指令(步骤S1052)。
如果所接受的指令是外部处理请求(步骤S1052),则将所接受的外部处理请求写入到共用存储器中(步骤S1053),将处理转移到步骤S1062。
如果从安全中断处理器181(后述)接受了表示在某个设备中发生了中断的中断发生通知,则将所接受的中断发生通知写入到共用存储器112中(步骤S1054),将处理转移到步骤S1062。
如果所接受的指令是系统调用(步骤S1052),则根据保存在数据保存部中的表示接受目的地的程序的识别信息,调出对应的程序(步骤S1056)。
如果所接受的指令是应用程序返回请求(步骤S1052),则将所接受的应用程序返回请求写入到共用存储器中(步骤S1061),将处理转移到步骤S1062。此外,虽没有具体地图示,但响应通知的情况也同样,调出与包含在数据保存部中的识别信息对应的应用程序。
如果在这些处理的中途发生了中断、从中断控制器107接受到中断发生通知(步骤S1057),则启动安全中断处理器181(步骤S1059),回到步骤S1052。
<库152>
库152包含有在各种程序中公同利用的函数,作为一例,包含有进行存储卡300的访问的访问函数。访问函数是调出普通输入输出设备控制器157、指示数据的读出的函数。
<音乐再现程序153>
音乐再现程序153包含有对利用者显示的各种图像数据,是接受利用者的操作来将存储在存储卡300中的音乐再现的应用程序。在音乐再现程序153中,预先将安全应用程序信息和守护程序信息进行编码。安全应用程序信息是表示音乐再现程序153委托安全处理的程序的信息,具体而言,是存储有加密音乐解密程序141的次存储部104上的地址。守护程序信息是表示与安全应用程序信息所示的程序成对的程序的信息,具体而言,是存储有音乐解密守护程序142的次存储部104上的地址。
<音乐解密程序176及音乐解密守护程序156>
音乐解密程序176与音乐解密守护程序156通过成对地动作,来实现加密音乐数据的解密处理。
音乐解密程序176经由普通OS151及安全OS171,从音乐再现程序153接受解密指令,如图8所示那样经过数据读出步骤、内容密钥读出步骤、解密步骤及音乐数据输出步骤,生成音乐数据,在音乐数据输出步骤中,作为处理结果,输出缓存器123上的音乐数据的写入目的地地址。
在这些处理中,将不需要高安全性的处理委托给音乐解密守护程序156。具体而言,通过向安全OS171输出外部处理请求,向音乐解密守护程序156输出数据读出指令。作为其处理结果,接受共用存储器112上的加密音乐数据的写入目的地地址。此外,通过向安全OS171的外部处理请求,向音乐解密守护程序156输出解密指令,作为处理结果,取得缓存器123上的音乐数据的写入目的地地址。
音乐解密守护程序156经由安全OS171及普通OS151,从音乐解密程序176接受数据读出指令及解密指令。并且,从普通输入输出设备驱动器157、安全输入输出条目设备驱动器158、加密条目设备驱动器159、安全输入输出设备驱动器178、及加密设备驱动器179接受各种指令及数据。根据所接受的指令及数据进行各种处理。对于音乐解密守护程序156的处理,利用图12的流程图进行说明。另外,在图9中虽然省略了,但在音乐解密守护程序156所接受的所有指令、数据中,作为表示接受目的地即音乐解密守护程序156的识别信息而包含句柄值“1”。
音乐解密守护程序156经由安全OS171接受各种指令及数据(步骤S011)。音乐解密守护程序156判别所接受的指令(S012),如果是数据读出指令,则调出库152的访问函数(步骤S013)。
如果作为表示指令的输出源的识别信息而接受了设备ID_A和处理结果,则根据外部处理请求,将所接受的处理结果输出给音乐解密程序176(步骤S014)。此时,在数据保存部中,保存处理结果和表示接受目的地的句柄值“1”。
如果接受了表示指令的输出源的设备ID_B和休眠请求(步骤S012),则通过对普通OS151的系统调用,将所接受的休眠请求向安全输入输出条目设备驱动器158输出(步骤S015)。此时,在数据保存部中,作为表示接受目的地的识别信息而保存所接受的设备ID_B,作为表示系统调用的输出源的识别信息而保存表示音乐解密守护程序156本身的句柄值“1”。
如果接受了表示指令的输出源的设备ID_B和中断通知(步骤S012),则将所接受的中断通知、设备ID_B、和表示音乐解密守护程序156本身的句柄值“1”保存在安全处理请求的数据保存部中,向普通OS输出,由此,将所接受的中断通知输出给安全输入输出设备驱动器178(步骤S016)。
如果经由安全OS171及普通OS151,从音乐解密程序176接受了解密指令,则通过系统调用向加密条目设备驱动器159输出解密指令(步骤S017)。
如果通过响应通知而从加密条目设备驱动器159接受了设备ID_C和解密指令(步骤S012),则根据安全处理请求,将所接受的解密指令输出给加密设备驱动器179。此时,在数据保存部中,保存解密指令、所接受的设备ID_C、和表示音乐解密守护程序156本身的句柄值“1”(步骤S018)。
如果从普通OS151接受了设备IC_C和休眠请求,则通过系统调用向加密条目设备驱动器159输出所接受的休眠请求(步骤S019)。此时,在数据存储部中,作为表示接受目的地的识别信息而保存所接受的设备ID_C、表示音乐解密守护程序156本身的句柄值“1”、和休眠请求。
如果通过响应通知而从加密条目设备驱动器159接受了设备ID_C和中断通知(步骤S012),则根据安全处理请求,将所接受的中断通知输出给加密设备驱动器179(步骤S021)。在数据保存部中,保存所接受的设备ID_C、中断通知、和表示音乐解密守护程序156本身的句柄值“1”。
如果从普通OS151接受了设备ID_C和处理结果,则通过系统调用,将所接受的处理结果输出给加密条目设备驱动器159(步骤S022)。
如果通过响应通知而从加密条目设备驱动器159接受了设备ID_C和处理结果,则根据安全处理请求,将所接受的处理结果输出给音乐解密程序176(步骤S023)。
<普通输入输出设备驱动器157>
普通输入输出设备驱动器157预先具有设备ID_A作为表示普通输入输出设备驱动器157本身的识别信息。
普通输入输出设备驱动器157是控制构成输入输出部116的普通输入输出设备132的程序。
此外,普通输入输出设备驱动器157存储有排他标志。在普通输入输出设备132动作中设定为排他标志“1”,如果不在动作中,则设定为排他标志“0”。如果在接受了输入输出的处理指令时为排他标志“1”,则普通输入输出设备132处于动作中,输出表示不能接受处理的错误通知。
<安全输入输出条目设备驱动器158及安全输入输出设备驱动器178>
安全输入输出设备驱动器178及安全输入输出条目设备驱动器158预先具有相同的识别信息、设备ID_B。
安全输入输出设备驱动器178及安全输入输出条目设备驱动器158成对进行控制,由此,安全输入输出设备133正常动作。安全输入输出设备驱动器178进行安全输入输出设备133的控制中的作为安全的处理的输入输出处理的委托及处理结果的取得,安全输入输出条目设备驱动器158进行不需要高安全性的处理、即休眠及中断的检测。
在本实施方式中,安全输入输出设备驱动器178经由安全OS171从音乐解密程序176接受内容密钥读出指令。当接受到内容密钥读出指令时,向加密处理设备117指示读出内容密钥。接着,通过向安全OS171输出外部处理请求,向音乐解密守护程序156输出休眠请求,此时,在指令的数据保存部中,保存休眠请求、作为表示接受目的地的识别信息而保存从音乐解密程序176接受的句柄值“1”、作为表示指令的输出源的识别信息而保存表示安全输入输出设备驱动器178本身的设备ID_B。
接着,安全输入输出设备驱动器178经由安全OS171从音乐解密守护程序156接受中断通知、从安全输入输出设备133取得内容密钥的保存地址作为处理结果。通过向安全OS171的响应通知,将所接受的处理结果输出给音乐解密程序176。
安全输入输出条目设备驱动器158经由普通OS151从音乐解密守护程序156接受休眠请求。接受了休眠请求后,对普通OS151输出存储在数据保存部中的包括句柄值“1”和设备ID_B的休眠请求。
接着,当通过普通OS151解除了休眠时,安全输入输出条目设备驱动器158通过响应通知,经由普通OS151向音乐解密守护程序156输出中断通知。此时,在数据保存部中,保存“休眠请求”、设备ID_B、和句柄值“1”。
<加密设备驱动器179及加密条目设备驱动器159>
加密设备驱动器179及加密条目设备驱动器159预先作为识别信息而具有设备ID_C。
通过加密设备驱动器179和加密条目设备驱动器159成对进行控制,加密处理设备117能够正常地动作。在加密处理设备117的控制中,加密设备驱动器179进行解密处理的委托和处理结果的取得,加密条目设备驱动器159进行排他控制、休眠、及中断通知。
在本实施方式中,具体而言,加密条目设备驱动器159通过系统调用从音乐解密守护程序156接受解密指令。接受了解密指令后,进行排他标志的排他控制。即,如果排他标志是“1”,则输出错误通知,中止以下的处理,如果排他标志是“0”,则将排他标志变更为“1”。
接着,通过将数据保存部中包含所接受的解密指令、句柄值“1”、和加密条目设备驱动器159本身所具有的设备ID_C的响应通知输出给普通OS151,将解密指令输出给音乐解密守护程序156。
接着,通过系统调用从音乐解密守护程序156接受休眠请求。接着,向普通OS151输出休眠请求。此时,在休眠请求的数据保存部中,保存包含在系统调用中而接受的句柄值“1”和设备ID_C。
接着,通过普通OS151解除休眠。解除休眠,通过响应通知将中断通知输出给音乐解密守护程序156。
接着,经由普通OS151从音乐解密守护程序156接受处理结果。接受了处理结果后,解除排他控制,将排他标志返回为“0”。通过响应通知,将所接受的处理结果输出给音乐解密守护程序156。
加密设备驱动器179通过安全处理请求,经由安全OS171从音乐解密守护程序156接受解密处理指令,对加密处理设备117委托解密。接着,加密设备驱动器179向安全OS171输出外部处理请求,该外部处理请求包括保存在数据保存部中的加密设备驱动器179本身所具有的设备ID_C、与解密处理指令一起接受的句柄值“1”、和休眠请求。
接着,通过向安全OS171的安全处理请求,从音乐解密守护程序156接受中断通知,从加密处理设备117接受缓存器123上的写入目的地地址作为处理结果。通过将在数据保存部中包含有所接受的处理结果、句柄值“1”、和设备ID_C的外部处理请求输出给安全OS171,将处理结果输出给音乐解密守护程序156。
<普通切换设备驱动器160及安全切换设备驱动器180>
普通切换设备驱动器160及安全切换设备驱动器180是从普通OS151或安全OS接受切换指示、将切换指示输出给切换控制部106、将CPU102的使用权从普通OS151转移给安全OS171、或从安全OS171转移给普通OS151的程序。
(a)切换处理1
下面利用图13说明从普通OS151向安全OS171的切换处理。另外,这是图10的步骤S1028及图16以后的流程图的切换处理1的详细情况。
普通切换设备驱动器160被普通OS151调出、接受切换指示(步骤S162)。接受了切换指示后,将普通OS151的前后关系保存到普通存储器111上(步骤S163)。接着,向切换控制部106输出切换指示(步骤S164)。
切换控制部106在将CPU102及MMU103清空后,向存储器保护部114输出连接指示,将安全存储器113与总线130连接(步骤S166)。接着,切换控制部106调出安全存储器113上的安全切换设备驱动器180(步骤S167)。
当安全切换设备驱动器180如果被调出时,将安全OS171的前后关系返回给CPU102(步骤S168)。
安全OS171通过调试无效化程序173,使调试器IF101无效化(步骤S169)。
(b)切换处理2
下面,利用图14的流程图说明从安全OS171向普通OS151的切换处理。另外,这是图11的步骤S1062及图16以后的流程图的切换处理2的详细情况。
安全OS171通过调试无效化程序173使调试器IF101有效化(步骤S176),调出安全切换设备驱动器180,输出切换指示(步骤S177)。
安全切换设备驱动器180保存安全OS171的前后关系(步骤S178),向切换控制部106输出切换指示。
切换控制部106接受切换指示,将CPU102及MMU103清空后,向存储器保护部114输出切断指示,将安全存储器113与总线130切断(步骤S181)。接着,调出普通存储器111上的普通切换设备驱动器160(步骤S182)。
普通切换设备驱动器160将普通OS151的前后关系返回给CPU102(步骤S183)。
另外,在此,在从安全OS171向普通OS151切换时,使调试器IF101为有效,但也可以不使其有效。在此情况下,对便携电话100接通电源,最初在从普通OS151向安全OS171切换时,通过调试无效化程序173使调试器IF101无效,然后,在从安全OS171向普通OS151的切换处理中、在从普通OS151向安全OS171的切换处理中,都使调试器IF101保持无效的状态。
此外,在本实施方式中,通过安全OS171所具有的调试无效化程序173使调试器IF101无效化及有效化,但普通OS151也可以包含调试无效化程序。此外,调试无效化程序也可以是装载在普通存储器111上、受普通OS151管理的独立的程序。
此外,普通OS151及安全OS171也可以分别具有调试无效化程序。在此情况下,普通OS151所具有的调试无效化程序使调试器IF101无效化,安全OS171所具有的调试无效化程序使调试器IF有效化。此外,也可以相反地,安全OS171所具有的调试无效化程序使调试器IF无效化,普通OS151所具有的调试无效化程序使调试器IF101有效化。
此外,这些调试无效化程序也可以分别作为独立的程序装载在普通存储器111及安全存储器113上。
<普通中断处理器161及安全中断处理器181>
普通中断处理器161在普通OS151及由普通OS151控制的程序的执行中、在发生了中断的情况下、由普通OS151调出。如果从普通OS151调出、接受了中断发生通知,则控制中断控制器107,调查发生中断的主因。接着,将表示发生了中断的设备的识别信息和中断通知输出给普通OS151。
在安全OS171及由安全OS171控制的程序的执行中、在发生了中断的情况下,安全OS171调出安全中断处理器181。如果安全中断处理器181被安全OS171调出、接受了中断发生通知,则通过向CPU102的中断检测用寄存器写入伪数据,来实施中断掩码处理,将中断发生通知输出给安全OS171。
(3)输入输出部116
输入输出部116如图8所示,由访问部131、普通输入输出设备132及安全输入输出设备133构成。
访问部131与存储卡300连接,在存储卡300与普通输入输出设备132及安全输入输出设备133之间进行信息的输入输出。
普通输入输出设备132通过普通输入输出设备驱动器157的控制,进行对存储卡300的一般区域303的数据读出及写入。作为一例,如果作为自变量而接受乐曲ID、收到读出请求,则将与所接受的乐曲ID对应的加密音乐数据从一般区域303中读出,将所读出的加密音乐数据写入到共用存储器112中。
在写入结束后,如果从普通输入输出设备驱动器157接受了结果请求,则作为处理结果,输出写入了加密音乐数据的、共用存储器112上的地址。
安全输入输出设备133通过安全输入输出设备驱动器178的控制,在与存储卡300的安全处理部302之间,根据CPRM的结构进行相互认证。仅在相互认证成功的情况下共用密钥,利用所共用的密钥安全地进行对安全区域306的数据写入及读出。
此外,在认证失败的情况下,将表示不能访问存储卡300的卡错误通知输出给安全输入输出设备驱动器178。
这里,安全输入输出设备133是仅在访问存储卡300的安全区域306的情况下使用的设备,访问存储卡300的安全区域306的程序并没有限制。因而,由于不会有从多个应用程序同时委托处理的情况,所以不需要进行排他控制。
(4)加密处理设备117
加密处理设备117通过加密设备驱动器179的控制,进行各种数据的加密处理。在本实施方式中,从加密设备驱动器179接受存储有加密音乐数据的共用存储器112上的地址、和存储有内容密钥的安全存储器113上的地址,指示对加密音乐数据进行解密。利用内容密钥,对加密音乐数据实施解密算法D1,生成音乐数据,将所生成的音乐数据写入到缓存器123中。将写入目的地的地址作为处理结果输出给加密设备驱动器179。解密算法D1是对通过加密算法E1生成的加密文本进行解密的算法。
这里,加密处理设备117是对各种加密后的数据进行解密的设备,也进行从内容发送服务器发送的加密内容等的解密。因而,加密处理设备117有可能从多个不同的程序委托解密处理,需要进行排他控制。
(5)CPU102
CPU102具备指令取出部、指令译码器、运算器、程序计数器、寄存器等,从普通存储器111或安全存储器113上的程序中取出指令,对取出的指令译码,执行译码后的指令。
(6)MMU103
MMU103通过将逻辑地址变换为物理地址来实现虚拟存储功能。
(7)调试器IF101及中断控制器107
调试器IF101是用来将便携电话100与外部的调试器连接的接口。
中断控制器107检测各种中断,向CPU102的中断检测用寄存器输出中断发生通知。
(8)切换控制部106及存储器保护部114
切换控制部106从普通存储器111上的普通切换设备驱动器160、或安全存储器113上的安全切换设备驱动器180接受切换指示,通过存储器保护部114将总线130与安全存储器113连接或切断。切换控制部106及存储器保护部114的详细动作,在上述(a)切换处理1及(b)切换处理2中所说明那样。
(9)无线通信控制部118、通信部121及天线122
通信部121在无线通信控制部118、便携电话网10、连接到因特网20上的外部设备之间,通过天线122进行信息的收发。
无线通信控制部118具备基带部、调制解调部、放大器等,进行经由通信部121及天线122收发的各种信息的信号处理。
(10)缓存器123、编码处理部124、D/A变换部126
缓存器123暂时存储音乐数据。
编码处理部124对存储在缓存器123中的音乐数据实施按照MP3等编码技术的解密处理,输出给D/A变换部126。
D/A变换部126将由编码处理部124解密的音乐数据变换为模拟声音信号,输出给扬声器120。
(11)输入部108、显示部109、麦克风119及扬声器120
输入部108具备数字密钥、决定按钮等各种按钮,接受使用者的这些操作。
显示部109具备VRAM、液晶画面,显示各种画面。
麦克风119检测声音,将检测到的声音输出给无线通信控制部118。
扬声器120从无线通信控制部118及D/A变换部126接受模拟声音信号,输出基于所接受的声音信号的声音。
1.3 便携电话100及存储卡300的动作
图15~图35所示的流程图是表示便携电话100的动作的流程图。图36~图40是表示便携电话100的动作中的各程序间的指令的收发的次序图。利用这些流程图及次序图说明便携电话100的动作。
另外,对于次序图与流程图对应的处理,赋予相同的步骤号。此外,如在对普通OS151及安全OS171的说明中已经叙述,普通存储器111及安全存储器113上的各程序通过系统调用、响应通知、外部处理请求、安全处理请求,委托普通OS151及安全OS171向其他程序中继指令及数据。在图15~图40及以下的说明中,省略了系统调用、响应通知、外部处理请求、安全处理请求的记载,各程序仅记载了保存在这些指令的数据保存部中并输出的识别信息、数据及指令。
(1)便携电话100的动作
利用图15所示的流程图说明便携电话100的动作。
便携电话100通过输入部108接受利用者的按钮操作(步骤S101)。在所接受的操作表示音乐再现的情况下,启动音乐再现程序153(步骤S102)。在所接受的按钮操作表示其他处理的情况下,进行其他处理(步骤S103)。
接着,进行音乐解密程序的登录处理(步骤S104)。接着,向音乐解密程序176委托解密处理(步骤S106)。音乐解密程序176的解密结束后,通过按照MP3的方法将所生成的音乐数据展开,变换为模拟数据而生成模拟音乐数据,将所生成的模拟音乐数据通过扬声器120输出(步骤S107)。重复步骤S106~108,直到通过输入部108接受到表示音乐再现结束的按钮操作(步骤S108)。
接受到表示音乐再现结束的按钮操作后(步骤S108中的是),进行音乐解密程序的删除处理(步骤S109)。
(2)音乐解密程序的登录
图16~图17是详细地表示音乐解密程序的登录处理中的各程序的动作的流程图。这与图36中的步骤S132~步骤S153的次序对应。利用图16~图17所示的流程图及图36的次序图,说明音乐解密程序的登录处理。
音乐再现程序153预先读出已编码的守护程序信息和安全应用程序信息(步骤S131)。将安全应用程序登录请求、所读出的守护程序信息、及安全应用程序信息输出给普通OS151(步骤S132)。
普通OS151接受了安全应用程序登录请求后,保存音乐再现程序153的前后关系,将保存目的地的地址写入到应用程序管理表的条目167的应用程序前后关系地址中(步骤S133)。接着,从次存储部104中读出与所接受的安全应用程序信息对应的加密音乐解密程序141,写入到共用存储器112中(步骤S134)。接着,将安全应用程序登录请求写入到共用存储器112的指令区域中(步骤S136),转移到切换处理1(步骤S137)。
切换处理1结束后,安全OS171从共用存储器112中读入安全应用程序登录请求(步骤S138)。接着,通过加密解密程序,将共用存储器112上的加密音乐解密程序进行解密而生成音乐解密程序,将所生成的音乐解密程序写入到安全存储器113上(步骤S139)。对音乐解密程序设定句柄值“1”,在安全应用程序管理表186的条目187的句柄值中写入“1”,将写入了音乐解密程序176的安全存储器113上的地址写入到安全应用程序地址中(步骤S141)。
接着,将登录结束通知和句柄值“1”写入到共用存储器112中(步骤S143),将处理转移到切换处理2(步骤S144)。
普通OS151从共用存储器112读出登录结束通知和句柄值“1”(步骤S146)。将所读出的句柄值“1”写入到应用程序管理表166的条目167中(步骤S147)。基于守护程序信息,从次存储部104中读出音乐解密守护程序142,写入到普通存储器111上(步骤S149)。将普通存储器111上的音乐解密守护程序156的写入目的地地址写入到应用程序管理表166的条目167中(步骤S151)。
接着,基于条目167的应用程序前后关系地址,将音乐再现程序153的前后关系返回给CPU102(步骤S152),将所接受的句柄值“1”输出给音乐再现程序153(步骤S153)。
音乐再现程序153将所接受的句柄值“1”写入到普通存储器111中的音乐再现程序153本身的存储区域中(步骤S154)。
(3)向音乐解密程序的处理委托
图18~图27的流程图表示通过音乐再现程序153的委托、音乐解密程序176对加密音乐数据进行解密时的各程序的动作。这与图36的步骤S193~图42的步骤S347对应。
音乐再现程序153显示包含曲目列表等的选择画面,接受利用者的乐曲选择(步骤S191)。读出表示所接受的乐曲的乐曲ID和句柄值“1”(步骤S192)。将所读出的乐曲ID作为自变量,将自变量、句柄值“1”、和解密处理指令输出给普通OS151(步骤S193)。
普通OS151将音乐再现程序153的前后关系保存在普通存储器111上(步骤S196),将保存目的地的地址写入到应用程序管理表166的包含句柄值“1”的条目167中(步骤S197)。接着,将所接受的自变量、句柄值“1”、和解密处理指令写入到共用存储器112中(步骤S198),进行切换处理1(步骤S199)。
安全OS171在切换处理1结束后(步骤S199),从共用存储器112读出自变量、句柄值“1”、和解密处理指令(步骤S201)。在安全应用程序管理表186上,基于包含所读出的句柄值“1”的条目187的安全应用程序地址,启动音乐解密程序176(步骤S202),将所读出的自变量、句柄值“1”、和解密处理指令输出给音乐解密程序176(步骤S203)。
音乐解密程序176从安全OS171接受自变量和解密处理指令,存储所接受的自变量(乐曲ID)。接着,CPU102执行音乐解密程序176(数据读出步骤)(步骤S204)。音乐解密程序176读出乐曲ID(步骤S206),将所读出的乐曲ID作为自变量,将数据读出指令、自变量、和句柄值“1”输出给安全OS171(步骤S208)。
安全OS171从音乐解密程序176接受数据读出指令、自变量、和句柄值“1”,将音乐解密程序176的前后关系保存在安全存储器113上,将保存目的地的地址写入到安全应用程序管理表186的条目187中(步骤S209)。接着,将所接受的数据读出指令、自变量、和句柄值“1”写入到共用存储器112中(步骤S211),转移到切换处理2(步骤216)。
在切换处理2结束后(步骤S216),普通OS151从共用存储器112读出数据读出指令、自变量、和句柄值“1”(步骤S217)。选择应用程序管理表166的包含句柄值“1”的条目167,通过包含在所选择的条目167中的守护程序地址,启动音乐解密守护程序156(步骤S218)。将所读出的数据读出指令、自变量、和句柄值“1”输出给音乐解密守护程序156(步骤S219)。
音乐解密守护程序156接受数据读出指令、自变量、和句柄值“1”。接受了数据读出指令后,调出保存在库152中的访问函数,输出自变量和句柄值“1”(步骤S221)。被音乐解密守护程序156调出的访问函数将读出请求、自变量、设备ID_A、和所接受的句柄值“1”输出给普通OS151(步骤S222)。普通OS151将读出请求、自变量、设备ID_A、和所接受的句柄值“1”输出给与所接受的设备ID_A对应的普通输入输出设备驱动器157(步骤S223)。
普通输入输出设备驱动器157接受读出请求、自变量、及句柄值“1”。接着,判断排他标志是否是“0”(步骤S224)。如果排他标志是“1”(步骤S224中为否),则普通输入输出设备驱动器157输出表示普通输入输出设备132处于动作中、不能接受新的读出请求的错误通知。
音乐解密守护程序156经由普通OS151及访问函数接受错误通知,经过一定时间后再次输出读出请求。此外,也可以将所接受的错误通知经由普通OS151、安全OS171输出给音乐解密程序176,并中止解密处理。
如果判断排他标志为“0”(步骤S224中为是),则将排他标志变更为“1”(步骤S227),将所接受的自变量输出给普通输入输出设备132,并指示读出数据(步骤S231)。
普通输入输出设备132接受自变量(乐曲ID)和读出请求,开始从存储卡300的一般区域303中的与所接受的乐曲ID对应的加密音乐数据304的读出、以及所读出的加密音乐数据304向共用存储器112的写入(步骤S236)。
普通输入输出设备驱动器157向普通输入输出设备132输出了读出请求后(步骤S231),向普通OS151输出包含普通输入输出设备驱动器157本身所具有的设备ID_A及所接受的句柄值“1”的休眠请求(步骤S232)。
普通OS151接受了休眠请求后,使与句柄值“1”对应的音乐解密守护程序156、和与设备ID_A对应的普通输入输出设备驱动器157成为休眠状态(步骤S233,步骤S234)。接着,通过任务安排,将CPU102分配给可执行状态的其他程序(步骤S238)。
在普通输入输出设备132的处理结束后,发生中断,音乐解密守护程序156取得处理结果(步骤S239)。对于步骤S239中的中断发生时的处理1在后进行说明。此外,步骤S239的处理与图37的步骤S463~478的次序对应。
在中断发生时的处理1(步骤S239)中,音乐解密守护程序156取得加密音乐数据的共用存储器112上的写入目的地地址,作为普通输入输出设备132的处理结果。将所取得的处理结果和句柄值“1”写入到共用存储器112中(步骤S242),进行切换处理1(步骤S244)。
在切换处理1(步骤S2244)结束后,安全OS171从共用存储器112中读出句柄值“1”和处理结果(步骤S251)。从安全应用程序管理表186中选择包含所读出的句柄值“1”的条目187,通过条目187的安全应用程序前后关系地址,将音乐解密程序176的前后关系返回给CPU102(步骤S252)。接着,将所读出的处理结果和句柄值“1”输出给音乐解密程序176(步骤S254)。
音乐解密程序176接受加密音乐数据的写入目的地地址,作为处理结果,将所接受的写入目的地地址存储在自身的存储区域中。
接着,CPU102执行音乐解密程序176(内容密钥读出步骤)(步骤S256)。音乐解密程序176将包含内容密钥读出指令、设备ID_B、和表示音乐解密程序176本身的句柄值“1”的系统调用输出给安全OS171(步骤S257)。
安全OS171接受内容密钥读出指令、设备ID_B、和句柄值“1”,将所接受的内容密钥读出指令、设备ID_B、和句柄值“1”输出给与所接受的设备ID_B对应的安全输入输出设备驱动器178(步骤S258)。
安全输入输出设备驱动器178接受内容密钥读出指令、设备ID_B、和句柄值“1”,将内容密钥读出指令输出给安全输入输出设备133(步骤S259)。
安全输入输出设备133接受内容密钥读出指令,接着在与存储卡300的安全处理部302之间进行相互认证(步骤S262)。如果认证成功(步骤S262中的是),则开始内容密钥的取得(步骤S266)。
在认证为失败的情况下,输出卡错误通知,中止上述内容密钥的取得(步骤S264)。在此情况下,音乐解密守护程序156及音乐解密程序176中止解密处理,音乐再现程序153显示通知存储卡300不可读取的画面。
安全输入输出设备驱动器178接着向安全OS171输出休眠请求、所接受的句柄值“1”、和表示安全输入输出设备驱动器178本身的设备ID_B(步骤S271)。另外,这里所输出的休眠请求不是向安全OS171请求休眠处理,而是保存到外部处理请求的数据保存部中、使音乐解密守护程序156中继的指令。
安全OS171从安全输入输出设备驱动器178接受休眠请求、句柄值“1”、和设备ID_B,将所接受的休眠请求、句柄值“1”、和设备ID_B写入到共用存储器112中(步骤S272)。接着,转移到切换处理2(步骤S273)。
在切换处理结束后(步骤S273),普通OS151从共用存储器112中读出休眠请求、句柄值“1”、和设备ID_B(步骤S274)。基于包含所读出的句柄值“1”的条目168,启动音乐解密守护程序156(步骤S276),输出所读出的休眠请求、设备ID_B、和句柄值“1”(步骤S277)。
音乐解密守护程序156从普通OS151接受休眠请求、设备ID_B、和句柄值“1”。接受了休眠请求后,将包含休眠请求、设备ID_B、和句柄值“1”的系统调用输出给普通OS151(步骤S278)。
安全OS171将所接受的休眠请求、设备ID_B、和句柄值“1”输出给与所接受的设备ID_B对应的安全输入输出条目设备驱动器158(步骤S281)。
安全输入输出条目设备驱动器158经由普通OS151从音乐解密守护程序156接受了休眠请求后,将包含设备ID_B和句柄值“1”的休眠请求输出给普通OS151(步骤S282)。
普通OS151接受休眠请求、设备ID_B、和句柄值“1”。接受了休眠请求后,对与所接受的设备ID_B对应的安全输入输出条目设备驱动器158、和与所接受的句柄值“1”对应的音乐解密守护程序156进行休眠处理(步骤S283,步骤S284)。
接着,普通OS151进行任务安排,将CPU分配给可执行状态的其他程序(步骤S286)。
安全输入输出设备133的内容密钥的取得结束,通过中断发生时的处理2(步骤S287),音乐解密程序176取得处理结果。对于步骤S287的中断发生时的处理2,在后面进行说明。此外,步骤S287的处理与图38的步骤S512~图39的步骤S541对应。
在步骤S287中,音乐解密程序176取得存储有内容密钥的安全存储器113上的地址,作为处理结果。接着,CPU102执行音乐解密程序176(解密步骤)(步骤S291)。音乐解密程序176将安全存储器113上的存储有内容密钥的地址和共用存储器112上的存储有加密音乐数据的地址作为自变量,将解密指令、自变量、和句柄值“1”输出给安全OS171(步骤S292)。
安全OS171从音乐解密程序176接受解密指令、自变量、和句柄值“1”。接着,将所接受的解密指令、自变量、和句柄值“1”写入到共用存储器112中(步骤S293),进行切换处理2(步骤S294)。
在切换处理2结束后(步骤S294),普通OS151从共用存储器112中读出解密指令、自变量、和句柄值“1”(步骤S296)。利用所读出的句柄值“1”和应用程序管理表166,启动音乐解密守护程序156,将所读出的解密指令、自变量、和句柄值“1”输出给音乐解密守护程序156(步骤S297)。
音乐解密守护程序156从普通OS151接受解密指令、自变量、和句柄值“1”。接受了解密指令后,将所接受的解密指令、自变量、设备ID_C、和句柄值“1”输出给普通OS151(步骤S298)。
普通OS151从音乐解密守护程序156接受解密指令、自变量、设备ID_C、和句柄值“1”,将所接受的解密指令、自变量、设备ID_C、和句柄值“1”输出给与所接受的设备ID_C对应的加密条目设备驱动器159(步骤S301)。
加密条目设备驱动器159经由普通OS151从音乐解密守护程序156接受自变量、解密指令、设备ID_C、和句柄值“1”。在接受了解密指令时,如果排他标志是“1”(步骤S303中的否),则输出表示加密处理设备117已经处于动作中、不接受新的处理的委托的错误通知(步骤S304)。此时,接受了错误通知的音乐解密守护程序156经过一定时间后再次输出解密指令。
如果排他标志是“0”(步骤S303中的是),则将排他标志变更为“1”(步骤S306),将所接受的自变量、解密指令、句柄值“1”及设备ID_C输出给普通OS151(步骤S307)。
普通OS调出与所接受的句柄值“1”对应的音乐解密守护程序156,输出所接受的自变量、解密指令、句柄值“1”及设备ID_C(步骤S308)。
音乐解密守护程序156经由普通OS151从加密条目设备驱动器159接受解密指令、自变量、句柄值“1”、和设备ID_C。接着,将所接受的自变量、解密指令、设备ID_C、及句柄值“1”输出给普通OS151(步骤S309)。
普通OS151从音乐解密守护程序156接受解密指令、自变量、设备ID_C、和句柄值“1”,将所接受的解密指令、自变量、设备ID_C、和句柄值“1”写入到共用存储器112中(步骤S312),进行切换处理2(步骤S313)。
在切换处理2结束后(步骤S313),安全OS171从共用存储器112读出解密指令、自变量、设备ID_C、和句柄值“1”(步骤S314)。基于所读出的设备ID_C,启动加密设备驱动器179(步骤S315),将所读出的解密指令、自变量、设备ID_C、和句柄值“1”输出给加密设备驱动器179(步骤S316)。
加密设备驱动器179从安全OS171接受解密指令、自变量、设备ID_C、和句柄值“1”,将所接受的自变量输出给加密处理设备117,命令进行解密(步骤S317)。
加密处理设备117从加密设备驱动器179收到解密指令后,从安全存储器113读出内容密钥,利用所读出的内容密钥,对共用存储器112上的加密音乐数据实施解密算法D1而生成音乐数据,将所生成的音乐数据输出给缓存器123(步骤S318)。
加密设备驱动器179在向加密处理设备117命令解密后,将休眠请求、从安全OS171接受的句柄值“1”、和表示加密设备驱动器179本身的设备ID_C输出给安全OS171(步骤S321)。另外,这里所输出的休眠请求是并不向安全OS171请求休眠处理,而保存在外部处理请求的数据保存部中、使音乐解密守护程序156中继的指令。
安全OS171从加密设备驱动器179接受休眠请求、句柄值“1”、和设备ID_C,将所接受的休眠请求、句柄值“1”、和设备ID_C写入到共用存储器112中(步骤S322)。接着,进行切换处理2(步骤S323)。
在切换处理2结束后(步骤S323),普通OS151从共用存储器112读出句柄值“1”、和设备ID_C、及休眠请求(步骤S326)。基于所读出的句柄值“1”和应用程序管理表166启动音乐解密守护程序156,将所读出的休眠请求、句柄值“1”、和设备ID_C输出给音乐解密守护程序156(步骤S327)。
音乐解密守护程序156从普通OS151接受休眠请求、句柄值“1”、和设备ID_C。将所接受的休眠请求、设备ID_C、和表示音乐解密守护程序156本身的句柄值“1”输出给普通OS151(步骤S328)。普通OS151将所接受的休眠请求、设备ID_C、和句柄值“1”输出给与所接受的设备ID_C对应的加密条目设备驱动器159(步骤S329)。
加密条目设备驱动器159经由普通OS151,从音乐解密守护程序156接受休眠请求、设备ID_C、和句柄值“1”。接着,将休眠处理、所接受的句柄值“1”、和加密条目设备驱动器159本身所具有的设备ID_C输出给普通OS151(步骤S332)。
普通OS151从加密条目设备驱动器159接受休眠请求、句柄值“1”、和设备ID_C,使与所接受的句柄值“1”对应的音乐解密守护程序156成为休眠状态(步骤S333)。接着,使与所接受的设备ID_C对应的加密条目设备驱动器159成为休眠状态(步骤S334)。接着,进行任务安排,将CPU分配给可执行状态的程序(步骤S336)。
加密处理设备117的解密处理结束,在中断发生时的处理3中,音乐解密程序176接受加密处理设备117的处理结果(步骤S337)。对于步骤S337,在后面进行说明。另外,步骤S337对应于图37的步骤S552~图38的步骤S606。
作为加密处理设备117的处理结果,音乐解密程序176取得音乐数据的缓存器123上的写入目的地地址。接着,CPU102执行音乐解密程序176(音乐数据输出步骤)(步骤S338)。音乐解密程序176将音乐数据的写入目的地地址作为处理结果,将处理结果、应用程序返回请求、和句柄值“1”输出给安全OS171(步骤S339)。
安全OS171接受应用程序返回请求、处理结果、和句柄值“1”,将所接受的应用程序返回请求、处理结果、和句柄值“1”写入到共用存储器112中(步骤S341)。接着进行切换处理2(步骤S342)。
在切换处理2结束后(步骤S342),普通OS151从共用存储器112中读出应用程序返回请求、处理结果、和句柄值“1”(步骤S344)。基于应用程序管理表166的包含句柄值“1”的条目167,返回音乐解密程序176的前后关系(步骤S346)。接着,将所读出的处理结果输出给音乐解密程序176(步骤S347)。
(4)中断发生时的处理1
利用图28所示的流程图,说明中断发生时的处理1。这是图21的步骤S239的详细情况。此外,与图37的步骤S463~478的次序对应。
普通输入输出设备132结束了加密音乐数据的读出后(步骤S462),发生中断(步骤S463)。
中断控制器107检测中断的发生,向普通OS151输出中断发生通知(步骤S464)。普通OS151接受中断发生通知,基于中断表,启动普通中断处理器161(步骤S466)。接着,向普通中断处理器161输出中断发生通知(步骤S467)。
普通中断处理器161控制中断控制器107,调查中断的原因(步骤S468)。接着,将与发生了中断的普通输入输出设备对应的设备ID_A和中断通知输出给普通OS151(步骤S469)。
普通OS151从普通中断处理器161接受中断通知和设备ID_A。将与所接受的设备ID_A对应的普通输入输出设备驱动器157、以及与普通输入输出设备驱动器157一起实施了休眠处理的音乐解密守护程序156解除休眠(步骤S471,步骤S472),将CPU102分配给普通输入输出设备驱动器157。
普通输入输出设备驱动器157被解除休眠,向普通输入输出设备132输出结果请求(步骤S473),作为处理结果,从普通输入输出设备132取得共用存储器112上的加密音乐数据的写入目的地地址(步骤S474)。取得了处理结果后,将排他标志设定为“0”(步骤S476),将所取得的处理结果、作为表示读出请求的输出源的识别信息而接受的句柄值“1”、和表示普通输入输出设备驱动器157本身的设备ID_A,输出给普通OS151(步骤S477),普通OS151将所接受的处理结果、句柄值“1”、和设备ID_A输出给与句柄值“1”对应的音乐解密守护程序156(步骤S478)。
(5)中断发生时的处理1-2
上述中断发生时的处理1表示在普通OS151或受普通OS151管理的普通存储器111上的程序的执行中发生了中断时的动作。这里,利用图29的流程图,对安全OS171或受安全OS171管理的程序的执行中发生了中断时的动作进行说明。
普通输入输出设备132结束了加密音乐数据的读出后(步骤S491),发生中断(步骤S492)。
中断控制器107检测中断,向安全OS171输出中断发生通知(步骤S493)。
安全OS171从中断控制器107接受中断发生通知。接受了中断发生通知后,启动安全中断处理器181(步骤S494),输出中断发生通知(步骤S496)。
安全中断处理器181接受中断发生通知,向CPU102进行中断掩码处理(步骤S497),向安全OS171输出中断发生通知(步骤S498)。
安全OS171从安全中断处理器181接受中断发生通知,将所接受的中断发生通知写入到共用存储器112中(步骤S499)。接着,安全OS171与普通OS151进行切换处理2(步骤S501)。
在切换处理2结束后(步骤S501),从共用存储器112读出中断发生通知,解除CPU的中断掩码(步骤S502)。
这里,中断控制器107由于没有被清空,所以持续输出中断发生通知,步骤S502以后的处理与图28的步骤S464以后的处理相同。
(6)中断发生时的处理2
下面,利用图30~图31的流程图,对中断发生时的处理2进行说明。这是图23的步骤S287的详细情况。此外,这与图38的步骤S512~图39的步骤S541的次序对应。
安全输入输出设备133结束内容密钥的读出后(步骤S511),产生中断(步骤S512)。
中断控制器107检测中断的发生,将中断发生通知输出给普通OS151(步骤S513)。
普通OS151从中断控制器107接受中断发生通知,启动普通中断处理器161(步骤S514)。接着,向普通中断处理器161输出中断发生通知(步骤S516)。
普通中断处理器161接受中断发生通知,调查发生中断的主因(步骤S517)。检测到安全输入输出设备133发生了中断的情况,将与安全输入输出设备133对应的设备ID_B和中断通知输出给普通OS151(步骤S518)。
普通OS151从普通中断处理器161接受中断通知和设备ID_B。接着,将与所接受的设备ID_B对应的安全输入输出条目设备驱动器158、和与安全输入输出条目设备驱动器158一起实施了休眠处理的音乐解密守护程序156的休眠解除(步骤S519,步骤S521)。将CPU102分配给安全输入输出条目设备驱动器158。
安全输入输出条目设备驱动器158被解除休眠,将中断通知、作为表示休眠请求的输出源的识别信息而接受的句柄值“1”、和安全输入输出条目设备驱动器158本身所具有的设备ID_B输出给普通OS151(步骤S523)。
普通OS151将所接受的中断通知、句柄值“1”、和设备ID_B输出给与所接受的句柄值“1”对应的音乐解密守护程序156(步骤S524)。
音乐解密守护程序156接受中断通知、句柄值“1”、和设备ID_B,将所接受的中断通知、设备ID_B、和表示音乐解密守护程序156本身的句柄值“1”输出给普通OS151(步骤S527)。
普通OS151从音乐解密守护程序156接受中断通知、设备ID_B、和句柄值“1”。将所接受的中断通知、设备ID_B、和句柄值“1”写入到共用存储器112中(步骤S529),转移到切换处理1(步骤S531)。
在切换处理1结束后,安全OS171从共用存储器112中读出中断通知、设备ID_B、和句柄值“1”(步骤S532),基于所读出的设备ID_B,启动安全输入输出设备驱动器178(步骤S533)。接着,将所读出的中断通知、设备ID_B、和句柄值“1”输出给安全输入输出设备驱动器178(步骤S534)。
安全输入输出设备驱动器178接受中断通知、设备ID_B、和句柄值“1”,向安全输入输出设备133请求处理结果(步骤S536)。作为处理结果,从安全输入输出设备133接受安全存储器113上的内容密钥保存地址(步骤S537)。将包含所接受的处理结果、句柄值“1”、和设备ID_B的响应通知输出给安全OS171(步骤S539)。
安全OS171将所接受的处理结果、句柄值“1”、和设备ID_B输出给与所接受的句柄值“1”对应的音乐解密程序176(步骤S541)。
到此为止,在利用图30~图31进行的说明中,说明了普通OS151或由普通OS151管理的普通存储器111上的程序的执行中的中断发生时的动作,但安全OS171及由安全OS171管理的程序的执行中的中断发生时的动作与上述中断发生时的处理1-2大致相同,只要将图26中的普通输入输出设备变更为安全输入输出设备就可以。步骤S502以后的处理下接图30的步骤S513。
(7)中断发生时的处理3
下面利用图32~图34的流程图,对中断发生时的处理3进行说明。这是图27的步骤S337的详细情况。此外,中断发生时的处理3与图40的步骤S552~图41的步骤S606的次序对应。
加密处理设备117在结束了加密音乐数据的解密后,发生中断(步骤S552)。
中断控制器107检测中断的发生,向普通OS151输出中断发生通知(步骤S553)。
普通OS151从中断控制器107接受中断发生通知,启动普通中断处理器161(步骤S556)。将中断发生通知输出给普通中断处理器161(步骤S557)。
普通中断处理器161接受了中断发生通知后,调查发生中断的主因(步骤S558)。检测到加密处理设备117发生了中断,将设备ID_C和中断通知输出给普通OS151(步骤S561)。
普通OS151从普通中断处理器161接受中断通知和设备ID_C。将与所接受的设备ID_C对应的加密条目设备驱动器159、以及与加密条目设备驱动器159一起实施了休眠处理的音乐解密守护程序156的休眠解除(步骤S562,步骤S563),将CPU102分配给加密条目设备驱动器159。
加密条目设备驱动器159被解除了休眠后,将中断通知、句柄值“1”、和表示本身的设备ID_C输出给普通OS151(步骤S564)。
普通OS151接受中断通知、句柄值“1”、和设备ID_C,将中断通知、句柄值“1”、和设备ID_C输出给与所接受的句柄值“1”对应的音乐解密守护程序156(步骤S567)。
音乐解密守护程序156经由普通OS151从加密条目设备驱动器159接受设备ID_C和中断通知。接着,将所接受的中断通知及设备ID_C、和与音乐解密守护程序156本身对应的句柄值“1”输出给普通OS151(步骤S568)。
普通OS151从音乐解密守护程序156接受中断通知、设备ID_C、和句柄值“1”,将所接受的中断通知、设备ID_C、和句柄值“1”写入到共用存储器112中(步骤S571)。
接着,普通OS151及安全OS171进行切换处理1(步骤S572)。
在切换处理1结束后,安全OS171从共用存储器112中读出中断通知、设备ID_C、和句柄值“1”(步骤S576)。基于所读出的设备ID_C,启动加密设备驱动器179,输出所读出的中断通知、设备ID_C、和句柄值“1”(步骤S577)。
加密设备驱动器179接受中断通知、设备ID_C、和句柄值“1”,向加密处理设备117请求处理结果(步骤S578)。作为处理结果,从加密处理设备117取得缓存器123中的音乐数据的写入目的地地址(步骤S579)。
加密设备驱动器179将所取得的处理结果、所接受的句柄值“1”、和表示加密设备驱动器179本身的设备ID_C输出给安全OS171(步骤S582)。
安全OS171从加密设备驱动器179接受处理结果、句柄值“1”、和设备ID_C,将所接受的处理结果、句柄值“1”、和设备ID_C写入到共用存储器112中(步骤S583)。
接着,安全OS171及普通OS151进行切换处理2(步骤S584)。
在切换处理2结束后,普通OS151从共用存储器112中读出句柄值“1”、处理结果、和设备ID_C(步骤S586)。基于所读出的句柄值“1”,启动音乐解密守护程序156,将所读出的处理结果、句柄值“1”、和设备ID_C输出给音乐解密守护程序156(步骤S587)。
音乐解密守护程序156从普通OS151接受处理结果、句柄值“1”、和设备ID_C。将包含所接受的处理结果、设备ID_C、和表示音乐解密守护程序156本身的句柄值“1”的系统调用输出给普通OS151(步骤S588)。
普通OS151将所接受的处理结果、设备ID_C、和句柄值“1”输出给与设备ID_C对应的加密条目设备驱动器159(步骤S589)。
加密条目设备驱动器159经由普通OS151从音乐解密守护程序156接受处理结果、设备ID_C、和句柄值“1”,将排他标志变更为“0”(步骤S592)。接着,加密条目设备驱动器159通过向普通OS151的响应通知(步骤S596),将所接受的处理结果、句柄值“1”、和设备ID_C输出给音乐解密守护程序156(步骤S597)。
音乐解密守护程序156经由安全OS171从音乐解密守护程序156接受处理结果、句柄值“1”、和设备ID_C。接着,将所接受的处理结果和句柄值“1”输出给普通OS151(步骤S598)。
普通OS151从音乐解密守护程序156接受处理结果和句柄值“1”,将所接受的处理结果和句柄值“1”写入到共用存储器112中(步骤S601)。
接着,普通OS151和安全OS171进行切换处理1(步骤S602)。
在切换处理1结束后,安全OS171从共用存储器112中读出句柄值“1”和处理结果(步骤S603)。基于安全应用程序管理表186上的包含句柄值“1”的条目187,返回音乐解密程序176的前后关系(步骤S604),将所读出的处理结果输出给音乐解密程序176(步骤S606)。
到此为止,在利用图32~图34的说明中,说明了普通OS151或由普通OS151管理的普通存储器111上的程序的执行中的中断发生时的动作,但安全OS171及由安全OS171管理的程序的执行中的中断发生时的动作与上述中断发生时的处理1-2大致相同,只要将图29中的普通输入输出设备变更为加密处理设备就可以。步骤S502以后的处理下接图32的步骤S553。
(7)音乐解密程序的删除
利用图35所示的流程图,说明音乐解密程序的删除处理。这是图15的步骤S109的详细情况。此外,音乐解密程序的删除处理与图42的步骤S611~618的次序对应。
音乐解密程序176将安全应用程序删除指令和句柄值“1”输出给普通OS151(步骤S611)。
普通OS151从音乐解密程序176接受句柄值“1”和安全应用程序删除指令,将所接受的句柄值“1”和安全应用程序删除指令写入到共用存储器112中(步骤S612)。
接着,普通OS151及安全OS171进行切换处理1(步骤S613)。
在切换处理1结束后,安全OS171从共用存储器112中读出安全应用程序删除指令和句柄值“1”(步骤S614)。基于安全应用程序管理表186上的包含句柄值“1”的条目的安全应用程序地址,将音乐解密程序176从安全存储器113上删除(步骤S616),将包含句柄值“1”的条目187从安全应用程序管理表186中删除(步骤S617)。
接着,将句柄值“1”和删除结束通知写入到共用存储器112中(步骤S618)。
接着,安全OS171和普通OS151进行切换处理2(步骤S619)。
在切换处理2结束后,普通OS151从共用存储器112中读出删除处理结束通知和句柄值“1”(步骤S621)。基于句柄值“1”和应用程序管理表166,将音乐解密守护程序156从普通存储器111中删除(步骤S622)。接着,将删除结束通知输出给音乐再现程序153(步骤S623),将包含句柄值“1”的条目167从应用程序管理表166中删除(步骤S624)。
1.3 总结·效果
如以上说明,在本发明的便携电话100中,被装载到普通存储器111上而执行的音乐再现程序153将想要保护的处理、具体而言是加密音乐数据的解密处理委托给装载到安全存储器113上而执行的音乐解密程序176。
音乐解密程序176和普通存储器111上的音乐解密守护程序156成对动作,有关加密音乐数据的解密的一系列处理中的想要保护的处理由音乐解密程序176分担,不需要保护的处理由音乐解密守护程序156承担。
通过这样分担处理,音乐解密程序176本身的程序尺寸变小,音乐解密程序176所保持的数据、变量等也减少。进而,通过来自音乐解密程序176的委托,音乐解密守护程序156使用保存在普通存储器111上的库中的函数。因此,在安全存储器113上不再需要保持库。
因而,在音乐解密程序176及音乐解密守护程序156的一系列解密处理中,能够削减想要确保的安全存储器113的容量,能够减轻保护安全存储器113的保护机构的负荷。
对于与作为受安全OS171管理的、要保护的设备的加密处理设备117的控制有关的处理,对于不需要保护的排他控制、休眠、中断的通知,由装载到普通存储器111上而执行的加密条目设备驱动器159来执行。
如果沿着时间的经过考察该动作,则普通OS151通过来自音乐解密守护程序156的系统调用,使加密条目设备驱动器159转移到执行状态。加密条目设备驱动器159进行排他控制,调出音乐解密守护程序156。音乐解密守护程序156通过普通OS151及安全OS171,调出加密设备驱动器179。安全OS171使加密设备驱动器179转移到执行状态。加密设备驱动器179在对加密处理设备117指示了解密处理后,输出休眠请求。加密条目设备驱动器159通过安全OS171、普通OS151及音乐解密守护程序156接受了休眠请求后,向普通OS151委托休眠处理,普通OS151使加密条目设备驱动器159转移到休眠状态。
接着,加密处理设备117的处理结束,发生中断,普通OS151解除音乐解密守护程序156的休眠,使其转移到执行状态。加密条目设备驱动器159输出中断通知,音乐解密守护程序156通过普通OS151及安全OS171,将中断通知输出给加密设备驱动器179。普通OS151将CPU102分配给加密设备驱动器179,设为执行状态。
这样,加密设备驱动器179和加密条目设备驱动器159相对应地进行状态转移。因而,普通OS151能够通过加密条目设备驱动器159,管理由安全OS171管理的加密处理设备117的使用状态。
对于由安全OS171管理的设备即安全输入输出设备133也同样,通过控制安全输入输出条目设备驱动器158,普通OS151能够监视和控制安全输入输出设备133的动作。
1.4 便携电话100的其他动作
下面对便携电话100的初始动作及虚拟存储器空间的构造进行说明。
(1)引导程序
图43表示存储在普通存储器111中的数据的一例。这表示便携电话100刚启动后的普通存储器111内的状况。
普通OS151、库152、普通输入输出设备驱动器157、安全输入输出条目设备驱动器158、加密条目设备驱动器159、普通切换设备驱动器160、普通中断处理器161如已说明那样。
引导程序162预先存储在构成普通存储器111的ROM中,引导程序162虽没有具体地图示,但是是由包含在便携电话100中的启动部读出并执行的程序。
启动部在对便携电话100接通了电源后马上从普通存储器111读出引导程序162,按照所读出的引导程序162动作。下面,通过按照引导程序162动作的启动部的动作,说明引导程序。
首先,引导程序162将CPU102的寄存器、MMU103清空,对切换控制部106输出初始化请求。引导程序162从切换控制部106接受通知安全存储器113上的程序的初始化结束的初始化结束通知之后,将普通OS151、普通切换设备驱动器160等装载到普通存储器111上,进行初始化。
(2)便携电话100的初始动作
便携电话100在启动时由切换控制部106及引导程序进行初始化。对于便携电话100的启动时的动作,利用图44所示的流程图进行说明。
当便携电话100的电源变为接通状态、开始了电力供给(步骤S651)时,启动部启动引导程序162(步骤S652)。引导程序162首先通过将CPU102及MMU103的寄存器清空,来进行初始化(步骤S653)。接着,向切换控制部106输出初始化请求(步骤S654)。
切换控制部106接受初始化请求,从次存储部104读出加密安全OS(步骤S656)。将所读出的加密安全OS进行解密而生成安全OS(步骤S657)。接着,通过存储器保护部114将总线130与安全存储器113连接(步骤S658)。将所生成的安全OS写入到安全存储器113上,进行初始化(步骤S659)。接着,从次存储部104读出安全切换设备驱动器,装载到安全存储器113上(步骤S661)。
接着,通过存储器保护部114将安全存储器113与总线130切断(步骤S662),将初始化结束通知输出给引导程序162(步骤S663)。
引导程序162从切换控制部106接受初始化结束通知,接着,将普通OS151、普通切换设备驱动器160等程序装载到普通存储器上,进行初始化(步骤S664)。
另外,在上述说明中,设加密安全OS、安全切换设备驱动器存储在次存储部104上来进行了说明,但也可以存储在外部的存储介质等上。
(3)普通OS151及安全OS171的初始化动作
普通输入输出设备驱动器157、安全输入输出条目设备驱动器158、加密条目设备驱动器159是在普通OS151的管理下、常驻在普通存储器111中的程序。
此外,安全输入输出设备驱动器178及加密设备驱动器179是在安全OS171的管理下、常驻在安全存储器113上的程序。
引导程序162将普通OS151及普通切换设备驱动器160等装载到普通存储器111上,结束初始化后,启动安全OS151。
普通OS151启动后,首先,搜索装载在普通存储器111上的程序,判断是否装载了普通输入输出设备驱动器157、安全输入输出条目设备驱动器158、加密条目设备驱动器159,如果没有装载,则从次存储部104读出并装载。
在普通OS151装载安全输入输出条目设备驱动器158及加密条目设备驱动器159时,通过安全OS171将安全输入输出设备驱动器178及加密设备驱动器179也装载到安全存储器113上。
普通OS151及安全OS171的该动作由于与已经说明的音乐解密程序的登录处理类似,所以在这里进行简单说明。另外,假设次存储部104预先存储有将各设备驱动器及条目设备驱动器进行加密而生成的加密条目设备驱动器。
当判断为未装载安全输入输出条目设备驱动器时,普通OS151从次存储部104中读出安全输入输出条目设备驱动器,写入到普通存储器111中。将写入目的地的地址与安全输入输出条目设备驱动器158对应起来进行存储。接着,将指示设备驱动器的装载的设备驱动器登录请求和表示安全输入输出设备驱动器的设备ID_B写入到共用存储器112中。接着,向普通切换设备驱动器160输出切换指示。
在切换处理结束后,安全OS171返回CPU102。从共用存储器112读出设备驱动器登录请求和设备ID_B。读出与设备ID_B对应的加密安全输入输出条目设备驱动器,通过加密解密程序174将所读出的加密条目设备驱动器进行解密,生成安全输入输出条目设备驱动器,写入到安全存储器113中。将写入目的地的地址与设备ID_B对应起来进行存储。
接着,将设备驱动器登录结束通知写入到共用存储器112中,向安全切换设备驱动器180输出切换指示。
在切换处理结束、并返回CPU102后,普通OS151从共用存储器112中读出设备驱动器登录结束通知。
接着,对加密条目设备驱动器也同样装载。
(4)MMU控制程序184的虚拟存储空间
虽然此前没有言及,但安全OS171如图45所示那样包含有MMU控制程序184。MMU控制程序184是由MMU103执行的程序,通过将安全存储器113、共用存储器112、及次存储部104的物理地址与逻辑地址进行变换,构建虚拟存储空间。
图46表示通过MMU控制程序184实现的虚拟存储空间的一例。如图45所示,假设在安全存储器113上装载有音乐解密程序176和通信密钥生成程序185。音乐解密程序176及通信密钥生成程序185是安全应用程序。
音乐解密程序176及通信密钥生成程序185分别装载在虚拟空间201、虚拟空间204中。在各个程序中分别分配有普通共用空间202和普通共用空间206。普通共用空间202和普通共用空间206是各个程序与普通存储器111上的程序共用的虚拟空间。
音乐解密程序176不能访问虚拟空间204及普通共用空间206。此外,通信密钥生成程序185不能访问虚拟空间201及普通共用空间202。
安全共用空间207是从音乐解密程序176及通信密钥生成程序185中的哪个都能够访问、但不能从普通OS151的管理下动作的程序访问的虚拟空间。
安全OS171被装载在虚拟空间208中。安全OS171能够访问虚拟空间201及204,但不能从音乐解密程序176及通信密钥生成程序185访问虚拟空间208。
这样,MMU控制程序184控制为将各自的虚拟空间分配给各应用程序,使它们不能相互访问。
另外,MMU控制程序184在安全存储器113、共用存储器112、及次存储部104上实现上述虚拟存储空间。MMU控制程序184也可以包含加密处理程序,在将存储于安全存储器113上的数据在次存储部104上出页面时,对数据进行加密,在从次存储部104页面调入到安全存储器113上时进行解密。
此外,也可以使音乐解密程序176及通信密钥生成程序185能够相互访问各自的普通共用空间。
1.5 实施方式1的变形例
(1)在实施方式1中,说明了通过音乐解密程序176与音乐解密守护程序156成对地动作来实现加密音乐数据的解密处理,但也可以是图47所示那样的结构。
在该结构中,在普通存储器111上,代替音乐再现程序153而装载有音乐再现程序153b。音乐再现程序153b包含外部处理管理器156b而构成,外部处理管理器156b与上述的音乐解密守护程序156同样,分担加密音乐数据的解密处理中的不需要保护的处理。并且,进行音乐解密程序176与普通OS151之间的各种信息及指令的输入输出。
在该结构的情况下,应用程序管理表166的各条目由句柄值和应用程序前后关系地址构成。普通OS151接受了包含句柄值“1”的指令,作为表示接受目的地的识别信息后,基于应用程序管理表166,返回音乐再现程序153的前后关系,将CPU102分配给外部处理管理器的线程。
根据这样的结构,由于音乐再现程序153包含有外部处理管理器156b,所以在音乐解密程序的登录处理时,不需要将音乐解密守护程序156装载到普通存储器上,而能够缩短在实施方式1中说明的登录处理。
(2)另外,在本实施方式中,通过相同的识别信息设备ID_B识别安全输入输出条目设备驱动器158和安全输入输出设备驱动器178,但也可以通过不同的识别信息来识别。对于加密条目设备驱动器159和加密设备驱动器179也同样。
具体而言,普通OS151及安全OS171在各自的存储区域中具有图48所示的安全设备驱动器管理表231,作为控制数据。
图48所示的安全设备驱动器管理表231包含2个安全设备驱动器管理信息232、234。各安全设备驱动器管理信息由条目设备驱动器标识符和安全设备驱动器标识符构成。安全设备驱动器标识符是表示控制由安全OS171管理的设备的设备驱动器的识别信息,条目设备驱动器标识符是表示与上述设备驱动器成对地动作的普通存储器111上的程序的识别信息。具体而言,安全设备驱动器管理信息232由作为识别安全输入输出条目设备驱动器158的信息的设备ID_B、和作为识别与安全输入输出条目设备驱动器158成对地动作的安全输入输出设备驱动器178的信息的“100”构成。安全设备驱动器管理信息234由作为表示加密条目设备驱动器159的识别信息的设备ID_C、和作为表示与加密条目设备驱动器159成对地动作的加密设备驱动器179的识别信息“101”构成。
安全设备驱动器管理表231是在普通OS151及安全OS171启动时生成的,当将安全输入输出条目设备驱动器装载到普通存储器111上时,普通OS151将作为表示安全输入输出条目设备驱动器的识别信息的设备ID_B写入到共用存储器112中,转移到切换处理。
在切换处理结束后,安全OS171从共用存储器112中读出设备ID_B,接着,从次存储部104中读出加密安全设备驱动器,并解密后,装载到安全存储器113上。这里,生成包含表示已装载的安全输入输出设备驱动器的识别信息“100”和所接受的设备ID_B的安全设备驱动器管理信息232,写入到安全存储器113上。接着,将识别信息“100”写入到共用存储器112上,转移到切换处理。
在切换处理结束后,普通OS151从共用存储器112中读出识别信息“100”,生成由所读出的识别信息“100”、和表示安全输入输出条目设备驱动器158的设备ID_B构成的安全设备驱动器管理信息,写入到普通存储器111上。
对于安全设备驱动器管理信息234也同样。
普通OS151利用上述那样生成的安全设备驱动器管理表231,管理安全输入输出条目设备驱动器158及加密条目设备驱动器159。此外,安全OS171利用安全设备驱动器管理表231,管理安全输入输出设备驱动器178及加密设备驱动器179。
(3)在上述实施方式中,安全OS171包含有调试无效化程序,但也可以是安全切换设备驱动器180具备该功能。
在该结构中,安全切换设备驱动器180每次被从切换控制部106调出时,首先使调试器IF101无效化,接着返回安全OS171的前后关系。
此外,如果从安全OS171接受了切换指示,则在保存了安全OS171的前后关系后,使调试器IF101变为有效,向切换控制部106输出切换指示。
这样,在安全OS171返回CPU102之前,通过使调试器IF101无效化,能够更可靠地防止安全OS171的动作被外部的调试器装置检测、操作。
此外,也可以由切换控制部106使调试器IF101无效化、有效化,来代替安全存储器113上的程序。
(4)在上述实施方式1中,普通输入输出设备驱动器157及加密条目设备驱动器159利用排他标志进行排他控制,如果排他标志为“1”,则输出错误通知。但是,也可以在各驱动器动作的期间储存所接受的处理委托。
在此情况下,普通输入输出设备驱动器157及加密条目设备驱动器159具备存储所接受的处理委托的QUEUE,如果接受了处理请求,则将所接受的处理委托保存在QUEUE中,来代替确认排他标志。
普通输入输出设备驱动器157在普通输入输出设备132结束处理后取得处理结果。接着,从QUEUE中读出接下来的处理委托,输出给普通输入输出设备132。
加密条目设备驱动器159接受处理结果,将所接受的处理结果输出后,从QUEUE中读出下一个处理委托。将所读出的处理委托输出给加密设备驱动器179。
此外,代替QUEUE,也可以具备加密条目设备驱动器159专用的缓存区域,将所接受的处理委托、和所接受的处理委托的优先级对应起来写入到缓存区域中。
在此情况下,在加密处理设备117的处理结束、接受了处理结果后,加密设备驱动器179读出优先级高的处理委托,输出给加密处理设备117。
(5)在上述实施方式中,安全切换设备驱动器180进行安全OS171的前后关系的保存及返回,但也可以由普通切换设备驱动器160来进行。
在此情况下,在从安全OS171向普通OS151的切换处理2时,安全OS171向切换控制部106输出切换指示。切换控制部106将切断指示输出给存储器保护部114,将安全存储器113与总线130切断。接着,调出普通切换设备驱动器160。普通切换设备驱动器160将包含CPU102的寄存器、MMU103的内容等的安全OS171的前后关系保存在普通存储器111上,将CPU102及MMU103清空,返回普通OS151的前后关系。
在从普通OS151向安全OS171的切换处理1时,如果从普通OS151接受了切换指示,则普通切换设备驱动器160保存普通OS151的前后关系,将CPU102及MMU103清空。接着,返回安全OS171的前后关系,向切换控制部106输出切换指示。
这样,通过由普通存储器111上的普通切换设备驱动器160进行安全OS171的前后关系的保存和返回,在安全存储器113上不再需要安全切换设备驱动器180。因而,能够削减安全存储器113的容量。
(6)在上述实施方式及变形例中,便携电话100通过MMU103形成虚拟存储空间。但是,也可以是不使用虚拟存储空间的结构。在此情况下,存储在各存储器中的数据及程序通过物理地址来管理。
因而,在这样的结构的情况下,不再需要进行与前后关系的保存及返回有关的MMU的内容的保存。
此外,在此情况下,也可以是不保存安全OS171的前后关系的结构。当从切换控制部106调出安全切换设备驱动器180时,则将安全OS171的开头地址返回给CPU102,从最初开始启动安全OS171。
(7)此外,在上述实施方式中,便携电话100具备装载到普通存储器111上的普通OS151和装载到安全存储器113上的安全OS171,但也可以是不具备普通OS151的结构。
如在便携电话100的初始动作中所说明那样,在接通电源后,首先,启动引导程序162。引导程序162在将CPU102及MMU103初始化后,向切换控制部106输出初始化请求,切换控制部106将安全OS171及安全切换设备驱动器180装载到安全存储器113上。
安全OS171将各种程序装载到安全存储器113及普通存储器111上。
普通存储器111上的各程序将包括系统调用的所有指令代替普通OS151而输出给普通切换设备驱动器160。
普通切换设备驱动器160从普通存储器111上的程序接受了指令后,将所接受的指令写入到规定的存储区域中,进行切换处理。安全OS171返回CPU102后,从规定的存储区域中读出指令。
这样,安全OS171控制普通存储器111及安全存储器113上的各程序。
此外,反之也可以是不具备安全OS171的结构。在此情况下,安全切换设备驱动器180或切换控制部106具备调试无效化程序。
安全存储器113上的各程序将包括系统调用的所有指令输出给安全切换设备驱动器180。安全切换设备驱动器180将所接受的指令写入到共用存储器112上的指令区域中,向切换控制部106输出切换指示。
普通OS151返回CPU102后,从共用存储器112的指令区域中读出从安全存储器113上的程序输出的指令。
这样,也可以由普通OS151控制普通存储器111及安全存储器113上的各程序。
(8)在上述实施方式及变形例中,切换控制部106及存储器保护部114通过将安全存储器113与总线130切断,来保护安全存储器113上的程序及数据不受外部的访问。
也可以通过存储器保护部114将安全存储器113内的数据进行加密及解密来进行保护,以代替上述方式。切换控制部106向存储器保护部114指示加密或解密,来代替连接指示或切断指示。
存储器保护部114通过切换控制部106的指示,将安全存储器113内的数据进行加密或解密。
此外,也可以不是将安全存储器113内的所有数据,而是根据需要仅将音乐再现程序153的代码部分、数据部分、或堆栈部分进行加密。对于安全OS171、加密设备驱动器179、安全输入输出设备驱动器178等也同样。
(9)在上述实施方式及变形例中,普通OS151管理应用程序管理表166,利用应用程序管理表166,调出与相应的应用程序及与安全应用程序相对应的程序(例如音乐解密守护程序156)。但是,在与音乐再现程序153同样地存在多个对安全应用程序委托处理的应用程序的情况下,也可以是除普通OS151之外,具备进行应用程序管理表166的管理、和程序的调出的程序的结构。将该程序称作守护程序控制程序。
在此情况下,当普通切换设备驱动器160被由切换控制部106调出时,代替普通OS151而启动守护程序控制程序。守护程序控制程序从共用存储器112中读出指令,根据包含在所读出的识别信息,调出相应的程序。
此外,各应用程序以及以音乐解密守护程序156为代表的程序将安全处理请求输出给守护程序控制程序,来代替普通OS151。
守护程序控制程序将所接受的安全处理请求写入共用存储器112中,向普通切换设备驱动器160输出切换指示。
(10)到此为止,作为本发明的一个实施方式,对便携电话100进行了说明,但也可以是具有同样功能的信息处理装置、例如个人电脑等。
在此情况下,普通存储器111及安全存储器113包含RAM及硬盘而构成。在上述说明中,安全OS171及音乐解密程序176被加密而存储在次存储部104中,但也可以存储在安全存储器113上的硬盘部分。
2、实施方式2
下面,对本发明的实施方式2进行说明。
图49表示本发明的实施方式2的便携电话400的使用例。便携电话400经由基站15、便携电话网10、因特网20,与无效化列表发布装置250连接。
无效化列表发布装置250管理有关已无效化的程序的信息,生成表示这些程序的无效化肋板,经由因特网20将所生成的无效化列表发送给便携电话400。
便携电话400从无效化列表发布装置250接受无效化列表,基于接收到的无效化列表,判断自身所存储的程序是否是无效的。
2.1 无效化列表发布装置250
无效化列表发布装置250如图50所示,由通信部251、署名生成部252、密钥存储部253、散列生成部254、控制部257、信息存储部260、输入部262及显示部263构成。
具体而言,无效化列表发布装置250是包含微处理器、RAM、ROM而构成的计算机系统。在RAM、ROM中存储有计算机程序,通过上述微处理器按照上述计算机程序动作,无效化列表发布装置250实现上述功能。
(1)信息存储部260
信息存储部260如图50所示,存储有OS无效化列表266及应用程序无效化列表276。
OS无效化列表266由发行者ID267、列表ID268、以及无效化ID269、270、271……构成。
发行者ID267表示OS无效化列表的发行者,作为一例,是无效化列表发布装置250的装置ID、无效化列表发布装置250的管理者的识别信息等。
列表ID268是表示OS无效化列表266的新旧的信息,这里,将OS无效化列表266的制成日“20041015”作为列表ID268。
无效化ID269、270、271……是无效化的操作系统的识别信息。
应用程序无效化列表276由发行者ID277、列表ID278、无效化ID279、280、281……构成。发行者ID277是表示应用程序无效化列表的发行者的信息,作为一例,是无效化列表发布装置250的装置ID、无效化列表发布装置250的管理者的识别信息等。
列表ID278是表示应用程序无效化列表276的新旧的信息。这里,将应用程序无效化列表276的制成日“20041009”作为列表278。
无效化ID279、280、281……是无效化的应用程序的识别信息。
(2)通信部251
通信部251与因特网20连接,在控制部257与连接到因特网20上的外部设备之间进行信息的收发。这里,所谓的外部设备是便携电话400。
(3)散列生成部254
散列生成部254从控制部257接受OS无效化列表266和散列生成指示。并且,接受应用程序无效化列表276和散列生成指示。
接受了散列生成指示后,将所接受的OS无效化列表266或应用程序无效化列表276代入到散列函数中,生成160字节的OS摘要数据或应用程序摘要数据。这里,在散列函数中作为一例而采用SHA-1。对于散列函数SHA-1,由于是公知的技术,所以省略说明。此外,也可以使用其他散列函数。
将所生成的OS摘要数据或应用程序摘要数据输出给控制部257。
(4)密钥存储部253及署名生成部252
密钥存储部253存储有无效化列表发布装置250所固有的发行装置密密钥、和与上述发行装置密密钥对应的发行装置公开密钥。
署名生成部252从控制部257接受OS摘要数据或应用程序摘要数据,被指示进行署名生成。
在接受了OS摘要数据、被指示进行署名生成后,从密钥存储部253读出发行装置密密钥,利用所读出的发行装置密密钥,对所接受的OS摘要数据实施署名生成算法S,生成署名数据,将所生成的署名数据输出给控制部257。署名生成算法S作为一例而使用椭圆DSA署名、RSA(RivestShamirAdleman)署名等。
对于接受应用程序摘要数据、被指示进行署名生成的情况也同样生成署名数据,输出给控制部257。
(5)控制部257
控制部257经由通信部251及因特网20从便携电话400接受请求最新的OS无效化列表及应用程序无效化列表的发送的列表请求。
如果接收到列表请求,则从信息存储部260读出OS无效化列表266,将所读出的OS无效化列表266输出给散列生成部254,输出散列生成指示。接着,从散列生成部254接受OS摘要数据。将所接受的OS摘要数据输出给署名生成部252,指示进行署名生成。接着,从署名生成部252接受署名数据。将所接受的署名数据附加到OS无效化列表266中,生成带署名的OS无效化列表。
对于应用程序无效化列表276也同样,向散列生成部254及署名生成部252指示生成署名数据。将所接受的署名数据附加到应用程序无效化列表276中,生成带署名的应用程序无效化列表。
接着,经由通信部251及因特网20向便携电话400发送所生成的带署名的OS无效化列表和带署名的应用程序无效化列表。
此外,控制部257经由输入部262接受操作者的各种指示及数据,按照所接受的指示动作。
(6)输入部262及显示部263
输入部262接受无效化列表发布装置250的操作者的指示及数据的输入,将所接受的指示及数据输出给控制部257。
显示部263根据控制部257的指示,显示各种画面。
2.2 便携电话400
便携电话400的硬件结构与图2所示的便携电话100的结构大体相同,由调试器IF、CPU、MMU、次存储部、切换控制部106、中断控制器、输入部、显示部、普通存储器、共用存储器、安全存储器413、存储器保护部414、输入输出部、加密处理设备、无线通信控制部、麦克风、扬声器、通信部、缓存、编码处理部、D/A变换部构成。
对于安全存储器413、存储器保护部414以外的各部分,由于与便携电话100相同,所以省略详细说明,这里,仅对与便携电话100不同的部分进行说明。
(1)安全存储器413
安全存储器413如图51所示,存储有音乐解密程序446、安全OS441等各种程序。
音乐解密程序446与实施方式1的音乐解密程序176同样,包含加密音乐数据的解密的过程,对于该过程省略说明。
音乐解密程序446在头部分包含有应用程序ID447及无效标志448。应用程序ID447是音乐解密程序446所固有的识别信息。无效标志448是表示音乐解密程序446是否被无效化的标志,无效标志“1”表示音乐解密程序446被无效化,标志“0”表示没有被无效化。
安全OS441由于是执行与实施方式1的安全OS171同样的处理的主软件,所以对于安全OS441的动作省略说明。但是,安全OS441在启动安全存储器413上的各程序或返回到CPU时,读出各应用程序的头部分的无效标志,在无效标志是“1”的情况下,中止该应用程序的启动或返回。
安全OS441在头部分包含有安全OSID442及无效标志443。
安全OSID442是与安全OS441对应的识别信息。无效标志443是表示安全OS441是否被无效化的标记,无效标记“1”表示音乐解密程序446已无效化的情况,无效标志“0”表示没有无效化。
此外,在本实施方式中,被装载到安全存储器413上而进行切换处理的安全切换设备驱动器在将安全OS441的前后关系返回给CPU之前,读出安全OS441的无效标志443,在无效标志是“1”的情况下,中止安全OS441的返回。
(2)存储器保护部414
存储器保护部414如图51所示,由无效化列表存储部421、无效化列表更新部424、应用程序验证部428、应用程序无效化部429、OS验证部431及OS无效化部432构成。
<无效化列表存储部421>
无效化列表存储部421存储有应用程序无效化列表422及OS无效化列表423。
应用程序无效化列表422及OS无效化列表423是分别与存储在无效化列表发布装置250的信息存储部260中的应用程序无效化列表276及OS无效化列表266同样的结构。
<无效化列表更新部424>
无效化列表更新部424预先存储有署名验证密钥426。署名验证密钥426是与存储在无效化列表发布装置250的密钥存储部253中的发行装置公开密钥相同的密钥。
无效化列表更新部424从切换控制部106接受指示连接安全存储器413与总线130的连接指示。接受了连接指示后,经由无线通信控制部、通信部,将请求最新的应用程序无效化列表及OS无效化列表的发送的列表请求发送给无效化列表发布装置250。
接着,经由无线通信控制部、通信部,从无效化列表发布装置250接收带署名的OS无效化列表和带署名的应用程序无效化列表。
利用署名验证密钥,对于所接收到的带署名的OS无效化列表的署名数据进行署名验证。具体而言,对于署名数据,利用署名验证密钥,实施署名验证算法V来生成检查数据。署名验证算法V是验证由署名生成算法S生成的署名数据的算法。
接着,将接收到的OS无效化列表代入散列函数中,生成OS摘要数据。比较所生成的检查数据与摘要数据,在两者一致的情况下判断为署名验证成功,在不一致的情况下,判断为失败。在署名验证失败的情况下,中止以下所说明的列表ID的比较及OS无效化列表的更新。
对于接收到的带署名的应用程序无效化列表也同样进行署名验证。在署名验证失败的情况下,中止以下所说明的应用程序ID的比较及应用程序无效化列表的更新。
接着,将所接收到的OS无效化列表与包含在无效化列表存储部421所存储的OS无效化列表423中的列表ID进行比较。如果两者相同,则将接收到的OS无效化列表丢弃。如果接收到的OS无效化列表的列表ID显示比无效化列表存储部421所存储的OS无效化列表423中的列表ID新的日期,则利用接收到的OS无效化列表更新无效化列表存储部421所存储的OS无效化列表423。
对于应用程序无效化列表也同样,将接收到的应用程序无效化列表与无效化列表存储部421所存储的应用程序无效化列表422的新旧进行比较,在应用程序无效化列表422较旧的情况下,通过接收到的应用程序无效化列表更新无效化列表存储部421内的应用程序无效化列表422。
<OS验证部431及OS无效化部432>
OS验证部431从安全OS441的头部分读出安全OSID442。接着,从无效化列表存储部421中读出OS无效化列表423,判断所读出的安全OSID442是否包含在OS无效化列表423的无效ID中。在安全OSID442包含在OS无效化列表423中的情况下,判断为安全OS441为无效,向OS无效化部432指示进行无效化。
如果安全OSID442没有包含在OS无效化列表423中,则判断为有效。
OS无效化部432被OS验证部431指示进行无效化,将安全OS441的头部分的无效标志改写为“1”。
<应用程序验证部428及应用程序无效化部429>
应用程序验证部428从安全存储器413上的音乐解密程序446的头部分读出应用程序ID447。接着,从无效化列表存储部421读出应用程序无效化列表422,判断应用程序ID447是否包含在应用程序无效化列表422中。在应用程序ID447包含在应用程序无效化列表422中的情况下,判断音乐解密程序446为无效的程序,向应用程序无效化部429指示进行无效化。
如果应用程序ID447没有包含在应用程序无效化列表422中,则判断为音乐解密程序446是有效的程序。
应用程序无效化部429从应用程序验证部428受到进行无效化的指示,将音乐解密程序446的无效标志设定为“1”。
在安全存储器413上存在多个应用程序的情况下,对于所有的应用程序,应用程序验证部428及应用程序无效化部429同样地重复应用程序是否为无效的判断、以及在无效的情况下的无效标志的设定。
(3)存储器保护部的验证动作
利用图52~图53所示的流程图,对存储器保护部414的程序的验证动作进行说明。
从切换控制部106接受连接指示(步骤S671)。接受了连接指示后,无效化列表更新部424经由无线通信控制部118及通信部121向无效化列表发布装置250发送列表请求(步骤S672)。接着,经由通信部及无线通信控制部,取得带署名的OS无效化列表和带署名的应用程序无效化列表(步骤S673)。
无效化列表更新部424读出署名验证密钥426,利用所读出的署名验证密钥,进行所取得的带署名的OS无效化列表及带署名的应用程序无效化列表的署名验证(步骤S674)。若署名验证失败(步骤S676的否),则将处理转移到OS验证部的步骤S681。
如果署名验证成功(步骤S676的是),则读出存储在无效化列表存储部中的OS无效化列表423及应用程序无效化列表422的列表ID(步骤S677)。将所读出的OS无效化列表423的列表ID与所接收到的OS无效化列表的列表ID进行比较,将应用程序无效化列表422的列表ID与所接收到的应用程序无效化列表的列表ID进行比较,来判断OS无效化列表423及应用程序无效化列表422是否是最新版本(步骤S678)。当判断为不是最新版本(步骤S678中的否),则利用所接收到的OS无效化列表及接收到的应用程序无效化列表,更新存储在无效化列表存储部421中的OS无效化列表423及应用程序无效化列表422(步骤S679)。
当判断为最新版本时(步骤S678中的是),省略步骤S679的处理。
当步骤S672~679的无效化列表更新部424的处理结束时,OS验证部431从安全存储器413读出安全OSID442(步骤S681),根据所读出的安全OSID442是否登录在OS无效化列表423中,来判断安全OS441是无效还是有效的(步骤S682)。
如果判断为有效(步骤S683中的是),则转移到应用程序验证部428的步骤S686的处理。
如果判断为无效(步骤S683中的否),则OS无效化部432将安全OS441的无效标志443设定为“1”(步骤S684)。
在OS验证部431及OS无效化部432的步骤S684为止的处理结束后,应用程序验证部428读出安全存储器413上的音乐解密程序446的应用程序ID447(步骤S686),根据所读出的应用程序ID是否登录在应用程序无效化列表422中,判断音乐解密程序446是有效的还是无效的(步骤S687)。
如果判断为有效(步骤S688中的是),则结束验证处理。如果判断为无效(步骤S688中的否),则应用程序无效化部429将音乐解密程序446的无效标志设定为“1”(步骤S689)。
2.3 总结·效果
如以上说明,本实施方式的便携电话400从无效化列表发布装置250取得随时更新的OS无效化列表及应用程序无效化列表。基于所取得的OS无效化列表及应用程序无效化列表,判断以自身所存储的安全OS441、音乐解密程序446为代表的装载到安全存储器413上的应用程序是否是有效的,并中止已无效化的程序的执行。
通过做成这样的结构,在便携电话400销售后,对于在之后判断应使其无效化的程序,能够中断其执行,能够防止因非法程序的执行造成的数据的非法使用。
2.4 实施方式2的变形例1
关于本发明的实施方式2,也可以是以下这样的结构。
(1)无效化列表发布装置250
无效化列表发布装置250构成为,虽然存储有OS无效化列表及应用程序无效化列表,但OS无效化列表包含无效化的操作系统的安全OS证书(后述)的证书ID,来代替无效化ID269、270、271……。
对于应用程序无效化列表,也构成为包含无效化的应用程序的应用程序证书(后述)的证书ID,来代替无效化ID279、280、281……。
(2)便携电话400
便携电话400具备存储器保护部454来代替存储器保护部414,具备安全存储器453来代替安全存储器413。代替存储器保护部414根据安全存储器413上的各程序所固有的ID判断各程序有效还是无效,存储器保护部454利用安全存储器453上的各程序所固有的证书进行判断。
下面,对实现该功能的结构进行说明。
(2-1)安全存储器453
安全存储器453作为一例,如图54所示,包含有音乐解密程序476、安全OS481。
安全OS481在头部分包含有安全OS证书482及无效标志483。
安全OS证书482是按照X.509的公开密钥证书,如图55所示,包含发行者ID484、证书ID487、安全OS公开密钥488、署名算法489及CA署名491而构成。
发行者ID484是作为安全OS证书482的发行源的认证局(以下称作CA:Certificate Authority)的标识符。安全OS公开密钥488是由安全OS证书482证明了合法性的安全OS481所固有的公开密钥。署名算法489是表示在CA署名491的生成中使用的算法的识别信息。CA署名491是署名数据,该署名数据是利用作为安全OS证书482的发行源的CA的保密密钥,对上述发行者ID484、证书ID487……实施署名算法489所示的算法S1而生成的。
无效标志483表示安全OS481有效还是无效。
音乐解密程序476在其头部分包含有应用程序证书477和无效标志478。
应用程序证书477是将图55的安全OS公开密钥488替换为应用程序公开密钥的结构。
无效标志478表示音乐解密程序476有效还是无效。
(2-2)存储器保护部454
存储器保护部454如图54所示,由无效化列表存储部461、无效化列表更新部424、密钥保存部464、应用程序验证部468、应用程序无效化部429、OS验证部471及OS无效化部432构成。
由于无效化列表更新部424、OS无效化部432及应用程序无效化部429的动作与上述实施方式2的无效化列表更新部424、OS无效化部432及应用程序无效化部429同样,所以这里省略说明。
<无效化列表存储部461>
无效化列表存储部461如图54所示,包含OS无效化列表463及应用程序无效化列表462。
OS无效化列表463是与无效化列表发布装置250所存储的OS无效化列表同样的结构,包含有无效化的操作系统的证书ID。
应用程序无效化列表462是与无效化列表发布装置250所存储的应用程序无效化列表同样的结构,包含有无效化的应用程序的证书ID。
<密钥保存部464>
密钥保存部464存储有CA公开密钥466。CA公开密钥466是作为安全OS证书482及应用程序证书477的发行源的CA的公开密钥,是与包含在安全OS证书482及应用程序证书477中的CA署名的生成中使用的CA的保密密钥成对的密钥。
<OS验证部471>
OS验证部471在结束了无效化列表更新部424的OS无效化列表及应用程序无效化列表的更新的处理后,从安全存储器453读出包含在安全OS481中的安全OS证书482。从密钥保存部464读出CA公开密钥466,利用所读出的CA公开密钥466,对包含在安全OS证书482中的CA署名491实施署名验证算法V1来进行署名验证。署名验证算法V1是验证由署名生成算法S1生成的署名数据的算法。
如果署名验证的结果为失败,则中止以后的处理,向OS无效化部432指示安全OS481的无效化。
如果署名验证的结果为成功,则接着根据包含在安全OS证书482中的证书ID487是否登录在OS无效化列表463中,判断安全OS481是否是无效的。如果有登录,则判断为安全OS481是无效的程序,向OS无效化部432指示安全OS481的无效化。
如果没有登录,则OS验证部471判断为安全OS481是有效的程序。
另外,在本实施方式中,进行安全OS证书482的署名验证,在署名验证成功的情况下,判断证书ID487是否登录在OS无效化列表463中,但也可以判断证书ID487是否登录在OS无效化列表463中,在没有登录的情况下,进行署名验证。
<应用程序验证部468>
应用程序验证部468在结束了OS验证部471对安全OS481的验证后,从安全存储器453中读出包含在音乐解密程序476中的应用程序证书477。从密钥保存部464中读出CA公开密钥466,利用所读出的CA公开密钥466,对包含在应用程序证书477中的CA署名实施署名验证算法V1,进行署名验证。
如果署名验证的结果为失败,则中止以后的处理,向应用程序无效化部429指示音乐解密程序476的无效化。
如果署名验证的结果为成功,则接着根据包含在应用程序证书477中的证书ID是否登录在应用程序无效化列表462中,判断音乐解密程序476是否是无效的。如果有登录,则判断为音乐解密程序476是无效的程序,向应用程序无效化部429指示音乐解密程序476的无效化。
如果没有登录,则判断为音乐解密程序476为有效的程序。
另外,对上述署名验证和证书ID是否登录在应用程序无效化列表462中的判断的顺序也可以相反。
2.5 实施方式2的变形例2
在上述变形例1中,音乐解密程序476也可以包含构成层次构造的多个证书。
图56表示音乐解密程序476所具有的多个证书的结构及这些证书的层次构造。
音乐解密程序476如图56所示,包含有应用程序证书501、厂商证书511及CA证书521。
应用程序证书501包含发行源502、证书ID503、应用程序公开密钥504、署名算法506及厂商署名508而构成。
发行源502是表示作为应用程序证书501的发行源的应用程序厂商的识别信息。在图56中为了便于说明而记作“应用程序厂商”。证书ID503是应用程序证书501所固有的识别信息。应用程序公开密钥504是音乐解密程序476所固有的公开密钥,通过应用程序证书501来证明其合法性。署名算法506是表示在厂商署名508的生成中使用的署名生成算法的识别信息。厂商署名508是利用音乐解密程序476的制造商所固有的应用程序厂商密密钥519对发行源502、证书ID503、应用程序公开密钥504、署名算法506等包含在应用程序证书501中的信息实施署名生成算法S2而生成的署名数据。
厂商证书511包含有发行源512、证书ID513、厂商公开密钥514、署名算法516及CA署名518而构成。
发行源512是表示作为厂商证书511的发行源的CA的识别信息。在图56中为了便于说明而记作“CA”。证书ID513是厂商证书511所固有的识别信息。厂商公开密钥514是音乐解密程序476的制造商的公开密钥,通过厂商证书511来证明其合法性。厂商公开密钥514是与应用程序厂商密密钥519对应的密钥。署名算法516是表示在CA署名518的生成中使用的署名生成算法的识别信息。CA署名518是利用CA密密钥529对发行源512、证书ID513、厂商公开密钥514、署名算法516等包含在厂商证书511中的信息实施署名生成算法S3而生成的署名数据。
CA证书521包含发行源522、证书ID523、CA公开密钥524、署名算法526及根CA署名528而构成。
发行源522是表示作为CA证书521的发行源的根CA的识别信息。为了便于说明,在图56中记作“根CA”。证书ID523是CA证书521所固有的识别信息。CA公开密钥524是CA的公开密钥,利用CA证书521来证明其合法性。CA公开密钥524是与CA密密钥529对应的密钥。署名算法526是表示在根CA署名528的生成中使用的署名生成算法的识别信息。根CA署名528是利用根CA密密钥531对发行源522、证书ID523、CA公开密钥524、署名算法526等包含在CA证书521中的信息实施署名生成算法S4而生成的署名数据。根CA密密钥531是根CA所固有的保密密钥。
这里,作为一例,CA相当于便携电话400的销售厂商、根CA相当于公开证书发行机关。此外,也可以使用控制音乐解密程序476的安全OS481的OS证书482、分配给便携电话400的证书、安全OS481的制造商的证书,来代替厂商证书511。
在该变形例中,密钥保存部464存储有根CA公开密钥,以代替CA公开密钥466。根CA公开密钥是与根CA密密钥531对应的密钥。此外,无效化列表存储部461除了应用程序无效化列表462以外,还存储有厂商无效化列表、以及CA无效化列表。厂商无效化列表是包含无效化的厂商证书的证书ID的列表,CA无效化列表是表示含无效化的CA证书的证书ID的列表。
应用程序验证部468首先读出CA证书521和根CA公开密钥,利用所读出的根CA公开密钥,对包含在CA证书521中的根CA署名528实施署名验证算法V4来进行署名验证。署名验证算法V4是验证通过署名生成算法S4生成的署名数据的算法。
如果署名验证失败,则应用程序验证部468中止以下的处理,向应用程序无效化部429指示音乐解密程序476的无效化。
如果署名验证成功,则接着判断包含在CA证书521中的证书ID523是否已登录在CA无效化列表中,如果已登录,则应用程序验证部468中止以下的处理,向应用程序无效化部429指示音乐解密程序476的无效化。
如果没有登录,则接着读出厂商证书511,利用包含在CA证书521中的CA公开密钥524,对包含在所读出的厂商证书511中的CA署名518实施署名验证算法V3而进行署名验证。署名验证算法V3是验证通过署名生成算法S3生成的署名数据的算法。
如果署名验证失败,则应用程序验证部468中止以下的处理,向应用程序无效化部429指示音乐解密程序476的无效化。
如果署名验证成功,则接着判断包含在厂商证书511中的证书ID513是否已登录在厂商无效化列表中,如果已登录,则应用程序验证部468中止以下的处理,向应用程序无效化部429指示音乐解密程序476的无效化。
如果没有登录,则接着读出应用程序证书501。利用包含在厂商证书511中的厂商公开密钥514,对包含在所读出的应用程序证书501中的厂商署名508实施署名验证算法V2而进行署名验证。署名验证算法V2是验证通过署名生成算法S2生成的署名数据的算法。
如果署名验证失败,则应用程序验证部468中止以下的处理,向应用程序无效化部429指示音乐解密程序476的无效化。
如果署名验证成功,则接着判断包含在应用程序证书501中的证书ID503是否已登录在应用程序无效化列表中,如果已登录,则应用程序验证部468向应用程序无效化部429指示音乐解密程序476的无效化。
如果没有登录,则判断音乐解密程序476为有效的程序。
这样,通过2级、3级的验证,能够确保更高的安全性。此外,通过导入厂商证书,能够使由同一厂商开发的全部程序无效化。
对于安全OS481也可以同样进行多个证书的验证。
2.6 其他变形例
(1)在上述实施方式2中,OS无效化列表作为列表ID而包含有OS无效化列表的生成日期,但也可以如图57所示的OS无效化列表541那样作为列表ID543而包含有版本号。所谓的版本信息是指表示OS无效化列表的更替的号码,值越大表示越新。
此外,如OS无效化列表551所示,也可以包含无效化ID的总数来作为列表ID553。无效化的程序的总数由于不会减少,所以通过将无效化ID的总数作为列表ID,能够判断列表ID的值越大、越是新的OS无效化列表。
(2)在上述说明中,无效化列表发行装置250生成了OS无效化列表及应用程序无效化列表,但应用程序无效化列表与OS无效化列表的发行源也可以不同。
例如,OS无效化列表由操作系统开发厂商所管理的无效化列表发行装置生成并发行。应用程序无效化列表由应用程序的开发厂商所管理的无效化列表发行装置生成并发行。
(3)在上述实施方式及变形例中,也可以是OS验证验证安全应用程序,应用程序验证部验证安全OS。
在安全应用程序与安全OS的开放厂商不同的情况下,通过这样相互认证,能够进一步提高安全性。
(4)此外,无效化列表发行装置250发送的应用程序无效化列表及OS无效化列表一定是最新的列表,无效化列表存储部421所存储的应用程序无效化列表422及OS无效化列表423不会比它们新。因而,无效化列表更新部424在进行应用程序无效化列表及OS无效化列表的更新时,也可以省略上述那样的列表ID的比较,如果署名验证成功,则无条件地通过从无效化列表发行装置250接收到的应用程序无效化列表及OS无效化列表来更新应用程序无效化列表422及OS无效化列表423。
(5)在上述实施方式中,如果从切换控制部106输出了连接指示,则进行存储在安全存储器413中的各程序的验证,但验证的时刻并不限于此,也可以在便携电话400的电源接通时、各程序的启动时等。
3、实施方式3
下面,对有关本发明的实施方式3进行说明。
本实施方式的便携电话与实施方式2同样,经由便携电话网及因特网与无效化列表发行装置连接。
3.1 无效化列表发行装置
本实施方式的无效化列表发行装置与实施方式2的无效化列表发行装置250同样,由通信部、署名生成部、密钥存储部、散列生成部、控制部、信息存储部610、输入部及显示部构成。
通信部、署名生成部、密钥存储部、散列生成部、输入部及显示部的结构及动作与包含在无效化列表发行装置250中的通信部251、署名生成部252、密钥存储部253、散列生成部254、输入部262及显示部263大致相同,散列生成部代替OS无效化列表及应用程序无效化列表而根据OS矩阵无效化列表(后述)生成OS摘要数据,根据应用程序矩阵无效化列表(后述)生成应用程序摘要数据。对于这些各部省略说明,仅对作为本实施方式的特征的信息存储部610及控制部进行说明。
(1)信息存储部610
信息存储部610如图58所示,存储有应用程序发行密钥矩阵601、OS发行密钥矩阵602、应用程序无效化信息604、606……、应用程序矩阵无效化列表611及OS矩阵无效化列表621。
<应用程序发行密钥矩阵601及OS发行密钥矩阵602>
应用程序发行密钥矩阵601如图58所示,作为4行×4列的矩阵的各矩阵要素而配置有16个发行密钥Key_11、Key_12、Key_13……。各发行密钥作为一例是使用伪随机数生成的、64位长的密钥数据。
应用程序发行密钥矩阵601在纵向上从上开始依次配置行号“1”、“2”、“3”、“4”,在横向上从左开始依次配置列号“1”、“2”、“3”、“4”。
与行号“1”、列号“1”对应的矩阵要素661是发行密钥Key_11,与行号“1”、列号“2”对应的矩阵要素662是发行密钥Key_12。与行号“1”、列号“3”对应的矩阵要素663是发行密钥Key_13,与行号“1”、列号“4”对应的矩阵要素664是发行密钥Key_14。
同样,行号“2”、列号“1”~“4”的矩阵要素665~668分别为发行密钥Key_21、Key_22、Key_23、Key_24。行号“3”、列号“1”~“4”的矩阵要素669~672分别为发行密钥Key_31、Key_32、Key_33、Key_34。行号“4”、列号“1”~“4”的矩阵要素673~676分别为发行密钥Key_41、Key_42、Key_43、Key_44。
在本实施方式中,对于各安全应用程序,从应用程序发行密钥矩阵601的各列中分别分配1个、共计4个发行密钥。4个发行密钥的组合对于每个安全应用程序是不同的。
作为一例,对于便携电话中执行的音乐解密程序(后述),在应用程序发行密钥矩阵601中,分配了由实线圆677、678、679、680围成的发行密钥Key_11、Key_32、Key_23、Key_14。此外,对于与音乐解密程序不同的安全应用程序(称作应用程序B),分配了由实线圆681、682、683、684围成的发行密钥Key_21、Key_32、Key_23、Key_44。
OS发行密钥矩阵602是与应用程序发行密钥矩阵601相同的结构,作为4行×4列的矩阵的矩阵要素而保存有16个发行密钥。
<应用程序无效化信息604、606……>
为了使对应用程序无效化信息604、606……的说明变得容易,首先对应用程序固有密钥矩阵及OS固有密钥矩阵进行说明。
图59是在本实施方式的便携电话中存储的加密音乐解密程序591(后述)中所包含的应用程序固有密钥矩阵592及加密安全OS596(后述)中所包含的OS固有密钥矩阵597。
应用程序固有密钥矩阵592与将加密音乐解密程序591解密而生成的音乐解密程序一一对应,包含有分配给音乐解密程序的4个发行密钥。应用程序固有密钥矩阵592由4个密钥信息901、902、903、904构成。各密钥信息包含有行号、列号、和发行密钥,密钥信息901包含有从应用程序发行密钥矩阵601的第1列的矩阵要素分配给音乐解密程序的发行密钥Key_11、和在应用程序发行密钥矩阵601上与Key_11对应的行号“1”和列号“1”。密钥信息902包含有从应用程序发行密钥矩阵601的第2列的矩阵要素分配给音乐解密程序的发行密钥Key_32、和在应用程序发行密钥矩阵601上与Key_32对应的行号“3”和列号“2”。密钥信息903包含有从应用程序发行密钥矩阵601的第3列的矩阵要素分配给音乐解密程序的发行密钥Key_23、和在应用程序发行密钥矩阵601上与Key_23对应的行号“2”和列号“3”。密钥信息904包含有从应用程序发行密钥矩阵601的第4列的矩阵要素分配给音乐解密程序的发行密钥Key_14、和在应用程序发行密钥矩阵601上与Key_14对应的行号“1”和列号“4”。
OS固有密钥矩阵597是与应用程序固有密钥矩阵同样的结构,由密钥信息906、907、908、909构成。各密钥信息包含行号、列号、和发行密钥。
对于将本实施方式中所存储的加密安全OS596解密而生成的安全OS,从OS发行密钥矩阵602的各列分别分配1个、共计4个发行密钥。该4个发行密钥的组合对于每个操作系统是不同的。
密钥信息906~909分别具有从OS发行密钥矩阵602的各列分配给安全OS的固有密钥、与固有密钥对应的OS发行密钥矩阵602上的列号和行号。
应用程序无效化信息604、606……是从无效化的应用程序的应用程序固有密钥矩阵的各密钥信息提取了列号及行号而成的。
作为一例,应用程序无效化信息604与上述应用程序B对应。应用程序无效化信息604如图58所示,由4各列号“1”_931、“2”_932、“3”_933、“4”_934、和与各个列号对应的行号935~938构成。列号“1”_931和行号“2”_935与从应用程序发行密钥矩阵601的第1列分配给应用程序B的发行密钥Key_21对应。列号“2”_932和行号“3”_936与从应用程序发行密钥矩阵601的第2列分配给应用程序B的发行密钥Key_32对应。同样,列号“3”_933和行号“3”_937与发行密钥Key_33对应。列号“4”和行号“4”与发行密钥Key_44对应。
此外,虽然没有具体图示,但信息存储部610存储有从无效化的操作系统的OS固有密钥矩阵的各密钥信息中提取了列号及行号的OS无效化信息。
<应用程序矩阵无效化列表611及OS矩阵无效化列表621>
应用程序矩阵无效化列表611如图60所示,是将16个矩阵要素911~926配置成4行×4列的矩阵状而构成的。为了便于说明,利用变量Mij表现保存在第i行j列的矩阵要素中的矩阵要素。
变量Mij是利用应用程序发行密钥矩阵601的第i行j列的发行密钥,对用来将以加密音乐解密程序591为代表的加密应用程序进行解密的解密密钥实施加密算法E2而生成的。图中的Enc(Key_ij,解密密钥)是表示利用发行密钥Key_ij对解密密钥进行加密而生成的。例如,行号“1”、列号“1”的矩阵要素911即变量M11是利用应用程序发行密钥矩阵601上的行号“1”、列号“1”的矩阵要素661的发行密钥Key_11对解密密钥进行加密而成的。
这里,应用程序矩阵无效化列表611是在存储于信息存储部610中的应用程序无效化信息仅为应用程序无效化信息604时生成的。此时,与包含在应用程序无效化信息604中的行号及列号对应的矩阵要素M21、M32、M33、M44是代替解密密钥而利用发行密钥对伪数据“0000”进行加密而成的。
OS矩阵无效化列表621是与应用程序矩阵无效化列表611同样的结构,将16个矩阵要素配置为4行×4列的矩阵状。第i行j列的矩阵要素是利用配置在OS发行密钥矩阵602的第i行j列上的发行密钥,对解密密钥进行了加密的矩阵要素,该解密密钥用来将包括加密安全OS596的各种加密操作系统进行解密。但是,与包含在OS无效化信息中的行号及列号对应的矩阵要素是代替上述解密密钥而对伪数据进行加密的矩阵要素。
此外,虽然没有具体图示,但在应用程序矩阵无效化列表611及OS矩阵无效化列表中包含有表示其新旧的列表ID。
(2)控制部
控制部经由因特网从便携电话接收列表请求。接收到列表请求后,从信息存储部610读出OS矩阵无效化列表621及应用程序矩阵无效化列表611,将附加了由散列控制部、署名生成部生成的署名的带署名的OS矩阵无效化列表和带署名的应用程序矩阵无效化列表发送给便携电话。这与实施方式2的控制部257进行的带署名的OS无效化列表及带署名的应用程序无效化列表的生成及发送同样,所以省略详细的说明。
此外,控制部经由输入部接受由操作者发出的新应用程序无效化信息的输入及应用程序矩阵无效化列表的生成的指示。按照所接受的指示,新生成应用程序矩阵无效化列表。
此外,接受新OS无效化信息的输入及OS矩阵无效化列表的生成指示。按照所接受的指示,新生成OS矩阵无效化列表。
下面,利用图61所示的流程图,说明应用程序矩阵无效化列表的生成动作。另外,在本实施方式中,应用程序发行密钥矩阵601及应用程序矩阵无效化列表是将16个要素配置成4×4的矩阵状而构成的,但并不限于此。在流程图中,更一般地对p行n列的情况进行说明。(p、n为1以上的整数)。
首先,将解密密钥代入到p×n个各矩阵要素M11、M12……Mpn中(步骤S721)。用0将保存列号的变量j及保存行号的变量I进行初始化(步骤S722)。
接着,读出应用程序无效化信息(步骤S723),对变量j加1(步骤S724)。提取与所读出的应用程序无效化信息的列号j对应的行号,将所提取的行号代入到变量i中(步骤S726)。
接着,将伪数据“0000”代入到矩阵要素Mij中(步骤S727)。接着,判断是否为变量j=n(步骤S729)。如果判断为不是j=n(步骤S729中的否),则回到步骤S724,重复步骤S724~729直到变为j=n。
在判断为变量j=n的情况下(步骤S729中的是),判断是否已读出了存储在信息存储部610中的所有应用程序无效化信息(步骤S731),如果没有完成读出(步骤S731中的否),则回到步骤S722,对于下个应用程序无效化信息也重复步骤S722~731的处理。
如果判断为已经读出了所有的应用程序无效化信息(步骤S731中的是),则将0代入变量i中(步骤S734),将0代入到变量j中(步骤S736)。接着,对变量i加1(步骤S737),对变量j加1(步骤S739)。
读出应用程序发行密钥矩阵601的第i行j列的发行密钥Key_ij(步骤S741)。利用所读出的发行密钥Key_ij,对矩阵要素Mij实施加密算法E2,生成Enc(Key_ij,Mij),将所生成的Enc(Key_ij,Mij)代入到Mij中(步骤S742)。
如果变量j=n(步骤S743中的是),则将处理转移到步骤S744,如果不是变量j=n(步骤S743中的否),则回到步骤S739,重复步骤S739~743的处理,直到成为变量j=n。
接着,如果变量i=p(步骤S744中的是),则结束应用程序矩阵无效化列表的生成。
如果不是变量i=p(步骤S744中的否),则回到步骤S736,重复步骤S736~744的处理,直到成为变量i=p。
另外,对于OS矩阵无效化列表也利用OS发行密钥矩阵和OS无效化信息,通过同样的过程生成。
3.2 便携电话
本实施方式的便携电话是与实施方式2的便携电话400类似的结构。因而,这里省略与实施方式2同样的部分的说明,而仅对本实施方式的特征部分进行说明。
(1)安全存储器613
在安全存储器613中,作为一例,如图62所示,存储有加密音乐解密程序591及加密安全OS596。
加密音乐解密程序591是对包含与实施方式2的音乐解密程序446同样的音乐解密过程的音乐解密程序实施加密算法E3而生成的。此外,加密音乐解密程序591在头部分包含有音乐解密程序所固有的应用程序固有密钥矩阵592和无效标志593。对于应用程序固有密钥矩阵592,同上面已经叙述那样。无效标志593是表示上述音乐解密程序是否为无效的标志,表示如果为“0”则为有效、如果为“1”则为无效。
加密安全OS596是对具有与实施方式2的安全OS441同样的操作功能的安全OS实施加密算法E3而生成的。加密安全OS596在头部分包含上述安全OS所固有的OS固有密钥矩阵597和无效标志598。对于OS固有密钥矩阵597,同上面已经叙述那样。
无效标志598是表示安全OS是否为无效的标志,表示如果为“0”则为有效、如果为“1”则为无效。
(2)存储器保护部571
存储器保护部571如图62所示,由无效化列表存储部572、无效化列表更新部575、应用程序验证部578、应用程序无效化部579、OS验证部581、OS无效化部582及加密解密部586构成。
无效化列表存储部572存储有应用程序矩阵无效化列表573及OS矩阵无效化列表574。应用程序矩阵无效化列表573及OS矩阵无效化列表574是与存储在无效化列表发行装置的信息存储部610中的应用程序矩阵无效化列表611及OS矩阵无效化列表相同的结构。
无效化列表更新部575的动作与实施方式2的无效化列表更新部424同样,代替应用程序无效化列表及OS无效化列表而更新应用程序矩阵无效化列表及OS矩阵无效化列表。
应用程序无效化部579及OS无效化部582的动作与实施方式2的应用程序无效化部429及OS无效化部432同样,所以在这里不重新说明。
<应用程序验证部578及OS验证部581>
应用程序验证部578利用包含在加密音乐解密程序591中的应用程序固有密钥矩阵592及存储在无效化列表存储部572中的应用程序矩阵无效化列表573,生成加密音乐解密程序591的解密密钥。在能够正确地生成解密密钥的情况下,判断为音乐解密程序为有效。对于上述的音乐解密程序的验证的详细步骤在后面进行说明。
如果判断为有效,则向加密解密部586输出所生成的解密密钥,指示对加密解密程序176进行解密。
如果判断为无效,则向应用程序无效化部579指示进行无效化。
OS验证部581与应用程序验证部578同样,判断将加密安全OS596进行解密而成生的安全OS有效还是无效。这里,代替应用程序固有密钥矩阵592、应用程序矩阵无效化列表573,而使用OS固有密钥矩阵597、OS矩阵无效化列表574。
<加密解密部586>
加密解密部586从OS验证部581接受加密安全OS596的解密密钥,被指示进行解密。如果被指示进行解密,则利用所接受的解密密钥,对安全存储器613上的加密安全OS596实施解密算法D3而生成安全OS。
此外,从应用程序验证部578接受加密音乐解密程序591的解密密钥,被指示进行解密。如果被指示进行解密,则利用所接受的解密密钥,对加密音乐解密程序591实施解密算法D3而生成音乐解密程序。
这里,D3是将由加密算法E3生成的加密文本进行解密的算法,作为一例,采用DES、AES(Advanced Encryption Standard,高级加密标准)等。
此外,检测从切换控制部576输出的、指示安全存储器613与总线130的切断的切断指示。如果检测到切断指示,则通过所接受的解密密钥,将音乐解密程序及安全OS加密,生成加密音乐解密程序591及加密安全OS596。
(3)存储器保护部571的验证动作
利用图63的流程图,对存储器保护部571进行的安全存储器613上的程序的验证动作进行说明。
存储器保护部571接受连接指示(步骤S701)。接受了连接指示后,无效化列表更新部575经由因特网从无效化列表发行装置取得最新的应用程序矩阵无效化列表和OS矩阵无效化列表,将存储在无效化列表存储部572中的应用程序矩阵无效化列表573及OS矩阵无效化列表574进行更新(步骤S702)。无效化列表更新部575的步骤S702的处理与实施方式2的无效化列表更新部424的步骤S672~679(图49)的处理同样,只要将OS无效化列表替换为OS矩阵无效化列表、将应用程序无效化列表替换为应用程序矩阵无效化列表就可以。
接着,OS验证部581进行安全OS的验证(步骤S703),如果判断为安全OS有效(步骤S706中的是),则向加密解密部586指示加密安全OS596的解密,加密解密部586将加密安全OS596进行解密,生成安全OS(步骤S707)。
如果判断为安全OS无效(步骤S706中的否),则向OS无效化部582指示,将无效标志598设定为“1”(步骤S709)。
接着,应用程序验证部578验证音乐解密程序是否是有效的(步骤S711)。如果判断为有效(步骤S712中的是),则加密解密部586将加密音乐解密程序591进行解密而生成音乐解密程序(步骤S713)。
如果判断为无效(步骤S712中的否),则应用程序无效化部579将无效标志593设定为“1”(步骤S716)。
(4)音乐解密程序的验证
下面利用图64的流程图,说明应用程序验证部578进行的音乐解密程序的验证处理。这是图63的步骤S711的详细情况。在本实施方式中,应用程序矩阵无效化列表573构成4行×4列的矩阵,应用程序固有密钥矩阵592包含4个密钥信息而构成,但在这里,更一般地,对应用程序矩阵无效化列表573构成n行p列的矩阵、应用程序固有密钥矩阵592由p个密钥信息构成的情况进行说明。
应用程序验证部578读出应用程序固有密钥矩阵573(步骤S731)。为了便于说明,导入表示行号的变量i和表示列号的变量j进行说明。
应用程序验证部578将1代入变量j中(步骤S732)。将与应用程序固有密钥矩阵592的与列号j对应的行号代入到变量i中(步骤S733)。
接着,从应用程序矩阵无效化列表573读出矩阵要素Mij(步骤S736)。从应用程序固有密钥矩阵592提取发行密钥Key_ij,利用所提取的发行密钥Key_ij,对所读出的矩阵要素Mij实施解密算法D2,进行解密(步骤S737)。如果解密结果不是“0000”(步骤S739中的否),则判断为音乐解密程序有效(步骤S741),将解密结果、即加密音乐解密程序591的解密密钥输出给加密解密部586(步骤S742)。
如果处理结果是“0000”(步骤S739中的“是”),则接着判断是否为变量j=p,如果不是j=p(步骤S744中的“否”),则对变量j加1(步骤S747),回到步骤S733。
如果是变量j=p(步骤S744中的是),则判断为音乐解密程序无效(步骤S746)。
另外,关于步骤S703的OS验证部581进行的安全OS的验证,由于是将图61的流程图的应用程序固有密钥矩阵替换为OS固有密钥矩阵、将应用程序矩阵无效化列表替换为OS矩阵无效化列表,所以省略说明。
3.3 总结·效果
如以上说明,在实施方式3中,便携电话的安全存储器613上的加密音乐解密程序591及加密安全OS596包含有各自所固有的应用程序固有密钥矩阵592、OS固有密钥矩阵597。
存储器保护部571根据应用程序矩阵无效化列表573及应用程序固有密钥矩阵592判断音乐解密程序是否有效。仅在有效的情况下,能够根据应用程序矩阵无效化列表573生成解密密钥。
对于安全OS也同样,利用OS矩阵无效化列表574及OS固有密钥矩阵来判断是否有效。
考虑应用程序的制造商利用同一个加密密钥按同一种方法对多个应用程序进行加密来出厂的情况。
在构成图58的应用程序发行密钥矩阵601的16个密钥中,对各应用程序从各列各分配1个、合计4个发行密钥。此时,进行分配以使分配给不同程序的发行密钥不会4个都一致。作为一例,对本实施方式的音乐解密程序分配发行密钥Key_11、Key_32、Key_23、Key_14,这些发行密钥包含在加密音乐解密程序591的应用程序固有密钥矩阵592中。
对从与音乐解密程序相同的制造商出货的应用程序(称作应用程序B)分配发行密钥Key_21、Key_32、Key_33、Key_44,在加密应用程序B的应用程序发行密钥矩阵中包含这4个发行密钥。
这里,当出厂后判明为应用程序B是应无效化的程序时,在无效化列表发行装置中追加应用程序无效化信息604。应用程序无效化信息604由与分配给应用程序B的4个发行密钥对应的行号和列号构成。根据应用程序无效化信息604生成的应用程序矩阵无效化列表611如图60所示,由于在矩阵要素M21、M32、M33及M44中包含有伪数据,所以通过分配给加密应用程序B的4个发行密钥不能生成解密密钥。
如图58所示,对音乐解密程序也分配了Key_32,但根据利用图64的流程图说明的验证动作,能够通过其他发行密钥生成解密密钥。
这样,对各应用程序分配了多个发行密钥,如果是利用应用程序无效化列表和发行密钥生成解密密钥的结构,则即使通过同样的方法加密,也能够仅将应无效化的应用程序无效化。
进而,加密解密部586在切断安全存储器613和总线时,对安全OS及以音乐解密程序为代表的应用程序再次进行加密。因而,在普通存储器上的程序使用CPU的期间,能够更可靠地保护安全存储器613上的程序。此外,在这样的结构的情况下,存储器保护部也可以不将总线与安全存储器613在物理上切断。
3.4 变形例
(1)在实施方式3中,存储器保护部571每次从切换控制部106接收连接指示时,都经由通信控制部取得最新的OS矩阵无效化列表及应用程序矩阵无效化列表,将它们进行更新,来验证安全存储器613上的各程序。但是,进行OS矩阵无效化列表及应用程序矩阵无效化列表的更新、以及安全存储器613上的各程序的验证的时刻并不限于此。
作为一例,也可以在便携电话的启动时,也可以1日1次那样定期地进行。此外,也可以在启动时进行OS矩阵无效化列表及应用程序矩阵无效化列表的更新,在启动时以后接受了连接指示时,进行程序的验证。
此外,也可以在启动各程序时如从普通OS向安全OS的切换处理时进行安全OS的验证,安全OS启动音乐解密程序时,进行音乐解密程序的验证。
此外,从存储器保护部571向无效化列表发行装置发送列表请求而取得最新的OS矩阵无效化列表及应用程序矩阵无效化列表,但也可以新判明应无效化的程序,在重新制作OS矩阵无效化列表及应用程序矩阵无效化列表时,从无效化列表发行装置向便携电话发送。
(2)便携电话经由因特网而取得最新的OS矩阵无效化列表及应用程序矩阵无效化列表,但也可以从存储卡等存储介质取得。
(3)到此为止,作为本发明的1个实施方式而说明了便携电话,但也可以是以下说明那样的构成LAN的通信设备。
也可以是构成LAN的设备中的任一个取得最新的无效化列表,并发布给其他设备。
作为一例,是如图65所示的形成家庭网络的设备。家庭网络是通过总线连接PC(Personal Computer)650、笔记本PC651、DVD播放机652、家庭服务器653、微波炉654而构成的。
各设备具备不能从普通的操作系统或应用程序直接访问的安全存储器,具有验证装载到安全存储器上而执行的各种应用程序及操作系统的有效性的功能。
家庭服务器653与因特网20连接,定期地向无效化列表发行装置250请求应用程序无效化列表及OS无效化列表。经由因特网,从无效化列表发行装置250取得最新的应用程序矩阵无效化列表及OS矩阵无效化列表。将所取得的无效化列表经由总线输出给构成家庭网络的各设备。
4、实施方式4
下面,对本发明的实施方式4进行说明。
4.1 便携电话的结构
本实施方式的便携电话与实施方式1的便携电话100同样,由调试器IF、CPU102、MMU、次存储部、切换控制部、中断控制器、输入部、显示部、普通存储器、共用存储器、安全存储器713、存储器保护部701、输入输出部、加密处理设备、无线通信控制部、麦克风、扬声器、通信部、天线、缓存、编码处理部、D/A变换部构成,各电路与总线连接。
在本实施方式的便携电话中,由于存储器保护部701及安全存储器713以外的结构及动作与实施方式1相同,所以省略说明,这里仅对本实施方式的特征部分进行说明。
(1)安全存储器713
安全存储器713如图66所示,存储有音乐解密程序704、通信密钥生成程序706等安全应用程序、以及安全OS707。
音乐解密程序704是包含与实施方式1的音乐解密程序176同样的音乐解密的处理过程的安全应用程序。
通信密钥生成程序706是用于生成便携电话经由因特网进行内容的收发时的加密密钥的安全应用程序。
安全OS707是与实施方式1的安全OS171同样的操作系统。
这里,当安全存储器713上的各程序在安全存储器上被启动时,将本身的访问信息输出给访问管理部702。所谓的访问信息是各程序能够访问的存储区域的地址。
(2)存储器保护部701
存储器保护部701如图66所示,包含访问管理部702和信号监视部703而构成。
访问管理部702从安全存储器713上的各程序接受访问信息、将所接受的访问信息与对应的程序对应起来进行存储。此外,在各程序中具备计数非法访问的次数的计数器。
信号监视部703预先存储有允许各程序的非法访问的次数(允许次数)。信号监视部703监视安全存储器713与CPU之间的总线上的信号,检测作为CPU的访问对象的安全存储器713上的地址。
接着,从访问管理部702读出当前执行中的程序的访问信息,将所读出的访问信息与检测到的地址进行比较。如果所检测到的地址包含在表示读出的访问信息的存储区域中,则原样继续监视。
如果没有包含,则访问管理部702对与对应的程序对应起来存储的计数器加1。接着,将计数器与存储的允许次数进行比较。如果计数器在允许次数以下,则原样继续监视。
如果计数器超过了允许次数,则判断为对应的程序非法。
这里,在被判断为非法的程序是音乐解密程序704的情况下,信号监视部703强制性地中止音乐解密程序704的执行,将CPU102的执行权转移给安全OS707。
在被判断为非法的程序是其他安全应用程序的情况下也同样。
在判断为非法的程序是安全OS707的情况下,信号监视部703强制性地中止安全OS707的执行,将CPU102及MMU清空,向切换控制部输出切换指示。
4.2 总结·效果
如以上说明,本发明的便携电话监视装载到安全存储器713中的各程序的动作,中止重复非法动作的程序的执行。通过这样,即使在万一安全存储器713中的程序中存在缺陷的情况下、或在执行中途施加了非法的篡改的情况下,也能够停止这些程序的执行。
4.3 实施方式4的变形例
(1)在上述实施方式中,存储器保护部701通过由信号监视部703监视总线上的信号来检测非法动作,但也可以代之定期检测CPU的程序计数器值。
(2)在上述实施方式中,安全存储器713上的各程序在启动时将每个程序不同的访问信息输出给访问管理部702,信号监视部703基于这些访问信息来监视各程序的动作,但也可以是访问管理部702预先存储表示安全存储器713上的访问禁止区域的信息。在此情况下,不论哪个程序在执行中,如果想要访问禁止区域,信号监视部都中止CPU102的程序执行,将CPU102及MMU清空,向切换控制部输出切换指示。
(3)在本实施方式中,存储器保护部701也可以如实施方式2中说明那样,具备无效化列表存储部、应用程序验证部、应用程序无效化部、OS验证部、OS无效化部,当从切换控制部接受了连接指示时,判断安全存储器上的各程序是否有效的。
在该结构中,信号监视部703发现在动作中途进行非法动作的程序、使该程序的动作停止,并且对无效化列表存储部所存储的OS无效化列表或应用程序无效化列表追加与进行了非法动作的程序对应的安全OSID或应用程序ID。
通过这样,不会再次执行新发现的无效的程序。
5.实施方式5
下面对本发明的实施方式5进行说明。
实施方式5的便携电话750安装有2张存储卡。在存储卡中的一个上,存储有OS(操作系统)以及各种应用程序,便携电话750读出这些程序并执行。为了便于说明,将该存储卡称作普通存储卡800。
在另一个存储卡上,加密存储有进行应受到保护的处理的程序。各程序由程序部分和数据部分构成。为了便于说明,将该存储卡称作安全存储卡820。
便携电话750允许安全存储卡820上的各程序读出其他程序的程序部分,但禁止读出其他程序的数据部分。
5.1 安全存储卡820
安全存储卡820如图67所示,由输入输出部821及信息存储部830构成。
安全存储卡820具体而言是包含微处理器、RAM及ROM而构成的计算机系统,在上述RAM、ROM中存储有计算机程序。通过上述微处理器按照上述计算机程序动作,安全存储卡820实现其功能的一部分。
输入输出部821在与外部设备之间进行信息的输入输出。
信息存储部830存储有安全ID850、加密音乐解密程序831、加密密钥生成程序841等。
安全ID850是安全存储卡820所固有的信息,表示保存有安全存储卡820进行安全处理的程序。
加密音乐解密程序831包含ID832“A”、加密解密程序834及加密解密数据836。ID832“A”是加密音乐解密程序831所固有的识别信息。
加密解密程序834是对包含解密音乐数据的过程的解密程序进行加密而生成的,加密解密数据836是对解密程序在解密处理中所使用的参数等数据进行加密而成的。
加密密钥生成程序841包含ID842“B”、加密生成程序844、加密密钥数据846而构成。
ID842“B”是加密密钥生成程序841所固有的识别信息。加密生成程序844是对包含生成加密密钥的过程的生成程序进行加密而成的,加密密钥数据846是对上述生成程序所使用的参数等数据进行加密而成的。
5.2 普通存储卡800
普通存储卡800如图68所示,包含输入输出部801和信息存储部802而构成。
输入输出部801在信息存储部802与外部设备之间进行各种数据的输入输出。
信息存储部802存储有以音乐再现程序808为代表的各种应用程序及OS806。存储在信息存储部802中的程序由包含各程序所执行的处理的过程的代码部和数据部构成。此外,在各个程序中具有固有的程序ID。作为一例,OS806具有程序ID“OS”,音乐再现程序808具有程序ID“E”。
5.3 便携电话750
便携电话750如图68所示,通过总线760连接调试器IF751、CPU752、MMU753、中断控制器757、输入部758、显示部759、存储器761、存储器保护部764、输入输出部765、输入输出部766、无线通信控制部768、通信部771、天线772、麦克风769、扬声器770、缓存773、编码处理部774、D/A变换部776而构成。
调试器IF751、MMU753、中断控制器757、输入部758、显示部759、无线通信控制部768、通信部771、天线772、麦克风769、扬声器770、缓存773、编码处理部774、D/A变换部776的动作及结构与实施方式1同样,所以这里省略说明。此外,存储器761存储有各种数据及程序,CPU752一个个地取出包含在存储于存储器761、普通存储卡800及安全存储卡820中的程序中的指令,将所取出的指令进行解密并执行。
下面,对作为本实施方式的特征部分的存储器保护部764、输入输出部765、输入输出部766进行说明。
(1)输入输出部765及输入输出部766
输入输出部765及输入输出部766与2张存储卡中的某一个连接,在存储卡与存储器保护部764之间进行信息的输入输出。
(2)存储器保护部764
存储器保护部764如图69所示,由解密部781、解密密钥存储部782、访问控制部783、密钥存储部784、存储器信息存储部785及ID检测部786构成。
(2-1)密钥存储部784
密钥存储部784将加密音乐解密程序831的解密密钥及加密密钥生成程序841的解密密钥与各程序的ID对应起来进行存储。
(2-2)解密部781及解密密钥存储部782
解密部781从访问控制部783接受解密指示及加密文本。当接受了解密指示时,从解密密钥存储部782读出解密密钥,利用所读出的解密密钥对加密数据进行解密而生成明码文本。将所生成的明码文本输出给CPU752。
这里解密部781所解密的加密数据是构成存储在安全存储卡820中的加密音乐解密程序831、加密密钥生成程序841的加密数据。
解密密钥存储部782仅保存解密部781所使用的1个解密密钥。
(2-3)存储器信息存储部785
存储器信息存储部785如图70所示,存储有安全存储器信息表811及普通存储器信息表861。
安全存储器信息表811由多个安全存储器信息812、813……构成。各安全存储器信息包含有程序ID、代码地址及数据地址。
程序ID是存储在安全存储卡820中的各程序的ID。代码地址是表示存储在安全存储卡820内的加密应用程序的程序部分所保存的区域的地址。数据地址是表示加密应用程序的数据部分所保存的区域的地址。
具体而言,安全存储器信息812作为程序ID而包含有加密音乐解密程序831的ID“A”832、作为代码地址而包含有加密解密程序834所存储的地址“A000~A111”、作为数据地址而包含有加密解密数据836所存储的地址“A222~A333”。
安全存储器信息813作为程序ID而包含有加密密钥生成程序841的ID“B”842、作为代码地址而包含有加密生成程序844所存储的地址“A444~A555”、作为数据地址而包含有加密密钥数据846所存储的地址“A666~A777”。
普通存储器信息表861包含多个普通存储器信息862、863……而构成,各普通存储器信息包含有程序ID、代码地址及数据地址。
程序ID是存储在普通存储卡800中的各程序的ID。代码地址是表示与程序ID对应的程序的程序部分所保存的区域的地址。数据地址是表示数据部分所存储的区域的地址。
具体而言,普通存储器信息862与存储在普通存储卡800上的OS806对应,普通存储器信息863与音乐再现程序808对应。
(2-4)ID检测部786
ID检测部786总是监视CPU752的程序计数器(以下称作PC),在CPU752执行安全存储卡820上的程序的期间,CPU752存储表示执行中的程序的程序ID。
下面,利用图71的流程图对ID检测部786的动作进行说明。另外,为了便于说明,从步骤S801开始说明。此时,CPU752执行存储于普通存储卡800或存储器761上的程序。
ID检测部786监视PC(步骤S801),通过将包含在存储器信息存储部785所存储的安全存储器信息表811及普通存储器信息表861中的各程序的代码地址、与PC所示的地址进行比较,判断PC所示的地址是否是安全存储卡820上的地址(步骤S802)。
如果不是安全存储卡820上的地址(步骤S802中的否),则继续PC的监视。
如果判断为是安全存储卡820上的地址(步骤S802中的是),则接着从安全存储器信息表811中选择与从PC检测出的地址对应的安全存储器信息,提取包含在所选择的安全存储器信息中的程序ID(步骤S803)。存储所提取的程序ID(步骤S804)。接着,向访问控制部783输出表示开始安全存储卡820上的程序的执行的安全访问通知(步骤S805)。
接着,监视PC(步骤S806),判断保存在PC中的地址是否是安全存储卡820上的地址(步骤S807)。
如果判断为是安全存储卡820上的地址(步骤S807中的是),则从安全存储器信息表811中选择与从PC检测到的地址对应的安全存储器信息,并提取包含在所选择的安全存储器信息中的程序ID(步骤S809)。将所提取的程序ID与ID检测部786本身所存储的程序ID进行比较。如果两者一致(步骤S811中的是),则返回步骤S806,继续PC的监视。
在两者不一致的情况下(步骤S811中的否),将所存储的程序ID替换为所提取的程序ID(步骤S812),回到步骤S806。
在步骤S807中,如果判断为不是安全存储卡820上的地址(步骤S807中的否),则消去ID检测部786本身所存储的程序ID(步骤S814),回到步骤S801。
(2-5)访问控制部783
访问控制部783预先存储有写入到安全存储卡820中的安全ID。
经由输入输出部765及输入输出部766检测是否安装有存储卡。如果检测到存储卡的安装,则检索写入到存储卡中的数据。在检测到与所存储的安全ID相同的安全ID850的情况下,检测到该存储卡为安全存储卡820。这里,设想输入输出部765与普通存储卡800连接、输入输出部766与安全存储卡820连接的情况。
访问控制部783当经由输入输出部765检测到普通存储卡800的安装时,经由输入输出部765搜索存储在普通存储卡800中的信息,生成普通存储器信息表,将所生成的普通存储器信息表保存到存储器信息存储部785中。
此外,当经由输入输出部766检测到安全存储卡820的安装时,经由输入输出部766搜索存储在安全存储卡820中的信息,生成安全存储器信息表,将所生成的安全存储器信息表写入到存储器信息存储部785中。
在CPU752访问普通存储卡800时,访问控制部783将从CPU752输出的信号(以下称作访问信号)原样中继给普通存储卡800,并且从普通存储卡800接受所输出的数据,将所接受的数据输出给CPU752。
在CPU752向安全存储卡820访问时,从访问信号中提取访问目的地的地址,根据所提取的地址,进行安全存储卡820的数据的读出或读出禁止。对于这样的访问控制部783的动作,利用图71、图72所示的流程图详细地进行说明。另外,为了便于说明,从步骤S821开始说明。此时,CPU752执行普通存储卡800或存储器761上的程序。
访问控制部783在CPU752与普通存储卡800之间中继数据的输入输出(步骤S821)。
从ID检测部786接受表示开始了安全存储卡820上的程序的执行的安全访问通知(步骤S805)。
接受了安全访问通知后,访问控制部783使调试器IF751无效化(步骤S823),读出存储在ID检测部786中的程序ID(步骤S824)。从密钥存储部784读出与所读出的程序ID对应的解密密钥(步骤S826),将所读出的解密密钥写入到解密密钥存储部782中(步骤S827)。
接着,接受从CPU752输出的访问信号,根据所接受的访问信号,检测访问目的地的地址(步骤S829)。
如果检测到访问目的地的地址,则从ID检测部786读出程序ID(步骤S831)。如果读出了程序ID(步骤S832中的是),则从安全存储器信息表811中选择在代码地址或数据地址中包含检测到的访问目的地地址的安全存储器信息,从所选择的安全存储器信息中提取程序ID(步骤S834)。
将所提取的程序ID与从ID检测部786读出的程序ID进行比较,如果两者一致(步骤S836中的是),则将处理转移到步骤S844。
在两者不一致的情况下(步骤S836中的否),访问控制部783再判断所检测到的地址是包含在所选择的安全存储器信息的代码地址中、还是包含在数据地址中(步骤S838)。在判断为包含在数据地址中的情况下(步骤S838中的否),将表示不能允许访问的错误通知输出给CPU752,回到步骤S829。
在判断为包含在代码地址中的情况下(步骤S838中的是),从密钥存储部784读出与所提取的程序ID对应的解密密钥,将解密密钥存储部782所存储的解密密钥变更为读出的解密密钥(步骤S842)。
接着,读出存储在与经由输入输出部766检测到的地址对应的存储区域中的信息(步骤S844)。向解密部781指示对所读出的信息进行解密(步骤S846),回到步骤S829。
在步骤832中,在不存在存储于ID检测部786中的程序ID的情况下(步骤S832中的否),访问控制部783将存储在解密密钥存储部782中的解密密钥消除(步骤S851),将调试器IF751设为有效(步骤S852),回到步骤S821。
5.4 总结·效果
如以上说明,本发明的便携电话执行存储在普通存储卡及安全存储卡上的程序。预先对存储在安全存储卡中的程序进行加密。
在CPU752执行存储在安全存储卡820中的程序时,存储器保护部764通过执行中的程序管理允许访问的区域和禁止访问的区域。
如果以执行音乐解密程序的情况为例进行说明,则CPU752能够访问包含在加密音乐解密程序831中的存储加密音乐解密程序831的区域、和加密密钥生成程序的加密生成程序844所存储的区域,但不能访问存储有加密密钥生成程序的加密密钥数据846的区域。
这样,安全存储卡820上的各应用程序能够避免从其他应用程序访问自身的数据部、非法地读出、变更数据的情况。
此外,由于存储在安全存储卡820中的信息已加密,所以即使在CPU752执行安全存储卡820上的程序以外的程序的中途访问到安全存储卡820的情况下,也不会解密。因而,能够保护安全存储卡820上的数据不受非法的访问。
5.5 有关实施方式5的变形例
在上述实施方式中,在安全存储卡820上的安全应用程序的执行中,CPU752要访问其他应用程序的数据部分的情况下,访问控制部783对CPU752输出了错误通知,但也可以与实施方式4同样,将CPU752的执行权转移给例如OS806。在此情况下,访问控制部783将存储在解密密钥存储部782中的解密密钥消除,将OS806所存储的地址设定在CPU752的程序计数器中。
6.其他变形例
以上,通过实施方式1~5对本发明进行了说明,但本发明并不限于这些实施方式,也包括以下这样的情况。
(1)本发明也可以是执行上述实施方式1~3及变形例的方法。
(2)此外,也可以是将这些方法通过计算机实现的计算机程序,也可以是由上述计算机程序构成的数字信号。
此外,本发明也可以是可将上述计算机程序或上述数字信号存储到计算机可读取的存储介质、例如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、半导体存储器等中而成的。此外,也可以是存储在这些存储介质中的上述计算机程序或上述数字信号。
此外,本发明也可以是将上述计算机程序或上述数字信号经由电气通信线路、无线或有线通信线路、以因特网为代表的网络、数据广播等传送的系统。
此外,本发明也可以是具备微处理器和存储器的计算机系统、上述存储器存储有上述计算机程序,上述微处理器按照上述计算机程序而动作。
此外,可以通过将上述程序或上述数字信号存储在上述存储介质中并移送、或通过将上述程序或上述数字信号经由上述网络等移动,来通过独立的其他计算机系统来实施。
(3)也可以将上述实施方式及上述变形例分别组合。
工业实用性
构成本发明的各装置及存储介质可以在处理需要保护的信息的产业、例如包括影像及声音的内容的制作、有关配给的产业、以及制造并销售处理这些信息的电器设备的产业中,经营性地或持续且反复使用。此外,构成本发明的各装置及存储介质可以在电器设备制造产业中,经营性地或持续且反复制造、销售。

Claims (12)

1.一种数据处理装置,切换允许利用保护对象的安全资源的安全模式和仅允许利用保护对象外的普通资源的普通模式,来执行程序,其特征在于,具备:
普通存储机构,存储由利用上述普通资源的1个以上的处理过程构成的普通程序;
安全存储机构,存储由利用上述安全资源的1个以上的处理过程构成、并包含至少调出上述普通程序的调出指令的安全程序;
判断机构,在安全模式下,判断接着要执行的指令是否是上述调出指令;
输出机构,在安全模式下,在判断为是上述调出指令的情况下,输出表示由该调出指令调出的上述普通程序的识别信息;
切换机构,在判断为是上述调出指令的情况下,保护安全资源,从安全模式切换为普通模式;
接受机构,在普通模式下接受上述识别信息;
读出机构,在普通模式下,从上述普通存储机构读出由所接受的上述识别信息表示的上述普通程序;以及
处理机构,在普通模式下按照所读出的普通程序动作,
上述切换机构通过中断用于控制上述安全程序的安全操作系统、启动用于控制上述普通程序的普通操作系统,从安全模式切换为普通模式,
该数据处理装置切换第1操作系统和第2操作系统,将在各操作系统中生成的进程转移到执行状态、执行等待状态、休止状态中的某一个,来执行并管理进程,
该数据处理装置还具备:
第1生成机构,在上述第1操作系统中生成第1进程;
第2生成机构,在上述第2操作系统中生成与上述第1进程对应的第2进程;
第1检测机构,在上述第1操作系统中检测上述第1进程的状态转移;
第1输出机构,在上述第1操作系统中输出表示检测到的状态转移的转移信息;
第2取得机构,在上述第2操作系统中取得上述转移信息;以及
第2转移机构,按照所取得的上述转移信息,转移上述第2进程的状态,
上述切换机构将上述第1操作系统切换为上述第2操作系统。
2.如权利要求1所述的数据处理装置,其特征在于,
上述数据处理装置还具有:
第2检测机构,在上述第2操作系统中,检测上述第2进程的状态转移;
第2输出机构,在上述第2操作系统中,输出表示检测到的状态转移的转移信息;
上述切换结构还将上述第2操作系统切换为上述第1操作系统;
上述数据处理装置还具有:
第1取得机构,在上述第1操作系统中取得上述转移信息;
第1转移机构,按照所取得的上述转移信息,转移上述第1进程的状态。
3.如权利要求2所述的数据处理装置,其特征在于,
上述数据处理装置具备在第1操作系统及第2操作系统的两者中能够访问的共用存储区域;
上述第1输出机构通过将上述转移信息写入到上述共用存储区域中,来输出上述转移信息;
上述第2取得机构通过从上述共用存储区域中读出上述转移信息,来取得上述转移信息。
4.如权利要求3所述的数据处理装置,其特征在于,
上述第2输出机构通过将上述转移信息写入到上述共用存储区域中,来输出上述转移信息;
上述第1取得机构通过从上述共用存储区域中读出上述转移信息,来取得上述转移信息。
5.如权利要求4所述的数据处理装置,其特征在于,
上述数据处理装置具有在上述第2操作系统中被管理并动作的设备;
上述第2进程是控制上述设备的驱动的设备驱动程序;
上述第2检测机构检测伴随上述设备的动作的上述第2进程的状态转移。
6.如权利要求5所述的数据处理装置,其特征在于,
在上述第1操作系统中,在上述第1进程从休止状态转移到执行状态的情况下,
上述数据处理装置按照进行排他处理的上述第1进程动作,该排他处理用于避免对上述设备重复委托处理;
在上述第1操作系统中,上述第1输出机构在上述排他处理结束后输出上述转移信息。
7.如权利要求5所述的数据处理装置,其特征在于,
上述数据处理装置还具有:
中断检测机构,在第1操作系统及第2操作系统中检测中断的发生;
中断调查机构,在上述第1操作系统中,在检测到中断的情况下,调查中断发生主因;
中断转移机构,在上述第1操作系统中,在通过中断调查机构判断为上述设备造成的中断的情况下,使上述第1进程从休止状态转移到执行状态。
8.如权利要求7所述的数据处理装置,其特征在于,
上述数据处理装置还具有通知机构,该通知机构在上述第2操作系统中,在检测到中断的情况下,输出表示检测到了中断的中断通知信息;
上述切换机构将上述第2操作系统切换为上述第1操作系统;
上述第1取得机构还在上述第1操作系统中取得上述中断通知信息;
上述中断调查机构还在上述第1操作系统中,在取得了上述中断通知的情况下,调查中断发生主因。
9.如权利要求8所述的数据处理装置,其特征在于,
在检测到了中断的情况下,上述通知机构使上述中断检测机构停止检测中断;
上述第1取得机构在取得了上述中断通知信息的情况下,对上述中断检测机构解除上述停止。
10.一种数据处理方法,在数据处理装置中使用,该数据处理装置切换允许利用保护对象的安全资源的安全模式和仅允许利用保护对象外的普通资源的普通模式,来执行程序,其特征在于,
上述数据处理装置具备:普通存储机构,存储由利用上述普通资源的1个以上的处理过程构成的普通程序;安全存储机构,存储由利用上述安全资源的1个以上的处理过程构成、并包含至少调出上述普通程序的调出指令的安全程序,该数据处理装置切换第1操作系统和第2操作系统,将在各操作系统中生成的进程转移到执行状态、执行等待状态、休止状态中的某一个,来执行并管理进程,
上述数据处理方法包含:
判断步骤,在安全模式下,判断接着要执行的指令是否是上述调出指令;
输出步骤,在安全模式下,在判断为是上述调出指令的情况下,输出表示由该调出指令调出的上述普通程序的识别信息;
切换步骤,在判断为是上述调出指令的情况下,保护安全资源,从安全模式切换为普通模式;
接受步骤,在普通模式下,接受上述识别信息;
读出步骤,在普通模式下,从上述普通存储机构读出由所接受的上述识别信息表示的上述普通程序;以及
处理步骤,在普通模式下,按照所读出的普通程序动作,
上述切换步骤通过中断用于控制上述安全程序的安全操作系统、启动用于控制上述普通程序的普通操作系统,从安全模式切换为普通模式,
上述数据处理方法还包含:
第1生成步骤,在上述第1操作系统中生成第1进程;
第2生成步骤,在上述第2操作系统中生成与上述第1进程对应的第2进程;
第1检测步骤,在上述第1操作系统中检测上述第1进程的状态转移;
第1输出步骤,在上述第1操作系统中输出表示检测到的状态转移的转移信息;
第2取得步骤,在上述第2操作系统中取得上述转移信息;以及
第2转移步骤,按照所取得的上述转移信息,转移上述第2进程的状态,
上述切换步骤将上述第1操作系统切换为上述第2操作系统。
11.如权利要求10所述的数据处理方法,在按照程序动作的上述数据处理装置中使用,其特征在于,
上述数据处理装置具备存储由多个处理过程构成的程序的存储机构;
该数据处理方法还包含:
合法性判断步骤,判断存储在上述存储机构中的上述程序是否是非法的;以及
无效化步骤,在判断为非法的情况下,使上述程序无效化。
12.如权利要求10所述的数据处理方法,在上述数据处理装置中使用,其特征在于,
上述数据处理装置具备用来存储数据的存储器机构和按照由多个处理过程构成的程序动作的处理器;
上述数据处理方法还包含:
监视步骤,在上述存储器机构与上述处理器之间,判断从上述处理器输出的目的地为上述存储器机构的传送数据是否满足传送限制条件,在判断为满足传送限制条件的情况下,抑制向上述存储器机构传送该传送数据,在判断为不满足传送限制条件的情况下,向上述存储器机构传送该传送数据。
CN2004800352503A 2003-11-28 2004-11-26 数据处理装置 Active CN1886712B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003399055 2003-11-28
JP399055/2003 2003-11-28
PCT/JP2004/017614 WO2005052769A1 (ja) 2003-11-28 2004-11-26 データ処理装置

Publications (2)

Publication Number Publication Date
CN1886712A CN1886712A (zh) 2006-12-27
CN1886712B true CN1886712B (zh) 2010-09-08

Family

ID=34631589

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800352503A Active CN1886712B (zh) 2003-11-28 2004-11-26 数据处理装置

Country Status (5)

Country Link
US (1) US7788487B2 (zh)
EP (1) EP1688816A4 (zh)
KR (1) KR101037006B1 (zh)
CN (1) CN1886712B (zh)
WO (1) WO2005052769A1 (zh)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2852777B1 (fr) * 2003-03-21 2005-06-10 Gemplus Card Int Procede de protection d'un terminal de telecommunication de type telephone mobile
EP1709510A1 (en) * 2004-01-22 2006-10-11 Koninklijke Philips Electronics N.V. Method of authorizing access to content
TWI258696B (en) * 2004-05-04 2006-07-21 Intervideo Digital Technology Computer system capable of rendering encrypted multimedia and method thereof
JP4794269B2 (ja) * 2004-11-08 2011-10-19 パナソニック株式会社 セキュアデバイスおよび中継端末
WO2006129641A1 (ja) * 2005-06-01 2006-12-07 Matsushita Electric Industrial Co., Ltd. コンピュータシステム及びプログラム生成装置
US20070016961A1 (en) * 2005-07-11 2007-01-18 Vogler Dean H Application revocation using an application revocation list in a portable electronic device
US8510846B1 (en) * 2006-06-29 2013-08-13 Google Inc. Data encryption and isolation
WO2008007305A2 (en) * 2006-07-12 2008-01-17 Koninklijke Philips Electronics N.V. Method and system for obfuscating a gryptographic function
US7698542B2 (en) * 2006-08-25 2010-04-13 Infineon Technologies Ag Circuit and method for comparing program counter values
JP2008123482A (ja) * 2006-10-18 2008-05-29 Matsushita Electric Ind Co Ltd 記憶媒体制御方法
DE102006057093B4 (de) * 2006-12-04 2008-10-02 Infineon Technologies Ag Vorrichtung zur Auswahl einer virtuellen Kartenanwendung
EP2122531B1 (en) 2007-01-19 2014-10-01 BlackBerry Limited Selectively wiping a remote device
JP4903071B2 (ja) * 2007-03-15 2012-03-21 株式会社リコー 情報処理装置、ソフトウェア更新方法及び画像処理装置
US20080244753A1 (en) * 2007-03-30 2008-10-02 Motorola, Inc. Instruction Transform for the Prevention and Propagation of Unauthorized Code Injection
US8181038B2 (en) * 2007-04-11 2012-05-15 Cyberlink Corp. Systems and methods for executing encrypted programs
US7958371B2 (en) * 2007-05-09 2011-06-07 Sony Computer Entertainment Inc. Methods and apparatus for secure operating system distribution in a multiprocessor system
WO2009004506A1 (en) * 2007-07-05 2009-01-08 Nxp B.V. Method for the improvement of microprocessor security
US9176897B2 (en) 2007-09-04 2015-11-03 Nintendo Co., Ltd. Writing area security system
WO2009031245A1 (ja) * 2007-09-04 2009-03-12 Nintendo Co., Ltd. ダウンロードセキュリティシステム
US9207990B2 (en) * 2007-09-28 2015-12-08 Hewlett-Packard Development Company, L.P. Method and system for migrating critical resources within computer systems
JP4371327B2 (ja) * 2007-10-24 2009-11-25 富士通株式会社 申請処理プログラム、申請処理方法、および仲介サーバ装置、並びに仲介サーバシステム
US8639941B2 (en) * 2007-12-05 2014-01-28 Bruce Buchanan Data security in mobile devices
US8826037B2 (en) * 2008-03-13 2014-09-02 Cyberlink Corp. Method for decrypting an encrypted instruction and system thereof
US20090292931A1 (en) * 2008-05-24 2009-11-26 Via Technology, Inc Apparatus and method for isolating a secure execution mode in a microprocessor
US8225390B2 (en) * 2008-06-27 2012-07-17 Microsoft Corporation Licensing protected content to application sets
US9367331B2 (en) 2009-07-20 2016-06-14 Google Technology Holdings LLC Multi-environment operating system
US9372711B2 (en) 2009-07-20 2016-06-21 Google Technology Holdings LLC System and method for initiating a multi-environment operating system
US9348633B2 (en) 2009-07-20 2016-05-24 Google Technology Holdings LLC Multi-environment operating system
US9389877B2 (en) 2009-07-20 2016-07-12 Google Technology Holdings LLC Multi-environment operating system
JP2013507698A (ja) * 2009-10-15 2013-03-04 エフティーエス コンピューターテクニク ジーエムビーエイチ 安全性に関連したおよび安全性に関連していないソフトウェア・コンポーネントを1つのハードウェア・プラットフォーム上で実行する方法
CN102725737B (zh) * 2009-12-04 2016-04-20 密码研究公司 可验证防泄漏的加密和解密
JP5565040B2 (ja) * 2010-03-30 2014-08-06 富士通株式会社 記憶装置、データ処理装置、登録方法、及びコンピュータプログラム
US20120079282A1 (en) * 2010-06-28 2012-03-29 Lionstone Capital Corporation Seamless end-to-end data obfuscation and encryption
JP5573489B2 (ja) * 2010-08-23 2014-08-20 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
JP5133387B2 (ja) * 2010-10-22 2013-01-30 シャープ株式会社 複合機、制御プログラムおよび記録媒体
WO2012086106A1 (ja) * 2010-12-21 2012-06-28 パナソニック株式会社 仮想計算機システム及び仮想計算機システム制御方法
CN102542219A (zh) * 2010-12-31 2012-07-04 富泰华工业(深圳)有限公司 具有记忆功能的电子装置及其存储卡读取方法
US20120192100A1 (en) * 2011-01-25 2012-07-26 Motorola-Mobility, Inc. Method and apparatus for locking and unlocking multiple operating system environments with a single gesture input
US9354900B2 (en) 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
JP5775738B2 (ja) * 2011-04-28 2015-09-09 富士通株式会社 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム
US9076020B2 (en) * 2011-05-13 2015-07-07 Microsoft Technology Licensing, Llc Protected mode for mobile communication and other devices
US20120331303A1 (en) * 2011-06-23 2012-12-27 Andersson Jonathan E Method and system for preventing execution of malware
US9710982B2 (en) 2011-12-23 2017-07-18 Microsoft Technology Licensing, Llc Hub key service
CN104040552B (zh) * 2011-12-29 2018-03-30 英特尔公司 安全地分发软件的方法、处理器、计算设备及安全地存储和执行应用的系统
KR20130101632A (ko) * 2012-02-16 2013-09-16 삼성전자주식회사 콘텐츠 보안 장치 및 방법
US20130293573A1 (en) 2012-05-02 2013-11-07 Motorola Mobility, Inc. Method and Apparatus for Displaying Active Operating System Environment Data with a Plurality of Concurrent Operating System Environments
US9342325B2 (en) 2012-05-17 2016-05-17 Google Technology Holdings LLC Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device
US9003475B1 (en) * 2012-06-05 2015-04-07 Symantec Corporation Systems and methods for applying data-loss-prevention policies
US9230076B2 (en) * 2012-08-30 2016-01-05 Microsoft Technology Licensing, Llc Mobile device child share
US10069703B2 (en) 2012-10-31 2018-09-04 Elwha Llc Methods and systems for monitoring and/or managing device data
US10091325B2 (en) 2012-10-30 2018-10-02 Elwha Llc Methods and systems for data services
US9619497B2 (en) 2012-10-30 2017-04-11 Elwah LLC Methods and systems for managing one or more services and/or device data
US10216957B2 (en) * 2012-11-26 2019-02-26 Elwha Llc Methods and systems for managing data and/or services for devices
US9626503B2 (en) 2012-11-26 2017-04-18 Elwha Llc Methods and systems for managing services and device data
US9088450B2 (en) 2012-10-31 2015-07-21 Elwha Llc Methods and systems for data services
US9886595B2 (en) * 2012-12-07 2018-02-06 Samsung Electronics Co., Ltd. Priority-based application execution method and apparatus of data processing device
US9846656B2 (en) * 2013-04-17 2017-12-19 Laurence H. Cooke Secure computing
GB2515047B (en) * 2013-06-12 2021-02-10 Advanced Risc Mach Ltd Security protection of software libraries in a data processing apparatus
KR20150070890A (ko) * 2013-12-17 2015-06-25 삼성전자주식회사 파일 처리 방법 및 이를 지원하는 전자 장치
JP6265783B2 (ja) * 2014-03-06 2018-01-24 キヤノン株式会社 暗号化/復号化システム及びその制御方法、並びにプログラム
US20160048688A1 (en) * 2014-08-14 2016-02-18 Google Inc. Restricting System Calls using Protected Storage
US20160147765A1 (en) * 2014-11-25 2016-05-26 Quixey, Inc. Techniques for Using Similarity to Enhance Relevance in Search Results
JP2016116134A (ja) * 2014-12-16 2016-06-23 パナソニックIpマネジメント株式会社 署名検証装置、署名生成装置、署名処理システム、署名検証方法及び署名生成方法
US10432547B2 (en) * 2016-03-18 2019-10-01 Hewlett-Packard Development Company, L.P. Verifying functionality restrictions of computing devices
JP7194736B2 (ja) * 2017-12-18 2022-12-22 コンヴィーダ ワイヤレス, エルエルシー IoT/M2Mサービス層のデータまたはサービスに対するコンテキストアウェア認証
KR20200021815A (ko) * 2018-08-21 2020-03-02 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
KR20200101211A (ko) * 2019-02-19 2020-08-27 삼성전자주식회사 전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법
CN114051036A (zh) * 2021-09-23 2022-02-15 通号城市轨道交通技术有限公司 轨道交通信号系统数据同步方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002189633A (ja) * 2000-12-21 2002-07-05 Nec Corp 仮想空間のメモリ保護方法及び装置
CN1425157A (zh) * 1999-12-23 2003-06-18 通用仪器公司 双模式处理器
CN1430152A (zh) * 2001-12-31 2003-07-16 武汉瑞达电子有限公司 一卡多用安全智能卡

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809160A (en) * 1985-10-28 1989-02-28 Hewlett-Packard Company Privilege level checking instruction for implementing a secure hierarchical computer system
JPS62103146A (ja) * 1985-10-30 1987-05-13 Matsushita Electric Ind Co Ltd プリンタ−ヘツド制御回路
JPS62205443A (ja) * 1986-03-06 1987-09-10 Nec Corp アドレス発生回路
US5412717A (en) 1992-05-15 1995-05-02 Fischer; Addison M. Computer system security method and apparatus having program authorization information data structures
ES2128393T3 (es) 1992-05-15 1999-05-16 Addison M Fischer Metodo y aparato para sistemas de ordenador con estructuras de datos de informacion para programas de autorizacion.
JPH08227356A (ja) 1994-12-21 1996-09-03 Tec Corp データ処理装置
JPH11175355A (ja) * 1997-12-15 1999-07-02 Sony Corp 情報処理装置及び方法、オペレーティングシステム並びにコンピュータ読み取り可能な媒体
US7290284B1 (en) * 1999-01-11 2007-10-30 Myspace Ab System for data processing a security critical activity
JP4226760B2 (ja) 2000-05-08 2009-02-18 株式会社東芝 マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP2001256066A (ja) 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置
US7475398B2 (en) * 2000-08-01 2009-01-06 Wind River Systems, Inc. System and method for implementing a smart system call
JP2002251326A (ja) 2001-02-22 2002-09-06 Hitachi Ltd 耐タンパ計算機システム
JP2002353960A (ja) 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
GB2376761A (en) * 2001-06-19 2002-12-24 Hewlett Packard Co An arrangement in which a process is run on a host operating system but may be switched to a guest system if it poses a security risk
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
JP2003280756A (ja) * 2002-03-25 2003-10-02 Seiko Epson Corp 情報処理装置のデバッグ手段
US7127579B2 (en) * 2002-03-26 2006-10-24 Intel Corporation Hardened extended firmware interface framework
US7383587B2 (en) 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
GB2396451B (en) 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Delivering data processing requests to a suspended operating system
JP4447471B2 (ja) 2002-11-18 2010-04-07 エイアールエム リミテッド 安全処理システムにおける例外タイプ
US7539853B2 (en) 2002-11-18 2009-05-26 Arm Limited Handling interrupts in data processing of data in which only a portion of a function has been processed
US7370210B2 (en) * 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
GB2402785B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Processor switching between secure and non-secure modes
GB2396712B (en) 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Handling multiple interrupts in a data processing system utilising multiple operating systems
CN1871568B (zh) * 2003-08-26 2010-04-28 松下电器产业株式会社 程序执行设备
US7076637B2 (en) * 2003-10-29 2006-07-11 Qualcomm Inc. System for providing transitions between operating modes of a device
US7120794B2 (en) * 2003-10-29 2006-10-10 Qualcomm Inc. System for invoking a privileged function in a device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1425157A (zh) * 1999-12-23 2003-06-18 通用仪器公司 双模式处理器
JP2002189633A (ja) * 2000-12-21 2002-07-05 Nec Corp 仮想空間のメモリ保護方法及び装置
CN1430152A (zh) * 2001-12-31 2003-07-16 武汉瑞达电子有限公司 一卡多用安全智能卡

Also Published As

Publication number Publication date
KR20060107826A (ko) 2006-10-16
WO2005052769A1 (ja) 2005-06-09
US7788487B2 (en) 2010-08-31
EP1688816A1 (en) 2006-08-09
CN1886712A (zh) 2006-12-27
US20070113079A1 (en) 2007-05-17
KR101037006B1 (ko) 2011-05-25
EP1688816A4 (en) 2012-04-25

Similar Documents

Publication Publication Date Title
CN1886712B (zh) 数据处理装置
EP1441340B1 (en) Mutual authentication method, recording apparatus, reproducing apparatus, and recording medium
CN101946252B (zh) 信息处理装置及其控制方法
EP1069491B1 (en) Contents management method, contents management apparatus, and recording medium
CN105745665B (zh) 具有增强的隐私的安全的车辆数据管理
JP4828517B2 (ja) プログラム変換装置及びプログラム実行装置
US6158004A (en) Information storage medium and security method thereof
JP4829632B2 (ja) データ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体
JP4170466B2 (ja) コマンド認証方法
CN102855452B (zh) 基于加密组块的快速数据加密策略遵从
WO2010041462A1 (ja) 情報処理装置、情報処理方法、情報処理プログラム及び集積回路
CN102945355A (zh) 基于扇区映射的快速数据加密策略遵从
JP4629416B2 (ja) データ処理装置
JPWO2007145220A1 (ja) 書き換え可能な回路を備える装置、更新システム、更新方法、更新プログラム、及び集積回路
JP2007310601A (ja) マイクロコンピュータおよびそのソフトウェア保護方法
JP4791741B2 (ja) データ処理装置とデータ処理方法
CN101853345A (zh) 外部存储装置、用于处理存储在外部存储装置中的数据的方法和信息处理设备
JP2007249263A (ja) 持ち運び可能なデータストレージデバイスおよびデータの書き込みおよび読み出し制御方法
JP2022109024A (ja) 車両制御システム
WO2022130558A1 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP3967491B2 (ja) 記録装置
JP2006043931A (ja) 認証出力システム、ネットワークデバイス、デバイス利用装置、出力制御プログラムおよび認証プログラム、並びに認証出力方法
RU31015U1 (ru) Устройство защиты информации, хранящейся в компьютере и/или на машиночитаемом носителе
JP4792868B2 (ja) 実行権限委譲システム,実行権限委譲方法
CN115577352A (zh) 车规级芯片切换控制方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CI01 Publication of corrected invention patent application

Correction item: Full text of the prospectus (abstract, abstract, drawings, claims, specifications)

Correct: Re publish normal text

False: The content of the public text is incorrect

Number: 52

Volume: 22

CI02 Correction of invention patent application

Correction item: Full text of the prospectus (abstract, abstract, drawings, claims, specifications)

Correct: Re publish normal text

False: The content of the public text is incorrect

Number: 52

Page: The title page

Volume: 22

ERR Gazette correction

Free format text: CORRECT: NOTIFICATION OF PUBLICATION FULL TEXT (ABSTRACT, FIGURE OF ABSTRACT, RIGHT-CLAIMING DOCUMENT, INSTRUCTIONS); FROM: PUBLICATION ERROR TEXT TO: ANNOUNCE THE NORMAL TEXT AGAIN

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.

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

Effective date of registration: 20170206

Address after: Gyeonggi Do, South Korea

Patentee after: Sk Hynix Inc.

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

Patentee before: PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AMERICA