Patents by Inventor Clifford Liem

Clifford Liem has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20160050069
    Abstract: The present disclosure provides a system for media path security includes an authoring system having a content stream transform and corrupter for corrupting content data and providing decorrupting data, a media container for conveying the corrupted content data and decorrupting data, and a client system having a fix-up component for fixing the corrupted content data in dependence upon the decorrupting data. A client system is also provided as having an input for receiving a media container and a fix-up component for fixing the corrupted content data in dependence upon the decorrupting data.
    Type: Application
    Filed: March 28, 2013
    Publication date: February 18, 2016
    Inventors: Andy Griffin, Nick Pelis, Jonathan Emmett, Dan Murdock, Phil Eisen, James Muir, Jianping Wu, Clifford Liem
  • Patent number: 9195476
    Abstract: Provided are a system and method for software obfuscation for transforming a program from a first form to more secure form that is resistant to static and dynamic attacks. The method utilizes a sophisticated pre-analysis step to comprehend the function-call structure, the function-call layout, and the entire function call graph of the program, in order to determine strategic points in the program for changing the program. This provides resistance to static attacks by transforming the original function-call layout to a new layout. Changing the layout may include changing the function boundaries. The method also provides resistance to static attacks by transforming the original function-call structure to a new structure to be able to self modify as the transformed program executes in memory. Changing the function-call structure may include modifying when and how functions are called, and/or choosing random paths of execution that lead to the same result.
    Type: Grant
    Filed: April 4, 2012
    Date of Patent: November 24, 2015
    Assignee: Irdeto B.V.
    Inventor: Clifford Liem
  • Publication number: 20150324590
    Abstract: In the present disclosure, a hash function is computed over a known image, for example, an address range in a program. The result of the hash function is known to be the same at two distinct points in time, before the program is run, i.e. signing at build-time, and during the running of the program, i.e. run time. The value that the programmer wishes to hide, i.e. the secret value, is also known at build-time. At build-time, the secret value is combined with the hash in such a way that the combining operation can be reversed at run time. This combined value, i.e. the salt, is stored along with the program. Later, at runtime, the program computes the same hash value as was computed at signing time, and does the reverse combining operation in order to reveal the secret value.
    Type: Application
    Filed: March 26, 2012
    Publication date: November 12, 2015
    Applicant: IRDETO CANADA CORPORATION
    Inventors: Robert KRTEN, Hongrul DONG, Clifford LIEM
  • Publication number: 20150113518
    Abstract: A method and system for renewing software at the component-level is provided. A client program includes a base component for loading a software component into at least one loadable region of the program to update the program. Code in the software component is for writing state data associating the state of the update in storage, upon execution of the software component, and testing the state data to verify condition of the updated program and disallowing rollback and roll-forward attacks, the state data comprising hash chain values. The state data for verifying the correctness of the updated program is entangled with application data used for the program functionality. A server includes: an update pool having a plurality of software updates deployed in each client, and a policy control for monitoring and controlling at least one of: the length of time the client runs until the software update is invoked, a chain of the updates; and the granularity of the update.
    Type: Application
    Filed: March 22, 2012
    Publication date: April 23, 2015
    Applicant: Irdeto Canada Corporation
    Inventors: Clifford Liem, Hongrui Dong, Sam Martin, Yuan Xiang Gu, Michael Weiner
  • Publication number: 20150113640
    Abstract: The present disclosure provides a description of a computer implemented method and system for protecting a software program from attack during runtime. The system comprises a plurality of software blocks for providing desired functions during execution of a software program and a trusted address server having a table for mapping predetermined source tokens to destination tokens. The trusted address server couples each of the plurality of software blocks for receipt of predetermined source tokens from any one of the plurality of software blocks, while returning a mapped destination token from the predetermined destination tokens to said any one of the plurality of software blocks in dependence upon the table for mapping predetermined source tokens to destination tokens.
    Type: Application
    Filed: February 10, 2012
    Publication date: April 23, 2015
    Applicant: IRDETO CANADA CORPORATION
    Inventors: Robert Krten, Jonathan Emmett, Clifford Liem
  • Patent number: 8990785
    Abstract: A system and method for producing a massive number of diverse program instances so as to deter differential attacks, collusion, and similar hostile actions. Code portions are shown to be defined in various manners, instantiated, and aggregated. The system and method establishes a very large number of program instances that may be deployed. Furthermore, testing is accomplished over a minimal set of instances to provide for high test coverage and high confidence over the fully deployed in stance set without incurring a high penalty.
    Type: Grant
    Filed: July 29, 2010
    Date of Patent: March 24, 2015
    Inventors: Robert Durand, Clifford Liem, Philip Allan Eisen
  • Publication number: 20140013427
    Abstract: A method and system is provided to automatically propagate dependencies from one part of a software application to another previously unrelated part. Propagation of essential code functionality and data to other parts of the program serves to augment common arithmetic functions with Mixed Boolean Arithmetic (MBA) formulae that are bound to pre-existing parts of the program. A software application is first analyzed on a compiler level to determine the program properties which hold in the program. Thereafter, conditions are constructed based on these properties and encoded in formulae that encode the condition in data and operations. Real dependencies throughout the application are therefore created such that if a dependency is broken the program will no longer function correctly.
    Type: Application
    Filed: March 24, 2011
    Publication date: January 9, 2014
    Applicant: IRDETO B.V.
    Inventors: Clifford Liem, Yongxin Zhou, Yuan Xiang Gu
  • Publication number: 20140006803
    Abstract: A system and method is disclosed for securely binding an arbitrary program to an authorized instance of a generic execution platform. Once the binding process occurs, the protected software application will not exhibit correct behavior unless run on the execution platform to which it is bound. The system and method withstands repeated attacks which tamper with the software application and the execution platform. The system and method present a mechanism to bind a program, P, to any un-trusted execution platform, E, which contains a Trusted Signing Authority (TSA). The TSA may take many alternate forms including a trusted platform module, secure processor, kernel driver, and hardened software agents.
    Type: Application
    Filed: March 21, 2011
    Publication date: January 2, 2014
    Applicant: IRDETO B.V.
    Inventors: Michael Louis Bodis, Jiayuan Sui, Grant Stewart Goodes, Clifford Liem
  • Publication number: 20130125090
    Abstract: A system and method for producing a massive number of diverse program instances so as to deter differential attacks, collusion, and similar hostile actions. Code portions are shown to be defined in various manners, instantiated, and aggregated. The system and method establishes a very large number of program instances that may be deployed. Furthermore, testing is accomplished over a minimal set of instances to provide for high test coverage and high confidence over the fully deployed instance set without incurring a high testing penalty.
    Type: Application
    Filed: July 29, 2010
    Publication date: May 16, 2013
    Applicant: IRDETO CANADA CORPORATION
    Inventors: Robert Durand, Clifford Liem, Philip Allan Eisen
  • Publication number: 20130014275
    Abstract: A linker or loader, and associated method, is described, whereby the application of security transformations to object-code modules can be deferred until link or load-time, through, for example, memory relocation, selection from diverse instances of a module, and late-binding of constants. This provides several benefits over conventional source-to-source security transformations. These deferred security transformations can be applied in a very light-weight manner and create many opportunities for diversity in the resulting executable program, enhancing security, while at the same time minimizing the impact on execution performance and correctness, and reducing the complexity of debugging.
    Type: Application
    Filed: March 31, 2010
    Publication date: January 10, 2013
    Applicant: IRDETO CANADA CORPORATION
    Inventors: Grant Stewart Goodes, Clifford Liem
  • Publication number: 20130014274
    Abstract: A flexible software library in which the software modules are defined as an abstract intermediate representation. The flexible library allows security transformation and performance attribute selections to be made by the end-user, rather than the library creator. Furthermore, since the flexible library contains an abstract representation of the software modules, the library can also be provisioned to contain an arbitrary number of named instances, representing specific sets of values for security and performance decisions, along with the corresponding native object-code resulting from those decisions. This permits distribution of software modules in a completely platform-independent manner while avoiding the disclosure of proprietary information, such as source-files.
    Type: Application
    Filed: March 31, 2010
    Publication date: January 10, 2013
    Applicant: IRDETO CANADA CORPORATION
    Inventors: Grant Stewart Goodes, Clifford Liem
  • Publication number: 20130007881
    Abstract: A system and method for constructing variably-timed operation paths and applying those paths to any algorithm. In particular, the system and method may be applied to cryptography algorithms as a means to resist side-channel, repeated invocation, and any similar attacks based on the physical characteristics of a system for a given software implementation. The method has the benefit of being generally applicable to any algorithm and has the ability to constrain performance to known timing windows.
    Type: Application
    Filed: March 25, 2010
    Publication date: January 3, 2013
    Applicant: IRDETO CANADA CORPORATION
    Inventors: Clifford Liem, Carlos Nahas
  • Publication number: 20120284792
    Abstract: Provided are a system and method for software obfuscation for transforming a program from a first form to more secure form that is resistant to static and dynamic attacks. The method utilizes a sophisticated pre-analysis step to comprehend the function-call structure, the function-call layout, and the entire function call graph of the program, in order to determine strategic points in the program for changing the program. This provides resistance to static attacks by transforming the original function-call layout to a new layout. Changing the layout may include changing the function boundaries. The method also provides resistance to static attacks by transforming the original function-call structure to a new structure to be able to self modify as the transformed program executes in memory. Changing the function-call structure may include modifying when and how functions are called, and/or choosing random paths of execution that lead to the same result.
    Type: Application
    Filed: April 4, 2012
    Publication date: November 8, 2012
    Applicant: IRDETO CANADA CORPORATION
    Inventor: Clifford Liem
  • Patent number: 7325232
    Abstract: A compiler for multiple processor and distributed memory architectures is described. The compiler uses a high-level language to represent a task-level network of behaviors that describes an embedded system. The compiler maps a plurality of tasks and data onto a multiple processor, distributed memory hardware architecture. The mapping includes describing a task-level network of behaviors, each of the task-level network of behaviors being related through control and data flow. The mapping further includes predicting a schedule of tasks for the task-level network of behaviors and allocating the plurality of tasks and data to at least one of the multiple processors and to at least one of distributed memory, respectively, in response to the predicted schedule of tasks.
    Type: Grant
    Filed: January 25, 2002
    Date of Patent: January 29, 2008
    Assignee: Improv Systems, Inc.
    Inventor: Clifford Liem
  • Publication number: 20020124012
    Abstract: A compiler for multiple processor and distributed memory architectures is described. The compiler uses a high-level language to represent a task-level network of behaviors that describes an embedded system. The compiler maps a plurality of tasks and data onto a multiple processor, distributed memory hardware architecture. The mapping includes describing a task-level network of behaviors, each of the task-level network of behaviors being related through control and data flow. The mapping further includes predicting a schedule of tasks for the task-level network of behaviors and allocating the plurality of tasks and data to at least one of the multiple processors and to at least one of distributed memory, respectively, in response to the predicted schedule of tasks.
    Type: Application
    Filed: January 25, 2002
    Publication date: September 5, 2002
    Inventors: Clifford Liem, Francois Breant, Alex Wu