CA2486683A1 - Method for tamper-proof identification of products - Google Patents
Method for tamper-proof identification of products Download PDFInfo
- Publication number
- CA2486683A1 CA2486683A1 CA002486683A CA2486683A CA2486683A1 CA 2486683 A1 CA2486683 A1 CA 2486683A1 CA 002486683 A CA002486683 A CA 002486683A CA 2486683 A CA2486683 A CA 2486683A CA 2486683 A1 CA2486683 A1 CA 2486683A1
- Authority
- CA
- Canada
- Prior art keywords
- code
- product
- identifier
- encrypted
- packaging
- 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
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C1/00—Registering, indicating or recording the time of events or elapsed time, e.g. time-recorders for work people
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H20/00—ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance
- G16H20/10—ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance relating to drugs or medications, e.g. for ensuring correct administration to patients
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H10/00—ICT specially adapted for the handling or processing of patient-related medical or healthcare data
- G16H10/40—ICT specially adapted for the handling or processing of patient-related medical or healthcare data for data related to laboratory analysis, e.g. patient specimen analysis
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Medicinal Chemistry (AREA)
- Epidemiology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Chemical & Material Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Medical Treatment And Welfare Office Work (AREA)
- Medicinal Preparation (AREA)
- Details Of Rigid Or Semi-Rigid Containers (AREA)
- Storage Device Security (AREA)
Abstract
The invention relates to a method for tamper-proof identification of products, more particularly medicaments, wherein an unencrypted authenticity characteristic is placed on the product in an encrypted manner by means of an asymmetric encrypting method. The buyer or retailer can verify the originator or producer of the product by comparing the unencrypted authenticity characteristic with the decoded information from the encrypted authenticity characteristic.
Description
Method for the tamperproof marking of products Product tampering is a long-standing problem. Particularly medicine tampering with a lower quality of purity and/or composition than the original products puts the safety of patients at risk. According to the World Health Organization (WHO), 771 cases of medicament tampering had been reported by April 1999, where in 40% of 325 cases analyzed more closely the type or quality of the active components contained was incorrect, and 59% contained no active component. By way of example, the distribution and subsequent taking of paracetamol syrup which had been contaminated with the antifreeze diethylene glycol caused the death of 89 Haitians in 1995.
In its guidelines for inspecting pharmaceutical products suspected to have been tampered with, contaminated or to be of lesser quality, the WHO
recommends organoleptic examination of packaging and content of the product, followed either by simple analytical methods such as thin layer chromatography or by full analysis by the competent supervisory authorities (WHO publication WO/EDMIQSM/99.1, pages 1-5 and 33-37).
While organoleptic and simple analytical methods ensure only moderate safety, full analysis is generally complex and expensive.
In addition, medicaments are marked for traceability purposes on the distribution route from the manufacture to the trader and then to the consumer or patient, in order to allow direct access to particular batches of the product in the event of recalls, for example. The marking appears on the product in the form of plain text and, in the case of medicaments or cosmetics, contains a batch number, the expiry date and a clear article descriptor, for example the Pharmazentralnummer (PZN) [Central Pharmacology Number] for medicines. If appropriate, the unit for sale is additionally marked with the date of manufacture and with an individual serial number. All or some of this information is printed not only in plain text but also in the form of a one-dimensional or two-dimensional code which can be read by machine.
Recently, attempts have been made to show that medicaments are authentic by applying antitampering features similar to those on bank notes, entailing considerable manufacturing cost and logistical complexity.
By way of example, an initiative from the Italian Ministry of Health requires all medicament packaging to bear a nine-digit serial number which needs to be produced by the Italian national mint (Focus, periodical of the International Federation of Pharmaceutical Wholesalers, Inc., vol.8, No. 25, December 27, 2001 ).
German laid-open specification DE 100 19 72 A1 describes a method for providing product securir~, where the product is provided with a first encrypted marking and the associated packaging is provided with a second encrypted marking, the second marking being dependent on the encrypted content of the first marking and thus allowing the association between packaging and product to be inferred.
European patent EP 360 225 B1 describes an apparatus for putting revenue stamps on mail deliveries, where the revenue stamp contains an encrypted message in the form of a two-dimensional code, and the code has been encrypted using a public key from an asymmetric encryption method, which makes it possible to check the validity of the postage payment.
It is an object of the present invention to provide a method which can be used to check the authenticity of products, particularly of medicaments, in a simple and inexpensive manner.
Accordingly, the subject matter of the present invention is a method for marking a product, where 1. the product is marked with at least one originality component comprising at least one individual identifier in unencrypted form (A) and at least one individual identifier in encrypted form (B), 2. the unencrypted identifier (A) contains at least one individual identification number and optionally one or more further features, 3. the encrypted identifier (B) is produced from the content of the unencrypted identifier (A), and 4. the originality component is provided in plain text or in machine-readable form.
WO 031098543 3 PCTlEP03104591 For practical handling and automatic control, the originality component can be converted into a machine-readable code. By decrypting the encrypted identifier, it is possible to infer the originality of the product.
Within the meaning of the present invention, product means a commercial good in any form, for example a pharmaceutical product or a cosmetic, preferably blood banks, blister packs, ampoules, vials, syringes, tablets, capsules, cachets, suckable tablets, plasters, tubes, inhalers, spray bottles, and/or a packaging or repackaging or a packaging combination therefor.
The originality feature can contain between 1 and 1 000 characters;
preferably, the unencrypted individual identifier (A) contains between 5 and 30 characters and the encrypted individual identifier (B) contains between 30 and 300 characters.
Further features within the meaning of the present invention are 1. an article number, preferably a PZN, an EAN (European Article Number), UPC (Universal Product Code), NDC (National Drug Code) or NHRIC (National Health Related Item Code), and/or 2. a batch number, and/or 3. the date of manufacture, and/or 4. the expiry date, and/or 5. an identifier for the packaging or repackaging, and/or 6. other numbers marking the product.
In one particular embodiment, the individual identification number is formed from the article number, preferably the PZN, the batch number and a serial number within the batch.
The originality components can be provided in machine-readable form or in plain text. In addition, the originality components can comprise any characters, preferably letters, digits, special characters andlor patterns;
with particular preference, the originality components are numeric or alphanumeric. Preferably, the originality components are shown in machine-readable form, and particularly preferably in the form of a two-dimensional code.
The originality components can also be applied to the product in a form stored in a magnetic strip or in a chip.
A code can be black and white, black on white or white on black, or colored or multicolored.
A code can be applied to the product by virtue of the product being printed or labeled, in which case any type of printer can be used, for example an inkjet printer, a laser printer, a laser marker, a dot matrix printer, a wire matrix printer or a thermal transfer printer.
A machine-readable code can be read using a commercially available scanner, for example using a laser scanner or a CCD camera, for ex:~mple the Imageteam~ 440 unit from the company WeIchAllyn~, Dornstetten, Germany.
A one-dimensional code is code 39, extended code 39 or code 128, for example.
Examples of two-dimensional codes are 3D barcode, 3-DI, ArrayTag, Aztec code, small Aztec code, codabiock, code 1, code 16K, code 49, CP .code, data glyphs, data matrix code, datastrip code, dot code A, hueCode, MaxiCode, MiniCode, PDF417, Micro PDF417, QR code, SmartCode, Snowflake Code, SuperCode, Ultracode (company brochure from the company Barcodat "2D-Code-Fibel, Systematisierung and Lesegerate", Barcodat GmbH, Dornstetten, Germany, March 1998). The preference is the data matrix code (Code ECC 200, International Symbology Specification - Data Matrix; ANSI/AIM BC11-1997, May 8, 1997, published by AIM International Inc., Reston, USA).
The data matrix code is a two-dimensional machine-readable symbol code which can be used to store between 1 and 3 116 numeric or 2 335 alphanumeric characters or 1 556 bytes of binary information. The data matrix code comprises 4 fundamental components: a fixed limit, a broken limit, a data storage area and a "QuietZone".
The fixed limit allows the decoder to calculate the orientation of the data matrix code. The broken limit allows the decoder to determine the number of columns and rows or the matrix density. The data storage area contains the binary information which has been coded during production of the data matrix code. The "Quiet Zone" is an unprinted zone which encloses the data matrix and has a different color than the fixed limit. If the fixed limit has a dark color such as black, the "Quiet Zone" is light, preferably white.
Each coded character within the data matrix is represented by a binary code comprising 8 bits. The character "M" is "01001101 ", for example, where "1" is preferably a dark zone within the data matrix and "0" is a light zone.
As compared with the barcode, the data matrix code has the advantage that it affords more storage space and increased readability as a result of the error correction method (ECC), which means that lesser demands are placed on the printer and on the area requirement.
For encryption, an asymmetric method is used in which the individual identifier (A) is encrypted using the secret part (e) of the key. Data encrypted using the secret part of the key can only be decrypted using the public part (d) of the key. It can therefore be concluded that encrypted data which can be decrypted using the public part of the key (d) were encrypted using the secret part of the key (e). Since the secret part of the key is not accessible to the public, this allows the originator or producer of the data and hence of the product to be proved without any doubt.
Asymmetric encryption methods are, by way of example, the method from Rivest, Shamir and Adleman (RSA method), McEliece, EIGamal, LUC or from Diffie Hellman.
The preference is the RSA method for key generation and encryption, as described in US 4,405,829, for example. This method defines not only the keys (d) and (e) but also the publicly accessible modulus (n) required for encrypting and decrypting the data. The basis of this method is that, when selecting primary numbers p and q of appropriate size for generating the modulus (n), where n = p**q, it is not possible to use known computers and mathematical methods to infer the secret key in a reasonable time and at reasonable cost.
The degree of encryption is geared to the length of the key used.
Preferably, a key having a length greater than or equal to 1 024 bits is used on the basis of an RSA modulus of at least 309 decimal numbers.
The purchaser of andlor trader in the product marked in accordance with the invention is provided with the public part of the key (d) and with the modulus (n); by way of example, this part of the key can be stored on a publicly accessible data server or on the Internet or can appear on the product.
The method allows the purchaser and/or trader to determine the manufacturer of the product beyond doubt so long as the secret part of the key (F~) is not published.
For decryption, the originality components are read and the encrypted individual identifier (B) is decrypted using the public part of the key. If the identifier obtained after the encrypted part (B) has been decrypted corresponds to the identifier in unencrypted form (A), this means that, firstly, the encrypted part (B) has been produced using the secret part of the key, and that, secondly, the source or the manufacturer of the product has therefore produced the encrypted part (B), and that, thirdly, the source or the manufacturer of the product has therefore been identified as the owner of the secret part of the key.
The inventive method allows product tampering to be detected: if the individual identifier obtained when the encrypted identifier (B) has been decrypted using the public key (d) and the modulus (n) corresponds to the individual identifier which the unencrypted identifier (A) contains, then the individual identifier has been produced by the owner of the secret key (e).
The individual identifier is used only once. Identical copies of the product can therefore be recognized by comparing the individual identification number with individual identification numbers already used which have been registered by the retailer, trader or customer or have been published by the manufacturer. Serial copies can easily be established in retail through serial recognition.
Serial tampering and product tampering can additionally be made more difficult, which involves 1. the product and/or the packaging or repackaging being marked with at least one originality component comprising at least one individual identifier in unencrypted form (A) and at least one individual identifier in encrypted form (B), 2. the unencrypted form (A) of the product identifier being additionally adopted as part of the repackaging's message which is to be encrypted and which bears a separate identifier (identifier for the repackaging), and which involves 3. the originality of the repackaging and of the individual products it contains being distinguished in that the decoded message needs to contain not only the identifier for the repackaging but also the product's originality component, and which involves 4. the identifier for the repackaging being produced independently of the product identifier.
The difficulty in tampering lies in that the product identifier also needs to be tampered with. Otherwise, serial tampering will actually be recognized for individual packaging. .
With simple repackaging, without altering the primary packed goods (product) and producing serial tampering, the risk of discovery is thus much greater.
The inventive method is also suitable as protection against tampering with the expiry date. Many consumer articles, such as pharmaceutical products, cosmetic products or groceries, are provided with a use-by or expiry date.
To be able to continue to self products whose use-by time has completely or partially expired, third parties dishonestly manipulate the use-by/expiry date.
This manipulation can be prevented if the use-by or expiry date is encrypted using the methods described in the patent. The method comprises the following elements and method steps:
1. the use-by or expiry date is part of the unencrypted form (A) of the product identifier and is encrypted using a private key from an asynchronous encryption method;
2. the result of encryption (encrypted message) and the unencrypted use-by or expiry date are applied to the sales packaging. The encrypted message is preferably applied in machine-readable form using a one-dimensional or two-dimensional code such as the data matrix code or using other electronically readable methods, such as magnetic strips, memory chips, transponders or using biocoded methods;
3. the consumer or the trader is able to check the originality of the use-by or expiry date by decoding the encrypted message using the associated public key and obtaining the original use-by or expiry date in the decoded message, provided that said date matches the use-by or expiry date appearing in unencrypted form.
The difficulty in manipulating the use-by or expiry date is in the application of the asynchronous encryption described in the patent. Only with knowledge of the private key is it possible to generate a decoded message which, following decryption using public keys, matches the undecoded message.
The private key can be determined by third parties only using extremely time-consuming computation methods. With keys of appropriate length, the computation time is longer than the use-bylexpiry time. This makes it possible to prevent manipulation by third parties using this method, provided that the private key is kept safely and the encrypted message is always part of the product.
Examples 1 to 7 demonstrate the inventive principle with a reduced volume of data, where the message to be encrypted is a letter.
Examples 8 and 9 illustrate an embodiment of the inventive method, where the message to be encrypted is around 47 ASCII characters and the key length is several hundred bits.
Example 1:
Principle of generating the private and public keys using encryption based on the RSA method Search for a modulus n = p q (p and q are primary numbers) with the primary numbers p and q gives p = 17, q = 23, for example Euler's PHI function applies, which indicates the number of all integers smaller than n which are aliquant parts of n:
PHI(n) _ (p-1 )(q-1 ) Example: PHI(n) = 352 Two numbers a and d must be found for which WO 03/098543 9 PCTlEP03104591 a d mod PHI(n) = 1 applies.
First, d is chosen such that d is relatively prime with respect to PHI(n). The ideal is a primary number d > max(p,q) and d < PHI(n)-1.
In order to find e, it is necessary to find a solution with integer x and y for the equation x d + y PHI(n) = 1.
The following applies:
x d = 1 (mod PHI(n)).
if the following is set:
a = x mod PHI(n), then a d = 1 (mod PHI(n)) as well.
a and d are the keys, n is the "modulus" or modulo.
The encryption function is E(x) = xe mod n, the decryption function is D(x) = xd mod n.
Since modulo n is calculated for the functions E(x) and D(x), x must be < n. Each message X needs to be divided into blocks x1, x2, ... such that x1, x2 ... are < n.
Example 2:
Program for key generation, conversion of the message into ASCII code, encryption, decryption, conversion of the decrypted ASCII code into plain text and verification The program runs on 80x86 PCs using Microsoft 32-bit Windows (NT/2000/XP/95B/98/ME). It was written in Microsoft Visual Basic 6Ø
VERSION 5.00 Begin f C62A69F0-16DC-11 CE-9E98-OOAA00574A4F} UserForm 1 Caption - "RSA-Test"
ClientHeight = 10620 Glientf_eft - 45 ClientTop - 330 ClientWidth - 12765 OIeObjectBlob = "UserForm1.dsx":0000 StartUpPosition = 1 'window center End Attribute VB Name = "UserForm1"
Attribute VB GIobaINameSpace = False Attribute VB Creatable = False Attribute VB Predeclaredld = True Attribute VB-Exposed = False Function Findkey(ByVal p, ByVal q As Long) As Long Dim maxpq, random, difference, phin As Long if p > q Then maxpq = p Else maxpq = q End If phin=(p-1)*(q-1) difference = phin - maxpq Randomize Do random = Int(Rnd * difference) + maxpq Loop Until IstPrime(random) Findkey = random End Function Function IstPrime(ByVal a As Long) As Boolean Dim factor, root a As Long Dim prime As Boolean Prime = True factor = 2 root a = Int(Sqr(a)) While (factor < = root a) And Prime If a Mod factor = 0 Then Prime = False End If factor = factor + 1 Wend 1 st Prime = prime End Function Function FindOtherKey(ByVal p, ByVal q, ByVal a As Long) As Long Dim d, phin As Long phin=(p-1)*(q-1) d=0 D
d=d+1 Loop Until ((e * d ) Mod phin = 1) Or (d > phin) If d > phin Then d=0 End If FindOtherKey = d End Function Function ahochbmodc(ByVal a As Long, ByVal b, ByVal c As Long) As Long Dim n, i, m, m2 As Long n=aModc m2 = 1 Do If b > 2 Then i=n~3 b=b-3 Else i=n~b b=0 End If m=iModc m2=m*m2 m2 = m2 Mod c Loop Until b = 0 ahochbmodc = m2 End Function Private Sub encrypt(ByVal unencryp As String, ByRef encryp As String, ByVal e, ByVal n As Long) Dim numerator, aux As Long For numerator = 1 To Len (unencryp) aux = ahochbmodc(Asc(Mid(unencryp, numerator, 1 )), e, n) encryp = encryp + CStr(aux} + ""
Next numerator End Sub Private Sub decrypt(ByVal encryp As String, ByRef unencryp As String, ByVal d, ByVal n As Long) Dim numerator1, numerator2, value aux1, value_aux2 As Long Dim auxstring1 As String auxstring1 = ""
numerator1 = 1 Do numerator2 = numerator1 Do numerator2 = numerator 2 + 1 Loop Until (Mid(encryp, numerator2, 1) _ "") Or (numerator2 > Len (encryp)) If numerator2 < = Len (encryp) Then value aux1 - CLng (Mid(encryp, numerator1, numerator2 -numerator1 )) value aux2 = ahochbmodc(value-aux1, d, n) auxstring1 = auxstring 1 + Chr(value_aux2 Mod 256) numerator1 = numerator2 + 1 End If Loop Until numerator1 > = Len(encryp) unencryp = auxstring1 End Sub Private Sub ascii dec(ByVal text1 As String, ByRef text2 As String) Dim numerator, aux As Long For numerator = 1 To Len (text1 ) aux = Asc(Mid(text1, numerator, 1 )) text2 = text2 + CStr(aux) + ""
Next numerator End Sub Private Sub ascii enc(ByVal text1 As String, ByRef text2 As String) Dim numerator1, numerator2, value aux1 As Long Dim auxstring1 As String auxstring1 = ""
numerator1 = 1 Do numerator2 = numerator1 Do numerator2 = numerator2 + 1 Loop Until (Mid(text1, numerator2, 1) _ "") Or (numerator2 > Len(text1)) If numerator2 < = Len(text1 ) Then value aux1 = CLng(Mid(text1, numerator1, numerator 2 - numerator1)) auxstring1 = auxstring1 + Chr(value_aux1) numerator1 = numerator2 + 1 End If Loop Until numerator1 > = Len(text1) text2 = auxstring1 End Sub Private Sub btn decryp Click() Dim tempstring2 As String tempstring2 = ""
If Right( encryp.Text, 1 ) <> "" Then txt_encryp.Text = ~ encryp.Text + ""
End If Call decrypt(txt_encryp.Text, tempstring2, txt d, txt_n) txt_unencryp.Text = tempstring2 tempstring2 = ""
Call ascii dec(txt unencryp.Text,tempstring2) txt unencryp ascii.Text = tempstring2 txt_concat.Text = txt_unencryp ascii.Text + "P' + ~ encryp.Text End Sub Private Sub btn_generate Click() lab n_gen.Caption = txt_p-gen * txt q-gen lab~hin_gen.Caption = (txt-p-gen - 1 ) * (txt-q-gen - 1 ) lab e-gen.Caption = Findkey(txt p_gen, txt_q_gen) ~ a = lab e-gen.Caption txt-n = lab n-gen.Caption lab d_gen.Caption = FindOtherKey(txt-p-gen, txt_q_gen, lab e_gen.Caption) txt_d = lab d_gen.Caption End Sub Private Sub btn del_unencryp Click() txt_unencryp.Text = ""
txt_unencryp ascii.Text = ""
txt concat.Text = ""
End Sub Private Sub btn-del encryp Click() txt_encryp.Text = ""
txt concat.Text = ""
End Sub Private Sub btn_key-gen Click() fram key_gen.Visible = Not fram_key-gen.Visible End Sub Private Sub btn verifi_Click() Dim auxstring1, auxstring2 As String auxstring1 = ""
auxstring2 = ""
If InStr(1, txt_verifi.Text,"P') > 0 Then auxstring1 = Left(txt-verifi.Text, InStr(1, txt_verifi.Text, "/") - 1) Call ascii enc(auxstring1, auxstring2) txt_unencryp verifi.Text = auxstring2 auxstring1 = ""
auxstring2 = ""
auxstring1 - Right(txt-verifi.Text, Len(txt_verifi.Text) - InStr(1, txt verifi.Text, "P')) If Right(auxstring1, 1) <> "" Then auxstring1 = auxstring1 + ""
End If Call decrypt(auxstring1, auxstring2, ~ d, txt-n) txt decryp verifi.Text = auxstring2 background color = lab-ident.BackColor If StrComp(txt-decryp verifi.Text, txt_unencryp verifi.Text) Then lab-ident.Caption = "NOT AUTHENTIC"
lab-ident.BackColor = RGB(255,0, 0) Beep Else lab_ident.Caption = "AUTHENTIC"
lab-ident.BackColor = RGB(0, 255, 0) End If End If End Sub Private Sub btn encryp Click() Dim tempstring As String tempstring = ""
Call encrypt(txt_unencryp.Text, tempstring, txt e, txt_n) txt encryp. Text = tempstring tempstring = ""
Call ascii dec(txt_unencryp. Text, tempstring) txt_unencryp ascii. Text = tempstring ~ concat.Text = txt_unencryp ascii.Text + "/" + txt encryp.Text End Sub Private Sub lab ident Click() lab_ident.Caption = ""
lab_ident.BackColor = UserForm1.BackColor End Sub Example 3:
Converting message to be encrypted into encrypted bit pattern or numerical sequence Using the program code illustrated in example 2, a private key = 185, a public key = 137, and the modulus = 391 are produced.
The message to be encrypted is the letter "A", which as a decimal number corresponding to the ASCII code is the number 65 and corresponds to the binary digit sequence 0100 0001.
For encryption, the message is encrypted using the private part of the key.
The encryption function is E(x) = xe mod n, hence in this example E(x) = 65'85 mod 391 = 241 The encrypted message is 241 in decimal notation and is 1111 0001 as a binary number.
Example 4:
Producing message and code in data matrix code ECC200, marking the product From the encrypted message generated in example 3 in unencrypted and encrypted form and, in each case, in binary form, a data matrix code was produced and shown in line with the rules in "AIM International Symbology Specification Data Matrix, Annex M" using the Wolke Drucksystem m600 (Controller Art. No.: 620100):
unencrypted encrypted decimal: 65 241 binary: 0100 0001 1111 0001 Data matrix code:
The data matrix code shown was printed onto a medicament packaging using a data matrix code printer, for example Wolke Drucksystem m600 Printhead Art. No. 620300.
Likewise, the unencrypted message was printed onto the packaging in decimal and binary notation.
Example 5:
Reading the information contained in the data matrix code Information contained in the data matrix code can be read by retailers using a fixed code reader, for example commercially available makes from Pharma Controll Electronic GmbH, type: Camera Data Matrix Control System.
A check for serial tampering is made by means of comparison with already known identification numbers.
1n the pharmacy, the information contained in thA data matrix code is read, by way of example, using handheld readers, such as the make Welch Allyn Inc., type: 4410HD-131CK.
Example 6:
Decoding and verifying the encrypted message The public key and the modulus are provided on the Internet by the manufacturer of the product (for example the medicine).
The decryption function is D(x) = xd mod n.
The encrypted message in line with example 4: decimal 241 = binary 1111 0001, therefore, is D(x) = 241'3' mod 391 = 65.
The decrypted message therefore corresponds to decimal 65, or to binary 0100 0001.
The decrypted information is compared with the unencrypted information to establish the originality.
The decrypted message (A) is: decimal 65 = binary 0100 0001, the unencrypted message read from the encrypted data matrix code is likewise decimal 65.
Converting the ASCII representation of the decrypted code and the unencrypted message into a character string gives the message "A" in plain text, said message corresponding.to the unencrypted message read from the encrypted data matrix code.
The "A" _ "A" comparison shows that the data matrix code on the product was produced using the secret key from the manufacturer. The product is thus authentic.
For decryption and verification, the program described in example 2 was used.
Example 7:
Marking a blister pack containing a medicament To improve handling and to make marking more universal, the unencrypted elements of the message and the encrypted message are shown using two separate data matrix code symbols.
The example was implemented in a manner similar to examples 1 to 6.
The private and public keys were generated using the modulus size of 1024 bits in line with the example.
The message to be encrypted was an individual identification number comprising BATCH No. (40A020), EXP (10.2003), PZN (-0587985) and an individual identifier (00000001 ).
The individual identification number was encrypted in the following notation <BATCH>40A020<EXP>10.2003<PZN>-0587985<SN>00000001 into data matrix code ECC200 using the private key, the unencrypted message having been portrayed using data matrix code symbol 1 (in line with a symbol size of 24 x 24 data matrix moduli) and the encrypted message having been portrayed using data matrix code symbol 2 (in line with a symbol size of 52 x 52 data matrix moduli).
A blister pack containing a medicament was marked.
The medicament was marked, the information contained in the data matrix code was read and the encrypted message was decrypted and verified in line with examples 4 to 6.
Example 8:
Marking a packaging for a medicament In a manner similar to examples 1 to 7, a packaging for a medicament was marked, the modulus size being 1024 bits, the individual identification number comprising PZN, BATCH (batch number) and an individual serial number.
The encryption method was the RSA method.
Figures 1 to 3 show the inventive method in line with example 8.
In its guidelines for inspecting pharmaceutical products suspected to have been tampered with, contaminated or to be of lesser quality, the WHO
recommends organoleptic examination of packaging and content of the product, followed either by simple analytical methods such as thin layer chromatography or by full analysis by the competent supervisory authorities (WHO publication WO/EDMIQSM/99.1, pages 1-5 and 33-37).
While organoleptic and simple analytical methods ensure only moderate safety, full analysis is generally complex and expensive.
In addition, medicaments are marked for traceability purposes on the distribution route from the manufacture to the trader and then to the consumer or patient, in order to allow direct access to particular batches of the product in the event of recalls, for example. The marking appears on the product in the form of plain text and, in the case of medicaments or cosmetics, contains a batch number, the expiry date and a clear article descriptor, for example the Pharmazentralnummer (PZN) [Central Pharmacology Number] for medicines. If appropriate, the unit for sale is additionally marked with the date of manufacture and with an individual serial number. All or some of this information is printed not only in plain text but also in the form of a one-dimensional or two-dimensional code which can be read by machine.
Recently, attempts have been made to show that medicaments are authentic by applying antitampering features similar to those on bank notes, entailing considerable manufacturing cost and logistical complexity.
By way of example, an initiative from the Italian Ministry of Health requires all medicament packaging to bear a nine-digit serial number which needs to be produced by the Italian national mint (Focus, periodical of the International Federation of Pharmaceutical Wholesalers, Inc., vol.8, No. 25, December 27, 2001 ).
German laid-open specification DE 100 19 72 A1 describes a method for providing product securir~, where the product is provided with a first encrypted marking and the associated packaging is provided with a second encrypted marking, the second marking being dependent on the encrypted content of the first marking and thus allowing the association between packaging and product to be inferred.
European patent EP 360 225 B1 describes an apparatus for putting revenue stamps on mail deliveries, where the revenue stamp contains an encrypted message in the form of a two-dimensional code, and the code has been encrypted using a public key from an asymmetric encryption method, which makes it possible to check the validity of the postage payment.
It is an object of the present invention to provide a method which can be used to check the authenticity of products, particularly of medicaments, in a simple and inexpensive manner.
Accordingly, the subject matter of the present invention is a method for marking a product, where 1. the product is marked with at least one originality component comprising at least one individual identifier in unencrypted form (A) and at least one individual identifier in encrypted form (B), 2. the unencrypted identifier (A) contains at least one individual identification number and optionally one or more further features, 3. the encrypted identifier (B) is produced from the content of the unencrypted identifier (A), and 4. the originality component is provided in plain text or in machine-readable form.
WO 031098543 3 PCTlEP03104591 For practical handling and automatic control, the originality component can be converted into a machine-readable code. By decrypting the encrypted identifier, it is possible to infer the originality of the product.
Within the meaning of the present invention, product means a commercial good in any form, for example a pharmaceutical product or a cosmetic, preferably blood banks, blister packs, ampoules, vials, syringes, tablets, capsules, cachets, suckable tablets, plasters, tubes, inhalers, spray bottles, and/or a packaging or repackaging or a packaging combination therefor.
The originality feature can contain between 1 and 1 000 characters;
preferably, the unencrypted individual identifier (A) contains between 5 and 30 characters and the encrypted individual identifier (B) contains between 30 and 300 characters.
Further features within the meaning of the present invention are 1. an article number, preferably a PZN, an EAN (European Article Number), UPC (Universal Product Code), NDC (National Drug Code) or NHRIC (National Health Related Item Code), and/or 2. a batch number, and/or 3. the date of manufacture, and/or 4. the expiry date, and/or 5. an identifier for the packaging or repackaging, and/or 6. other numbers marking the product.
In one particular embodiment, the individual identification number is formed from the article number, preferably the PZN, the batch number and a serial number within the batch.
The originality components can be provided in machine-readable form or in plain text. In addition, the originality components can comprise any characters, preferably letters, digits, special characters andlor patterns;
with particular preference, the originality components are numeric or alphanumeric. Preferably, the originality components are shown in machine-readable form, and particularly preferably in the form of a two-dimensional code.
The originality components can also be applied to the product in a form stored in a magnetic strip or in a chip.
A code can be black and white, black on white or white on black, or colored or multicolored.
A code can be applied to the product by virtue of the product being printed or labeled, in which case any type of printer can be used, for example an inkjet printer, a laser printer, a laser marker, a dot matrix printer, a wire matrix printer or a thermal transfer printer.
A machine-readable code can be read using a commercially available scanner, for example using a laser scanner or a CCD camera, for ex:~mple the Imageteam~ 440 unit from the company WeIchAllyn~, Dornstetten, Germany.
A one-dimensional code is code 39, extended code 39 or code 128, for example.
Examples of two-dimensional codes are 3D barcode, 3-DI, ArrayTag, Aztec code, small Aztec code, codabiock, code 1, code 16K, code 49, CP .code, data glyphs, data matrix code, datastrip code, dot code A, hueCode, MaxiCode, MiniCode, PDF417, Micro PDF417, QR code, SmartCode, Snowflake Code, SuperCode, Ultracode (company brochure from the company Barcodat "2D-Code-Fibel, Systematisierung and Lesegerate", Barcodat GmbH, Dornstetten, Germany, March 1998). The preference is the data matrix code (Code ECC 200, International Symbology Specification - Data Matrix; ANSI/AIM BC11-1997, May 8, 1997, published by AIM International Inc., Reston, USA).
The data matrix code is a two-dimensional machine-readable symbol code which can be used to store between 1 and 3 116 numeric or 2 335 alphanumeric characters or 1 556 bytes of binary information. The data matrix code comprises 4 fundamental components: a fixed limit, a broken limit, a data storage area and a "QuietZone".
The fixed limit allows the decoder to calculate the orientation of the data matrix code. The broken limit allows the decoder to determine the number of columns and rows or the matrix density. The data storage area contains the binary information which has been coded during production of the data matrix code. The "Quiet Zone" is an unprinted zone which encloses the data matrix and has a different color than the fixed limit. If the fixed limit has a dark color such as black, the "Quiet Zone" is light, preferably white.
Each coded character within the data matrix is represented by a binary code comprising 8 bits. The character "M" is "01001101 ", for example, where "1" is preferably a dark zone within the data matrix and "0" is a light zone.
As compared with the barcode, the data matrix code has the advantage that it affords more storage space and increased readability as a result of the error correction method (ECC), which means that lesser demands are placed on the printer and on the area requirement.
For encryption, an asymmetric method is used in which the individual identifier (A) is encrypted using the secret part (e) of the key. Data encrypted using the secret part of the key can only be decrypted using the public part (d) of the key. It can therefore be concluded that encrypted data which can be decrypted using the public part of the key (d) were encrypted using the secret part of the key (e). Since the secret part of the key is not accessible to the public, this allows the originator or producer of the data and hence of the product to be proved without any doubt.
Asymmetric encryption methods are, by way of example, the method from Rivest, Shamir and Adleman (RSA method), McEliece, EIGamal, LUC or from Diffie Hellman.
The preference is the RSA method for key generation and encryption, as described in US 4,405,829, for example. This method defines not only the keys (d) and (e) but also the publicly accessible modulus (n) required for encrypting and decrypting the data. The basis of this method is that, when selecting primary numbers p and q of appropriate size for generating the modulus (n), where n = p**q, it is not possible to use known computers and mathematical methods to infer the secret key in a reasonable time and at reasonable cost.
The degree of encryption is geared to the length of the key used.
Preferably, a key having a length greater than or equal to 1 024 bits is used on the basis of an RSA modulus of at least 309 decimal numbers.
The purchaser of andlor trader in the product marked in accordance with the invention is provided with the public part of the key (d) and with the modulus (n); by way of example, this part of the key can be stored on a publicly accessible data server or on the Internet or can appear on the product.
The method allows the purchaser and/or trader to determine the manufacturer of the product beyond doubt so long as the secret part of the key (F~) is not published.
For decryption, the originality components are read and the encrypted individual identifier (B) is decrypted using the public part of the key. If the identifier obtained after the encrypted part (B) has been decrypted corresponds to the identifier in unencrypted form (A), this means that, firstly, the encrypted part (B) has been produced using the secret part of the key, and that, secondly, the source or the manufacturer of the product has therefore produced the encrypted part (B), and that, thirdly, the source or the manufacturer of the product has therefore been identified as the owner of the secret part of the key.
The inventive method allows product tampering to be detected: if the individual identifier obtained when the encrypted identifier (B) has been decrypted using the public key (d) and the modulus (n) corresponds to the individual identifier which the unencrypted identifier (A) contains, then the individual identifier has been produced by the owner of the secret key (e).
The individual identifier is used only once. Identical copies of the product can therefore be recognized by comparing the individual identification number with individual identification numbers already used which have been registered by the retailer, trader or customer or have been published by the manufacturer. Serial copies can easily be established in retail through serial recognition.
Serial tampering and product tampering can additionally be made more difficult, which involves 1. the product and/or the packaging or repackaging being marked with at least one originality component comprising at least one individual identifier in unencrypted form (A) and at least one individual identifier in encrypted form (B), 2. the unencrypted form (A) of the product identifier being additionally adopted as part of the repackaging's message which is to be encrypted and which bears a separate identifier (identifier for the repackaging), and which involves 3. the originality of the repackaging and of the individual products it contains being distinguished in that the decoded message needs to contain not only the identifier for the repackaging but also the product's originality component, and which involves 4. the identifier for the repackaging being produced independently of the product identifier.
The difficulty in tampering lies in that the product identifier also needs to be tampered with. Otherwise, serial tampering will actually be recognized for individual packaging. .
With simple repackaging, without altering the primary packed goods (product) and producing serial tampering, the risk of discovery is thus much greater.
The inventive method is also suitable as protection against tampering with the expiry date. Many consumer articles, such as pharmaceutical products, cosmetic products or groceries, are provided with a use-by or expiry date.
To be able to continue to self products whose use-by time has completely or partially expired, third parties dishonestly manipulate the use-by/expiry date.
This manipulation can be prevented if the use-by or expiry date is encrypted using the methods described in the patent. The method comprises the following elements and method steps:
1. the use-by or expiry date is part of the unencrypted form (A) of the product identifier and is encrypted using a private key from an asynchronous encryption method;
2. the result of encryption (encrypted message) and the unencrypted use-by or expiry date are applied to the sales packaging. The encrypted message is preferably applied in machine-readable form using a one-dimensional or two-dimensional code such as the data matrix code or using other electronically readable methods, such as magnetic strips, memory chips, transponders or using biocoded methods;
3. the consumer or the trader is able to check the originality of the use-by or expiry date by decoding the encrypted message using the associated public key and obtaining the original use-by or expiry date in the decoded message, provided that said date matches the use-by or expiry date appearing in unencrypted form.
The difficulty in manipulating the use-by or expiry date is in the application of the asynchronous encryption described in the patent. Only with knowledge of the private key is it possible to generate a decoded message which, following decryption using public keys, matches the undecoded message.
The private key can be determined by third parties only using extremely time-consuming computation methods. With keys of appropriate length, the computation time is longer than the use-bylexpiry time. This makes it possible to prevent manipulation by third parties using this method, provided that the private key is kept safely and the encrypted message is always part of the product.
Examples 1 to 7 demonstrate the inventive principle with a reduced volume of data, where the message to be encrypted is a letter.
Examples 8 and 9 illustrate an embodiment of the inventive method, where the message to be encrypted is around 47 ASCII characters and the key length is several hundred bits.
Example 1:
Principle of generating the private and public keys using encryption based on the RSA method Search for a modulus n = p q (p and q are primary numbers) with the primary numbers p and q gives p = 17, q = 23, for example Euler's PHI function applies, which indicates the number of all integers smaller than n which are aliquant parts of n:
PHI(n) _ (p-1 )(q-1 ) Example: PHI(n) = 352 Two numbers a and d must be found for which WO 03/098543 9 PCTlEP03104591 a d mod PHI(n) = 1 applies.
First, d is chosen such that d is relatively prime with respect to PHI(n). The ideal is a primary number d > max(p,q) and d < PHI(n)-1.
In order to find e, it is necessary to find a solution with integer x and y for the equation x d + y PHI(n) = 1.
The following applies:
x d = 1 (mod PHI(n)).
if the following is set:
a = x mod PHI(n), then a d = 1 (mod PHI(n)) as well.
a and d are the keys, n is the "modulus" or modulo.
The encryption function is E(x) = xe mod n, the decryption function is D(x) = xd mod n.
Since modulo n is calculated for the functions E(x) and D(x), x must be < n. Each message X needs to be divided into blocks x1, x2, ... such that x1, x2 ... are < n.
Example 2:
Program for key generation, conversion of the message into ASCII code, encryption, decryption, conversion of the decrypted ASCII code into plain text and verification The program runs on 80x86 PCs using Microsoft 32-bit Windows (NT/2000/XP/95B/98/ME). It was written in Microsoft Visual Basic 6Ø
VERSION 5.00 Begin f C62A69F0-16DC-11 CE-9E98-OOAA00574A4F} UserForm 1 Caption - "RSA-Test"
ClientHeight = 10620 Glientf_eft - 45 ClientTop - 330 ClientWidth - 12765 OIeObjectBlob = "UserForm1.dsx":0000 StartUpPosition = 1 'window center End Attribute VB Name = "UserForm1"
Attribute VB GIobaINameSpace = False Attribute VB Creatable = False Attribute VB Predeclaredld = True Attribute VB-Exposed = False Function Findkey(ByVal p, ByVal q As Long) As Long Dim maxpq, random, difference, phin As Long if p > q Then maxpq = p Else maxpq = q End If phin=(p-1)*(q-1) difference = phin - maxpq Randomize Do random = Int(Rnd * difference) + maxpq Loop Until IstPrime(random) Findkey = random End Function Function IstPrime(ByVal a As Long) As Boolean Dim factor, root a As Long Dim prime As Boolean Prime = True factor = 2 root a = Int(Sqr(a)) While (factor < = root a) And Prime If a Mod factor = 0 Then Prime = False End If factor = factor + 1 Wend 1 st Prime = prime End Function Function FindOtherKey(ByVal p, ByVal q, ByVal a As Long) As Long Dim d, phin As Long phin=(p-1)*(q-1) d=0 D
d=d+1 Loop Until ((e * d ) Mod phin = 1) Or (d > phin) If d > phin Then d=0 End If FindOtherKey = d End Function Function ahochbmodc(ByVal a As Long, ByVal b, ByVal c As Long) As Long Dim n, i, m, m2 As Long n=aModc m2 = 1 Do If b > 2 Then i=n~3 b=b-3 Else i=n~b b=0 End If m=iModc m2=m*m2 m2 = m2 Mod c Loop Until b = 0 ahochbmodc = m2 End Function Private Sub encrypt(ByVal unencryp As String, ByRef encryp As String, ByVal e, ByVal n As Long) Dim numerator, aux As Long For numerator = 1 To Len (unencryp) aux = ahochbmodc(Asc(Mid(unencryp, numerator, 1 )), e, n) encryp = encryp + CStr(aux} + ""
Next numerator End Sub Private Sub decrypt(ByVal encryp As String, ByRef unencryp As String, ByVal d, ByVal n As Long) Dim numerator1, numerator2, value aux1, value_aux2 As Long Dim auxstring1 As String auxstring1 = ""
numerator1 = 1 Do numerator2 = numerator1 Do numerator2 = numerator 2 + 1 Loop Until (Mid(encryp, numerator2, 1) _ "") Or (numerator2 > Len (encryp)) If numerator2 < = Len (encryp) Then value aux1 - CLng (Mid(encryp, numerator1, numerator2 -numerator1 )) value aux2 = ahochbmodc(value-aux1, d, n) auxstring1 = auxstring 1 + Chr(value_aux2 Mod 256) numerator1 = numerator2 + 1 End If Loop Until numerator1 > = Len(encryp) unencryp = auxstring1 End Sub Private Sub ascii dec(ByVal text1 As String, ByRef text2 As String) Dim numerator, aux As Long For numerator = 1 To Len (text1 ) aux = Asc(Mid(text1, numerator, 1 )) text2 = text2 + CStr(aux) + ""
Next numerator End Sub Private Sub ascii enc(ByVal text1 As String, ByRef text2 As String) Dim numerator1, numerator2, value aux1 As Long Dim auxstring1 As String auxstring1 = ""
numerator1 = 1 Do numerator2 = numerator1 Do numerator2 = numerator2 + 1 Loop Until (Mid(text1, numerator2, 1) _ "") Or (numerator2 > Len(text1)) If numerator2 < = Len(text1 ) Then value aux1 = CLng(Mid(text1, numerator1, numerator 2 - numerator1)) auxstring1 = auxstring1 + Chr(value_aux1) numerator1 = numerator2 + 1 End If Loop Until numerator1 > = Len(text1) text2 = auxstring1 End Sub Private Sub btn decryp Click() Dim tempstring2 As String tempstring2 = ""
If Right( encryp.Text, 1 ) <> "" Then txt_encryp.Text = ~ encryp.Text + ""
End If Call decrypt(txt_encryp.Text, tempstring2, txt d, txt_n) txt_unencryp.Text = tempstring2 tempstring2 = ""
Call ascii dec(txt unencryp.Text,tempstring2) txt unencryp ascii.Text = tempstring2 txt_concat.Text = txt_unencryp ascii.Text + "P' + ~ encryp.Text End Sub Private Sub btn_generate Click() lab n_gen.Caption = txt_p-gen * txt q-gen lab~hin_gen.Caption = (txt-p-gen - 1 ) * (txt-q-gen - 1 ) lab e-gen.Caption = Findkey(txt p_gen, txt_q_gen) ~ a = lab e-gen.Caption txt-n = lab n-gen.Caption lab d_gen.Caption = FindOtherKey(txt-p-gen, txt_q_gen, lab e_gen.Caption) txt_d = lab d_gen.Caption End Sub Private Sub btn del_unencryp Click() txt_unencryp.Text = ""
txt_unencryp ascii.Text = ""
txt concat.Text = ""
End Sub Private Sub btn-del encryp Click() txt_encryp.Text = ""
txt concat.Text = ""
End Sub Private Sub btn_key-gen Click() fram key_gen.Visible = Not fram_key-gen.Visible End Sub Private Sub btn verifi_Click() Dim auxstring1, auxstring2 As String auxstring1 = ""
auxstring2 = ""
If InStr(1, txt_verifi.Text,"P') > 0 Then auxstring1 = Left(txt-verifi.Text, InStr(1, txt_verifi.Text, "/") - 1) Call ascii enc(auxstring1, auxstring2) txt_unencryp verifi.Text = auxstring2 auxstring1 = ""
auxstring2 = ""
auxstring1 - Right(txt-verifi.Text, Len(txt_verifi.Text) - InStr(1, txt verifi.Text, "P')) If Right(auxstring1, 1) <> "" Then auxstring1 = auxstring1 + ""
End If Call decrypt(auxstring1, auxstring2, ~ d, txt-n) txt decryp verifi.Text = auxstring2 background color = lab-ident.BackColor If StrComp(txt-decryp verifi.Text, txt_unencryp verifi.Text) Then lab-ident.Caption = "NOT AUTHENTIC"
lab-ident.BackColor = RGB(255,0, 0) Beep Else lab_ident.Caption = "AUTHENTIC"
lab-ident.BackColor = RGB(0, 255, 0) End If End If End Sub Private Sub btn encryp Click() Dim tempstring As String tempstring = ""
Call encrypt(txt_unencryp.Text, tempstring, txt e, txt_n) txt encryp. Text = tempstring tempstring = ""
Call ascii dec(txt_unencryp. Text, tempstring) txt_unencryp ascii. Text = tempstring ~ concat.Text = txt_unencryp ascii.Text + "/" + txt encryp.Text End Sub Private Sub lab ident Click() lab_ident.Caption = ""
lab_ident.BackColor = UserForm1.BackColor End Sub Example 3:
Converting message to be encrypted into encrypted bit pattern or numerical sequence Using the program code illustrated in example 2, a private key = 185, a public key = 137, and the modulus = 391 are produced.
The message to be encrypted is the letter "A", which as a decimal number corresponding to the ASCII code is the number 65 and corresponds to the binary digit sequence 0100 0001.
For encryption, the message is encrypted using the private part of the key.
The encryption function is E(x) = xe mod n, hence in this example E(x) = 65'85 mod 391 = 241 The encrypted message is 241 in decimal notation and is 1111 0001 as a binary number.
Example 4:
Producing message and code in data matrix code ECC200, marking the product From the encrypted message generated in example 3 in unencrypted and encrypted form and, in each case, in binary form, a data matrix code was produced and shown in line with the rules in "AIM International Symbology Specification Data Matrix, Annex M" using the Wolke Drucksystem m600 (Controller Art. No.: 620100):
unencrypted encrypted decimal: 65 241 binary: 0100 0001 1111 0001 Data matrix code:
The data matrix code shown was printed onto a medicament packaging using a data matrix code printer, for example Wolke Drucksystem m600 Printhead Art. No. 620300.
Likewise, the unencrypted message was printed onto the packaging in decimal and binary notation.
Example 5:
Reading the information contained in the data matrix code Information contained in the data matrix code can be read by retailers using a fixed code reader, for example commercially available makes from Pharma Controll Electronic GmbH, type: Camera Data Matrix Control System.
A check for serial tampering is made by means of comparison with already known identification numbers.
1n the pharmacy, the information contained in thA data matrix code is read, by way of example, using handheld readers, such as the make Welch Allyn Inc., type: 4410HD-131CK.
Example 6:
Decoding and verifying the encrypted message The public key and the modulus are provided on the Internet by the manufacturer of the product (for example the medicine).
The decryption function is D(x) = xd mod n.
The encrypted message in line with example 4: decimal 241 = binary 1111 0001, therefore, is D(x) = 241'3' mod 391 = 65.
The decrypted message therefore corresponds to decimal 65, or to binary 0100 0001.
The decrypted information is compared with the unencrypted information to establish the originality.
The decrypted message (A) is: decimal 65 = binary 0100 0001, the unencrypted message read from the encrypted data matrix code is likewise decimal 65.
Converting the ASCII representation of the decrypted code and the unencrypted message into a character string gives the message "A" in plain text, said message corresponding.to the unencrypted message read from the encrypted data matrix code.
The "A" _ "A" comparison shows that the data matrix code on the product was produced using the secret key from the manufacturer. The product is thus authentic.
For decryption and verification, the program described in example 2 was used.
Example 7:
Marking a blister pack containing a medicament To improve handling and to make marking more universal, the unencrypted elements of the message and the encrypted message are shown using two separate data matrix code symbols.
The example was implemented in a manner similar to examples 1 to 6.
The private and public keys were generated using the modulus size of 1024 bits in line with the example.
The message to be encrypted was an individual identification number comprising BATCH No. (40A020), EXP (10.2003), PZN (-0587985) and an individual identifier (00000001 ).
The individual identification number was encrypted in the following notation <BATCH>40A020<EXP>10.2003<PZN>-0587985<SN>00000001 into data matrix code ECC200 using the private key, the unencrypted message having been portrayed using data matrix code symbol 1 (in line with a symbol size of 24 x 24 data matrix moduli) and the encrypted message having been portrayed using data matrix code symbol 2 (in line with a symbol size of 52 x 52 data matrix moduli).
A blister pack containing a medicament was marked.
The medicament was marked, the information contained in the data matrix code was read and the encrypted message was decrypted and verified in line with examples 4 to 6.
Example 8:
Marking a packaging for a medicament In a manner similar to examples 1 to 7, a packaging for a medicament was marked, the modulus size being 1024 bits, the individual identification number comprising PZN, BATCH (batch number) and an individual serial number.
The encryption method was the RSA method.
Figures 1 to 3 show the inventive method in line with example 8.
Claims (20)
2. The method as claimed in claim 1, where the product is a pharmaceutical product or a cosmetic, preferably a blood bank, a blister pack, an ampoule, a vial, a syringe, a tablet, a capsule, a cachet, a suckable tablet, a plaster, and/or a packaging or repackaging therefor.
3. The method as claimed in one of claims 1 or 2, where further features are
1. an article number, preferably a PZN, an EAN (European Article Number), UPC (Universal Product Code), NDC (National Drug Code) or NHRIC (National Health Related Item Code), and/or
2. a batch number, and/or
3. the date of manufacture, and/or 4. the expiry date, and/or 5. an identifier for the packaging or repackaging, and/or 6. other numbers marking the product.
4. The method as claimed in one of claims 1 to 3, where the individual identification number is formed from the article number, preferably the PZN, the batch number and/or a serial number within the batch.
5. The method as claimed in one of claims 1 to 4, where the originality component is a one-dimensional code, preferably code 39, extended code 39 or code 128, and/or a two-dimensional code, preferably 3D barcode, 3-DI, ArrayTag, Aztec code, small Aztec code, codeblock, code 1, code 16K, code 49, CP code, data glyphs, data matrix code, datastrip code, dot code A, hueCode, MaxiCode, MiniCode, PDF417, Micro PDF417, QR
code, SmartCode, Snowflake Code, SuperCode or Ultracode.
code, SmartCode, Snowflake Code, SuperCode or Ultracode.
6. The method as claimed in one of claims 1 to 5, where the originality component is a data matrix code.
7. The method as claimed in one of claims 1 to 6, where the encrypted identifier (B) is produced from the content of the unencrypted identifier (A) using an asymmetric encryption method.
8. The method as claimed in one of claims 1 to 7, where the asymmetric encryption method is the RSA method.
9. A product marked in accordance with a method as claimed in one of claims 1 to 8.
10. The product as claimed in claim 9, characterized in that the product is a medicine or a cosmetic.
11. The product as claimed in one of claims 9 to 10, where the product is a pharmaceutical product or a cosmetic, preferably a blood bank, a blister pack, an ampoule, a vial, a syringe, a tablet, a capsule, a cachet, a suckable tablet, a plaster, a tube, an inhaler, a spray bottle therefor.
12. A packaging or repackaging marked in accordance with a method as claimed in one of claims 1 to 8.
13. The packaging or repackaging as claimed in claim 12, characterized in that the packaging, repackaging or the packaging combination contains a medicine or a cosmetic.
14. A method for detecting product tampering, characterized in that 1. a product is marked with at least one originality component comprising at least one individual identifier in unencrypted form (A), where the individual identifier (A) is encrypted into the encrypted form (B) using the secret key of an asymmetric encryption method, the product is marked with the individual identifier in unencrypted form (A) and in encrypted form (B) and optionally with further features, the encrypted identifier (B) is produced from the content of the unencrypted identifier (A), and the originality component is provided in plain text or machine-readable form, 2. the originality component of the product is read by a purchaser or trader, and the encrypted individual identifier (B) is decrypted using the asymmetric encryption method's public key associated with the secret key, 3. the information from the decrypted individual identifier is compared with the unencrypted identifier.
15. The method as claimed in claim 12, where the product is a medicine or a cosmetic.
16. The method as claimed in one of claims 12 to 13, where the product is a pharmaceutical product or a cosmetic, preferably a blood bank, a blister pack, an ampoule, a vial, a syringe, a tablet, a capsule, a cachet, a suckable tablet, a plaster, and/or a packaging or repackaging therefor.
17. The method as claimed in one of claims 12 to 14, where further features are 1. an article number, preferably a PZN, an EAN (European Article Number), UPC (Universal Product Code), NDC (National Drug Code) or NHRIC (National Health Related Item Code), and/or 2. a batch number, and/or 3. the date of manufacture, and/or 4. the expiry date, and/or 5. an identifier for the packaging or repackaging, and/or 6. other numbers marking the product.
18. The method as claimed in one of claims 12 to 15, where the individual identification number is formed from the article number, preferably the PZN, the batch number and a serial number within the batch.
19. The method as claimed in one of claims 12 to 16, where the originality component is a one-dimensional code, preferably code 39, extended code 39 or code 128, or a two-dimensional code, preferably 3D
bar code, 3-DI, ArrayTag, Aztec code, small Aztec code, coda block, code 1, code 16K, code 49, CP code, data glyphs, data matrix code, datastrip code, dot code A, hueCode, MaxiCode, MiniCode, PDF417, Micro PDF417, QR code, SmartCode, Snowflake Code, SuperCode or Ultracode.
bar code, 3-DI, ArrayTag, Aztec code, small Aztec code, coda block, code 1, code 16K, code 49, CP code, data glyphs, data matrix code, datastrip code, dot code A, hueCode, MaxiCode, MiniCode, PDF417, Micro PDF417, QR code, SmartCode, Snowflake Code, SuperCode or Ultracode.
20. The method as claimed in one of claims 14 to 19, where the originality component is a data matrix code.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10222569A DE10222569A1 (en) | 2002-05-17 | 2002-05-17 | Method for counterfeit-proof labeling of products |
DE10222569.9 | 2002-05-17 | ||
PCT/EP2003/004591 WO2003098543A1 (en) | 2002-05-17 | 2003-05-02 | Method for tamper-proof identification of products |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2486683A1 true CA2486683A1 (en) | 2003-11-27 |
Family
ID=29414012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002486683A Abandoned CA2486683A1 (en) | 2002-05-17 | 2003-05-02 | Method for tamper-proof identification of products |
Country Status (8)
Country | Link |
---|---|
EP (1) | EP1508121A1 (en) |
JP (1) | JP2005525895A (en) |
AU (1) | AU2003227703A1 (en) |
CA (1) | CA2486683A1 (en) |
DE (1) | DE10222569A1 (en) |
IL (1) | IL165215A0 (en) |
MX (1) | MXPA04011359A (en) |
WO (1) | WO2003098543A1 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004006943A1 (en) * | 2004-02-12 | 2005-09-01 | Koenig & Bauer Ag | Alignment system for printing press has sensors to measure the relative orientation of the printing plates and printing cylinder with running correction to the alignment |
JP2007164290A (en) * | 2005-12-09 | 2007-06-28 | Dainippon Printing Co Ltd | Determination system, generation device, determination device, determination method, and the like |
DE102007036212A1 (en) * | 2007-08-02 | 2009-02-05 | Giesecke & Devrient Gmbh | Method for labeling product, involves providing product identification assigned to product and product labeling is formed by coding product identification and product identification is encrypted with secret coding key |
ES2375763T3 (en) | 2008-10-08 | 2012-03-06 | Paul Hartmann Aktiengesellschaft | MEDICAL PRODUCT |
DE102009015327A1 (en) * | 2009-03-20 | 2010-09-23 | Technische Universität Ilmenau | Method for individualized optical identification of components, involves extending control of production line over additional algorithm |
DE102010048137A1 (en) * | 2010-03-26 | 2011-09-29 | Dietrich Heinicke | Product assurance system, product assurance process and use of such product assurance systems and product assurance procedures |
IT1401912B1 (en) * | 2010-08-11 | 2013-08-28 | Pittia | SYSTEM TO VERIFY THE AUTHENTICITY OF ITEMS |
DE102018128054A1 (en) | 2018-11-09 | 2020-05-14 | Karl Otto Braun Gmbh & Co. Kg. | Bandage print |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4949381A (en) * | 1988-09-19 | 1990-08-14 | Pitney Bowes Inc. | Electronic indicia in bit-mapped form |
US6904525B1 (en) * | 1997-07-01 | 2005-06-07 | Pitney Bowes Inc. | Method for preventing counterfeiting of articles of manufacture |
US6069955A (en) * | 1998-04-14 | 2000-05-30 | International Business Machines Corporation | System for protection of goods against counterfeiting |
GB2342743B (en) * | 1998-10-17 | 2003-05-14 | Nicholas Paul Elliot | Verification method |
DE10019721A1 (en) * | 1999-08-25 | 2001-03-01 | Giesecke & Devrient Gmbh | Product assurance procedures |
-
2002
- 2002-05-17 DE DE10222569A patent/DE10222569A1/en not_active Withdrawn
-
2003
- 2003-05-02 IL IL16521503A patent/IL165215A0/en unknown
- 2003-05-02 WO PCT/EP2003/004591 patent/WO2003098543A1/en not_active Application Discontinuation
- 2003-05-02 JP JP2004505968A patent/JP2005525895A/en not_active Abandoned
- 2003-05-02 MX MXPA04011359A patent/MXPA04011359A/en unknown
- 2003-05-02 CA CA002486683A patent/CA2486683A1/en not_active Abandoned
- 2003-05-02 EP EP03725130A patent/EP1508121A1/en not_active Withdrawn
- 2003-05-02 AU AU2003227703A patent/AU2003227703A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2003098543A1 (en) | 2003-11-27 |
IL165215A0 (en) | 2005-12-18 |
DE10222569A1 (en) | 2003-12-04 |
JP2005525895A (en) | 2005-09-02 |
EP1508121A1 (en) | 2005-02-23 |
AU2003227703A1 (en) | 2003-12-02 |
MXPA04011359A (en) | 2005-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20030221108A1 (en) | Method for tamperproof marking of products | |
JP5709987B2 (en) | A system for verifying products in a package | |
CN103080923B (en) | Tag and verify the article with identifier | |
US10195109B2 (en) | System for producing a packaged item with an identifier | |
Neuenschwander et al. | Practical guide to bar coding for patient medication safety | |
US8543411B2 (en) | Systems and methods for detecting counterfeit pharmaceutical drugs at the point of retail sale | |
JP5260795B2 (en) | Product distribution management method via the Internet | |
ES2774708T3 (en) | Method to authenticate a product in a container, and associated method to verify the authenticity of the product and its container | |
US9010654B2 (en) | Monitoring moving articles | |
US8195534B2 (en) | Method and system for preparing a set of paired identification labels | |
US8055512B1 (en) | Manifest, methods and systems for multi-dose medication order fill | |
KR20050039704A (en) | Method and apparatus for applying bar code information to products during production | |
JP2010518474A (en) | Security protection barcode | |
EP1965987A2 (en) | Method and apparatus for counterfeiting protection | |
EP1965988A2 (en) | Method and apparatus for counterfeiting protection | |
ES2928886T3 (en) | Anti-counterfeit protection of articles | |
EP1856624A2 (en) | Method and system for improving, modifying, and adding information during a transfer or transaction | |
EP1965984A2 (en) | Method and apparatus for counterfeiting protection | |
CA2486683A1 (en) | Method for tamper-proof identification of products | |
Sarkar | Pharmaceutical serialization: Impact on drug packaging | |
ES2294467T3 (en) | PRODUCT SECURITY SYSTEM AND ASSOCIATED PROCEDURE. | |
JP2002236748A (en) | Method and system for inspecting dispensation | |
JP2005525895A5 (en) | ||
WO2009004011A1 (en) | System, method and marking for identifying and validating individual product elements | |
EP2534059B1 (en) | Package provided with a traceability and originality verification code, its production method and method for tracing it |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Discontinued | ||
FZDE | Discontinued |
Effective date: 20080502 |