CA2174299A1 - Method and Apparatus for Securing Executable Programs Against Copying - Google Patents

Method and Apparatus for Securing Executable Programs Against Copying

Info

Publication number
CA2174299A1
CA2174299A1 CA2174299A CA2174299A CA2174299A1 CA 2174299 A1 CA2174299 A1 CA 2174299A1 CA 2174299 A CA2174299 A CA 2174299A CA 2174299 A CA2174299 A CA 2174299A CA 2174299 A1 CA2174299 A1 CA 2174299A1
Authority
CA
Canada
Prior art keywords
processor
program data
volatile memory
program
secure
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.)
Granted
Application number
CA2174299A
Other languages
French (fr)
Other versions
CA2174299C (en
Inventor
Edward L. Schwartz
Michael J. Gormish
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of CA2174299A1 publication Critical patent/CA2174299A1/en
Application granted granted Critical
Publication of CA2174299C publication Critical patent/CA2174299C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Abstract

A secure system for executing program code in an insecure environment while making it impossible, or at least impractical, to determine how to copy the program code and associated data is provided. A program memory contains encrypted program data and security circuitry contained within an integrated circuit is provided for decrypting the program data as it is needed by a processor. A portion of the processing steps which would be done by the processor in an insecure system is performed in this secure system within the secure circuitry using portions of the decrypted program data which are not provided to the processor. Program data is parsed it out based on a proper request to the security chip from the processor. A key value stored in volatile memory is used in the decrypting process and the volatile memory is positioned on the integrated circuit such that its contents are lost before a chip peel provides access to the volatile memory.
CA002174299A 1995-04-18 1996-04-16 Method and apparatus for securing executable programs against copying Expired - Fee Related CA2174299C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/423,402 1995-04-18
US08/423,402 US5675645A (en) 1995-04-18 1995-04-18 Method and apparatus for securing executable programs against copying

Publications (2)

Publication Number Publication Date
CA2174299A1 true CA2174299A1 (en) 1996-10-19
CA2174299C CA2174299C (en) 1999-05-04

Family

ID=23678781

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002174299A Expired - Fee Related CA2174299C (en) 1995-04-18 1996-04-16 Method and apparatus for securing executable programs against copying

Country Status (3)

Country Link
US (2) US5675645A (en)
CA (1) CA2174299C (en)
TW (1) TW302455B (en)

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4162099B2 (en) 1995-06-02 2008-10-08 富士通株式会社 Device having function to cope with virus infection and storage device thereof
US5883955A (en) * 1995-06-07 1999-03-16 Digital River, Inc. On-line try before you buy software distribution system
US5887060A (en) * 1995-06-07 1999-03-23 Digital River, Inc. Central database system for automatic software program sales
US5903647A (en) * 1995-06-07 1999-05-11 Digital River, Inc. Self-launching encrypted digital information distribution system
US5870543A (en) * 1995-06-07 1999-02-09 Digital River, Inc. System for preventing unauthorized copying of active software
US5883954A (en) * 1995-06-07 1999-03-16 Digital River, Inc. Self-launching encrypted try before you buy software distribution system
AU6269796A (en) * 1995-06-07 1996-12-30 Digital River, Inc. Try-before-you-buy software distribution and marketing syste m
US6067622A (en) * 1996-01-02 2000-05-23 Moore; Steven Jerome Software security system using remove function to restrict unauthorized duplicating and installation of an application program
FR2743910B1 (en) * 1996-01-19 1998-02-27 Solaic Sa METHOD FOR IMPLEMENTING A SECURE PROGRAM IN A MICROPROCESSOR CARD AND MICROPROCESSOR CARD COMPRISING A SECURE PROGRAM
US6009543A (en) * 1996-03-01 1999-12-28 Massachusetts Institute Of Technology Secure software system and related techniques
JP3683031B2 (en) * 1996-04-17 2005-08-17 株式会社リコー Program protector
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
EP0855638A1 (en) * 1997-01-24 1998-07-29 Deutsche Thomson-Brandt Gmbh Method and apparatus for encrypting and for decrypting data arranged in a data sector
US6141698A (en) * 1997-01-29 2000-10-31 Network Commerce Inc. Method and system for injecting new code into existing application code
US6480959B1 (en) 1997-12-05 2002-11-12 Jamama, Llc Software system and associated methods for controlling the use of computer programs
US6334189B1 (en) 1997-12-05 2001-12-25 Jamama, Llc Use of pseudocode to protect software from unauthorized use
US6643775B1 (en) 1997-12-05 2003-11-04 Jamama, Llc Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications
US6018712A (en) * 1997-12-19 2000-01-25 Pactong; Alberto Method and apparatus for remote program execution to use in computer software protection without the use of encryption
US7587044B2 (en) * 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
GB2336005A (en) * 1998-03-28 1999-10-06 Motorola Ltd Maintaining security in development tools
US6292899B1 (en) 1998-09-23 2001-09-18 Mcbride Randall C. Volatile key apparatus for safeguarding confidential data stored in a computer system memory
US20030195974A1 (en) 1998-12-04 2003-10-16 Ronning Joel A. Apparatus and method for scheduling of search for updates or downloads of a file
US7058597B1 (en) 1998-12-04 2006-06-06 Digital River, Inc. Apparatus and method for adaptive fraud screening for electronic commerce transactions
US7617124B1 (en) 1998-12-04 2009-11-10 Digital River, Inc. Apparatus and method for secure downloading of files
US6292506B1 (en) 1998-12-04 2001-09-18 The United States Of America As Represented By The Secretary Of The Air Force Length selectable, hardware efficient pseudorandom code generator
US6457125B1 (en) 1998-12-14 2002-09-24 Compaq Computer Corporation Encrypted download of SRAM-based FPGAs
US7092523B2 (en) * 1999-01-11 2006-08-15 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
CA2258338C (en) * 1999-01-11 2009-02-24 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
JP2003505802A (en) * 1999-07-22 2003-02-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Data carrier for storing data and circuit arrangement for such a data carrier
FR2802668B1 (en) * 1999-12-15 2002-02-08 St Microelectronics Sa SECURE DATA TRANSFER PROCESS
US6304972B1 (en) * 2000-01-03 2001-10-16 Massachusetts Institute Of Technology Secure software system and related techniques
NO311197B1 (en) * 2000-03-02 2001-10-22 Ramirez Olguin Nelson Eric Security system against illegal use or copying of electronic data
US20060143714A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
US7844579B2 (en) 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060173848A1 (en) * 2000-03-09 2006-08-03 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143252A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20050015608A1 (en) 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US20060155731A1 (en) * 2000-03-09 2006-07-13 Pkware, Inc. System and method for manipulating and managing computer archive files
US6879988B2 (en) 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
US20060143250A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US8230482B2 (en) * 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
WO2001082204A1 (en) * 2000-04-26 2001-11-01 Venice Technologies, Inc. Methods and systems for securing computer software
US7051200B1 (en) * 2000-06-27 2006-05-23 Microsoft Corporation System and method for interfacing a software process to secure repositories
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
CA2320665C (en) 2000-09-26 2010-08-17 Spielo Manufacturing Incorporated System and method for downloading electronic information to a video lottery terminal
FI115356B (en) * 2001-06-29 2005-04-15 Nokia Corp A method for processing audio-visual information in an electronic device, a system and an electronic device
FI115257B (en) * 2001-08-07 2005-03-31 Nokia Corp Method for Processing Information in an Electronic Device, System, Electronic Device, and Processor Block
US7853803B2 (en) 2001-09-28 2010-12-14 Verizon Corporate Services Group Inc. System and method for thwarting buffer overflow attacks using encrypted process pointers
US7320075B2 (en) * 2001-11-20 2008-01-15 Safenet, Inc. Software protection method utilizing hidden application code in a protection dynamic link library object
FR2832824A1 (en) * 2001-11-28 2003-05-30 St Microelectronics Sa Integrated circuit card operation blocking method e.g. for smart card, involves executing blocking program including sequence of instructions to proceed with loop operation of blocking program, when jump table is generated
US20030217280A1 (en) * 2002-05-17 2003-11-20 Keaton Thomas S. Software watermarking for anti-tamper protection
GB2406943B (en) * 2002-12-12 2005-10-05 Advanced Risc Mach Ltd Processing activity masking in a data processing system
JP4748929B2 (en) * 2003-08-28 2011-08-17 パナソニック株式会社 Protection circuit and semiconductor device
DE10340411B4 (en) * 2003-09-02 2005-10-13 Infineon Technologies Ag Device and method for the safe execution of a program
US8499358B2 (en) * 2003-09-12 2013-07-30 Konica Minolta Business Technologies, Inc. Program executing processing and controlling
JP2005332221A (en) * 2004-05-20 2005-12-02 Renesas Technology Corp Storage device
JP2005346182A (en) * 2004-05-31 2005-12-15 Fujitsu Ltd Information processor, tamper resistant method, and tamper resistant program
US20060117122A1 (en) * 2004-11-04 2006-06-01 Intel Corporation Method and apparatus for conditionally obfuscating bus communications
US8161524B2 (en) * 2005-01-13 2012-04-17 Samsung Electronics Co., Ltd. Method and portable storage device for allocating secure area in insecure area
EP2395424B1 (en) 2005-01-18 2013-07-31 Certicom Corp. Accelerated verification of digital signatures and public keys
US8467535B2 (en) * 2005-01-18 2013-06-18 Certicom Corp. Accelerated verification of digital signatures and public keys
US20060224517A1 (en) * 2005-04-04 2006-10-05 Anirudha Shimpi Systems and methods for delivering digital content to remote locations
US10210529B2 (en) * 2005-04-04 2019-02-19 Mediaport Entertainment, Inc. Systems and methods for advertising on remote locations
US20060249576A1 (en) * 2005-04-04 2006-11-09 Mark Nakada Systems and methods for providing near real-time collection and reporting of data to third parties at remote locations
JP4618676B2 (en) 2005-04-28 2011-01-26 株式会社リコー Structured document code transfer method, image processing system, server device, program, and information recording medium
WO2007004219A2 (en) * 2005-07-04 2007-01-11 Discretix Technologies Ltd. System, device and method of verifying that a code is executed by a processor
US7934104B2 (en) * 2006-01-25 2011-04-26 International Business Machines Corporation Systems and methods for verifying a licensed installation at time of update
US8041958B2 (en) * 2006-02-14 2011-10-18 Lenovo (Singapore) Pte. Ltd. Method for preventing malicious software from execution within a computer system
US8694797B2 (en) * 2006-02-14 2014-04-08 Lenovo (Sinapore) Pte Ltd Method for preventing malicious software from execution within a computer system
US8898536B2 (en) * 2007-04-27 2014-11-25 Netapp, Inc. Multi-core engine for detecting bit errors
US10223858B2 (en) 2007-07-05 2019-03-05 Mediaport Entertainment, Inc. Systems and methods monitoring devices, systems, users and user activity at remote locations
JP5060372B2 (en) * 2008-04-10 2012-10-31 ルネサスエレクトロニクス株式会社 Data processing device
US9158579B1 (en) 2008-11-10 2015-10-13 Netapp, Inc. System having operation queues corresponding to operation execution time
EP2196937A1 (en) * 2008-12-15 2010-06-16 Thomson Licensing Methods and devices for instruction level software encryption
EP2280365B1 (en) * 2009-07-27 2012-07-18 Nagravision S.A. A processor-implemented method for ensuring software integrity
KR101897836B1 (en) 2009-09-15 2018-09-12 케이피아이티 테크놀로지스 엘티디. Method of converting vehicle into hybrid vehicle
EP2477835B1 (en) 2009-09-15 2018-03-21 KPIT Technologies Limited Method of providing assistance for a hybrid vehicle based on user input
WO2011033528A2 (en) 2009-09-15 2011-03-24 Kpit Cummins Infosystems Limited Motor assistance for a hybrid vehicle
US9227626B2 (en) 2009-09-15 2016-01-05 Kpit Technologies Limited Motor assistance for a hybrid vehicle based on predicted driving range
RU2541196C2 (en) * 2010-07-22 2015-02-10 Награвисьон С.А. Method of providing software integrity
US8745408B2 (en) * 2011-04-08 2014-06-03 Infineon Technologies Ag Instruction encryption/decryption arrangement and method with iterative encryption/decryption key update
US8745376B2 (en) 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
US9245143B2 (en) 2012-02-09 2016-01-26 Microsoft Technology Licensing, Llc Security policy for device data
KR20140097927A (en) * 2013-01-30 2014-08-07 삼성전자주식회사 The methods for increasing the security of the software
JP6122054B2 (en) * 2015-03-13 2017-04-26 ファナック株式会社 Monitor device having branch circuit extraction display function of ladder program

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4168396A (en) * 1977-10-31 1979-09-18 Best Robert M Microprocessor for executing enciphered programs
US4465901A (en) * 1979-06-04 1984-08-14 Best Robert M Crypto microprocessor that executes enciphered programs
US4433207A (en) * 1981-09-10 1984-02-21 Best Robert M Cryptographic decoder for computer programs
JPS58116571A (en) * 1981-12-29 1983-07-11 富士通株式会社 Instruction coding method for microcomputer and microcomputer used for execution thereof
US4558176A (en) * 1982-09-20 1985-12-10 Arnold Mark G Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software
US4562305A (en) * 1982-12-22 1985-12-31 International Business Machines Corporation Software cryptographic apparatus and method
GB9121591D0 (en) * 1991-10-11 1991-11-27 Pilkington Micro Electronics Data security arrangement for semiconductor programmable logic devices
US5379342A (en) * 1993-01-07 1995-01-03 International Business Machines Corp. Method and apparatus for providing enhanced data verification in a computer system
US5533051A (en) * 1993-03-12 1996-07-02 The James Group Method for data compression
JP2576385B2 (en) * 1993-10-28 1997-01-29 日本電気株式会社 Data protection device
US5666411A (en) * 1994-01-13 1997-09-09 Mccarty; Johnnie C. System for computer software protection
US5504816A (en) * 1994-02-02 1996-04-02 Gi Corporation Method and apparatus for controlling access to digital signals

Also Published As

Publication number Publication date
US5675645A (en) 1997-10-07
TW302455B (en) 1997-04-11
USRE40405E1 (en) 2008-06-24
CA2174299C (en) 1999-05-04

Similar Documents

Publication Publication Date Title
CA2174299A1 (en) Method and Apparatus for Securing Executable Programs Against Copying
MY117019A (en) A decoding method for processing encrypted video data
CA2292667A1 (en) Apparatus and method of reading a program into a processor
US20040193987A1 (en) Protection of software code from unauthorized use by executing portions of the code in a secure computer environment separate from the environment that executes the remaining portions of the code
US4593353A (en) Software protection method and apparatus
WO1997007657A3 (en) Parameterized hash functions for access control
WO2002001326A3 (en) System and method for client interaction in a multi-level rights-management architecture
DE60038046D1 (en) ACCESS SYSTEM AND PROCEDURE FOR PROTECTED INHAL
EP0887723A3 (en) Apparatus, method and computer program product for protecting copyright data within a computer system
DE69819485D1 (en) METHOD AND DEVICE FOR THE SAFE PROCESSING OF CRYPTOGRAPHIC KEYS
WO2003054661A3 (en) Method and system for enabling content security in a distributed system
EP1051036A3 (en) Cryptographic method and apparatus for restricting access to transmitted programming content using hash functions and program identifiers
WO2000052875A8 (en) Transparent encryption and decryption with algorithm independent cryptographic engine that allows for containerization of encrypted files
WO1999030238A3 (en) Secure class resolution, loading and definition
EP1612641A3 (en) Self-protecting documents
CA2253102A1 (en) Method of and system for processing electronic document and recording medium for recording processing program
JP3481470B2 (en) System for preventing unauthorized alteration of data and the like and encryption device used together therewith
DE60004140D1 (en) Database generation system for encrypted program material
EP0316805A3 (en) Copy prevention apparatus and method therefor
DE69231840D1 (en) METHOD AND DEVICE FOR ENCRYPTING AND TRANSMITTING DATA
ATE255304T1 (en) DEVICE AND METHOD FOR SECURE INFORMATION PROCESSING
US20030046564A1 (en) Storage medium and method for storing data decrypting algorithm
DK0990226T3 (en) Secure reading and processing of data on intelligent data carriers
CA2312967A1 (en) System and method of sending and receiving secure data with a shared key
WO2005045557A3 (en) The secure attention instruction central processing unit and system architecture

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed