US 11,783,013 B2
Protected processing of operations
Paul Hubert Matthias Hutschemaekers, Sint-Oedenrode (NL); Maarten Peter Bodlaender, Noord Brabant (NL); and Oscar Garcia Morchon, Eindhoven (NL)
Assigned to Koninklijke Philips N.V., Eindhoven (NL)
Appl. No. 17/414,056
Filed by KONINKLIJKE PHILIPS N.V., Eindhoven (NL)
PCT Filed Dec. 11, 2019, PCT No. PCT/EP2019/084533
§ 371(c)(1), (2) Date Jun. 15, 2021,
PCT Pub. No. WO2020/126711, PCT Pub. Date Jun. 25, 2020.
Claims priority of application No. 18213733 (EP), filed on Dec. 18, 2018.
Prior Publication US 2022/0058244 A1, Feb. 24, 2022
Int. Cl. G06F 21/14 (2013.01)
CPC G06F 21/14 (2013.01) 19 Claims
OG exemplary drawing
 
1. A method comprising:
receiving an original computer program,
wherein the original computer program comprises a plurality of code blocks,
wherein the code blocks comprise computer instructions,
wherein the original computer program is arranged to operate on input data within an input space,
wherein the original computer program is arranged to operate to follow an execution path through the plurality of code blocks when receiving the input data,
wherein the input space is segmented into at least one segment according to a segmentation,
wherein each segment comprises a subset of the input space,
wherein each subset of the input space contains inputs that correspond to a same execution path;
generating an updated computer program based on the original computer program, wherein generating the updated computer program comprises:
including a plurality of updated code blocks in the updated computer program;
generating selection code, wherein the selection codes is arranged to select an updated code block of the plurality of updated code blocks in dependence on the input data,
wherein updated computer program comprises the selection code and transition code,
wherein the transition code comprises a transition of an execution point to the updated block selected by the selection code,
wherein the selection code is configured to cause the updated computer program to segment the input space according to an updated segmentation,
wherein the updated segmentation is different from the segmentation of the original computer program,
wherein the original computer program and the updated computer program are arranged to generate at least an identical result,
wherein the identical result depends on the input data; and
flattening the computer program by including in the updated computer program a dispatcher and replacing a transition code, by an updated transition code,
wherein the transition code comprises a transition from a first code block to a second code block,
wherein the updated transition code comprises a transition from the first code block to the dispatcher and a transition from the dispatcher to the second code block.