处理数据的制作方法

文档序号:9708691阅读:445来源:国知局
处理数据的制作方法
【技术领域】
[0001] 本发明的实施例涉及数据处理,特别是在智能卡上的数据处理。
【背景技术】
[0002] 现代智能卡应用要求允许高度可变性的数据保护机制。

【发明内容】

[0003] 第一实施例涉及一种用于执行程序代码的方法,该方法包括:
[0004] -基于触发器来检查存储器访问策略资源;以及
[0005] -将当前程序计数器与由存储器访问策略资源提供的程序计数器信息进行比较, 并且在当前程序计数器与程序计数器信息的比较满足预定义的条件的情况下,执行存储器 访问策略检查。
[0006] 第二实施例涉及一种包括处理单元的设备,其中该处理单元被设置用于:
[0007] -基于触发器来检查存储器访问策略资源;以及
[0008] -将当前程序计数器与由存储器访问策略资源提供的程序计数器信息进行比较, 并且在当前程序计数器与程序计数器信息的比较满足预定义的条件的情况下,执行存储器 访问策略检查。
[0009] 第三实施例涉及一种智能卡,包括:
[0010] -处理单元;以及
[0011] -存储器,
[0012] -其中该处理单元被布置用于:
[0013] -基于触发器来检查存储器访问策略资源;以及
[0014] -将当前程序计数器与由存储器访问策略资源提供的程序计数器信息进行比较, 并且在当前程序计数器与程序计数器信息的比较满足预定义的条件的情况下,执行存储器 访问策略检查。
[0015] 第四实施例针对一种用于处理数据的设备,包括:
[0016] -用于基于触发器来检查存储器访问策略资源的装置;以及
[0017] -用于将当前程序计数器与由存储器访问策略资源提供的程序计数器信息进行比 较,并且在当前程序计数器与程序计数器信息的比较满足预定义的条件的情况下,执行存 储器访问策略检查的装置。
[0018] 第四实施例针对一种能够直接加载到数字处理设备的存储器中的计算机程序产 品,包括用于执行这里描述的方法的步骤的软件代码部分。
【附图说明】
[0019] 参照附图示出并说明了实施例。附图用来说明基本的原理,使得仅说明对理解基 本原理所必需的方面。附图并不是按比例的。在附图中,相同的附图标记表示类似的特征。
[0020] 图1示出了包括被执行以便验证当前执行的代码是否满足要求的访问策略的这 样的步骤的示意性流程图。
[0021] 图2示出了包括微控制器和存储器的示意性硬件框图。
【具体实施方式】
[0022] 所暗示的示例例如提供了用于微控制器的机构以仅在满足特定预定义和/或用 户配置的条件时允许某个代码段的执行。
[0023] 例如,仅在以下条件中的至少一个条件被满足的情况下执行机密密钥处置代码:
[0024] -通信接口被去激活;
[0025] -针对命令提供对机密密钥处置代码的访问;
[0026] -用于对密钥执行操作的应用特定条件被满足。
[0027] 对数据区域的访问仅可以在指定的情况下和/或用户配置的条件被满足而被准 许。例如,对包含(例如)秘密密钥的存储器的访问仅可以在以上提到的条件被满足的情 况下被允许。
[0028] 这里描述的示例可以特别地允许硬件来解决这些问题并且在预定义的条件被满 足的情况下灵活地准许存储器访问。
[0029] 示例还可以提供应用特定条件,在该应用特定条件下,允许对存储器(例如,到存 储器的至少一个部分)的访问。这样的条件被称为存储器访问策略(MAP)。
[0030] 存储器可以用MAP来标记。存储器可以包括代码和数据。这样的存储器可以称为 任何粒度水平处的存储器部分。
[0031] 在执行期间,处理单元(例如,中央处理单元一一CPU)可以执行以下检查:
[0032] -用于被执行的代码的MAP被满足?
[0033]-用于被访问的数据的MAP被满足?
[0034] 在检查中的任何检查失败的情况下,可以触发预定义动作,例如可以敲响警报和/ 或可以发出通知。
[0035] 例如,可以提供两种模式以用于执行MAP检查:
[0036] -在AUT0模式中,处理单元在可配置的预定义时间区间处执行MAP检查。
[0037] -在MANUAL模式中,可以使用特殊操作(操作代码)来触发MAP检查。
[0038] 根据示例性实施例,可以使用以下实体:
[0039] -MAP 表;
[0040] -MAP_STATUS 寄存器;
[0041] -MAP_CFGx 寄存器;
[0042] -操作代码:ASSERTMAP。
[0043] 下文中进一步详细地解释这些实体:
[0044] MAP 表
[0045] MAP表可以被构建为具有以下条目(列):
[0046] -存储器的开始地址;
[0047] -大小;
[0048] -MAP 值;
[0049] -访问许可。
[0050] MAP表可以包括针对给定存储器地址范围的(所需的)存储器访问策略(对应于 MAP值)的列表。存储器地址范围可以由开始地址和大小来限定。
[0051] MAP STATUS 寄存器
[0052] 这一 MAP_STATUS寄存器中的每个位可以对应于在当前执行的情境中被满足的应 用特定访问策略。可以由应用逻辑来管理这些位的关联和设置。
[0053] MAP CFGx 寄存器
[0054] 这些是允许配置MAP检查的模式(即AUTO模式或MANUAL模式)的配置寄存器。
[0055] 在AUT0模式中,在MAP_CFGx寄存器中定义的特定时间区间处执行MAP检查。因 此,在AUT0模式中,可以有可能配置在其处MAP检查被触发的这样的时间区间。
[0056] 在MANUAL模式中,可以在代码的各种位置中插入特殊操作代码"ASSERTMAP"以显 式地触发MAP检查。
[0057] 另外可以使用MAP_CFGx寄存器来配置MAP表的位置和大小。
[0058] 橾作代码:ASSERTMAP
[0059] 这是(手动地)触发MAP检查的操作代码(指令)。
[0060] 操也
[0061 ] 在芯片(硬件)的启动期间,MAP_CFGx寄存器被配置有默认值。这样的默认值可 以是在预定时间区间处触发MAP检查的AUT0模式。另外,可以重置MAP_STATUS寄存器。此 外,可以配置MAP表位置和/或大小。
[0062] 在操作期间,基于应用特定策略被满足,应用可以适当地设置MAP_STATUS寄存 器。
[0063] 基于MAP检查的触发,硬件可以验证当前正在被执行的代码满足要求的访问策 略。
[0064] 图1示出了包括被执行以便验证当前正在被执行的代码是否满足要求的访问策 略这样的步骤的示意性流程图。
[0065] 在状态101中,发出触发器102以执行MAP检查。在步骤103中,基于当前程序计 数器来执行对MAP表的查找。在步骤104中,检查程序计数器的当前值在MAP表中是否具 有条目。如果没有,在步骤105中继续程序的执行。如果MAP表包括与程序计数器的当前 值对应的这样的条目,则在步骤106中执行访问策略检查。
[0066] 程序计数器的当前值选择MAP表中的条目。从这一条目,取回MAP,其对应于存储 器访问策略MAP。在步骤106中如以下检查这一 MAP :
[0067] MAP&MAP_STATUS = = MAP ?
[0068] 在步骤107中,确定MAP是否被满足。在肯定的情况下,分叉到步骤105。如果没 有MAP没有被满足,可以触发预定义动作,例如在步骤108中可以敲响警报和/或发出通 知。
[0069] 可以针对数据访问执行相似类型的检查。为了改善性能,MAP_CFGx寄存器可以包 括其中能够关闭针对数据访问的检查的设置。例如,MAP表可以包括与安全数据区域对应 的条目。在请求地址总线上的数据之前,处理单元可以用MAP表执行检查。这样的检查可 以伴随每次数据取读而发生。
[0070] 在下文中,示出样本C代码以更详细解释所呈现的方案:
[0071] #pragma MAPENTRY(MAP_VALUE_1,X)//这一编译指示向 MAP 表中生成条目。'X' 指示"执行"许可。在这一示例中,MAP_VALUE_1被分配OxCOOO。
[0072] #pragma MAPEXIT ;这一编译指示是用于先前MAPENTRY的中止
[0073] //MAP表结构的示例:
[0074]
[0076] 主程序可以是如下的无限while循环:
[0077]

[007
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1