Patents by Inventor Yongxin Zhou

Yongxin Zhou 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: 20210319125
    Abstract: The present invention provides a computing-oriented system and method to protect information flow inside and between software programs via relational randomization using relations over binary strings and their mathematical attributes. While performing the same functionality, a randomized software program is protected because obtaining information of original data or code requires both recognizing systems of power relations and solving relational systems which are mathematically hard and computationally intractable. Randomized relations also secure the data information flow to and from software programs with encryption and decryption keys. Software keys are also generated for the integrity verification of a protected application system. Furthermore, the system and method in this invention generate obfuscated, diversified software programs in a plurality of unified code formats.
    Type: Application
    Filed: August 7, 2017
    Publication date: October 14, 2021
    Inventor: Yongxin Zhou
  • Patent number: 10402547
    Abstract: A method for rendering a software program resistant to reverse engineering analysis. At least one first expression in a computational expression or statement of the software program is replaced with a second expression. The first expression being simpler than said second expression and the second expression being based on a value or variables found in said first expression. The second expression produces a value which preserves the value of said first expression. The conversion of the first expression is performed according to a mathematical identity of the form ?i=1k ai ei=E, where ai, are coefficients, ei, are bitwise expressions, whether simple or complex, and E is said first expression.
    Type: Grant
    Filed: April 8, 2015
    Date of Patent: September 3, 2019
    Assignee: IRDETO B.V.
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Patent number: 9965623
    Abstract: Systems and techniques for securing accessible computer-executable program code and systems are provided. One or more base functions may be generated and blended with existing program code, such that it may be difficult or impossible for a potential attacker to distinguish the base functions from the existing code. The systems and code also may be protected using a variety of other blending and protection techniques, such as fractures, variable dependent coding, dynamic data mangling, and cross-linking, which may be used individually or in combination, and/or may be blended with the base functions.
    Type: Grant
    Filed: March 28, 2013
    Date of Patent: May 8, 2018
    Assignee: IRDETO B.V.
    Inventors: Harold Johnson, Yuan Xiang Gu, Michael Wiener, Yongxin Zhou
  • Patent number: 9910971
    Abstract: Methods and devices for thwarting code and control flow based attacks on software. The source code of a subject piece of software is automatically divided into basic blocks of logic. Selected basic blocks are amended so that their outputs are extended. Similarly, other basic blocks are amended such that their inputs are correspondingly extended. The amendments increase or create dependencies between basic blocks such that tampering with one basic block's code causes other basic blocks to malfunction when executed.
    Type: Grant
    Filed: January 12, 2016
    Date of Patent: March 6, 2018
    Assignee: IRDETO B.V.
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Patent number: 9906360
    Abstract: Systems and techniques for securing accessible computer-executable program code and systems are provided. One or more base functions may be generated and blended with existing program code, such that it may be difficult or impossible for a potential attacker to distinguish the base functions from the existing code. The systems and code also may be protected using a variety of other blending and protection techniques, such as fractures, variable dependent coding, dynamic data mangling, and cross-linking, which may be used individually or in combination, and/or may be blended with the base functions.
    Type: Grant
    Filed: March 28, 2013
    Date of Patent: February 27, 2018
    Assignee: IRDETO B.V.
    Inventors: Harold Johnson, Yuan Xiang Gu, Michael Wiener, Yongxin Zhou
  • Patent number: 9811666
    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: Grant
    Filed: March 24, 2011
    Date of Patent: November 7, 2017
    Assignee: IRDETO B.V.
    Inventors: Clifford Liem, Yongxin Zhou, Yuan Xiang Gu
  • Publication number: 20160239647
    Abstract: Methods and devices for thwarting code and control flow based attacks on software. The source code of a subject piece of software is automatically divided into basic blocks of logic. Selected basic blocks are amended so that their outputs are extended. Similarly, other basic blocks are amended such that their inputs are correspondingly extended. The amendments increase or create dependencies between basic blocks such that tampering with one basic block's code causes other basic blocks to malfunction when executed.
    Type: Application
    Filed: January 12, 2016
    Publication date: August 18, 2016
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Publication number: 20160012237
    Abstract: A method of cryptographically processing a block of data, the method comprising: receiving an encoded version of the block of data, wherein the encoded version of the block of data comprises the block of data encoded, at least in part, using an error control code; and processing the encoded version of the block of data using a predetermined function to generate an output, wherein the predetermined function is arranged so that the result of processing, with the predetermined function, a quantity of data encoded, at least in part, using the error control code equals the result of encoding, at least in part, with the error control code the result of performing encryption or decryption of the quantity of data according to the Advanced Encryption Standard, AES.
    Type: Application
    Filed: March 27, 2013
    Publication date: January 14, 2016
    Inventors: Yaser EFTEKHARI, Michael Wiener, Yongxin Zhou
  • Publication number: 20160006541
    Abstract: A method of processing data according to a first predetermined function, the method comprising: receiving an encoded amount of data, wherein the encoded amount of data is an amount of data that has been encoded using an error control code; and processing the encoded amount of data using a second predetermined function to generate an output; wherein the second redetermined function corresponds to the first redetermined function in that the result of processing, with the second predetermined function, a quantity of data encoded using the error control code equals the result of encoding with the error control code the result of processing the quantity of data with the first predetermined function.
    Type: Application
    Filed: March 27, 2013
    Publication date: January 7, 2016
    Inventors: Yaser Eftekhari, Michael Wiener, Yongxin Zhou, Yuan Gu
  • Publication number: 20150213239
    Abstract: Methods and devices for thwarting code and control flow based attacks on software. The source code of a subject piece of software is automatically divided into basic blocks of logic. Selected basic blocks are amended so that their outputs are extended. Similarly, other basic blocks are amended such that their inputs are correspondingly extended. The amendments increase or create dependencies between basic blocks such that tampering with one basic block's code causes other basic blocks to malfunction when executed.
    Type: Application
    Filed: April 8, 2015
    Publication date: July 30, 2015
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Publication number: 20150082425
    Abstract: Systems and techniques for securing accessible computer-executable program code and systems are provided. One or more base functions may be generated and blended with existing program code, such that it may be difficult or impossible for a potential attacker to distinguish the base functions from the existing code. The systems and code also may be protected using a variety of other blending and protection techniques, such as fractures, variable dependent coding, dynamic data mangling, and cross-linking, which may be used individually or in combination, and/or may be blended with the base functions.
    Type: Application
    Filed: March 28, 2013
    Publication date: March 19, 2015
    Inventors: Harold Johnson, Yuan Xiang Gu, Michael Wiener, Yongxin Zhou
  • Publication number: 20150074803
    Abstract: Methods and devices for thwarting code and control flow based attacks on software. The source code of a subject piece of software is automatically divided into basic blocks of logic. Selected basic blocks are amended so that their outputs are extended. Similarly, other basic blocks are amended such that their inputs are correspondingly extended. The amendments increase or create dependencies between basic blocks such that tampering with one basic block's code causes other basic blocks to malfunction when executed.
    Type: Application
    Filed: April 30, 2014
    Publication date: March 12, 2015
    Applicant: IRDETO CANADA CORPORTATION
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Publication number: 20150067875
    Abstract: Systems and techniques for securing accessible computer-executable program code and systems are provided. One or more base functions may be generated and blended with existing program code, such that it may be difficult or impossible for a potential attacker to distinguish the base functions from the existing code. The systems and code also may be protected using a variety of other blending and protection techniques, such as fractures, variable dependent coding, dynamic data mangling, and cross-linking, which may be used individually or in combination, and/or may be blended with the base functions.
    Type: Application
    Filed: March 28, 2013
    Publication date: March 5, 2015
    Applicant: IRDETO CANADA CORPORATION
    Inventors: Harold Johnson, Yuan Xiang Gu, Michael Wiener, Yongxin Zhou
  • Patent number: 8752032
    Abstract: Methods and devices for thwarting code and control flow based attacks on software. The source code of a subject piece of software is automatically divided into basic blocks of logic. Selected basic blocks are amended so that their outputs are extended. Similarly, other basic blocks are amended such that their inputs are correspondingly extended. The amendments increase or create dependencies between basic blocks such that tampering with one basic block's code causes other basic blocks to malfunction when executed.
    Type: Grant
    Filed: February 23, 2007
    Date of Patent: June 10, 2014
    Assignee: Irdeto Canada Corporation
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • 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
  • Patent number: 8161463
    Abstract: A method for rendering software resistant to reverse engineering. Replace at least one first constant (mathematical expression, etc.) in a computational expression with a second mixed mathematical and bitwise-Boolean expression, the first constant being simpler than the second expression and the second expression being based on the value or the variables found in the first constant (or expression).
    Type: Grant
    Filed: October 31, 2007
    Date of Patent: April 17, 2012
    Assignee: Irdeto Canada Corporation
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Patent number: 7966499
    Abstract: Systems and methods related to concealing mathematical and logical operations in software. Mathematical and logical operations are disguised by replacing them with logically equivalent expressions. Each equivalent expression has at least two expression constants whose values are based on scaling and bias constants assigned to variables in the original mathematical or logical operation. Each of the expression constants may also be based on additive or multiplicative inverses modulo n of the scaling and bias constants. By replacing the original operations with more complex but logically equivalent expressions containing variables that also involve more operations, the true nature of the original operations is disguised.
    Type: Grant
    Filed: January 24, 2005
    Date of Patent: June 21, 2011
    Assignee: Irdeto Canada Corporation
    Inventors: Arun Narayanan Kandanchatha, Yongxin Zhou
  • Patent number: 7634091
    Abstract: The invention relates to a system and method of hiding cryptographic private keys. While public/private key encryption systems are considered to be secure, the private keys ultimately must be stored in some location—in fact, in some digital commerce systems the private key is sent to the end user as part of an executable file such as an audio player and audio file. Thus, attackers can obtain access to the private key. The broad concept of the invention is to split the private key up into parts which are obfuscated, but still kept in a form that allows the encrypted data to be decrypted. One technique for obfuscating the private key uses modulo arithmetic.
    Type: Grant
    Filed: July 27, 2004
    Date of Patent: December 15, 2009
    Assignee: Cloakare Corporation
    Inventors: Yongxin Zhou, Stanley T. Chow
  • Publication number: 20080216051
    Abstract: Methods and devices for thwarting code and control flow based attacks on software. The source code of a subject piece of software is automatically divided into basic blocks of logic. Selected basic blocks are amended so that their outputs are extended. Similarly, other basic blocks are amended such that their inputs are correspondingly extended. The amendments increase or create dependencies between basic blocks such that tampering with one basic block's code causes other basic blocks to malfunction when executed.
    Type: Application
    Filed: February 23, 2007
    Publication date: September 4, 2008
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Publication number: 20080208560
    Abstract: A method for rendering software resistant to reverse engineering. Replace at least one first constant (mathematical expression, etc.) in a computational expression with a second mixed mathematical and bitwise-Boolean expression, the first constant being simpler than the second expression and the second expression being based on the value or the variables found in the first constant (or expression).
    Type: Application
    Filed: October 31, 2007
    Publication date: August 28, 2008
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou