WO2016199364A1 - ソフトウェア複製防止システム - Google Patents

ソフトウェア複製防止システム Download PDF

Info

Publication number
WO2016199364A1
WO2016199364A1 PCT/JP2016/002541 JP2016002541W WO2016199364A1 WO 2016199364 A1 WO2016199364 A1 WO 2016199364A1 JP 2016002541 W JP2016002541 W JP 2016002541W WO 2016199364 A1 WO2016199364 A1 WO 2016199364A1
Authority
WO
WIPO (PCT)
Prior art keywords
code
encryption
software
post
encrypted
Prior art date
Application number
PCT/JP2016/002541
Other languages
English (en)
French (fr)
Inventor
高幸 松永
Original Assignee
株式会社デンソー
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 株式会社デンソー filed Critical 株式会社デンソー
Priority to US15/580,000 priority Critical patent/US20180137262A1/en
Priority to CN201680032815.5A priority patent/CN107683581A/zh
Priority to EP16807081.1A priority patent/EP3309994B1/en
Publication of WO2016199364A1 publication Critical patent/WO2016199364A1/ja

Links

Images

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
    • 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/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/106Enforcing content protection by specific content processing
    • G06F21/1066Hiding content

Definitions

  • This disclosure relates to a software duplication prevention system equipped with functions for preventing unauthorized use and expiration dates.
  • API application programming interface
  • indoor positioning technology For example, companies that have indoor positioning technology have created indoor positioning basic software and APIs so that anyone can easily create applications in fields that require special technology for positioning, such as indoor positioning systems. It is distributed to creators for a fee or free of charge.
  • the basic software it is common for the basic software to set a function for preventing duplication, a use time limit, and the like.
  • Functions to prevent duplication, expiration date, etc. for example, a method in which the use of basic software is permitted only when a USB memory incorporating these functions and information is distributed for a fee and connected to the terminal. It was done by adopting.
  • the above-described functions for preventing duplication and the method for managing the expiration date require a USB memory, and therefore may not be used on a device that does not have a USB memory interface, such as a smartphone. Convenience may be impaired, for example, a USB memory is required for use.
  • This disclosure is intended to provide a software duplication prevention system having a function for preventing unauthorized use, a use time limit, and the like without using a USB memory or the like.
  • the software duplication prevention system includes a terminal including a reception unit for data transmitted from a post and basic software, and a post including a transmission unit for transmitting data to the terminal.
  • Data sent from the post is sent as a second encryption code encrypted with the second encryption key.
  • the terminal decrypts the decryption unit for decrypting the first encryption code encrypted with the first encryption key, the first decryption key corresponding to the first encryption key, and the received second encryption code.
  • a decoding unit for converting the data.
  • the terminal decrypts the first encrypted code with the first decryption key to obtain a second decryption key corresponding to the second encryption key, and uses the second decryption key to obtain the second encrypted code. Is decrypted.
  • the basic information provided in the terminal has the second decryption key corresponding to the second encryption key, and thereby the post information is decrypted by decrypting the second encryption code created with the second encryption key. Since the ID for reading is acquired, unauthorized use of post information can be prevented.
  • FIG. 1 is a post layout diagram in the first embodiment.
  • FIG. 2 is a block diagram showing the configuration of the software copy prevention system according to the first embodiment.
  • FIG. 3 is a diagram showing an overview of the first encrypted code generation device
  • FIG. 4 is a diagram showing an outline of the basic software creation device
  • FIG. 5 is a block diagram showing a hardware configuration of the mobile terminal
  • FIG. 6 is a block diagram showing the hardware configuration of the post
  • FIG. 7 is a block diagram showing a hardware configuration of the first encrypted code generation device
  • FIG. 8 is a block diagram showing the hardware configuration of the basic software creation device
  • FIG. 1 is a post layout diagram in the first embodiment.
  • FIG. 2 is a block diagram showing the configuration of the software copy prevention system according to the first embodiment.
  • FIG. 3 is a diagram showing an overview of the first encrypted code generation device
  • FIG. 4 is a diagram showing an outline of the basic software creation device
  • FIG. 5 is a block diagram showing a hardware configuration of the mobile terminal
  • FIG. 9 is a flowchart schematically showing a procedure for starting basic software in an application program.
  • FIG. 10 is a flowchart schematically showing a decryption procedure of the second encrypted code sent from the post.
  • FIG. 11 shows an ID reference example.
  • FIG. 12 is a flowchart schematically showing ID reference
  • FIG. 13 is a block diagram showing a software copy prevention system according to the second embodiment.
  • FIG. 14 is a schematic diagram of a first encrypted code generation device according to the second embodiment
  • FIG. 15 is a schematic diagram of a first encrypted code generation device according to the third embodiment.
  • FIG. 16 is a diagram showing an outline of the basic software creation device according to the third embodiment.
  • FIG. 17 is a block diagram showing a software duplication prevention system according to the third embodiment.
  • FIG. 18 is a flowchart schematically showing a basic software activation process procedure in the application program according to the third embodiment.
  • FIG. 19 is a block diagram showing a software copy prevention system according to the fourth embodiment.
  • FIG. 20 is a flowchart schematically showing a decryption procedure of the second encrypted code sent from the post according to the fourth embodiment.
  • FIG. 21 is a schematic diagram of a first encrypted code generation device according to the fifth embodiment.
  • FIG. 22 is a block diagram showing a software copy prevention system according to the fifth embodiment.
  • FIG. 23 is a flowchart schematically showing a basic software activation process procedure in the application program according to the fifth embodiment.
  • FIG. 24 is a post / latitude longitude table according to the sixth embodiment.
  • FIG. 25 is a block diagram showing a software copy prevention system according to the sixth embodiment.
  • FIG. 26 is a software block diagram of the positioning system according to the sixth embodiment.
  • FIG. 27 is a schematic diagram of a first encrypted code generation device according to the seventh embodiment
  • FIG. 28 is a block diagram showing a software duplication prevention system according to the seventh embodiment.
  • FIG. 29 is a software block diagram of the positioning system according to the seventh embodiment.
  • FIG. 30 is a schematic diagram of a first encrypted code generation device according to the eighth embodiment
  • FIG. 31 is a block diagram showing a software copy prevention system according to the eighth embodiment.
  • FIG. 32 is a schematic flowchart of server access according to the eighth embodiment.
  • FIG. 33 is an authentication table according to the eighth embodiment.
  • FIG. 34 is a flowchart of server authentication according to the eighth embodiment.
  • a plurality of posts 14 are arranged in an indoor passage 12, and different IDs 18 are sent out.
  • the ID 18 that is information on the post 14 can be acquired.
  • the ID 18 means information that can identify each post 14 and can be, for example, an enumeration of numbers and symbols unique to each post 14 or position information.
  • the ID 18 sent from the post 14 is encrypted and transmitted as will be described later, and is decrypted and used inside the mobile terminal 16.
  • the data from the post 14 is ID18, but it may be an image or HTML data, for example.
  • each post 14 has a different ID 18, a second encryption code encryption unit 20 (hereinafter referred to as the encryption unit 20), a second encryption key 22, and a second encryption code 24. is doing. Further, the post 14 has a transmitter 26a.
  • the encryption unit 20 is a program for encrypting the stored ID 18, and a key for performing encryption is held inside as a second encryption key 22.
  • the ID 18 is encrypted by the encryption unit 20 and a second encryption code 24 is generated.
  • the second encrypted code 24 is transmitted from the transmitter to the outside.
  • the processing in the encryption unit 20 is actually realized in software by executing a program for encrypting the second encryption code in the CPU 72 (described later) of the post 14.
  • the encryption unit 20 is not limited to software, and may be realized by hardware or by cooperation of hardware and software.
  • the encryption algorithm is not mentioned here.
  • the method for storing the second encryption key 22 and ID 18 is not limited.
  • the type of volatile type, nonvolatile type, or memory to be stored is arbitrary.
  • the mobile terminal 16 includes an application program 28, basic software 30, and a receiving unit 26b.
  • the basic software 30 is software having a copy prevention function, and is provided to the application creator by the creator of the basic software 30.
  • the application program 28 and the basic software 30 may be combined into one package.
  • the mobile terminal 16 further includes an operation unit, a display unit, a power supply unit, and the like (not shown).
  • the application program 28 is software that uses the basic software 30.
  • the application program 28 has a first encryption code 29.
  • a possession method a method of retaining directly as a program code in a program, a method of retaining by a file, a method of describing in a registry, a method of retaining in an external server, and the like can be considered.
  • first encryption code 29 a key for decrypting the second encryption code 24 which is the encrypted ID 18 from the post 14 is described in an encrypted form.
  • the first encryption code 29 will be described in detail with reference to FIG.
  • the application program 28 notifies the basic software 30 of the first encryption code 29.
  • the basic software 30 is configured not to operate unless the first encryption code 29 is notified.
  • the basic software 30 includes a first decryption key 32 for decrypting the first encryption code 29 therein.
  • the notified first encryption code 29 is first decrypted by the first encryption code decryption unit 31 (hereinafter referred to as the decryption unit 31 or the first decryption unit) using the first decryption key 32. Decrypted to key 34. This is a decryption key for the second encryption code 24 output from the post 14.
  • the processing in the decryption unit 31 is actually realized in software by executing a program for decrypting the first encrypted code in a CPU 72 (to be described later) of the mobile terminal 16.
  • the decoding unit 31 is not limited to software, and may be realized by hardware or by cooperation of hardware and software.
  • the receiving unit 26b receives a signal including the second encrypted code 24 transmitted from the transmitting unit 26a of the post 14.
  • the received second encrypted code 24 is decrypted by a second encrypted code decryption unit 36 (hereinafter referred to as the decryption unit 36 or the second decryption unit) using the second decryption key 34, and the post
  • the ID 18 held by 14 is decrypted.
  • the mobile terminal 16 uses the ID 18 to perform services such as display associated with a point by executing the application program 28.
  • the processing in the decryption unit 36 is actually realized in software by executing a program for decrypting the second encrypted code in a CPU 72 (to be described later) of the mobile terminal 16.
  • the decoding unit 36 is not limited to software, and may be realized by hardware or by cooperation of hardware and software.
  • the UI operation unit 48 is an operation unit for operating the first encrypted code generation device 50 (hereinafter referred to as the code generation device 50), such as a keyboard, a screen, and a mouse (not shown). Includes pointing devices.
  • the control unit 46 executes various programs in accordance with inputs from the UI operation unit 48, and executes and controls functions corresponding to the programs.
  • the second decryption key 34 is a second decryption key 34 corresponding to the second encryption key 22 stored in the post 14 described in FIG. 2, and is used for decrypting the data encrypted with the second encryption key 22.
  • the information is input to the apparatus by the UI operation unit 48.
  • the first encryption key 40 is a key corresponding to the first decryption key 32, and the first decryption key 32 is stored in the basic software 30.
  • the first encryption key 40 and the second decryption key 34 are input to the code generation device 50 by the UI operation unit 48.
  • the control unit 46 controls the first encryption code encryption unit 42 (hereinafter referred to as the encryption unit 42) by the input to the UI operation unit 48
  • the first encryption code 29 is output.
  • the second decryption key 34 is encrypted with the first encryption key 40 to generate the first encryption code 29.
  • the key may be input by operation, may be input as a file, may be acquired through communication, or may be embedded in the program.
  • the processing in the encryption unit 42 is actually realized in software by executing the encryption program for the first encrypted code in the control unit 46 of the code generation device 50.
  • the encryption unit 42 is not limited to software, and may be realized by hardware or by cooperation of hardware and software.
  • the UI operation unit 48 is an operation unit for operating the basic software creation device 52, and includes, for example, a pointing device such as a keyboard, a screen, and a mouse (not shown).
  • the compiling unit 56 executes and controls various functions in accordance with instructions from the UI operation unit 48.
  • the basic software source program 54 (hereinafter referred to as the source program 54) is an original source program that does not have the first decryption key 32.
  • the first decryption key 32 is incorporated in the compiling unit 56, and the first decryption key 32 is contained therein.
  • the basic software 30 to be held is generated.
  • the source program 54 is described as a “source program”, but a compiled binary may naturally be used.
  • the first decryption key 32 is intended to be embedded in the basic software 30 that does not have the first decryption key 32 here.
  • the mobile terminal 16 for example, a portable information terminal such as a smartphone is used.
  • the mobile terminal 16 is connected via an interface (I / F) 80 to a CPU 72, PROM 74 (programmable ROM), DRAM 76 (dynamic random access memory), user interface 78, external memory 82, hard disk 84, NIC (network interface card) 86.
  • I / F interface
  • CPU 72 PROM 74
  • DRAM 76 dynamic random access memory
  • user interface 78 external memory
  • external memory 82 external memory
  • hard disk 84 hard disk 84
  • NIC network interface card
  • the PROM 74 is configured by a flash memory or the like, and generally stores a BIOS or the like.
  • the DRAM 76 is used as a main storage device.
  • the hard disk 84 is used as a memory for storing an OS, basic software 30, application program 28, and other data.
  • the user interface 78 includes a screen, a touch panel, etc. (not shown).
  • the external memory 82 corresponds to an interface with external storage data such as a USB memory.
  • the NIC 86 is connected to the LAN 88.
  • the LAN 88 includes, for example, a wireless LAN and a public line.
  • the post 14 has a configuration in which the CPU 72, the PROM 74, the DRAM 76, the transmitter 98, and the memory 100 are connected to each other via an interface (I / F) 80.
  • the PROM 74 stores a program for operating the post 14.
  • the DRAM 96 is used as a temporary storage device for operating this program.
  • the memory 100 is used to store post 14-specific data, such as the post 14 number, and the transmitter 98 outputs this data.
  • the post 14 includes an external interface (not shown).
  • the code generation device 50 and the basic software creation device 52 are connected via an interface (I / F) 80 to the CPU 72, PROM 74, DRAM 76, user interface 78, external memory 82, hard disk 84, A NIC (network interface card) 86 is connected to each other.
  • the application program 28 waits for input of the first encryption code 29 (S901).
  • the basic software 30 is not activated until the first encryption code 29 is input (S901: NO).
  • the decryption unit 31 decrypts the first encryption code 29 using the first decryption key 32 held in the basic software 30 (S902),
  • the second decryption key 34 is generated and stored (S903), and the activation process is terminated. Whether or not the decrypted data is correct cannot be determined until the second encrypted code 24 is decrypted using the second decryption key 34.
  • a third embodiment to be described later shows an embodiment that can be immediately determined.
  • the application program 28 waits for the reception of the second encrypted code 24 sent from the post 14 (S1001), and continues to wait when there is no reception (S1001: NO). If received, the second encryption code 24 is decrypted using the second decryption key 34 (S1002), and the ID 18 of the post 14 is obtained (S1003).
  • the ID 18 acquired by the basic software 30 can be referred to by the application program 28.
  • the application program 28 refers to the ID table 146 by the ID table reference unit 140.
  • the ID table 146 is stored as a file in the mobile terminal or in an external memory card, an external server, or the like.
  • information indicating the name of the moving image associated with the ID 18 or the name including the storage location is described.
  • the moving image reproducing unit 142 reproduces the moving image data 144.
  • the reproduced moving image data 144 is displayed on a screen (not shown).
  • the application program 28 confirms the update of the ID 18 (S1201). When ID18 is not updated, it waits until it is updated again (S1201: NO). When updated (S1201: YES), the ID table 146 is referred to (S1202). When the ID 18 does not exist in the ID table 146 (S1203: NO), it waits for the update of the ID 18 again (S1201).
  • the reason that the ID 18 does not exist in the ID table 146 is considered that the ID 18 decrypted by the decryption unit 36 is wrong because the second decryption key 34 used in the basic software 30 is wrong. Since the second decryption key 34 is generated from the first encryption code 29, it can be determined that the first encryption code 29 used in the application program 28 is illegal. In this case, the original function of reproducing a moving image cannot be realized, and as a result, a function for preventing unauthorized duplication can be realized.
  • ID 18 exists in the ID table 146 (S1203: YES)
  • information on the moving image is acquired (S1204)
  • the moving image is played back (S1205)
  • ID18 update confirmation is returned again (S1201).
  • the application program stores the encryption data including the decryption key for the post 14 created with the encryption key paired with the decryption key in the basic software 30 in the terminal. 28.
  • the basic software 30 does not operate unless the encrypted data is given by the application program 28.
  • the decryption key for the external post 14 is not generated and the post 14 information cannot be read, so that unauthorized use can be prevented.
  • the basic software 30 is configured not to start unless the first encryption code 29 is given from the application program 28, unauthorized copying of only the basic software 30 can be prevented.
  • the first encryption code 29 is notified to the basic software 30 by the API and arranged in the application program 28, the first encryption code 29 cannot be illegally copied.
  • the correct ID 18 cannot be acquired as shown in the explanation of FIG. 12, and as a result, the post 14 information cannot be used. Even if the first encryption code 29 can be copied illegally, the second decryption key 34 does not match outside the target area, and the ID 18 cannot be used as a result. Therefore, the post 14 information cannot be used also in this case. In this case, control for stopping the operation of the basic software 30 may be performed.
  • the first encryption code 29 includes a second decryption key 34 for decrypting the second encryption code 24 from the post 14, but the first encryption code 29 is encrypted, so it is illegal. You cannot read or change it.
  • the key for decrypting the second encryption code 24, which is data sent from the post 14 is stored in the first encryption code 29, only the encryption code 1 is stored without changing the basic software 30 itself. It is possible to distribute the second decryption key 34, which is the decryption key of the post 14 corresponding to the corresponding area, simply by changing. These actions can be realized without using an external device such as a USB memory.
  • the post 14 includes a random number generator 150.
  • the random number generator 150 periodically generates different random numbers 150a.
  • a second encrypted code 24 is created using the generated random number 150a and ID 18, and is output from the transmitter 26a.
  • the random number generator 150 may be configured by either software or hardware. In the basic software 30, the decryption unit 36 decrypts the encryption to obtain the ID 18 and the random number 150a.
  • the first encryption code 29 also includes a random number 150a as will be described later.
  • the second decryption key 34 and the random number 150a are obtained.
  • the basic software 30 only generates a random number 150a created from the first encrypted code 29 and a random number 150a created from the second encrypted code 24, and does not use them.
  • the code generation device 50 includes a random number generator 150.
  • the random number generator 150 periodically generates different random numbers 150a.
  • the generated random number 150a and the second decryption key 34 are encrypted with the first encryption key 40, and the first encryption code 29 is created.
  • the random number 150 a may be assigned to either the first encryption code 29 or the second encryption code 24.
  • the system 10 in addition to the second decryption key 34 and the ID 18 that are fixed codes (fixed values) when the first encrypted code 29 and the second encrypted code 24 are generated, the system 10 periodically Since the changing random number 150a is added, as a result, the values of the first encryption code 29 and the second encryption code 24 change periodically. This makes it possible to improve confidentiality.
  • the ID 18 of the post 14 is not encrypted, the same encrypted code is always output. Therefore, the post 14 can be specified only by using the encrypted number. In the second embodiment, this can also be prevented by setting the generation cycle of the random number 150a for each communication.
  • the unauthorized data recognition of the first encryption code 29 could not be detected until the ID18 table reference in FIG.
  • the third embodiment is an embodiment in which this point is improved.
  • the confirmation code 152 is embedded when the first encrypted code 29 is generated.
  • the first encrypted code 29 to which the confirmation code 152 is added is generated.
  • the confirmation code 152 may be fixed or a code generated by a reversible calculation formula based on the second decryption key 34.
  • a reversible calculation formula for example, an inverted code can be exemplified.
  • the confirmation code 152 is a fixed code “ABCD” will be described.
  • the encryption unit 42 encrypts the second decryption key 34 and the confirmation code 152 to generate the first encrypted code 29.
  • confirmation code 152 is not a fixed value but a code generated based on the second decryption key 34
  • a reversible calculation determined in advance by a confirmation embedded code generation device (not shown) or created on the spot. From the formula, a check embedding code 154 (hereinafter referred to as an embedding code 154) described below is created and used.
  • an embedded code 154 is embedded in the basic software 30.
  • the embedded code 154 has the same value “ABCD” as the confirmation code.
  • the confirmation code 152 is not a fixed value and is a code generated based on the second decryption key 34, a reversible calculation used when the embedded code 154 is generated by a verification embedded code generation device (not shown).
  • the expression is embedded in the basic software 30.
  • the first encryption code 29 is decrypted by the decryption unit 31, and the second decryption key 34 and the confirmation code 152 are generated.
  • the confirmation code “ABCD” set in FIG. 16 is decoded.
  • the application program 28 waits for the input of the first encryption code 29 (S1801).
  • the basic software 30 is not activated until the first encryption code 29 is input (S1801: NO).
  • the decryption unit 31 decrypts the first encryption code 29 using the first decryption key 32 held in the basic software 30 (S1802).
  • the confirmation code 152 and the second decryption key 34 are generated. At this point in time, it is not known whether the decryption has been successful.
  • the confirmation code 152 may not be a fixed code but may be a code generated based on the second decryption key 34.
  • the confirmation code determination unit reads the second decryption key 34, performs the same process as the process of generating the confirmation code 152, and compares the created code with the decrypted confirmation code 152. do it.
  • the basic program immediately Can be stopped and unauthorized use can be prevented.
  • the third embodiment is applied to post 14 encryption to prevent use in an unauthorized area.
  • a post-confirmation code 156 (hereinafter referred to as confirmation code 156) is embedded when the second encrypted code 24 is generated.
  • the post 14 generates the second encrypted code 24 with the confirmation code 156 added thereto.
  • the confirmation code 156 may have the same configuration as the confirmation code 152 described in the third embodiment.
  • the confirmation code 156 will be described as a fixed code “ABCD”.
  • the encryption unit 20 encrypts the ID 18 and the confirmation code 156, that is, the fixed code “ABCD”, and generates the second encrypted code 24.
  • the second encrypted code 24 is transmitted by the transmitter 26a.
  • the confirmation code 156 and the ID 18 are generated from the second encryption code 24.
  • the application program 28 is executed in the mobile terminal 16, and the reception of a signal from the post 14 is awaited (S2001).
  • the basic software 30 continues to wait until a signal is received from the post 14 (S2001: NO).
  • the decryption unit 36 decrypts the post confirmation code 190 and the ID 18 with the second decryption key 34 (S2002).
  • the mobile terminal 16 confirms whether or not the fixed code “ABCD”, which is a fixed value, has been acquired as the post confirmation code 190 (S2003).
  • the post confirmation code 190 cannot acquire the fixed code “ABCD” (S2003: NO)
  • it waits for reception from the post 14 again. This assumes a case where data from the post 14 is broken due to noise due to a communication failure or the like.
  • the post confirmation code 190 can acquire the fixed code “ABCD” (S2003: YES)
  • the ID 18 is acquired (S2004).
  • the code may be confirmed using the method described in the third embodiment.
  • the system 10 according to the fourth embodiment does not receive the ID 18 when used in an unauthorized area. This can prevent unauthorized use. Further, even when data cannot be received normally due to a communication failure or the like, ID 18 is not received.
  • the first encryption code 29 to which the expiration date 158 is added is generated.
  • various methods such as a method of setting the last usage date, the number of times of use, or the number of days of use can be adopted.
  • the second decryption key 34 and the expiration date 158 are stored in the first encryption code 29, the second decryption key 34 and the expiration date 158 are acquired by decrypting the second decryption key 34 and the expiration date 158.
  • the usage time limit 158 is confirmed. If the usage time limit is exceeded (S2301: NO), the basic software 30 is stopped (S2302). If it is within the usage period (S2301: YES), the second decryption key 34 is generated and stored (S903), and the activation process is terminated.
  • the expiration date 158 can be provided in the first encryption code 29, unauthorized use of the basic software 30 can be prevented. Furthermore, since the first encryption code 29 has a use time limit 158, the use time limit 158 can be changed only by changing the first encryption code 29 and without changing the basic software 30 itself.
  • IDs 18 stored in the post 14 (post IDs 1 to 7 in FIG. 24), latitude and longitude indicating the position of the post 14 are prepared as a table.
  • the latitude and longitude of the received post 14 can be acquired by referring to this table based on the decoded ID 18.
  • the positioning of the received post 14, that is, the position can be specified.
  • the measured latitude and longitude can be referred to by the application program 28.
  • the basic software 30 has a positioning system 160.
  • the positioning system 160 decodes the ID 18 from the post 14, the positioning system 160 performs positioning based on it.
  • the latitude / longitude 162 of the post 14 is calculated from the ID 18 from the post 14 and the post / latitude / longitude table 168 (hereinafter referred to as the table 168).
  • the table 168 is arranged inside this block, but it may be arranged in another location.
  • the table 168 has shown an example in which the correspondence between the post 14 and the latitude / longitude 162 that is the position information thereof is shown.
  • the table 168 further includes information on the height direction such as floor information and altitude, You may use for the use of high-rise buildings and underground malls.
  • latitude and longitude have been exemplified as a method for indicating the position
  • other methods for example, vector coordinates with respect to a reference point, or information that can specify a point such as an intersection name, a road name, and an address may be added.
  • the acquired information is not limited to the latitude and longitude, and is the various information associated with the post 14. The same applies to information acquired by the application program 28 shown in FIG.
  • ID18 of the post 14 and the table 168 conversion from the post 14 to the latitude and longitude, that is, positioning can be realized. Moreover, since ID18 can be used as position information as it is by making ID18 position information such as latitude and longitude 162 or an address, positioning can be realized.
  • the seventh embodiment relates to a method for limiting the use area in the sixth embodiment.
  • the usable area 170 may be rectangular or polygonal information indicating a latitude / longitude range, or may use an address or the like. Moreover, the name of a building or the like may be used, or the name of an underground shopping center may be entered. Furthermore, you may give the floor information and altitude which show a height direction. In short, information indicating an available range is given.
  • the first encryption code 29 is decrypted using the first decryption key 32, and the second decryption key 34 and the usable area 170 are decrypted.
  • the available area 170 is sent to the positioning system 160.
  • the availability determination unit 172 determines whether or not it can be used from the latitude and longitude 162 extracted from the latitude and longitude extraction unit 164 and the information described in the available area 170, and can be used. In such a case, the latitude / longitude 162 is output.
  • the usable area can be limited in a system that applies the system to positioning, unauthorized duplication can be prevented.
  • server access information 174 to an external server (hereinafter referred to as access information 174) is described in the first encryption code 29.
  • the access information 174 is access information to a server installed outside the mobile terminal 16, and means information for server access such as a server address and password.
  • the access information 174 is a server address, a user name, and a password.
  • the basic software 30 decrypts the first encryption code 29 and acquires the access information 174.
  • the server address, user name, and password are acquired here.
  • the mobile terminal 16 accesses the server 180 and transmits the acquired access information 174.
  • the authentication confirmation unit 182 collates with the authentication table 184 based on the acquired access information 174 transmitted.
  • the server 180 sends the second decryption key 34 to the mobile terminal 16.
  • the mobile terminal 16 accesses the server 180 having the acquired server address.
  • the mobile terminal 16 transmits the acquired access information 174 (for example, user name and password) to the server 180 and instructs the server 180 to perform authentication (S3201).
  • the server 180 performs authentication, and if the authentication is successful (S3202: YES), the mobile terminal 16 acquires the second decryption key 34 from the server 180 (S3204). If the authentication fails (S3202: NO), the basic software 30 is stopped as unauthorized use (S3203).
  • the authentication table 184 stores, for example, a user name, a password, and a second decryption key 34 in association with each other. Authentication is performed by referring to this.
  • the server 180 refers to the authentication table of FIG. 33 and determines whether there is a user name in the authentication table 184 (S3401). If there is no user name in the authentication table 184 (S3401: NO), it is determined that the authentication has failed (S3402), and the process proceeds to S3203 in FIG.
  • the correspondence information of the authentication table 184 of the server 180 has been described with the example of the user name and the password, the present invention is not limited to this. For example, if an expiration date is described, it can be used for obtaining an expiration date at the time of authentication by the server 180.
  • the access information 174 to the server 180 is stored in the first encryption code 29, the information of the second decryption key 34 is held in the server 180, and the mobile terminal 16 stores the information.
  • the operation of the basic software 30 is stopped by changing the value of the second decryption key 34 without changing the data of the first encryption code 29 or by stopping the creation of the second decryption key 34. be able to.
  • the usage time limit can be changed without changing the content of the first encryption code 29.
  • the access information 174 to the server 180 is defined in the first encryption code 29.
  • these functions may be distributed in combination with the first to seventh embodiments.
  • the method using different keys for encryption and decryption has been described. However, a common encryption key method may be used.
  • each step is expressed as S901, for example. Further, each step can be divided into a plurality of sub-steps, while a plurality of steps can be combined into one step.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

ソフトウェア複製防止システムは、受信部(26b)と基本ソフトウェア(30)とを備えた端末(16)と、データを送出する発信部(26a)を備えたポスト(14)とを有する。ポストから送出されるデータは、第2暗号鍵(22)により暗号化された第2暗号化コード(24)として送出される。端末は、第1暗号鍵で暗号化された第1暗号化コード(29)を復号化するための第1復号化部(31)と、第1復号鍵(32)と、第2暗号化コードを復号化するための第2復号化部(36)と、を備える。端末は、基本ソフトウェアを実行することにより、第1暗号化コードを第1復号鍵で復号して第2復号鍵(34)を取得し、第2復号鍵で第2暗号化コードを復号する。

Description

ソフトウェア複製防止システム 関連出願の相互参照
 本出願は、2015年6月9日に出願された日本国特許出願2015-116689号に基づくものであり、ここにその記載内容を参照により援用する。
 本開示は、不正使用防止のための機能や利用期限など具備したソフトウェア複製防止システムに関する。
 コンピュータソフトウェアの開発において、アプリケーションプログラミングインターフェース (API:Application Programming Interface)を通じて、機能(関数)を提供することは一般的によく知られている技術である。一般的にはHMI(Human Machine Interface)やアプリケーションとしての機能を持つメインモジュールから、適宜APIを通じて呼び出されることで必要な機能を提供する。
 例えば、屋内測位システムなどの、測位のための特別な技術が必要な分野において、誰でも簡便にアプリケーションを作成できるように、屋内測位技術をもつ企業が屋内測位基本ソフトウェアおよびAPIを作成し、アプリケーション作成者に有償又は無償で配布する等が行われている。
 この場合、基本ソフトウェアは複製防止のための機能や利用期限などを設定することが一般的である。複製防止のための機能や利用期限などは、例えば、これら機能や情報を組み込んだUSBメモリなどを有償で配布し、これを端末に接続した状態に限って基本ソフトウェアの使用が許可される方法等を採用することにより行われていた。
JP 2011-154412 A JP 2010-226707 A
 上記のような複製防止のための機能や利用期限の管理方法では、USBメモリが必要となるため、USBメモリインターフェースを具備していない機器、例えばスマートフォンなどの機器では利用できないおそれがある。利用時にUSBメモリが必要となる等、利便性も損なわれるおそれがある。
 本開示は、USBメモリ等を用いることなく、不正使用防止のための機能や利用期限などを具備したソフトウェア複製防止システムを提供することを目的とする。
 本開示の一態様によれば、ソフトウェア複製防止システムは、ポストから送出されるデータの受信部と基本ソフトウェアとを備えた端末と、端末へデータを送出する発信部を備えたポストとを有する。ポストから送出されるデータは、第2暗号鍵により暗号化された第2暗号化コードとして送出される。端末は、第1暗号鍵で暗号化された第1暗号化コードを復号化するための復号化部と、第1暗号鍵に対応する第1復号鍵と、受信した第2暗号化コードを復号化するための復号化部と、を備える。端末は、基本ソフトウェアを実行することにより、第1暗号化コードを第1復号鍵で復号して第2暗号鍵に対応する第2復号鍵を取得し、第2復号鍵で第2暗号化コードを復号する。
 この構成によれば、端末が備える基本ソフトウェア内部に第2暗号鍵に対応する第2復号鍵を有し、これによって第2暗号鍵で作成した第2暗号化コードを復号することによりポスト情報を読むためのIDを取得するため、ポスト情報の不正利用を防止することができる。
 本開示についての上記および他の目的、特徴や利点は、添付図面を参照した下記詳細な説明から、より明確になる。添付図面において、
