CA2327911A1 - Obscuring functions in computer software - Google Patents
Obscuring functions in computer software Download PDFInfo
- Publication number
- CA2327911A1 CA2327911A1 CA002327911A CA2327911A CA2327911A1 CA 2327911 A1 CA2327911 A1 CA 2327911A1 CA 002327911 A CA002327911 A CA 002327911A CA 2327911 A CA2327911 A CA 2327911A CA 2327911 A1 CA2327911 A1 CA 2327911A1
- Authority
- CA
- Canada
- Prior art keywords
- computer software
- functions
- obscuring
- software
- concatenating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 230000006870 function Effects 0.000 title claims 18
- 238000000034 method Methods 0.000 claims abstract 22
- 238000006467 substitution reaction Methods 0.000 claims abstract 3
- 230000000295 complement effect Effects 0.000 claims 1
- 230000008571 general function Effects 0.000 claims 1
- 235000000332 black box Nutrition 0.000 abstract 1
- 238000000844 transformation Methods 0.000 abstract 1
- 230000009466 transformation Effects 0.000 abstract 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Abstract
In traditional black-box cryptography, the attacker knows the al-gorithm, but has no visibility into its execution.
For white-box cryptography, we would have to hide the key when the attacker has total visibility into its software implementation and execution.
(Many believe this impossible: we think there is progress but it needs more work.) This would open up a host of intriguing applications and would be likely to simplify many complex protocols.
We suggest methods to make finding an encryption key harder (so far as we have yet discovered) than expected. Our purpose is similar to that of Auc-smith and Graunke's split encryption/decryption[1], but by somewhat different methods.
We focus on symmetric block ciphers implemented by substitution boxes and linear transformations, with DES[2, 4] providing an example. We address efficiency only superficially, leaving full coverage for more work and a later paper.
We have applied for patents on the methods we describe.
For white-box cryptography, we would have to hide the key when the attacker has total visibility into its software implementation and execution.
(Many believe this impossible: we think there is progress but it needs more work.) This would open up a host of intriguing applications and would be likely to simplify many complex protocols.
We suggest methods to make finding an encryption key harder (so far as we have yet discovered) than expected. Our purpose is similar to that of Auc-smith and Graunke's split encryption/decryption[1], but by somewhat different methods.
We focus on symmetric block ciphers implemented by substitution boxes and linear transformations, with DES[2, 4] providing an example. We address efficiency only superficially, leaving full coverage for more work and a later paper.
We have applied for patents on the methods we describe.
Claims (19)
1. A method of obscuring computer software comprising the step of:
de-linearizing functions in said computer software.
de-linearizing functions in said computer software.
2. A method of obscuring computer software comprising the step of:
partially evaluating functions in said computer software.
partially evaluating functions in said computer software.
3. A method of obscuring computer software comprising the step of:
substituting functions in said computer software with suitable non-linear bijections.
substituting functions in said computer software with suitable non-linear bijections.
4. A method of obscuring computer software comprising the step of:
performing complementary encoding of operands of functions in said computer software.
performing complementary encoding of operands of functions in said computer software.
5. A method of obscuring computer software comprising the step of:
substituting functions in said computer software with suitable non-linear input/output (I/O) blocked bijections of said functions.
substituting functions in said computer software with suitable non-linear input/output (I/O) blocked bijections of said functions.
6. A method of obscuring computer software comprising the step of:
concatenating functions in said computer software with one another.
concatenating functions in said computer software with one another.
7. A method of obscuring computer software comprising the step of:
concatenating functions in said computer software with one another, and with other functions.
concatenating functions in said computer software with one another, and with other functions.
8. A method of obscuring computer software comprising the step of:
concatenating functions in said computer software with suitable identity transforms.
concatenating functions in said computer software with suitable identity transforms.
9. A method of obscuring computer software comprising the step of:
concatenating functions in said computer software with suitable general functions.
concatenating functions in said computer software with suitable general functions.
10. A method of obscuring computer software comprising the step of:
split-path encoding of functions in said computer software.
split-path encoding of functions in said computer software.
11. A method of obscuring computer software comprising the step of:
encoding functions in said computer software as bijections.
encoding functions in said computer software as bijections.
12. A method of obscuring computer software comprising the step of:
simultaneous by-pass encoding of functions in said computer software.
simultaneous by-pass encoding of functions in said computer software.
13. A method of obscuring computer software comprising the step of:
output splitting of functions in said computer software.
output splitting of functions in said computer software.
14. A method of obscuring computer software comprising the step of:
replacing functions in said computer software with substitution boxes.
replacing functions in said computer software with substitution boxes.
15. A method of obscuring computer software comprising the step of:
replacing functions in said computer software with networks of substitution boxes.
replacing functions in said computer software with networks of substitution boxes.
16. A system for executing the method of any one of claims 1 through 15.
17. An apparatus for executing the method of any one of claims 1 through 15.
18. A computer readable memory medium for storing software code executable to perform the method steps of any one of claims 1 through 15.
19. A carrier signal incorporating software code executable to perform the method steps of any one of claims 1 through 15.
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA002327911A CA2327911A1 (en) | 2000-12-08 | 2000-12-08 | Obscuring functions in computer software |
CA002431443A CA2431443A1 (en) | 2000-12-08 | 2001-12-10 | System and method for protecting computer software from a white box attack |
US10/433,966 US7397916B2 (en) | 2000-12-08 | 2001-12-10 | System and method for protecting computer software from a white box attack |
EP01999868A EP1350154A2 (en) | 2000-12-08 | 2001-12-10 | System and method for protecting computer software from a white box attack |
PCT/CA2001/001729 WO2002046890A2 (en) | 2000-12-08 | 2001-12-10 | System and method for protecting computer software from a white box attack |
AU2002221414A AU2002221414A1 (en) | 2000-12-08 | 2001-12-10 | System and method for protecting computer software from a white box attack |
US11/020,313 US7809135B2 (en) | 2000-12-08 | 2004-12-27 | System and method for protecting computer software from a white box attack |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA002327911A CA2327911A1 (en) | 2000-12-08 | 2000-12-08 | Obscuring functions in computer software |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2327911A1 true CA2327911A1 (en) | 2002-06-08 |
Family
ID=4167864
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002327911A Abandoned CA2327911A1 (en) | 2000-12-08 | 2000-12-08 | Obscuring functions in computer software |
CA002431443A Abandoned CA2431443A1 (en) | 2000-12-08 | 2001-12-10 | System and method for protecting computer software from a white box attack |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002431443A Abandoned CA2431443A1 (en) | 2000-12-08 | 2001-12-10 | System and method for protecting computer software from a white box attack |
Country Status (5)
Country | Link |
---|---|
US (2) | US7397916B2 (en) |
EP (1) | EP1350154A2 (en) |
AU (1) | AU2002221414A1 (en) |
CA (2) | CA2327911A1 (en) |
WO (1) | WO2002046890A2 (en) |
Families Citing this family (196)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2327911A1 (en) | 2000-12-08 | 2002-06-08 | Cloakware Corporation | Obscuring functions in computer software |
US7340058B2 (en) * | 2001-04-09 | 2008-03-04 | Lucent Technologies Inc. | Low-overhead secure information processing for mobile gaming and other lightweight device applications |
AUPR970601A0 (en) * | 2001-12-21 | 2002-01-24 | Canon Kabushiki Kaisha | Encoding information in a watermark |
US7493607B2 (en) | 2002-07-09 | 2009-02-17 | Bluerisc Inc. | Statically speculative compilation and execution |
FR2850811A1 (en) * | 2003-01-30 | 2004-08-06 | St Microelectronics Sa | Integrated circuit e.g. chip card, anti-fraud method, involves performing masking of data and unmasking of encryption function result by random number, using two functionally identical operators having respective physical traces |
JP2006517036A (en) * | 2003-02-06 | 2006-07-13 | ディスクレティックス・テクノロジーズ・リミテッド | Apparatus and method for manipulating masked data |
US8510571B1 (en) | 2003-03-24 | 2013-08-13 | Hoi Chang | System and method for inserting security mechanisms into a software program |
US7469266B2 (en) * | 2003-09-29 | 2008-12-23 | International Business Machines Corporation | Method and structure for producing high performance linear algebra routines using register block data format routines |
US20050114850A1 (en) | 2003-10-29 | 2005-05-26 | Saurabh Chheda | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
US7996671B2 (en) | 2003-11-17 | 2011-08-09 | Bluerisc Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
US8700533B2 (en) * | 2003-12-04 | 2014-04-15 | Black Duck Software, Inc. | Authenticating licenses for legally-protectable content based on license profiles and content identifiers |
US9489687B2 (en) * | 2003-12-04 | 2016-11-08 | Black Duck Software, Inc. | Methods and systems for managing software development |
WO2005060147A1 (en) * | 2003-12-11 | 2005-06-30 | Koninklijke Philips Electronics N.V. | Block ciphering system, using permutations to hide the core ciphering function of each encryption round |
US8607209B2 (en) | 2004-02-04 | 2013-12-10 | Bluerisc Inc. | Energy-focused compiler-assisted branch prediction |
DE102004011488B4 (en) * | 2004-03-09 | 2007-07-05 | Giesecke & Devrient Gmbh | Protection of software against attacks |
US8887287B2 (en) * | 2004-10-27 | 2014-11-11 | Alcatel Lucent | Method and apparatus for software integrity protection using timed executable agents |
KR101226167B1 (en) * | 2004-10-28 | 2013-01-24 | 이르데토 코포레이트 비.브이. | Method and system for obfuscating a cryptographic function |
US8155306B2 (en) * | 2004-12-09 | 2012-04-10 | Intel Corporation | Method and apparatus for increasing the speed of cryptographic processing |
FR2879383A1 (en) * | 2004-12-14 | 2006-06-16 | St Microelectronics Sa | MASKING OF BINARY WORDS PROCESSED BY AN INTEGRATED CIRCUIT |
US20060161612A1 (en) * | 2005-01-14 | 2006-07-20 | International Business Machines Corporation | Method and structure for a generalized cache-register file interface with data restructuring methods for multiple cache levels and hardware pre-fetching |
US20060168401A1 (en) * | 2005-01-26 | 2006-07-27 | International Business Machines Corporation | Method and structure for high-performance linear algebra in the presence of limited outstanding miss slots |
JP4840782B2 (en) * | 2005-03-25 | 2011-12-21 | パナソニック株式会社 | Program conversion device, secure processing device, computer program, and recording medium |
DE602006004797D1 (en) * | 2005-07-05 | 2009-03-05 | St Microelectronics Sa | Checking a digital message stored in a memory zone |
US7769165B2 (en) * | 2005-10-14 | 2010-08-03 | Microsoft Corporation | Semi-public white-box cipher |
US7743253B2 (en) * | 2005-11-04 | 2010-06-22 | Microsoft Corporation | Digital signature for network coding |
US7853018B2 (en) * | 2005-11-10 | 2010-12-14 | Atallah Mikhail J | Method and apparatus for hiding a private key |
FR2893796B1 (en) * | 2005-11-21 | 2008-01-04 | Atmel Corp | ENCRYPTION PROTECTION METHOD |
DE602006020010D1 (en) * | 2005-12-19 | 2011-03-24 | St Microelectronics Sa | Protection of the execution of a DES algorithm |
WO2007105126A2 (en) | 2006-03-10 | 2007-09-20 | Koninklijke Philips Electronics N.V. | Method and system for obfuscating a cryptographic function |
WO2007126049A1 (en) * | 2006-04-28 | 2007-11-08 | Panasonic Corporation | System for making program difficult to read, device for making program difficult to read, and method for making program difficult to read |
EP2044724B1 (en) * | 2006-07-12 | 2015-04-29 | Irdeto B.V. | Tamper resistance of a digital data processing unit |
CN101491000B (en) * | 2006-07-12 | 2011-12-28 | 耶德托公司 | Method and system for obfuscating a cryptographic function |
US8997255B2 (en) | 2006-07-31 | 2015-03-31 | Inside Secure | Verifying data integrity in a data storage device |
US8352752B2 (en) * | 2006-09-01 | 2013-01-08 | Inside Secure | Detecting radiation-based attacks |
US8010803B2 (en) * | 2006-10-12 | 2011-08-30 | Black Duck Software, Inc. | Methods and apparatus for automated export compliance |
US7681045B2 (en) * | 2006-10-12 | 2010-03-16 | Black Duck Software, Inc. | Software algorithm identification |
US9361617B2 (en) * | 2008-06-17 | 2016-06-07 | Verifone, Inc. | Variable-length cipher system and method |
US20080126766A1 (en) * | 2006-11-03 | 2008-05-29 | Saurabh Chheda | Securing microprocessors against information leakage and physical tampering |
KR101213156B1 (en) * | 2006-12-21 | 2012-12-17 | 삼성전자주식회사 | Distributed rivest shamir adleman signature method and signature generative node |
WO2008084433A2 (en) * | 2007-01-11 | 2008-07-17 | Koninklijke Philips Electronics N.V. | Tracing copies of an implementation |
WO2008088073A1 (en) * | 2007-01-18 | 2008-07-24 | Panasonic Corporation | Obfuscation assisting apparatus |
KR101338409B1 (en) * | 2007-01-25 | 2013-12-10 | 삼성전자주식회사 | Method and node for generating distributed rivest shamir adleman signature in ad-hoc network |
US8752032B2 (en) * | 2007-02-23 | 2014-06-10 | Irdeto Canada Corporation | System and method of interlocking to protect software-mediated program and device behaviours |
WO2008101340A1 (en) * | 2007-02-23 | 2008-08-28 | Cloakware Corporation | System and method for interlocking to protect software-mediated program and device behaviours |
US20080301448A1 (en) * | 2007-06-01 | 2008-12-04 | Microsoft Corporation | Security Against Corruption for Networked Storage |
KR100969961B1 (en) * | 2007-12-20 | 2010-07-15 | 한국전자통신연구원 | Substitution apparatus of block code aria and method thereof |
WO2009095838A1 (en) * | 2008-01-31 | 2009-08-06 | Koninklijke Philips Electronics N.V. | Securing a smart card |
EP2240849B1 (en) | 2008-02-06 | 2016-01-27 | Nxp B.V. | Data processing device and method for executing obfuscated programs |
EP2243098A2 (en) | 2008-02-11 | 2010-10-27 | Nxp B.V. | Method of program obfuscation and processing device for executing obfuscated programs |
US8800048B2 (en) * | 2008-05-20 | 2014-08-05 | Microsoft Corporation | Software protection through interdependent parameter cloud constrained software execution |
CN102047220B (en) * | 2008-05-23 | 2014-12-17 | 爱迪德加拿大公司 | System and method for generating white-box implementations of software applications |
EP2300954B1 (en) | 2008-06-24 | 2014-12-03 | NDS Limited | Security within integrated circuits |
US8171306B2 (en) * | 2008-11-05 | 2012-05-01 | Microsoft Corporation | Universal secure token for obfuscation and tamper resistance |
JP4687775B2 (en) * | 2008-11-20 | 2011-05-25 | ソニー株式会社 | Cryptographic processing device |
US8151333B2 (en) | 2008-11-24 | 2012-04-03 | Microsoft Corporation | Distributed single sign on technologies including privacy protection and proactive updating |
JP5688528B2 (en) * | 2009-03-10 | 2015-03-25 | イルデト・ベー・フェー | White-box cryptosystem using input-dependent encoding |
US8913741B2 (en) * | 2009-03-31 | 2014-12-16 | France Telecom | Method for performing a cryptographic task in an electronic hardware component |
DE102009019981A1 (en) * | 2009-05-05 | 2010-11-11 | Giesecke & Devrient Gmbh | Method for protecting software and portable data carriers stored on a portable data carrier |
WO2010127438A1 (en) * | 2009-05-06 | 2010-11-11 | Irdeto Canada Corporation | Interlocked binary protection using whitebox cryptography |
CN102484581B (en) * | 2009-06-19 | 2015-07-01 | 耶德托公司 | White-box Cryptographic System With Configurable Key Using Intermediate Data Modification |
WO2010146140A1 (en) * | 2009-06-19 | 2010-12-23 | Irdeto B.V. | White-box cryptographic system with configurable key using block selection |
US9213826B2 (en) | 2009-11-13 | 2015-12-15 | Irdeto B.V. | System and method to protect Java bytecode code against static and dynamic attacks within hostile execution environments |
US8549322B2 (en) * | 2010-03-25 | 2013-10-01 | International Business Machines Corporation | Secure data scanning method and system |
CN102947835B (en) | 2010-03-31 | 2016-04-13 | 爱迪德技术有限公司 | The system and method encapsulating and enable protection is carried out by the variation change in software library |
JP5697180B2 (en) * | 2010-03-31 | 2015-04-08 | イルデト カナダ コーポレーション | System and method for protecting cryptographic assets from white box attacks |
EP2388730A1 (en) * | 2010-05-17 | 2011-11-23 | Nagravision S.A. | Method for generating software code |
US20120079462A1 (en) * | 2010-09-24 | 2012-03-29 | SoftKrypt LLC | Systems and methods of source software code obfuscation |
FR2966953B1 (en) * | 2010-11-02 | 2015-08-28 | St Microelectronics Rousset | METHOD OF CRYPTOGRAPHIC COUNTERPRESSION BY DERIVATION OF SECRET DATA |
MY150357A (en) * | 2010-11-04 | 2013-12-31 | Mimos Berhad | A method for linear transformation in substitution-permutation networks symmetric-key block cipher |
EP2458774A1 (en) | 2010-11-24 | 2012-05-30 | Nagravision S.A. | A method of processing a cryptographic function in obfuscated form |
US20120201373A1 (en) * | 2011-02-03 | 2012-08-09 | Futurewei Technologies, Inc. | Design of a Good General-Purpose Hash Function with Limited Resources |
AU2011362967B2 (en) | 2011-03-24 | 2016-10-06 | Irdeto B.V. | System and method providing dependency networks throughout applications for attack resistance |
EP3518128B1 (en) * | 2011-03-30 | 2021-04-28 | Irdeto B.V. | Enabling a software application to be executed on a hardware device |
US8621237B1 (en) * | 2011-06-30 | 2013-12-31 | Emc Corporation | Protecting against cryptographic key exposure in source code |
WO2013059367A1 (en) * | 2011-10-18 | 2013-04-25 | Paul Marion Hriljac | Systems and methods of source software code modification |
US9503259B2 (en) | 2012-02-09 | 2016-11-22 | Irdeto B.V. | System and method for generating and protecting cryptographic keys |
US9588756B2 (en) * | 2012-03-22 | 2017-03-07 | Irdeto B.V. | Updating software components in a program |
CN104981813B (en) * | 2012-03-30 | 2018-08-07 | 爱迪德技术有限公司 | Coding is identified using dynamic data to protect addressable system |
US8976960B2 (en) | 2012-04-02 | 2015-03-10 | Apple Inc. | Methods and apparatus for correlation protected processing of cryptographic operations |
EP2856378B1 (en) * | 2012-05-25 | 2017-12-27 | Koninklijke Philips N.V. | Method, system and device for protection against reverse engineering and/or tampering with programs |
DE102012209404A1 (en) * | 2012-06-04 | 2013-12-05 | Robert Bosch Gmbh | Apparatus for executing a cryptographic method and method of operation therefor |
US20140324708A1 (en) * | 2012-06-12 | 2014-10-30 | Square, Inc. | Raw sensor input encryption for passcode entry security |
US9378499B2 (en) | 2012-06-12 | 2016-06-28 | Square, Inc. | Software PIN entry |
US8938796B2 (en) | 2012-09-20 | 2015-01-20 | Paul Case, SR. | Case secure computer architecture |
US9503255B2 (en) * | 2012-10-17 | 2016-11-22 | Synopsys, Inc. | Cryptographic sequencing system and method |
US9311489B2 (en) | 2013-03-07 | 2016-04-12 | Microsoft Technology Licensing, Llc | Application forensics |
EP2992637A1 (en) * | 2013-05-01 | 2016-03-09 | Koninklijke Philips N.V. | Electronic block cipher device suitable for obfuscation |
RU2518950C9 (en) * | 2013-05-06 | 2014-09-10 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульянова (Ленина)" | Method of encrypting n-bit unit m |
KR102133200B1 (en) | 2013-08-08 | 2020-07-13 | 서울대학교산학협력단 | Method and apparatus for protecting of data |
CN104376015B (en) * | 2013-08-15 | 2020-03-17 | 腾讯科技(深圳)有限公司 | Method and device for processing nodes in relational network |
US9773240B1 (en) | 2013-09-13 | 2017-09-26 | Square, Inc. | Fake sensor input for passcode entry security |
US9613356B2 (en) | 2013-09-30 | 2017-04-04 | Square, Inc. | Secure passcode entry user interface |
US9928501B1 (en) | 2013-10-09 | 2018-03-27 | Square, Inc. | Secure passcode entry docking station |
DE102013222218A1 (en) * | 2013-10-31 | 2014-05-22 | Siemens Aktiengesellschaft | Method for constructing circuit used for generating random bits used in asymmetric authentication method, involves linking specific functions with a pretext of a related function as another function, to perform fixed point free mapping |
KR101807259B1 (en) * | 2013-11-04 | 2017-12-08 | 한국전자통신연구원 | Apparatus and methdo for encoding |
US9223995B1 (en) * | 2013-12-10 | 2015-12-29 | Progress Software Corporation | Semantic obfuscation of data in real time |
US9900149B2 (en) * | 2013-12-24 | 2018-02-20 | Synopsys, Inc. | Area efficient cryptographic method and apparatus |
US10075288B1 (en) * | 2014-02-28 | 2018-09-11 | The Governing Council Of The University Of Toronto | Systems, devices, and processes for homomorphic encryption |
US9838198B2 (en) * | 2014-03-19 | 2017-12-05 | Nxp B.V. | Splitting S-boxes in a white-box implementation to resist attacks |
FR3018934B1 (en) * | 2014-03-24 | 2017-05-26 | Morpho | METHOD OF INPUTTING DATA IN A BASE FOR THE PROTECTION OF THESE DATA |
CN106416119B (en) * | 2014-03-31 | 2019-10-11 | 爱迪德技术有限公司 | Protect software project |
GB201405706D0 (en) * | 2014-03-31 | 2014-05-14 | Irdeto Bv | Software protection |
GB201405705D0 (en) * | 2014-03-31 | 2014-05-14 | Irdeto Bv | Secured printed electronics device |
RU2542880C1 (en) * | 2014-03-31 | 2015-02-27 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный электротехнический университет"ЛЭТИ" им. В.И. Ульянова (Ленина)" | Method of encrypting binary data unit |
WO2015149827A1 (en) | 2014-03-31 | 2015-10-08 | Irdeto B.V. | Obfuscated performance of a predetermined function |
GB201405755D0 (en) | 2014-03-31 | 2014-05-14 | Irdeto Bv | Optimizing and protecting software |
RU2542929C1 (en) * | 2014-04-14 | 2015-02-27 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульянова (Ленина)" | Method to code data unit represented as bit string |
RU2542926C1 (en) * | 2014-04-14 | 2015-02-27 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульянова (Ленина)" | Method to code message represented as multidigit binary number |
EP2940920B1 (en) * | 2014-04-28 | 2017-03-08 | Nxp B.V. | Security patch without changing the key |
US9485226B2 (en) * | 2014-04-28 | 2016-11-01 | Nxp B.V. | Method for including an implicit integrity or authenticity check into a white-box implementation |
US9338145B2 (en) | 2014-04-28 | 2016-05-10 | Nxp B.V. | Security patch without changing the key |
US9641337B2 (en) * | 2014-04-28 | 2017-05-02 | Nxp B.V. | Interface compatible approach for gluing white-box implementation to surrounding program |
US9858440B1 (en) * | 2014-05-23 | 2018-01-02 | Shape Security, Inc. | Encoding of sensitive data |
US10412054B2 (en) | 2014-06-24 | 2019-09-10 | Nxp B.V. | Method for introducing dependence of white-box implementation on a set of strings |
KR101527329B1 (en) * | 2014-09-12 | 2015-06-09 | 삼성에스디에스 주식회사 | Apparatus and method for data encryption |
EP3198498B1 (en) | 2014-09-26 | 2021-04-14 | Irdeto B.V. | A challenge-response method and associated computing device |
US9252943B1 (en) * | 2014-09-26 | 2016-02-02 | The Boeing Company | Parallelizable cipher construction |
BR112017006236A2 (en) | 2014-09-30 | 2017-12-12 | Koninklijke Philips Nv | electronic calculating device, ring coding device, table calculating device, electronic calculating method, computer program, and, computer readable media |
CN104301095A (en) * | 2014-10-13 | 2015-01-21 | 深圳中科讯联科技有限公司 | DES round operation method and circuit |
EP3207514A4 (en) * | 2014-10-13 | 2018-07-04 | Sequent Software Inc. | Securing host card emulation credentials |
GB201418815D0 (en) | 2014-10-22 | 2014-12-03 | Irdeto Bv | Providing access to content |
DE102014016548A1 (en) | 2014-11-10 | 2016-05-12 | Giesecke & Devrient Gmbh | Method for testing and hardening software applications |
US9600672B1 (en) * | 2014-12-04 | 2017-03-21 | Amazon Technologies, Inc. | Dynamic function switching |
CN107004072A (en) | 2014-12-12 | 2017-08-01 | 皇家飞利浦有限公司 | It is electronically generated equipment |
US10685096B2 (en) | 2014-12-22 | 2020-06-16 | Koninklijke Philips N.V. | Hiding of a program execution |
CN107005403A (en) * | 2014-12-22 | 2017-08-01 | 皇家飞利浦有限公司 | electronic computing device |
US10318271B2 (en) | 2015-01-05 | 2019-06-11 | Irdeto Canada Corporation | Updating software components in a program |
US9665699B2 (en) * | 2015-03-13 | 2017-05-30 | Nxp B.V. | Implementing padding in a white-box implementation |
CN108064381B (en) | 2015-03-30 | 2021-06-18 | 爱迪德技术有限公司 | Method for data protection |
GB201505434D0 (en) * | 2015-03-30 | 2015-05-13 | Irdeto Bv | Cryptographic processing |
GB201505553D0 (en) | 2015-03-31 | 2015-05-13 | Irdeto Bv | Online advertisements |
US10372886B2 (en) * | 2015-05-05 | 2019-08-06 | Nxp B.V. | Protecting the input/output of modular encoded white-box RSA/ECC |
EP3298720B1 (en) * | 2015-05-19 | 2019-03-06 | Koninklijke Philips N.V. | Computing with encrypted values |
US10642786B2 (en) * | 2015-05-19 | 2020-05-05 | Cryptomove, Inc. | Security via data concealment using integrated circuits |
US9753931B2 (en) * | 2015-05-19 | 2017-09-05 | Cryptomove, Inc. | Security via data concealment |
US10664439B2 (en) | 2015-05-19 | 2020-05-26 | Cryptomove, Inc. | Security via dynamic data movement in a cloud-based environment |
US10037330B1 (en) | 2015-05-19 | 2018-07-31 | Cryptomove, Inc. | Security via dynamic data movement in a cloud-based environment |
RU2580060C1 (en) * | 2015-05-20 | 2016-04-10 | Федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульнова (Ленина)" | Method to encrypt messages, represented as a multi-bit binary number |
CN107667368B (en) * | 2015-07-09 | 2020-12-22 | 赫尔实验室有限公司 | System, method and storage medium for obfuscating a computer program |
US10509918B1 (en) * | 2015-09-18 | 2019-12-17 | Hrl Laboratories, Llc | One-time obfuscation for polynomial-size ordered binary decision diagrams (POBDDs) |
DE102015014038A1 (en) * | 2015-10-30 | 2017-05-04 | Giesecke & Devrient Gmbh | Alternative representation of the crypto algorithm DES |
NL2015745B1 (en) | 2015-11-09 | 2017-05-26 | Koninklijke Philips Nv | A cryptographic device arranged to compute a target block cipher. |
US10015009B2 (en) * | 2015-11-25 | 2018-07-03 | Nxp B.V. | Protecting white-box feistel network implementation against fault attack |
CN108370311A (en) * | 2015-12-15 | 2018-08-03 | 皇家飞利浦有限公司 | Computing device and method |
US10728028B2 (en) * | 2016-02-18 | 2020-07-28 | Gideon Samid | Transmitter for encoding information with randomly flipped bits and transmitting that information through a communications channel |
US10229282B2 (en) * | 2016-06-12 | 2019-03-12 | Apple Inc. | Efficient implementation for differential privacy using cryptographic functions |
US11303436B2 (en) | 2016-06-23 | 2022-04-12 | Cryptography Research, Inc. | Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks |
CN107547193A (en) * | 2016-06-28 | 2018-01-05 | 埃沙尔公司 | Make replacement operation from the method for side Multiple Channel Analysis |
US10243937B2 (en) * | 2016-07-08 | 2019-03-26 | Nxp B.V. | Equality check implemented with secret sharing |
US10771235B2 (en) * | 2016-09-01 | 2020-09-08 | Cryptography Research Inc. | Protecting block cipher computation operations from external monitoring attacks |
WO2018108275A1 (en) | 2016-12-15 | 2018-06-21 | Irdeto B.V. | Software integrity verification |
US10615980B2 (en) * | 2017-02-02 | 2020-04-07 | Mastercard International Incorporated | Methods and systems for securely storing sensitive data on smart cards |
FR3063857B1 (en) * | 2017-03-08 | 2020-02-14 | Safran Identity & Security | METHOD FOR ELECTRONIC SIGNING OF A DOCUMENT WITH A PREDETERMINED SECRET KEY |
GB201703864D0 (en) | 2017-03-10 | 2017-04-26 | Irdeto Bv | Secured system operation |
US10862646B2 (en) * | 2017-07-11 | 2020-12-08 | Nokia Technologies Oy | Polar coded broadcast channel |
WO2019031026A1 (en) * | 2017-08-10 | 2019-02-14 | ソニー株式会社 | Encryption device, encryption method, decryption device, and decryption method |
US10805693B2 (en) | 2017-09-12 | 2020-10-13 | Irdeto B.V. | Device and method for GPU-based watermarking |
US10528600B1 (en) * | 2017-09-13 | 2020-01-07 | Hrl Laboratories, Llc | System to identify unknown communication behavior relationships from time series |
US11195107B1 (en) * | 2017-09-13 | 2021-12-07 | Hrl Laboratories, Llc | Method of malicious social activity prediction using spatial-temporal social network data |
DE102017009315B4 (en) * | 2017-10-06 | 2019-11-21 | Sergej Gertje | Protection of automation programs against reverse development |
US10778409B2 (en) * | 2017-12-15 | 2020-09-15 | Crypto Lab Inc. | Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof |
US11010233B1 (en) | 2018-01-18 | 2021-05-18 | Pure Storage, Inc | Hardware-based system monitoring |
US11176300B2 (en) * | 2018-02-03 | 2021-11-16 | Irdeto B.V. | Systems and methods for creating individualized processing chips and assemblies |
US10797868B2 (en) | 2018-05-31 | 2020-10-06 | Irdeto B.V. | Shared secret establishment |
US11206130B2 (en) | 2018-07-31 | 2021-12-21 | Nxp B.V. | Customizing cryptographic keys between multiple hosts |
US11025907B2 (en) * | 2019-02-28 | 2021-06-01 | Google Llc | Receptive-field-conforming convolution models for video coding |
US10869036B2 (en) | 2018-09-18 | 2020-12-15 | Google Llc | Receptive-field-conforming convolutional models for video coding |
US11764940B2 (en) | 2019-01-10 | 2023-09-19 | Duality Technologies, Inc. | Secure search of secret data in a semi-trusted environment using homomorphic encryption |
US20200313850A1 (en) * | 2019-03-29 | 2020-10-01 | Irdeto Canada Corporation | Method and apparatus for implementing a white-box cipher |
WO2020205984A1 (en) * | 2019-04-01 | 2020-10-08 | Cryptomove, Inc. | Security via data concealment using integrated circuits |
US10764029B1 (en) * | 2019-04-02 | 2020-09-01 | Carey Patrick Atkins | Asymmetric Encryption Algorithm |
EP3959840A4 (en) * | 2019-04-23 | 2023-01-11 | Quantropi Inc. | Enhanced randomness for digital systems |
US11283619B2 (en) * | 2019-06-20 | 2022-03-22 | The Boeing Company | Bit mixer based parallel MAC and hash functions |
US11263316B2 (en) | 2019-08-20 | 2022-03-01 | Irdeto B.V. | Securing software routines |
CN110620671B (en) * | 2019-08-30 | 2024-04-09 | 厦门一通灵信息科技有限公司 | Encryption algorithm evaluation method, medium, equipment and device |
JP7383985B2 (en) * | 2019-10-30 | 2023-11-21 | 富士電機株式会社 | Information processing device, information processing method and program |
US11645162B2 (en) | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in a storage system |
US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
US11720714B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Inter-I/O relationship based detection of a security threat to a storage system |
US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
US11625481B2 (en) | 2019-11-22 | 2023-04-11 | Pure Storage, Inc. | Selective throttling of operations potentially related to a security threat to a storage system |
US11657155B2 (en) | 2019-11-22 | 2023-05-23 | Pure Storage, Inc | Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system |
US11755751B2 (en) | 2019-11-22 | 2023-09-12 | Pure Storage, Inc. | Modify access restrictions in response to a possible attack against data stored by a storage system |
US11500788B2 (en) | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
US11720692B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Hardware token based management of recovery datasets for a storage system |
US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
US11204985B2 (en) * | 2020-03-31 | 2021-12-21 | Irdeto Canada Corporation | Systems, methods, and storage media for creating secured computer code having entangled transformations |
US11902424B2 (en) * | 2020-11-20 | 2024-02-13 | International Business Machines Corporation | Secure re-encryption of homomorphically encrypted data |
US11722292B2 (en) | 2021-01-29 | 2023-08-08 | Robert Bosch Gmbh | System and method for improving the efficiency of advanced encryption standard in multi-party computation with precomputed data |
US20220255726A1 (en) * | 2021-01-29 | 2022-08-11 | Robert Bosch Gmbh | System and method for improving the efficiency of advanced encryption standard in multi-party computation |
IT202100012488A1 (en) * | 2021-05-14 | 2022-11-14 | Torino Politecnico | Method of configuring neural networks and method of processing binary files |
EP4339835A1 (en) | 2022-09-16 | 2024-03-20 | Irdeto B.V. | Machine learning model protection |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892899A (en) * | 1996-06-13 | 1999-04-06 | Intel Corporation | Tamper resistant methods and apparatus |
US6192475B1 (en) * | 1997-03-31 | 2001-02-20 | David R. Wallace | System and method for cloaking software |
CN1260055A (en) | 1997-06-09 | 2000-07-12 | 联信公司 | Obfuscation techniques for enhancing software security |
FR2776445A1 (en) * | 1998-03-17 | 1999-09-24 | Schlumberger Ind Sa | Cryptographic algorithm security technique |
JP3600454B2 (en) * | 1998-08-20 | 2004-12-15 | 株式会社東芝 | Encryption / decryption device, encryption / decryption method, and program storage medium therefor |
US7162031B1 (en) * | 1998-12-30 | 2007-01-09 | Nokia Corporation | Method and device for cryptographically processing data |
AU2001269354A1 (en) * | 2000-05-12 | 2001-11-20 | Xtreamlok Pty. Ltd. | Information security method and system |
CA2327911A1 (en) | 2000-12-08 | 2002-06-08 | Cloakware Corporation | Obscuring functions in computer software |
CA2369304A1 (en) * | 2002-01-30 | 2003-07-30 | Cloakware Corporation | A protocol to hide cryptographic private keys |
FR2849232B1 (en) * | 2002-12-24 | 2005-02-25 | Trusted Logic | METHOD FOR SECURING COMPUTER SYSTEMS INCORPORATING A CODE INTERPRETATION MODULE |
US7631292B2 (en) * | 2003-11-05 | 2009-12-08 | Microsoft Corporation | Code individualism and execution protection |
US20050223361A1 (en) * | 2004-04-01 | 2005-10-06 | Belbute John L | Software testing based on changes in execution paths |
US8015211B2 (en) * | 2004-04-21 | 2011-09-06 | Architecture Technology Corporation | Secure peer-to-peer object storage system |
-
2000
- 2000-12-08 CA CA002327911A patent/CA2327911A1/en not_active Abandoned
-
2001
- 2001-12-10 CA CA002431443A patent/CA2431443A1/en not_active Abandoned
- 2001-12-10 AU AU2002221414A patent/AU2002221414A1/en not_active Abandoned
- 2001-12-10 EP EP01999868A patent/EP1350154A2/en not_active Withdrawn
- 2001-12-10 WO PCT/CA2001/001729 patent/WO2002046890A2/en not_active Application Discontinuation
- 2001-12-10 US US10/433,966 patent/US7397916B2/en not_active Expired - Fee Related
-
2004
- 2004-12-27 US US11/020,313 patent/US7809135B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7809135B2 (en) | 2010-10-05 |
US20060140401A1 (en) | 2006-06-29 |
EP1350154A2 (en) | 2003-10-08 |
US20040139340A1 (en) | 2004-07-15 |
CA2431443A1 (en) | 2002-06-13 |
WO2002046890A2 (en) | 2002-06-13 |
AU2002221414A1 (en) | 2002-06-18 |
US7397916B2 (en) | 2008-07-08 |
WO2002046890A8 (en) | 2003-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2327911A1 (en) | Obscuring functions in computer software | |
Thabit et al. | A new lightweight cryptographic algorithm for enhancing data security in cloud computing | |
US7546461B2 (en) | Strengthening secure hash functions | |
WO2001076130A3 (en) | Authentication method and schemes for data integrity protection | |
RU2357365C2 (en) | Method and device for carrying out cryptographic computation | |
EP1803244A2 (en) | Enciphering method | |
US8966285B2 (en) | Securing implementation of a cryptographic process having fixed or dynamic keys | |
TNSN07055A1 (en) | Permutation data transform to enhance security | |
WO2007138601A3 (en) | Method and system for transformation of logical data objects for storage | |
CA2578316A1 (en) | Table splitting for cryptographic processes | |
WO2007120169A3 (en) | Homophonic substitution symmetric encryption | |
JP2017504838A (en) | Countermeasures against side-channel attacks against cryptographic algorithms | |
Daemen et al. | The first 10 years of advanced encryption | |
GB2407238B (en) | A system and method for performing blind encryption and decryption | |
WO2010024874A3 (en) | Message authentication code pre-computation with applications to secure memory | |
US8718280B2 (en) | Securing keys of a cipher using properties of the cipher process | |
JPWO2009075337A1 (en) | ENCRYPTION METHOD, DECRYPTION METHOD, DEVICE, AND PROGRAM | |
WO2012024086A1 (en) | Apparatus and method for block cipher process for insecure environments | |
CA2442456A1 (en) | Data encryption system and method | |
HU227781B1 (en) | Symmetric key cryptographic apparatus and method for encryption and decryption of information | |
CN110704854B (en) | Stream type encryption method aiming at text data reserved format | |
US20120179920A1 (en) | Securing cryptographic process keys using internal structures | |
EP2992637A1 (en) | Electronic block cipher device suitable for obfuscation | |
EP3477889A1 (en) | Using white-box in a leakage-resilient primitive | |
US9641337B2 (en) | Interface compatible approach for gluing white-box implementation to surrounding program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Discontinued |