| Patent application number | Description | Published |
| 20080209226 | User Authentication Via Biometric Hashing - Techniques for authenticating biometric parameters via biometric hashing are described. In one implementation, a biometric parameter of a user (e.g., fingerprint image, blood-vessel pattern, retina scan, etc.) is captured. One or more biometric hashes are produced from the biometric parameter. To generate hashes that appear random, pseudorandom metrics are applied over the biometric parameter. The hashes are stored in association with user information that can be employed to authenticate the user. Subsequently, during authentication, a new biometric parameter is captured and hashes are computed from the parameter. The new biometric hashes are then compared with the predetermined stored hashes. If any of the new hashes are found to be identical, or sufficiently similar, to one or more of the predetermined biometric hashes, the biometric parameter is deemed valid and the user is authenticated. | 08-28-2008 |
| 20080209227 | User Authentication Via Biometric Hashing - Techniques for authenticating biometric parameters via biometric hashing are described. In one implementation, a biometric parameter of a user (e.g., fingerprint image, blood-vessel pattern, retina scan, etc.) is captured. One or more biometric hashes are produced from the biometric parameter. To generate hashes that appear random, pseudorandom metrics are applied over the biometric parameter. The hashes are stored in association with user information that can be employed to authenticate the user. Subsequently, during authentication, a new biometric parameter is captured and hashes are computed from the parameter. The new biometric hashes are then compared with the predetermined stored hashes. If any of the new hashes are found to be identical, or sufficiently similar, to one or more of the predetermined biometric hashes, the biometric parameter is deemed valid and the user is authenticated. | 08-28-2008 |
| 20080215860 | Software Protection Using Code Overlapping - Apparatus and methods for implementing software protection using code overlapping are disclosed. In one implementation, a combination block comprising a first sub-block of instructions with one or more interspersed obfuscation instructions is received. The obfuscation instructions interspersed among sequentially executable instructions of the first sub-block of instructions can include instructions from other sub-blocks as well as control instructions configured to guide a processor to execute all of the instructions in first sub-block of instructions in sequence. The obfuscation instructions are replaced with one or more replacement instructions. The replacement instructions can be of a same bit-length as the replaced obfuscation instructions. Moreover, the replacement instructions can include integrity checks configured to check for tampering with instructions and/or runtime program state in the first sub-block and/or the combination block. | 09-04-2008 |
| 20080235802 | Software Tamper Resistance Via Integrity-Checking Expressions - Implementation of software tamper resistance via integrity checks is described. In one implementation, a tamper resistance tool receives an input program code and generates a tamper-resistant program code using integrity checks. The integrity checks are generated by processing the input program code, and the integrity checks are inserted in various locations in the input program code. Values of the integrity checks are computed during program execution to determine whether a section of the program has been tampered with. Values of the integrity checks may be stored and accessed at any point during execution of the program. | 09-25-2008 |
| 20080288921 | Transformations for Software Obfuscation and Individualization - Methods and systems for software obfuscation are disclosed. In one exemplary embodiment, the obfuscation includes integrating the checker code with product code to form integrated code. The product code includes a first portion that provides desired functionalities to a software product, while the checker code includes a second portion that protects the product code from unlicensed use. A generated pseudorandom value is used to select one or more instruction sequences of the integrated code. Following the selection, the instruction sequences may be replaced with equivalent instruction sequences to form a new integrated code. Alternatively, the original integrated code is transformed into new integrated code when the selected instruction sequences are optimized. Additionally, the new integrated code may be compared to the original integrated code by generating output states from each integrated code. The new integrated code is functionally equivalent to the original integrated code if the respective output states match. | 11-20-2008 |
| 20100106920 | DATA LOCATION OBFUSCATION - Programs running on an open architecture, such as a personal computer, are vulnerable to inspection and modification. This is a concern as the program may include or provide access to valuable information. As a defense, the actual location of data can be hidden throughout execution of the program by way of periodic location reordering and pointer scrambling, among other things. These techniques serve to complicate static data flow analysis and dynamic data tracking thereby at least deterring program tampering. | 04-29-2010 |
| 20100107245 | TAMPER-TOLERANT PROGRAMS - Tamper-tolerant programs enable correct and continued execution despite attacks. Programs can be transformed into tamper-tolerant versions that correct effects of tampering in response to detection thereof Tamper-tolerant programs can execute alone or in conjunction with tamper resistance/prevention mechanisms such as obfuscation and encryption/decryption, among other things. In fact, the same and/or similar mechanisms can be employed to protect tamper tolerance functionality. | 04-29-2010 |