図1は、第1実施形態におけるポスト配置図であり、 図2は、第1実施形態に係るソフトウェア複製防止システムの構成を示すブロック図であり、 図3は、第1暗号化コード生成装置の概要を示す図であり、 図4は、基本ソフトウェア作成装置の概要を示す図であり、 図5は、移動端末のハードウェア構成を示すブロック図であり、 図6は、ポストのハードウェア構成を示すブロック図であり、 図7は、第1暗号化コード生成装置のハードウェア構成を示すブロック図であり、 図8は、基本ソフトウェア作成装置のハード構成を示すブロック図であり、 図9は、アプリケーションプログラムにおける基本ソフトウェアの起動処理手順を概略的に示すフローチャートであり、 図10は、ポストから送出される第2暗号化コードの復号手順を概略的に示すフローチャートであり、 図11は、ID参照例であり、 図12は、ID参照を概略的に示すフローチャートであり、 図13は、第2実施形態に係るソフトウェア複製防止システムを示すブロック図であり、 図14は、第2実施形態に係る第1暗号化コード生成装置の概要図であり、 図15は、第3実施形態に係る第1暗号化コード生成装置の概要図であり、 図16は、第3実施形態に係る基本ソフトウェア作成装置の概要を示す図であり、 図17は、第3実施形態に係るソフトウェア複製防止システムを示すブロック図であり、 図18は、第3実施形態に係るアプリケーションプログラムにおける基本ソフトウェアの起動処理手順を概略的に示すフローチャートであり、 図19は、第4実施形態に係るソフトウェア複製防止システムを示すブロック図であり、 図20は、第4実施形態に係るポストから送出される第2暗号化コードの復号手順を概略的に示すフローチャートであり、 図21は、第5実施形態に係る第1暗号化コード生成装置の概要図であり、 図22は、第5実施形態に係るソフトウェア複製防止システムを示すブロック図であり、 図23は、第5実施形態に係るアプリケーションプログラムにおける基本ソフトウェアの起動処理手順を概略的に示すフローチャートであり、 図24は、第6実施形態にかかるポスト/緯度経度テーブルであり、 図25は、第6実施形態に係るソフトウェア複製防止システムを示すブロック図であり、 図26は、第6実施形態に係る測位システムのソフトウェアブロック図であり、 図27は、第7実施形態に係る第1暗号化コード生成装置の概要図であり、 図28は、第7実施形態に係るソフトウェア複製防止システムを示すブロック図であり、 図29は、第7実施形態に係る測位システムのソフトウェアブロック図であり、 図30は、第8実施形態に係る第1暗号化コード生成装置の概要図であり、 図31は、第8実施形態に係るソフトウェア複製防止システムを示すブロック図であり、 図32は、第8実施形態に係るサーバアクセスの概略フローチャートであり、 図33は、第8実施形態に係る認証テーブルであり、 図34は、第8実施形態に係るサーバ認証のフローチャートである。
 (第1実施形態)
 以下、第1実施形態におけるソフトウェア複製防止システム10(以下、本システム10と称する)を図面に基づいて説明する。
 図1に示すように、屋内の通路12に複数のポスト14が配置されそれぞれ異なるID18が送出されている。ここで、移動端末16がポスト14付近を通過すると、ポスト14の情報であるID18を取得できる。ここで、ID18とは、個々のポスト14を特定可能な情報を意味し、例えば、各ポスト14にユニークな数字及び記号の羅列としたり、位置情報としたりすることができる。
 なお、実際にはポスト14から送られるID18は後述するように暗号化されて送信され、移動端末16内部で復号して利用されている。ここでは一例としてポスト14からのデータをID18としているが、例えば画像やHTMLデータなどでも良い。
 図2に示すように、ポスト14は、それぞれ異なるID18、第2暗号化コード用暗号化部20(以下、暗号化部20と称する)、第2暗号鍵22、第2暗号化コード24を有している。また、ポスト14は発信部26aを有している。暗号化部20は格納されているID18を暗号化するプログラムであり、暗号化を行う為の鍵は第2暗号鍵22として内部に保持されている。暗号化部20によりID18は暗号化され、第2暗号化コード24が生成される。第2暗号化コード24は発信部より外部に発信される。暗号化部20における処理は、実際には、ポスト14の、後述するCPU72において、第2暗号化コードの暗号化用のプログラムが実行されることによりソフトウェア的に実現されている。暗号化部20は、ソフトウェア的に限らず、ハードウェア的またはハードウェアとソフトウェアとの協働によって実現してもよい。
 暗号化のアルゴリズムに関してはここでは言及しない。第2暗号鍵22、ID18の格納方法については限定されない。例えば、揮発型、不揮発型、若しくは格納するメモリの種類については任意である。また、これらのデータを変更可能に格納するか、あるいは固定して格納するか、あるいは、変更可能な場合の書き換え方法などについても限定されない。
 移動端末16は、アプリケーションプログラム28、基本ソフトウェア30、受信部26bを備えている。基本ソフトウェア30は複製防止機能を有するソフトウェアであり、基本ソフトウェア30の作成者がアプリケーション作成者に提供する。アプリケーションプログラム28、及び基本ソフトウェア30は一つのパッケージにまとまっている形態でも良い。移動端末16はさらに図示しない操作部、表示部、及び電源部などを有している。アプリケーションプログラム28は基本ソフトウェア30を利用するソフトウェアである。
 アプリケーションプログラム28は、第1暗号化コード29を保有する。保有方法としては、プログラム内にプログラムコードとして直接保有する方法、ファイルにより保有する方法、レジストリに記載する方法、外部サーバに保有する方法などが考えられる。
 第1暗号化コード29には、ポスト14からの暗号化されたID18である第2暗号化コード24を解読するための鍵が暗号化された形で記載されている。なお、第1暗号化コード29については図3で詳細に説明する。
 アプリケーションプログラム28は、第1暗号化コード29を基本ソフトウェア30に通知する。基本ソフトウェア30は第1暗号化コード29が通知されないと動作しないよう構成されている。基本ソフトウェア30は第1暗号化コード29を解読するための第1復号鍵32を内部に備えている。
 通知された第1暗号化コード29は、第1復号鍵32を用い、第1暗号化コード用復号化部31(以下、復号化部31または、第1復号化部と称する)で第2復号鍵34に復号される。これがポスト14から出力される第2暗号化コード24の復号鍵となる。復号化部31における処理は、実際には、移動端末16の、後述するCPU72において、第1暗号化コードの復号化用のプログラムが実行されることによりソフトウェア的に実現されている。復号化部31は、ソフトウェア的に限らず、ハードウェア的またはハードウェアとソフトウェアとの協働によって実現してもよい。
 受信部26bはポスト14の発信部26aから発信された第2暗号化コード24を含む信号を受信する。受信された第2暗号化コード24は、第2復号鍵34を用い、第2暗号化コード用復号化部36(以下、復号化部36または第2復号化部と称する)で解読され、ポスト14の保有するID18が復号される。図示はしていないが、移動端末16は、アプリケーションプログラム28の実行により、ID18を利用して、地点に紐付けられた表示などのサービスを行う。復号化部36における処理は、実際には、移動端末16の、後述するCPU72において、第2暗号化コードの復号化用のプログラムが実行されることによりソフトウェア的に実現されている。復号化部36は、ソフトウェア的に限らず、ハードウェア的またはハードウェアとソフトウェアとの協働によって実現してもよい。
 図3に示すように、UI操作部48は第1暗号化コード生成装置50(以下、コード生成装置50と称する)を操作するための操作部であり、例えば図示しないキーボード、画面、マウスなどのポインティングデバイスなどを含む。制御部46はUI操作部48からの入力に従い、種々のプログラムを実行し、これに対応した機能の実行及び制御を行う。
 第2復号鍵34は、図2で説明したポスト14に格納されている第2暗号鍵22に対応する第2復号鍵34であり、第2暗号鍵22で暗号化したデータの解読に用い、UI操作部48により本装置に入力される。第1暗号鍵40は第1復号鍵32に対応する鍵であり、第1復号鍵32は基本ソフトウェア30に格納されている。
 第1暗号鍵40及び第2復号鍵34は、UI操作部48によりコード生成装置50に入力される。ここで、UI操作部48への入力により、制御部46が第1暗号化コード暗号化部42(以下、暗号化部42と称する)を制御することにより、第1暗号化コード29が出力される。換言すると、第2復号鍵34を第1暗号鍵40で暗号化し第1暗号化コード29が生成される。
 なお、鍵(暗号鍵、復号鍵)は操作により入力しても良いし、ファイルで入力しても良いし、通信で取得しても良いし、プログラム内部に埋め込まれていても良い。暗号化部42における処理は、実際には、第1暗号化コードの暗号化用プログラムが、コード生成装置50の制御部46において実行されることによりソフトウェア的に実現されている。暗号化部42は、ソフトウェア的に限らず、ハードウェア的またはハードウェアとソフトウェアとの協働によって実現してもよい。
 図4に示すように、UI操作部48は基本ソフトウェア作成装置52を操作するための操作部であり、例えば図示しないキーボード、画面、マウスなどのポインティングデバイスなどを含む。コンパイル部56は、UI操作部48からの指示に従い、種々の機能を実行し、制御する。
 基本ソフトウェアソースプログラム54(以下、ソースプログラム54と称する)は第1復号鍵32を持たないオリジナルのソースプログラムであり、コンパイル部56で第1復号鍵32を組み込み、第1復号鍵32を内部に保持する基本ソフトウェア30を生成する。ここで、ソースプログラム54を「ソースプログラム」として説明しているが、当然コンパイル済みのバイナリを用いても良い。換言すれば、ここでは第1復号鍵32を持たない基本ソフトウェア30に第1復号鍵32を埋め込むことを意図している。
 図5に示すように、移動端末16としては、例えばスマートフォンなどの携帯情報端末等などが用いられる。移動端末16は、インターフェース(I/F)80を介して、CPU72、PROM74 (programmable ROM)、DRAM76 (dynamic random access memory)、ユーザインターフェース78、外部メモリ82、ハードディスク84、NIC(ネットワークインターフェースカード)86が相互に接続される構成を有している。
 PROM74はフラッシュメモリなどで構成され、一般的にはBIOS等が格納される。DRAM76は主記憶装置として用いられる。ハードディスク84は記憶用メモリとして使用され、OSや基本ソフトウェア30、アプリケーションプログラム28、その他のデータなどが格納されている。ユーザインターフェース78は、図示しない画面、タッチパネル等を備えている。外部メモリ82は、USBメモリなどの外部記憶データとのインターフェースに相当する。NIC86はLAN88との接続を行う。LAN88には、例えば無線LANや公衆回線等が含まれる。
 図6に示すように、ポスト14は、インターフェース(I/F)80を介して、CPU72、PROM74、DRAM76、発信部98、メモリ100が相互に接続される構成を有している。PROM74にはポスト14を動作させるためのプログラムが格納される。DRAM96はこのプログラムが動作するための一時記憶装置として利用される。メモリ100にはポスト14特有のデータ、例えばポスト14番号などを記憶する為に利用され、発信部98はこのデータを出力する。ポスト14には図示しない外部とのインターフェースなどを含む。
 図7及び図8に示すように、コード生成装置50及び基本ソフトウェア作成装置52は、インターフェース(I/F)80を介して、CPU72、PROM74、DRAM76、ユーザインターフェース78、外部メモリ82、ハードディスク84、NIC(ネットワークインターフェースカード)86が相互に接続される構成を有している。
 図9に示すように、まず、アプリケーションプログラム28は、第1暗号化コード29の入力を待つ(S901)。第1暗号化コード29が入力されるまで基本ソフトウェア30は起動しない(S901:NO)。次に、第1暗号化コード29が入力されたら、復号化部31は、基本ソフトウェア30内部に保持する第1復号鍵32を用いて、第1暗号化コード29の復号を行い(S902)、第2復号鍵34を生成してこれを保存し(S903)、起動処理を終了する。なお、復号後のデータが正しいか否かは第2復号鍵34を用いて第2暗号化コード24を復号するまでは判断できない。これについて、後述する第3実施形態では即時判断できる実施形態を示す。
 図10に示すように、まず、アプリケーションプログラム28は、ポスト14から送出される第2暗号化コード24の受信を待機し(S1001)、受信がない場合は待機を継続する(S1001:NO)。受信があった場合は、第2復号鍵34を用いて第2暗号化コード24を復号し(S1002)、ポスト14のID18を取得する(S1003)。
 上述のID18を利用し、所望する機能を実現する。以下、一例としてID18に紐付けられた動画を再生する例を示す。図11に示すように、基本ソフトウェア30で取得したID18はアプリケーションプログラム28で参照できる。アプリケーションプログラム28は、IDテーブル参照部140により、IDテーブル146を参照する。
 IDテーブル146は、移動端末内部、又は外部のメモリカード、外部サーバなどにファイルとして格納されている。IDテーブル146にはID18に紐付けられた動画の名称もしくは格納場所含め名称を示す情報が記載されている。この情報を元に動画再生部142で動画データ144を再生する。再生された動画データ144は図示しない画面に表示される。
 図12に示すように、アプリケーションプログラム28は、ID18の更新確認を行う(S1201)。ID18が更新されていない場合は、再度これが更新されるまで待機する(S1201:NO)。更新された場合は(S1201:YES)、IDテーブル146を参照する(S1202)。IDテーブル146に当該ID18が存在しない場合は(S1203:NO)再度ID18の更新を待つ(S1201)。
 ID18がIDテーブル146に存在しない理由は、基本ソフトウェア30内で利用した第2復号鍵34が間違っているため、復号化部36で復号されるID18が間違っていると考えられる。第2復号鍵34は第1暗号化コード29から生成されるので、アプリケーションプログラム28で利用している第1暗号化コード29が不正であると判断できる。この場合、動画を再生するという本来の機能が実現できなくなることから、結果として不正な複製を防ぐ機能が実現できる。
 なお、ここですぐに処理をやめないのは、通信でポスト14からのデータを取得しているため、通信上の不具合でID18の復元ができなかったことを考慮したためである。
 IDテーブル146に当該ID18が存在する場合は(S1203:YES)、動画の情報を取得し(S1204)、動画を再生し(S1205)、その後、再度ID18の更新確認に戻る(S1201)。
 第1実施形態に係る本システム10によれば、端末内部にある基本ソフトウェア30内部に復号鍵を持ち、これに対となる暗号鍵で作成したポスト14用の復号鍵を含む暗号データをアプリケーションプログラム28から付与される。基本ソフトウェア30はアプリケーションプログラム28より前記暗号データが付与されないと動作しない。偽の暗号データが付与された場合、外部ポスト14用の復号鍵が生成されずポスト14情報を読むことができないため、不正利用を防止することができる。また、基本ソフトウェア30は第1暗号化コード29をアプリケーションプログラム28より与えられないと起動しないように構成されるため、基本ソフトウェア30のみの不正コピーを防止できる。
 また、第1暗号化コード29はAPIにより基本ソフトウェア30に通知され、アプリケーションプログラム28内部に配置されるため、第1暗号化コード29の不正コピーを行うことができない。
 でたらめの暗号化コードを入力した場合は、図12の説明に示されるように、正しいID18を取得することができず、結果としてポスト14情報を利用できない。仮に第1暗号化コード29が不正にコピーできたとしても、対象エリア外では第2復号鍵34が一致せずID18を結果として利用できない。従って、この場合もポスト14情報を利用できない。なお、この場合、基本ソフトウェア30の動作を停止させる制御を行ってもよい。
 第1暗号化コード29内部にポスト14からの第2暗号化コード24を解読するための第2復号鍵34が含まれているが、第1暗号化コード29は暗号化されているので、不正に読みとったり変更したりすることはできない。
 また、ポスト14から送出されるデータである第2暗号化コード24の解読用の鍵を第1暗号化コード29内部に格納するため、基本ソフトウェア30そのものを変更することなく、暗号コード1のみを変更するだけで、該当エリアに対応するポスト14の復号鍵である第2復号鍵34の配布が可能となる。これらの作用は、USBメモリなどの外部機器を行わずに実現できる。
 (第2実施形態)
 次に、第2実施形態について説明する。第1実施形態と同一の要素には同一の符号を付して説明を省略し、第1実施例と異なる箇所のみ説明する。第2実施形態では暗号化したデータの秘匿性を高めるため、不要な乱数を付与して暗号化する実施形態である。解読後、乱数は破棄する。
 図13に示すように、ポスト14は、乱数発生器150備える。乱数発生器150では定期的に異なる乱数150aを発生させている。発生した乱数150aおよびID18を利用して第2暗号化コード24を作成し、発信部26aから出力する。乱数発生器150はソフトウェア、ハードウェアどちらで構成しても良い。基本ソフトウェア30では復号化部36で暗号を解読し、ID18と乱数150aとを得る。
 第1暗号化コード29にも、後述する様に乱数150aが含まれている。復号化部31では、第2復号鍵34および乱数150aが得られる。基本ソフトウェア30では第1暗号化コード29から作成される乱数150a、および第2暗号化コード24から作成される乱数150a共に生成するのみで利用しない。
 図14に示すように、ここでは乱数150aが付加された第1暗号化コード29を生成する。コード生成装置50は乱数発生器150を備える。乱数発生器150では定期的に異なる乱数150aを発生させている。発生した乱数150aおよび第2復号鍵34は第1暗号鍵40で暗号化され、第1暗号化コード29が作成される。なお、乱数150aを付与するのは第1暗号化コード29もしくは第2暗号化コード24の一方でも良い。
 第2実施形態に係る本システム10によれば、第1暗号化コード29、第2暗号化コード24の生成時に固定コード(固定値)である第2復号鍵34、ID18に加え、定期的に変化する乱数150aを加えるため、結果として第1暗号化コード29、第2暗号化コード24の値が定期的に変化する。これにより秘匿性をあげることが可能となる。特にポスト14のID18に関しては暗号化をしないと常に同一の暗号化されたコードが出力されるため、暗号化された番号を利用するだけでポスト14を特定できてしまう。第2実施形態では乱数150aの発生周期を通信毎にするなどすることでこれも防ぐことができる。
 (第3実施形態)
 次に、第3実施形態について説明する。第1実施形態と同一の要素には同一の符号を付して説明を省略し、第1実施形態と異なる箇所のみ説明する。
 先に説明した第1実施形態では、第1暗号化コード29の不正データ認識を図12のID18テーブル参照まで検知できなかった。第3実施形態は、この点を改良した実施形態である。これを実現するため、第3実施形態では、第1暗号化コード29を生成する際に確認用コード152を埋め込む。
 図15に示すように、ここでは確認用コード152が付加された第1暗号化コード29を生成する。確認用コード152は固定でも、第2復号鍵34を元に可逆可能な計算式により生成されるコードでも良い。可逆可能な計算式としては、例えば反転コードなどを例示することができる。ここでは説明の為、確認用コード152を固定コード”ABCD”とした例を示して説明する。暗号化部42では、第2復号鍵34および確認用コード152を暗号化し、第1暗号化コード29を生成する。
 確認用コード152が固定値では無く、第2復号鍵34を元に生成されるコードの場合は、図示しない確認用埋め込みコード生成装置であらかじめ決められた、もしくはその場で作成した可逆可能な計算式より、以下に説明する確認用埋め込みコード154(以下、埋込コード154と称する)を作成しこれを利用する。
 図16に示すように、第1復号鍵32に加え、埋込コード154を基本ソフトウェア30に埋め込む。埋込コード154は、ここでは確認用コードと同一の値"ABCD"である。確認用コード152が固定値では無く、第2復号鍵34を元に生成されるコードの場合は、図示しない確認用埋め込みコード生成装置で埋込コード154を生成する際に利用した可逆可能な計算式を基本ソフトウェア30に埋め込む。
 図17に示すように、第1暗号化コード29は、復号化部31で復号され、第2復号鍵34および確認用コード152が生成される。ここでは図16で設定した確認用コード”ABCD”が復号される。
 図18に示すように、まず、アプリケーションプログラム28は、第1暗号化コード29の入力を待つ(S1801)。第1暗号化コード29が入力されるまで基本ソフトウェア30は起動しない(S1801:NO)。次に、第1暗号化コード29が入力されたら、復号化部31は、基本ソフトウェア30内部に保持する第1復号鍵32を用いて、第1暗号化コード29の復号を行う(S1802)。第1暗号化コード29を取得し第1復号鍵32で復号することで確認用コード152および第2復号鍵34が生成される。この時点では正常に復号できたかは解らない。
 次に、確認コードの内容が”ABCD”であるかを確認する(S1803)。確認コードの内容が”ABCD”でなければ(S1803:NO)、第1暗号化コード29は不正であるので基本ソフトウェア30を停止する(S1804)。確認コードの内容が”ABCD”であれば(S1803:YES)、第2復号鍵34を保存し(S1805)、処理を終了する。
 なお、先に説明したように、確認用コード152を固定コードとせず、第2復号鍵34を基に生成されるコードとしても良い。この場合フローチャートでは図示しないが、確認コード判定部で第2復号鍵34を読み、確認用コード152を生成した処理と同様の処理を行い、作成されたコードと復号した確認用コード152とを比較すればよい。
 第3実施形態に係る本システム10によれば、第1暗号化コード29を正常に復号できない、すなわち第1暗号化コード29と基本プログラムが正しいペアでない、すなわち不正利用である場合、即基本プログラムを停止でき、不正利用を防止できる。
 (第4実施形態)
 次に、第4実施形態について説明する。第1実施形態と同一の要素には同一の符号を付して説明を省略し、第1実施形態と異なる箇所のみ説明する。
 第4実施形態では第3形態をポスト14の暗号化に応用し、不正エリアでの利用を防止する実施形態である。これを実現するため第2暗号化コード24を生成する際にポスト確認用コード156(以下、確認用コード156と称する)を埋め込む。
 図19に示すように、ポスト14では、確認用コード156が付加された第2暗号化コード24を生成する。確認用コード156は、第3実施形態で説明した確認用コード152と同様の構成としてもよい。ここでは説明の為、確認用コード156を、固定コード”ABCD”として説明する。
 暗号化部20では、ID18および確認用コード156、すなわち固定コード”ABCD”を暗号化し、第2暗号化コード24を生成する。第2暗号化コード24は発信部26aにより発信される。基本ソフトウェア30では、第2暗号化コード24から確認用コード156、及びID18が生成される。
 図20に示すように、まず、移動端末16ではアプリケーションプログラム28が実行されており、ポスト14からの信号の受信を待つ(S2001)。ポスト14からの信号の受信がされるまで基本ソフトウェア30は待機を継続する(S2001:NO)。次に、ポスト14からの信号を受信した場合は(S2001:YES)、復号化部36は、第2復号鍵34で、ポスト確認コード190、及びID18を復号する(S2002)。
 ここで、移動端末16は、ポスト確認コード190として、固定値である固定コード”ABCD”を取得できたか否かを確認する(S2003)。ポスト確認コード190が、固定コード”ABCD”を取得できなかった場合は(S2003:NO)、再度、ポスト14からの受信を待つ。これは、ポスト14からのデータが、例えば通信障害等によるノイズにより壊れていた等の場合を想定したものである。ポスト確認コード190が、固定コード”ABCD”を取得できた場合は(S2003:YES)、ID18を取得する(S2004)。なお、上述の方法に代えて、第3実施形態で説明した方法を用いてコードの確認を行っても良い。
 第4実施形態に係る本システム10によれば、不正エリアで利用された場合にID18を受信しない。これにより不正利用を防止することができる。さらに、通信障害などにより正常にデータを受信することができない場合も、ID18を受信しない。
 (第5実施形態)
 次に第5実施形態について説明する。第1実施形態と同一の要素には同一の符号を付して説明を省略し、第1実施形態と異なる箇所のみ説明する。第5実施形態では、第1暗号化コード29に利用期限を付加し、利用期限外での不正利用を防止する。
 図21に示すように、ここでは利用期限158が付加された第1暗号化コード29を生成する。また、利用期限158としては、最終利用日、利用可能回数、又は利用可能日数を設定する方法など、種々の方法を採用することができる。
 図22に示すように、第1暗号化コード29には、第2復号鍵34と利用期限158が格納されているので、これを復号することにより第2復号鍵34および利用期限158が取得される。図23に示すように、ここでは、利用期限158を確認し、利用期限を越えている場合は(S2301:NO)、基本ソフトウェア30を停止する(S2302)。利用期限内の場合は(S2301:YES)、第2復号鍵34を生成してこれを保存し(S903)、起動処理を終了する。
 利用期限158として、例えば利用最終日が記載されている場合は、移動端末16内に保持するカレンダーと比較する方法が考えられる。また利用日数(1日を1回とカウントするなど)が記載されている場合、利用日毎にカウントする方法などが考えられる。
 第5実施形態に係る本システム10によれば、第1暗号化コード29に利用期限158を設けることができるので、基本ソフトウェア30の不正な利用を防止できる。さらに、第1暗号化コード29に利用期限158を有しているので、第1暗号化コード29の変更のみで基本ソフトウェア30そのものの変更無しに利用期限158の変更を行うことができる。
 (第6実施形態)
 次に第6実施形態について説明する。第1実施形態と同一の要素には同一の符号を付して説明を省略し、第1実施形態と異なる箇所のみ説明する。第6実施形態では本システムを測位に応用する。
 図24に示すように、ポスト14に格納されるID18(図24におけるポストID1~7)とそのポスト14の位置を示す緯度、及び経度がテーブルとして準備されている。これにより、ポスト14からの送信データを受信してID18を復号した後、復号したID18を基に本テーブルを参照することで、受信したポスト14の緯度経度を取得できる。これにより受信したポスト14の測位、すなわち位置の特定ができる。測位した緯度経度はアプリケーションプログラム28で参照できる。
 図25に示すように、基本ソフトウェア30は、測位システム160を有する。測位システム160はポスト14からのID18を復号すると、それを基にして測位をおこなう。図26に示すように、ポスト14からのID18と、ポスト/緯度経度テーブル168(以下、テーブル168と称する)から当該ポスト14の緯度経度162を算出する。
 なお、本実施形態では、本ブロック内部にテーブル168を配置しているが、他の場所に配置してもよい。また、本実施形態では、テーブル168が、ポスト14とその位置情報である緯度経度162との対応関係を備える例を示したが、さらにフロア情報や高度などの高さ方向の情報を備えさせ、高層ビルや地下街などの利用に供しても良い。
 また、位置を示す方法として緯度経度を例示したが、その他の方法、例えば基準点に対するベクトル座標や、あるいは交差点名称、道路名称、住所などの地点を特定できる情報を付加してもよい。この場合、図25の説明において、取得される情報も緯度経度に限らず、ポスト14に紐付けられた上記各種情報となる。図24で示すアプリケーションプログラム28が取得する情報についても同様である。
 第6実施形態に係る本システム10によれば、ポスト14のID18と、テーブル168を用いることで、ポスト14から緯度経度への変換、すなわち測位を実現できる。また、ID18を緯度経度162、又は住所などの位置情報にすることにより、ID18をそのまま位置情報として利用できるため、測位を実現できる。
 (第7実施形態)
 次に第7実施形態について説明する。第1及び第6実施形態と同一の要素には同一の符号を付して説明を省略し、異なる箇所のみ説明する。第7実施形態は、第6実施形態において、利用エリアを制限する方法に関する。
 図27に示すように、ここでは利用可能エリア170が付加された第1暗号化コード29を生成する。利用可能エリア170は、緯度経度の範囲を示す矩形または多角形情報でも良いし、住所などを利用しても良い。また、ビルなどの建物名でも良いし、地下街などの名称を入れても良い。さらに、高さ方向を示すフロア情報や高度を付与してもよい。要するに利用可能な範囲を示す情報を付与する。
 図28に示すように、第1暗号化コード29が第1復号鍵32を用いて解読され、第2復号鍵34および利用可能エリア170が復号される。利用可能エリア170は測位システム160に送られる。図29に示すように、利用可能判定部172は、緯度経度取り出し部164より取り出した緯度経度162と、利用可能エリア170に記載されている情報から、利用可能か否かを判定し、利用可能な場合には緯度経度162を出力する。
 第7実施形態に係る本システム10によれば、本システムを測位に応用するシステムに於いて利用可能エリアを制限できるため不正な複製を防止できる。
 (第8実施形態)
 次に第8実施形態について説明する。第1実施形態と同一の要素には同一の符号を付し説明を省略し、異なる箇所のみ説明する。第8実施形態では、第1暗号化コード29に外部サーバへのサーバアクセス情報174(以下、アクセス情報174と称する)を記載する。
 図30に示すように、ここではアクセス情報174が付加された第1暗号化コード29を生成する。アクセス情報174とは、移動端末16以外の外部に設置されたサーバへのアクセス情報であり、サーバのアドレスやパスワードなど、サーバアクセスの為の情報を意味する。ここでは、アクセス情報174が、サーバアドレス、ユーザ名、及びパスワードである例を示して説明する。
 図31に示すように、基本ソフトウェア30は、第1暗号化コード29を復号してアクセス情報174を取得する。図29の説明にあるように、ここではサーバアドレス、ユーザ名、パスワードが取得される。移動端末16は、サーバ180にアクセスし、取得したアクセス情報174を送信する。サーバ180では、送信された取得したアクセス情報174に基づき、認証確認部182が認証テーブル184と照合する。認証が行われると、サーバ180は、第2復号鍵34を移動端末16に送付する。
 図32に示すように、移動端末16はアクセス情報174を取得すると、取得したサーバアドレスのサーバ180にアクセスする。移動端末16は、サーバ180に、取得したアクセス情報174(例えば、ユーザ名、パスワード)を送信し、サーバ180に認証を指示する(S3201)。サーバ180では認証を行い、認証が成功すれば(S3202:YES)、移動端末16はサーバ180から第2復号鍵34を取得する(S3204)。認証が失敗した場合は(S3202:NO)不正利用として基本ソフトウェア30を停止する(S3203)。
 図33に示すように、認証テーブル184には、例えばユーザ名、パスワード、第2復号鍵34が対応付けられた状態で格納されている。これを参照することにより、認証が行われる。
 図34に示すように、サーバ180は、図33の認証テーブルを参照して、認証テーブル184内にユーザ名があるかを判定する(S3401)。認証テーブル184内にユーザ名がない場合は(S3401:NO)、認証失敗と判断し(S3402)、図32のS3203に移行する。
 認証テーブル184内にユーザ名がある場合は(S3401:YES)、認証テーブル184内の当該ユーザ名に対応するパスワードを取得する(S3403)。次に、サーバ180は、アクセス情報174から取得したパスワードと、認証テーブル184から取得したパスワードが一致するか否かを判定し、一致していない場合は(S3404:NO)、認証失敗と判定し(S3402)、図32のS3203に移行する。
 パスワードが一致した場合は(S3404:YES)、認証成功と判定し(S3405)、サーバ180は、認証テーブル184内の対応する第2復号鍵34を取得し(S3406、図32のS3204に移行する。
 なお、サーバ180の認証テーブル184の対応情報が、ユーザ名、及びパスワードとした例を示して説明したが、これに限定するものでない。例えば、利用期限などを記載すれば、サーバ180での認証時に有効期限を取得させる等に利用できる。
 第8実施形態に係る本システム10によれば、第1暗号化コード29にサーバ180へのアクセス情報174を格納し、サーバ180に第2復号鍵34の情報を保持させ、それを移動端末16に送信する。このため、第1暗号化コード29のデータを変えずに第2復号鍵34の値を変更したり、第2復号鍵34の作成を停止したりすることで、基本ソフトウェア30の動作を停止することができる。また、利用期限情報などの情報を持つことで、利用期限の変更を第1暗号化コード29の内容を変えずに実現できる。
 なお、本実施例では、第1暗号化コード29にサーバ180へのアクセス情報174のみを定義したが、第1実施形態から第7実施形態と組み合わせ、これらの機能を分散してもよい。また、上記第1実施形態から第8実施形態において、暗号および復号の鍵に、異なる鍵を用いる方法を用いて説明してきたが、共通暗号鍵方式を用いてもよい。
 ここで、この出願に記載されるフローチャート、あるいは、フローチャートの処理は、複数のステップ(あるいはセクションと言及される)から構成され、各ステップは、たとえば、S901と表現される。さらに、各ステップは、複数のサブステップに分割されることができる、一方、複数のステップが合わさって一つのステップにすることも可能である。
 以上、本開示に係るソフトウェア複製防止システムの実施形態、構成、態様を例示したが、本開示に係る実施形態、構成、態様は、上述した各実施形態、各構成、各態様に限定されるものではない。例えば、異なる実施形態、構成、態様にそれぞれ開示された技術的部を適宜組み合わせて得られる実施形態、構成、態様についても本開示に係る実施形態、構成、態様の範囲に含まれる。

 

Claims (11)

  1.  ポスト(14)から送出されるデータの受信部(26b)と基本ソフトウェア(30)とを備えた端末(16)と、
     前記端末へデータを送出する発信部(26a)を備えたポストとを有し、
     前記ポストから送出される前記データは、第2暗号鍵(22)により暗号化された第2暗号化コード(24)として送出され、
     前記端末は、第1暗号鍵(40)で暗号化された第1暗号化コード(29)を復号化するための第1復号化部(31)と、前記第1暗号鍵に対応する第1復号鍵(32)と、受信した前記第2暗号化コードを復号化するための第2復号化部(36)と、を備え、
     前記端末は、前記基本ソフトウェアを実行することにより、前記第1暗号化コードを前記第1復号鍵で復号して前記第2暗号鍵に対応する第2復号鍵(34)を取得し、前記第2復号鍵で前記第2暗号化コードを復号するソフトウェア複製防止システム。
  2.  さらに、前記第1暗号化コードを、前記第1復号鍵に対応する第1暗号鍵にて作成する第1暗号化コード生成装置(50)を備える請求項1に記載のソフトウェア複製防止システム。
  3.  さらに、前記基本ソフトウェアに前記第1復号鍵(32)を組み込む基本ソフトウェア作成装置(52)を備える請求項1又は2に記載のソフトウェア複製防止システム。
  4.  前記ポストから送出されるデータはIDを含む請求項1に記載のソフトウェア複製防止システム。
  5.  前記第1暗号鍵は、前記基本ソフトウェアへ入力される前記第1暗号化コードの作成に用いられる請求項1から4の何れか一項に記載のソフトウェア複製防止システム。
  6.  前記第1復号鍵は、前記基本ソフトウェアに含まれる請求項1から5の何れか一項に記載のソフトウェア複製防止システム。
  7.  前記第2暗号鍵は、前記ポストから送信される前記第2暗号化コードの作成に用いられる請求項1から6の何れか一項に記載のソフトウェア複製防止システム。
  8.  前記第1暗号化コードには、乱数情報が含まれる請求項1から7の何れか一項に記載のソフトウェア複製防止システム。
  9.  前記第1暗号化コードには、利用期限が含まれる請求項1から8の何れか一項に記載のソフトウェア複製防止システム。
  10.  前記基本ソフトウェアによる制御は、利用期限を越えると、動作を停止する請求項9に記載のソフトウェア複製防止システム。
  11.  IDは、位置情報を含む請求項1から10の何れか一項に記載のソフトウェア複製防止システム。

     
PCT/JP2016/002541 2015-06-09 2016-05-26 ソフトウェア複製防止システム WO2016199364A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/580,000 US20180137262A1 (en) 2015-06-09 2016-05-26 Software duplication prevention system
CN201680032815.5A CN107683581A (zh) 2015-06-09 2016-05-26 软件防复制系统
EP16807081.1A EP3309994B1 (en) 2015-06-09 2016-05-26 Software duplication prevention system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015116689A JP6287964B2 (ja) 2015-06-09 2015-06-09 ソフトウェア複製防止システム
JP2015-116689 2015-06-09

Publications (1)

Publication Number Publication Date
WO2016199364A1 true WO2016199364A1 (ja) 2016-12-15

Family

ID=57503518

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/002541 WO2016199364A1 (ja) 2015-06-09 2016-05-26 ソフトウェア複製防止システム

Country Status (5)

Country Link
US (1) US20180137262A1 (ja)
EP (1) EP3309994B1 (ja)
JP (1) JP6287964B2 (ja)
CN (1) CN107683581A (ja)
WO (1) WO2016199364A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107358067B (zh) * 2017-07-06 2020-07-24 成都睿胜科技有限公司 在加密狗中用License衍生出SCK实现加密和解密的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006506733A (ja) * 2002-11-20 2006-02-23 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 移動装置の位置データを配布する方法
JP2007124520A (ja) * 2005-10-31 2007-05-17 Ntt Data Corp データ検索システム、情報処理装置、データ検索方法、及び、プログラム。
JP2013162360A (ja) * 2012-02-06 2013-08-19 Sharp Corp 情報端末装置、情報端末システム、情報端末制御方法およびプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NO302388B1 (no) * 1995-07-13 1998-02-23 Sigurd Sigbjoernsen Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
JP2001022843A (ja) * 1999-07-07 2001-01-26 Sony Corp 情報処理装置および方法、並びに提供媒体
SE524778C2 (sv) * 2002-02-19 2004-10-05 Douglas Lundholm Förfarande och arrangemang för att skydda mjukvara för otillbörlig användning eller kopiering
JPWO2005064484A1 (ja) * 2003-12-25 2007-07-19 三菱電機株式会社 デジタルコンテンツ管理システム
CN100401823C (zh) * 2006-08-25 2008-07-09 华为技术有限公司 移动终端内部软件防盗版的方法与移动终端
CN101183340A (zh) * 2006-11-14 2008-05-21 和泽电子股份有限公司 防止非法复制的方法与相关硬件储存装置
CN101324865A (zh) * 2007-06-15 2008-12-17 精品科技股份有限公司 嵌入式信息储存装置及其预先加载数字财产管理的方法
JPWO2009110471A1 (ja) * 2008-03-07 2011-07-14 株式会社日立製作所 位置情報システム
CN104620560B (zh) * 2012-09-11 2018-04-27 耐克斯特纳威公司 用于提供对传送的信息的条件访问的系统及方法
CN104348820B (zh) * 2013-08-08 2018-03-06 北大方正集团有限公司 服务器、终端和数字版权保护内容的转送方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006506733A (ja) * 2002-11-20 2006-02-23 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 移動装置の位置データを配布する方法
JP2007124520A (ja) * 2005-10-31 2007-05-17 Ntt Data Corp データ検索システム、情報処理装置、データ検索方法、及び、プログラム。
JP2013162360A (ja) * 2012-02-06 2013-08-19 Sharp Corp 情報端末装置、情報端末システム、情報端末制御方法およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3309994A4 *

Also Published As

Publication number Publication date
JP6287964B2 (ja) 2018-03-07
EP3309994A1 (en) 2018-04-18
EP3309994A4 (en) 2018-06-20
CN107683581A (zh) 2018-02-09
JP2017005458A (ja) 2017-01-05
EP3309994B1 (en) 2019-01-02
US20180137262A1 (en) 2018-05-17

Similar Documents

Publication Publication Date Title
CN108235772B (zh) 基于区块链的数据处理方法、装置、存储介质及电子设备
EP3086587B1 (en) Method and apparatus for transmitting and receiving encrypted message between terminals
US9659181B2 (en) System, apparatus and method for license key permutation
KR101878682B1 (ko) 컨텐츠를 보호하기 위한 방법 및 저장 매체
US9330275B1 (en) Location based decryption
CN101231622A (zh) 基于闪存的数据存储方法和设备、及数据读取方法和设备
JP2009100394A (ja) 情報処理装置および方法、記録媒体、プログラム、並びに情報処理システム
US10108786B2 (en) Process and device for encoding of source files for secure delivery of source code
CN109657497B (zh) 安全文件系统及其方法
KR101873828B1 (ko) 신뢰된 실행 환경 기반의 사용자 단말을 이용한 무선 도어키 공유 서비스 방법 및 시스템
JP4715792B2 (ja) 復号制御システム、復号制御方法及び復号制御プログラム
JP2014235326A (ja) システム、情報処理装置、セキュアモジュール、および検証方法
JP2006350726A (ja) アクセス権制御方法
KR20170069337A (ko) 애플리케이션 보호를 위한 암호화 처리 방법, 이에 의해 생성된 프로그램 및 이를 위한 장치
JP6343869B2 (ja) 携帯端末装置及び復号処理プログラム
WO2016199364A1 (ja) ソフトウェア複製防止システム
JP6492944B2 (ja) 情報処理システム、情報処理装置、及びファームウェアプログラム
JP2003256060A (ja) プログラム使用認証方法
JP2008502969A (ja) セキュリティモジュール内に組み込まれたソフトウェアのセキュアな更新方法
CN109272310A (zh) 一种二维码生成方法、装置及电子设备
JP2022084708A (ja) 安全製造に適用される制御システム及び制御方法
KR20100112724A (ko) 보안 이동형 저장장치 및 그 제어 방법
KR20100010010A (ko) 보안 기능을 갖는 rfid 보안 장치 및 방법
JP5997604B2 (ja) ソフトウェア不正使用防止機能を備えた情報処理装置、ソフトウェア不正使用防止方法及びプログラム
CN110909318B (zh) 用于用户设备的操作系统防盗刷方法及装置、终端

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16807081

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15580000

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE