WO2000041097A1 - Method for generating a file identifier by performing a hash function on the content of a file - Google Patents

Method for generating a file identifier by performing a hash function on the content of a file Download PDF

Info

Publication number
WO2000041097A1
WO2000041097A1 PCT/EP1999/010089 EP9910089W WO0041097A1 WO 2000041097 A1 WO2000041097 A1 WO 2000041097A1 EP 9910089 W EP9910089 W EP 9910089W WO 0041097 A1 WO0041097 A1 WO 0041097A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
code
identifier
characters
data
Prior art date
Application number
PCT/EP1999/010089
Other languages
German (de)
French (fr)
Inventor
Alexander Kolbeck
Bernhard Seen
Thomas Frey
Martin Merck
Thomas Stocker
Original Assignee
Giesecke & Devrient Gmbh
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 Giesecke & Devrient Gmbh filed Critical Giesecke & Devrient Gmbh
Priority to EP99966975A priority Critical patent/EP1064607A1/en
Priority to AU22842/00A priority patent/AU2284200A/en
Publication of WO2000041097A1 publication Critical patent/WO2000041097A1/en

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means

Definitions

  • an application identifier consists of two sections, the first section containing a registered identifier of an application provider and the second section an extension which can be freely defined by a user.
  • the use of a registered identifier helps to avoid the assignment of identical application identifiers by different providers. To avoid duplicating identical file identifiers, however, the identifier components assigned by the user must also be managed.
  • the proposed method is based on the concept of not leaving the choice of a file identifier to the manufacturer of a file alone, but to derive at least part of the identifier from the data code contained in a file.
  • the method according to the invention provides a file identifier that is unique for each file and is permanently linked to the file. It is no longer necessary to manage file identifiers to avoid double assignment of individual identifiers.
  • a particular advantage of the method according to the invention is that third parties can also use it to create certain files for integration into existing applications without the risk of an identifier collision.
  • the easy verifiability of databases for existing files of the same type helps the file manufacturers to avoid incomplete or multiple version numbers.
  • the method according to the invention also offers the advantage that the file identifier can be used to check the content of a file for correctness and completeness. Every data element corrupted, for example, by an incorrect transmission leads to a new file identifier which no longer matches the original.
  • the file identifier comprises a number of independent partial identifiers. This allows the selection of a file according to several criteria and thus supports file management.
  • a file identifier is advantageously generated by applying a hash function to the data elements of a file.
  • FIG. 1 illustrates, in a highly simplified manner, the structure of a circuit having a processor with an operating system 20 and an associated memory 21. Arrangements with the structure shown are implemented in chip cards, for example.
  • a plurality of programs 10 implementing technical applications, referred to below as applications, can be located in the memory 21 at the same time.
  • Possible applications 10 in the case of a chip card are, for example, user authentication for account transactions or a wallet function.
  • the applications 10 are typically present in code suitable for interpretation by an interpreter unit or in machine code that can be executed directly.
  • Each application 10 contains a code sequence 11 serving as an application identifier, by means of which it can be selected by a calling institution via the operating system 20.
  • the application identifier 11 is also known to the calling institution for this purpose.
  • the application identifier 11 is by the Manufacturer of an application 10 specified, the use of code components pointing to the content of the application 10 is common to facilitate administration. It is regularly clear for the associated application.
  • FIG. 2 illustrates the substructure of an application 10. It is divided into a number of files 12, referred to below as a package file. Each of these is uniquely identified by a file identifier 13; identical identifiers for two package files 12 within an application 10 are not permitted.
  • Each packet file 12 generally implements a single function, such as controlling the transmission of data to an external unit or managing certain, similar data.
  • the packet files 12 each contain a data code consisting of directly executable or to be interpreted code characters 16, as indicated on the right in FIG. 2 by dashes.
  • An application 10 can comprise one or, as indicated in FIG. 2 on the left, several package files 12. Certain package files 12 can be part of different applications 10 in the same form.
  • package files 12 are not inserted into each application 10, but rather a package file 12 that is present exactly once is cross-called by all applications 10 that use them.
  • Such a cross call of a file in a first application by a second application is indicated in FIG. 2 by an arrow.
  • the package files 12 are not only clearly identified within an application 10, but also across all applications in the entire memory space 21.
  • 3 shows the structure of a suitable unique file identifier 13. It is divided into two sections based on the DIN standard EN 27816-5, of which the first 14 is a characteristic provider that can be assigned multiple times. contains code sequence. According to the standard, it has a length of five bytes and is preferably registered centrally, in particular by the authorities.
  • the second file identifier section 15 contains a user code sequence which can be freely defined by a manufacturer or user. It is unique for an associated package file and, according to the standard, has a length of up to 11 bytes.
  • Figure 4 illustrates the effect of a hash function.
  • the code sequence 23 is determined only by the characters 16 contained in a package file 12 and uniquely identifies the package file 12. In order to avoid that two different packet files 12 lead to the same code sequence 23 due to random coincidence. ren, their length, ie the number of characters h, is specified so that the random generation of the same code sequences 23 from different packet files 12 is excluded with sufficient certainty. Suitable hash functions for the intended use can be found in the specialist literature, including the above-mentioned reference, and are therefore not described further here.
  • the code sequence 23 formed by means of the hash function can be used directly as the user sequence 15 in the file identifier 13.
  • the entire data code of a packet file 12 is expediently subjected to the hash function for the formation of the user sequence 15.
  • the file identifier 13 here comprises a user sequence 15 formed from a total of three partial identifiers 17, 18, 19.
  • the first and the third 17, 19 relate to areas of the data code forming the package file 12 that are separate from the code that realizes the application function.
  • FIG. 5 The example in FIG.
  • a packet file 12 is used for encryption of data
  • the type of the expected parameters and the format of the returned data could be stored in the interface part 24, the coding of the encryption function itself in the implementation part 25.
  • Both file code components 24, 25 are now in the example According to FIG. 5, using the method described with reference to FIGS. 3 and 4, a separate part identifier is assigned to each, the interface part 24 an interface identifier 17, the implementation part 25 a content identifier 18.
  • a package file 12 for referencing can also contain a file name 26, which is stored externally and is stored in plain text in the usual way. Carrying conventional file names can be particularly useful to make package files 12 easily recognizable or to easily introduce another feature to improve the referencing of a package file.
  • file identifiers such as file names 26 formed according to the invention.
  • the above-described file identifier formation allows automation of the version number assignment. Should a If a further package file is added to the database, which can already contain package files of the same type, a file identifier 13 is first formed as described above, which has at least one part identifier 17, 18 that identifies the manufacturer, the type of application and / or another file group characteristic. 19 contains. The entire file identifier 13 is then checked for agreement with the file identifiers of the package files already stored in the database.
  • the package file to be added receives the same version number 26 as the found match. If a match is found only with regard to the specified part identifiers 17, 19 but not with regard to the content identifier 18, the new package file is given the version number next to the one assigned to the found matching file.
  • the proposed method is suitable for determining file identifiers 13 within the framework of the DIN standard 27816-5.
  • the application identifier 11 for the applications 10 can be obtained in the same way.
  • File identifiers 13 formed according to the invention do not necessarily have to have a two-part basic structure with provider code sequence 14 and user code sequence 15, but can also be formed entirely, for example, by a code sequence obtained as a result of the application of a hash function.
  • the length of the file identifier 13 is not fixed at 16 bytes. Rather, any length is possible. The same applies analogously to the length of the user code sequence.
  • more part identifiers can also be provided.
  • any errors that may be present in the data code of a package file 12 can also be made directly visible in a simple manner.
  • the proposed method thus opens up the possibility for a provider to allow a user to bring his own package files 12 into the memory 21 of a data carrier without fear of double storage or unintended overwriting.

Abstract

The invention relates to a method for generating a file identifier for a file to be written into the memory of a processor integrated circuit. According to the invention, at least one part (15) of the file identifier (13) is generated by performing an unequivocal mathematical operation on a predetermined quantity of the code characters (16) of the data code contained in the file (12). Said operation generates a code sequence (23) of a predetermined number of characters for said quantity of code characters. Preferably, the file identifier additionally comprises one part (14) which contains information on the content of the file.

Description

VERFAHREN ZUM ERZEUGEN EINES DATEIBEZEICHNERS DURCH ANWENDUNG EINER HASHFUNKTION AUF DEN INHALT DER DATEI METHOD FOR CREATING A FILE IDENTIFIER BY APPLYING A HASH FUNCTION TO THE FILE'S CONTENT
Die Erfindung geht aus von einem Verfahren nach der Gattung des Hauptanspruchs. Ein derartiges Verfahren ist aus der DIN Norm EN 27816-5 entnehmbar. Darin sind mögliche Gestaltungen von Anwendungsbe eich- nern, welche jeweils eine Anwendung auf einer Chipkarte kennzeichnen, beschrieben. Gemäß einer in der Praxis bedeutsamen Gestaltungsform besteht ein Anwendungsbezeichner aus zwei Abschnitten, wobei der erste Abschnitt einen registrierten Bezeichner eines Anwendungsanbieters enthält, der zweite Abschnitt eine von einem Anwender frei festlegbare Erweiterung. Die Verwendung eines registrierten Bezeichners trägt dazu bei, die Vergabe identischer Anwendungsbezeichner durch verschiedene Anbieter zu vermeiden. Zur Vermeidung der Doppeltvergabe identischer Dateibezeichner müssen aber auch die durch den Anwender vergebenen Bezeichnerbestand- teile verwaltet werden. Beispielsweise ist bei der systematischen Bezeichnung einer Weiterentwicklung einer vorhandenen Anwendung festzustellen, ob und welche anderen Weiterentwicklungen derselben Anwendung bereits existieren. Eine solche Verwaltung ist aufwendig und fehleranfällig. Kommt es zu einer Doppeltvergabe eines Dateibezeichners, ist es in der Regel nicht ohne weiteres erkennbar, ob die identisch bezeichneten Dateien auch funktioneil übereinstimmen.The invention is based on a method according to the type of the main claim. Such a method can be found in the DIN standard EN 27816-5. This describes possible designs of application identifiers, each of which characterize an application on a chip card. According to a design form that is important in practice, an application identifier consists of two sections, the first section containing a registered identifier of an application provider and the second section an extension which can be freely defined by a user. The use of a registered identifier helps to avoid the assignment of identical application identifiers by different providers. To avoid duplicating identical file identifiers, however, the identifier components assigned by the user must also be managed. For example, the systematic designation of a further development of an existing application should determine whether and which other further developments of the same application already exist. Such administration is complex and prone to errors. If there is a double assignment of a file identifier, it is usually not immediately recognizable whether the identically named files also functionally match.
Es ist daher Aufgabe der Erfindung, ein Verfahren anzugeben, welches die Prüfung einer Menge von Dateien auf funktionelle Übereinstimmung mit einer Vergleichsdatei vereinfacht.It is therefore an object of the invention to provide a method which simplifies the testing of a number of files for functional correspondence with a comparison file.
Diese Aufgabe wird gelöst durch ein Verfahren mit den Merkmalen des Hauptanspruchs. Das vorgeschlagene Verfahren beruht auf dem Konzept, die Wahl eines Dateibezeichners nicht alleine dem Hersteller einer Datei zu überlassen, sondern zumindest einen Teil des Bezeichners aus dem in einer Datei enthaltenen Datencode abzuleiten. Das erfindungsgemäße Verfahren liefert einen für jede Datei eindeutigen und fest mit der Datei verbundenen Dateibezeichner. Eine Verwaltung von Dateibezeichnern zur Vermeidung von Doppeltvergaben einzelner Bezeichner ist nicht mehr erforderlich. Ein besonderer Vorteil des erfindungsgemäßen Verfahrens besteht darin, daß damit auch Dritte zur Einbindung in vorhandene Applikationen bestimmte Dateien erstellen können, ohne daß die Gefahr einer Bezeichnerkollision besteht. Die leichte Überprüfbarkeit von Datenbanken auf vorhandene gleichartige Dateien unterstützt die Hersteller von Dateien bei der Vermeidung einer lückenhaften oder der Mehrfachvergabe von Versionsnummern. Das erfindungsgemäße Verfahren bietet weiter den Vorteil, daß der Dateibezeichner zur Prüfung des Inhalts einer Datei auf Richtigkeit und Vollständigkeit heranziehbar ist. Jedes beispielsweise durch eine fehlerhafte Übertragung verfälschte Datenelement führt zu einem neuen, nicht mehr mit dem ursprünglichen übereinstimmenden Dateibezeichner. In einer vorteilhaften Weiterbildung umfaßt der Dateibezeichner mehrere unabhängige Teilbe- zeichner. Das gestattet die Auswahl einer Datei nach mehreren Kriterien und unterstützt damit die Dateiverwaltung. Vorteilhaft erfolgt die Erzeugung eines Dateibezeichners durch Anwendung einer Hash-Funktion auf die Datenelemente einer Datei.This object is achieved by a method with the features of the main claim. The proposed method is based on the concept of not leaving the choice of a file identifier to the manufacturer of a file alone, but to derive at least part of the identifier from the data code contained in a file. The method according to the invention provides a file identifier that is unique for each file and is permanently linked to the file. It is no longer necessary to manage file identifiers to avoid double assignment of individual identifiers. A particular advantage of the method according to the invention is that third parties can also use it to create certain files for integration into existing applications without the risk of an identifier collision. The easy verifiability of databases for existing files of the same type helps the file manufacturers to avoid incomplete or multiple version numbers. The method according to the invention also offers the advantage that the file identifier can be used to check the content of a file for correctness and completeness. Every data element corrupted, for example, by an incorrect transmission leads to a new file identifier which no longer matches the original. In an advantageous development, the file identifier comprises a number of independent partial identifiers. This allows the selection of a file according to several criteria and thus supports file management. A file identifier is advantageously generated by applying a hash function to the data elements of a file.
Eine besonders geeignete Nutzung des vorgeschlagenen Verfahrens bildet eine Anordnung mit den Merkmalen des unabhängigen Anspruchs 6. Die Verwendung in einem Datenträger mit einem einen Prozessor enthaltenden Schaltkreis ist vor allem deshalb vorteilhaft, weil hier Fehler nach Übergabe des Datenträgers an einen Endnutzer in der Regel nicht mehr behebbar sind. Die zuverlässige Vermeidung der Mehrfachabspeicherung identischer Dateien gewährt eine bestmögliche Speicherausnutzung. Ein Ausführungsbeispiel der Erfindung wird nachfolgend unter Bezugnahme auf die Zeichnung näher erläutert. Es zeigen:A particularly suitable use of the proposed method is an arrangement with the features of independent claim 6. The use in a data carrier with a circuit containing a processor is particularly advantageous because errors generally no longer occur after the data carrier has been transferred to an end user can be remedied. The reliable avoidance of multiple storage of identical files ensures the best possible memory utilization. An embodiment of the invention is explained below with reference to the drawing. Show it:
Fig. 1 Eine Pro rammstruktur mit mehreren Applikationen,1 a pro ram structure with several applications,
Fig. 2 Struktur und Zusammenwirken mehrerer Applikationen,2 structure and interaction of several applications,
Fig. 3 die Struktur eines Dateibezeichners,3 shows the structure of a file identifier,
Fig. 4 eine Veranschaulichung der Wirkungsweise einer dateibezeichnerbil- denden Funktion, und4 is an illustration of the mode of operation of a file identifier-forming function, and
Fig. 5 die Struktur einer Datei mit einem mehrere Teilbezeichner umfassenden Dateibezeichner.5 shows the structure of a file with a file identifier comprising several partial identifiers.
Fig. 1 veranschaulicht stark vereinfacht die Struktur einer einen Prozessor aufweisenden Schaltung mit einem Betriebssystem 20 sowie einem zugeordneten Speicher 21. Anordnungen mit der dargestellten Struktur sind beispielsweise in Chipkarten realisiert. In dem Speicher 21 können sich gleich- zeitig mehrere, im folgenden Applikationen genannte, technische Anwendungen realisierende Programme 10 befinden. Mögliche Applikationen 10 im Falle einer Chipkarte sind beispielsweise eine Benutzerauthentisierung für Kontotransaktionen oder eine Geldbörsenfunktion. Die Applikationen 10 liegen typischerweise in zur Interpretation durch eine Interpretereinheit ge- eignetem Code oder direkt ausführbarem Maschinencode vor. Jede Applikation 10 enthält eine als Anwendungsbezeichner dienende Codesquenz 11, anhand derer sie von einer aufrufenden Institution über das Betriebssystem 20 aus wählbar ist. Der Anwendungsbezeichner 11 ist hierzu auch der aufrufenden Institution bekannt. Der Anwendungsbezeichner 11 wird durch den Hersteller einer Applikation 10 festgelegt, wobei zur Erleichterung der Verwaltung die Verwendung von auf den Inhalt der Applikation 10 deutenden Codebestandteilen üblich ist. Er ist regelmäßig eindeutig für die zugehörige Anwendung.1 illustrates, in a highly simplified manner, the structure of a circuit having a processor with an operating system 20 and an associated memory 21. Arrangements with the structure shown are implemented in chip cards, for example. A plurality of programs 10 implementing technical applications, referred to below as applications, can be located in the memory 21 at the same time. Possible applications 10 in the case of a chip card are, for example, user authentication for account transactions or a wallet function. The applications 10 are typically present in code suitable for interpretation by an interpreter unit or in machine code that can be executed directly. Each application 10 contains a code sequence 11 serving as an application identifier, by means of which it can be selected by a calling institution via the operating system 20. The application identifier 11 is also known to the calling institution for this purpose. The application identifier 11 is by the Manufacturer of an application 10 specified, the use of code components pointing to the content of the application 10 is common to facilitate administration. It is regularly clear for the associated application.
Fig. 2 veranschaulicht die Unterstruktur einer Applikation 10. Sie gliedert sich in mehrere nachfolgend als Paketdatei bezeichnete Dateien 12. Jede davon ist durch einen Dateibezeichner 13 eindeutig bezeichnet, identische Be- zeichner für zwei Paketdateien 12 innerhalb einer Applikation 10 sind unzu- lässig. Jede Paketdatei 12 realisiert in der Regel jeweils eine einzelne Funktion wie beispielsweise die Steuerung der Übertragung von Daten an eine externe Einheit oder die Verwaltung bestimmter, gleichartiger Daten. Die Paketdateien 12 enthalten jeweils einen, wie in Figur 2 rechts durch Striche angedeutet, aus direkt ausführbaren oder zu interpretierenden Codezeichen 16 bestehenden Datencode. Eine Applikation 10 kann eine oder, wie in Figur 2 links angedeutet, mehrere Paketdateien 12 umfassen. Bestimmte Paketdateien 12 können in gleicher Form Bestandteil verschiedener Applikationen 10 sein. Zur Verringerung des Speicherbedarfs werden solche Paketdateien 12 nicht in jede Applikation 10 eingefügt, sondern wird eine genau einmal vor- handene Paketdatei 12 von allen Applikationen 10, die sie verwenden, queraufgerufen. Ein solcher Queraufruf einer Datei in einer ersten Applikation durch eine zweite Applikation ist in Fig. 2 durch einen Pfeil angedeutet.2 illustrates the substructure of an application 10. It is divided into a number of files 12, referred to below as a package file. Each of these is uniquely identified by a file identifier 13; identical identifiers for two package files 12 within an application 10 are not permitted. Each packet file 12 generally implements a single function, such as controlling the transmission of data to an external unit or managing certain, similar data. The packet files 12 each contain a data code consisting of directly executable or to be interpreted code characters 16, as indicated on the right in FIG. 2 by dashes. An application 10 can comprise one or, as indicated in FIG. 2 on the left, several package files 12. Certain package files 12 can be part of different applications 10 in the same form. In order to reduce the memory requirement, such package files 12 are not inserted into each application 10, but rather a package file 12 that is present exactly once is cross-called by all applications 10 that use them. Such a cross call of a file in a first application by a second application is indicated in FIG. 2 by an arrow.
Um eine zuverlässige Queraufrufbarkeit zu ermöglichen, sind die Paketda- teien 12 nicht nur innerhalb einer ApplikationlO, sondern auch applikati- onsübergreifend im gesamten Speicherraum 21 eindeutig bezeichnet. Fig. 3 zeigt die Struktur eines dazu geeigneten eindeutigen Dateibezeichners 13. Er gliedert sich in Anlehnung an die DIN Norm EN 27816-5 in zwei Abschnitte, wovon der erste 14 eine mehrfach vergebbare, charakteristische Anbieter- codesequenz enthält. Sie hat, normgemäß, eine Länge von fünf Byte und ist vorzugsweise zentral, insbesondere behördlich registriert. Der zweite Datei- bezeichnerabschnitt 15 beinhaltet eine von einem Hersteller oder Anwender individuell, frei festlegbare Anwendercodesequenz. Sie ist eindeutig für eine zugehörige Paketdatei und hat, normgemäß, eine Länge von bis zu 11 Byte.In order to enable reliable cross-callability, the package files 12 are not only clearly identified within an application 10, but also across all applications in the entire memory space 21. 3 shows the structure of a suitable unique file identifier 13. It is divided into two sections based on the DIN standard EN 27816-5, of which the first 14 is a characteristic provider that can be assigned multiple times. contains code sequence. According to the standard, it has a length of five bytes and is preferably registered centrally, in particular by the authorities. The second file identifier section 15 contains a user code sequence which can be freely defined by a manufacturer or user. It is unique for an associated package file and, according to the standard, has a length of up to 11 bytes.
Ihre Eindeutigkeit erhält die frei definierte Anwendercodesequenz 15 durch Anwendung einer vorbestimmten, dateibezeichnerbildenden mathematischen Operation auf die zu bezeichnende Paketdatei 12, die aus den in jener enthaltenen Codezeichen 16 eine Codesequenz bestimmter Länge erzeugt. Solches leistende Operationen sind insbesondere als "Hash"-Funktion bekannt. Hash-Funktionen werden insbesondere zur Herstellung digitaler Unterschriften eingesetzt und sind in der Fachliteratur ausführlich beschrieben, z.B. im Handbook of Applied Cryptography, Menezes, van Oorschot, Van- stone, CRC Press 1996, Kapitel 9. Charakteristisch für Hash-Funktionen ist, daß sie eine Zeichenfolge unbestimmter Länge in nicht umkehrbarer Weise in eine Zeichenfolge mit bestimmter Länge überführen. Erfindungsgemäß wird nun eine solche Hash-Funktion auf die in einer Paketdatei 12 enthaltenen Codezeichen 16 angewendet. Der kontextliche Inhalt der herangezoge- nen Zeichenfolge wird dabei nicht beachtet.The freely defined user code sequence 15 obtains its uniqueness by applying a predetermined, file identifier-forming mathematical operation to the package file 12 to be designated, which generates a code sequence of a certain length from the code characters 16 contained therein. Such performing operations are particularly known as a "hash" function. Hash functions are used in particular for the production of digital signatures and are described in detail in the specialist literature, e.g. in the Handbook of Applied Cryptography, Menezes, van Oorschot, Vanstein, CRC Press 1996, Chapter 9. It is characteristic of hash functions that they convert a string of indefinite length into a string of certain length in an irreversible manner. According to the invention, such a hash function is now applied to the code characters 16 contained in a package file 12. The contextual content of the character string used is not taken into account.
Figur 4 veranschaulicht die Wirkung einer Hash-Funktion. Durch die Anwendung der Hash-Funktion 22 wird aus dem n, mit n = 1,2,...,N, Codezeichen 16 umfassenden Datencode einer Paketdatei 12 eine Codesequenz 23 mit einer definierten Länge gebildet, welche eine vorbestimmte Zahl von h, mit h =0, 1,2,...,N, Zeichen umfaßt. Die Codesquenz 23 wird dabei nur von den in einer Paketdatei 12 enthaltenen Zeichen 16 bestimmt und identifiziert die Paketdatei 12 eindeutig. Um zu vermeiden, daß durch zufällige Koinzidenz zwei verschiedene Paketdateien 12 auf dieselbe Codesequenz 23 füh- ren, wird deren Länge, d.h. die Zahl der Zeichen h so vorgegeben, daß die zufällige Erzeugung gleicher Codesequenzen 23 aus unterschiedlichen Paketdateien 12 hinreichend sicher ausgeschlossen ist. Für die vorgesehene Verwendung jeweils geeignete Hash-Funktionen finden sich in der Fachlite- ratur, u.a. in der oben genannten Fundstelle, und werden deshalb hier nicht weiter beschrieben. Die mittels der Hash-Funktion gebildete Codesequenz 23 kann unmittelbar als Anwendersequenz 15 im Dateibezeichner 13 genutzt werden.Figure 4 illustrates the effect of a hash function. By using the hash function 22, a code sequence 23 with a defined length, which has a predetermined number of h, with, is formed from the n data code of a packet file 12 comprising n = 1, 2,..., N, code characters 16 h = 0, 1,2, ..., N, characters. The code sequence 23 is determined only by the characters 16 contained in a package file 12 and uniquely identifies the package file 12. In order to avoid that two different packet files 12 lead to the same code sequence 23 due to random coincidence. ren, their length, ie the number of characters h, is specified so that the random generation of the same code sequences 23 from different packet files 12 is excluded with sufficient certainty. Suitable hash functions for the intended use can be found in the specialist literature, including the above-mentioned reference, and are therefore not described further here. The code sequence 23 formed by means of the hash function can be used directly as the user sequence 15 in the file identifier 13.
Zweckmäßig wird für die Bildung der Anwendersequenz 15 der gesamte Datencode einer Paketdatei 12 der Hash-Funktion unterworfen. Möglich ist aber auch, nur einen durch seine Länge, seine Position, ein festgelegtes Zeichen oder auf ähnliche Weise begrenzten Abschnitt des gesamten Datencodes heranzuziehen. Nutzvoll kann besonders die Verwendung einer aus mehreren Teilbezeichnern bestehenden Anwendersequenz 15 sein, wobei jeder Teilbezeichner jeweils bestimmten Dateiinhalten zugeordnet ist. Ein Beispiel hierfür ist in Fig. 5 angedeutet. Der Dateibezeichner 13 umfaßt hier eine aus insgesamt drei Teilbezeichnern 17, 18, 19 gebildete Anwendersequenz 15. Davon beziehen sich der erste und der dritte 17, 19 auf von dem die eigentliche Anwendungsfunktion realisierenden Code getrennte Bereiche des die Paketdatei 12 bildenden Datencodes. Dem Beispiel in Fig. 5 zugrundegelegt ist die in der Praxis häufig zu findende Strukturierung des Datencodes einer Paketdatei 12 in einen Schnittstellenteil 24, welcher das Verhalten einer durch einen Datencode bewirkten Implementierung beschreibt, sowie einen eigentlichen Implementierungsteil 25. Dient etwa eine Paketdatei 12 zur Verschlüsselung von Daten, könnte im Schnittstellenteil 24 die Art der erwarteten Parameter sowie das Format der zurückgelieferten Daten niedergelegt sein, im Implementierungsteil 25 die Codierung der Verschlüsselungsfunktion selbst. Beiden Dateicodebestandteilen 24, 25 ist nun im Beispiel nach Figur 5 durch Anwendung des anhand der Fig. 3 und 4 beschriebenen Verfahrens jeweils ein eigener Teiibezeichner zugeordnet, dem Schnittstellenteil 24 ein Schnittstellenbezeichner 17, dem Implementierungsteil 25 ein Inhaltsbezeichner 18. Der dritte Teiibezeichner 19 ergibt sich aus dem einer Datei vom Hersteller zugeordneten Namen, dem Namen des Herstellers und/ oder der Bezeichnung des Typs der Applikation. Durch die Verwendung mehrerer Teiibezeichner 17, 18, 19 vergrößert sich die Zahl der Möglichkeiten zur Auswahl einer Paketdatei 12. So lassen sich etwa im Beispiel nach Fig. 5 mittels des Schnittstellenbezeichners 17 ganze Gruppen von Pa- ketdateien 12 gleichen Typs gleichzeitig auswählen oder über den Inhaltsbezeichner 18 einzeln ansprechen. Ist eine bestimmte Paketdatei 12 nicht vorhanden, kann leicht eine Alternative gefunden werden, die zumindest dasselbe Grundverhalten zeigt.The entire data code of a packet file 12 is expediently subjected to the hash function for the formation of the user sequence 15. However, it is also possible to use only a section of the entire data code which is limited by its length, its position, a fixed character or in a similar manner. It can be particularly useful to use a user sequence 15 consisting of a plurality of partial identifiers, each partial identifier being assigned to specific file contents. An example of this is indicated in FIG. 5. The file identifier 13 here comprises a user sequence 15 formed from a total of three partial identifiers 17, 18, 19. The first and the third 17, 19 relate to areas of the data code forming the package file 12 that are separate from the code that realizes the application function. The example in FIG. 5 is based on the structuring of the data code of a packet file 12, which is frequently found in practice, into an interface part 24, which describes the behavior of an implementation brought about by a data code, and an actual implementation part 25. For example, a packet file 12 is used for encryption of data, the type of the expected parameters and the format of the returned data could be stored in the interface part 24, the coding of the encryption function itself in the implementation part 25. Both file code components 24, 25 are now in the example According to FIG. 5, using the method described with reference to FIGS. 3 and 4, a separate part identifier is assigned to each, the interface part 24 an interface identifier 17, the implementation part 25 a content identifier 18. The third part identifier 19 results from the name assigned to a file by the manufacturer, the name of the manufacturer and / or the name of the type of application. The use of several part identifiers 17, 18, 19 increases the number of options for selecting a package file 12. For example, in the example according to FIG. 5, whole groups of package files 12 of the same type can be selected simultaneously via the interface identifier 17 or via the Address content identifier 18 individually. If a specific package file 12 is not available, an alternative can easily be found which shows at least the same basic behavior.
Alternativ zur mathematisch umgesetzten Ausführung oder zusätzlich zu dem vorbeschriebenen, gegebenenfalls mehrteiligen Dateibezeichner 13 kann eine Paketdatei 12 zur Referenzierung desweiteren einen in üblicher Weise extern vorgegebenen, im Klartext abgelegten Dateinamen 26 enthalten. Die Mitführung herkömmlicher Dateinamen kann insbesondere nützlich sein, um Paketdateien 12 leicht erkennbar zu machen oder um in einfacher Weise ein weiteres Merkmal zur Verbesserung der Referenzierung einer Paketdatei einzuführen.As an alternative to the mathematically implemented version or in addition to the above-described, possibly multi-part file identifier 13, a package file 12 for referencing can also contain a file name 26, which is stored externally and is stored in plain text in the usual way. Carrying conventional file names can be particularly useful to make package files 12 easily recognizable or to easily introduce another feature to improve the referencing of a package file.
Weitverbreitet ist es, die zeitliche Entstehung von Paketdateien durch Versi- onsnummern, d.h. durch eine mit 1 beginnende, aufsteigende Folge ganzer Zahlen zu dokumentieren. Derartige Versionsnummern sind zweckmäßig auch erfindungsgemäß gebildeten Dateibezeichnern wie Dateinamen 26 im Klartext beigefügt. Die vorbeschriebene Dateibezeichnerbildung gestattet dabei eine Automatisierung der Versionsnummernvergabe. Soll einer Da- tenbank, die bereits Paketdateiεn des gleichen Typs enthalten kann, eine weitere Paketdatei zugefügt werden, wird zunächst wie vorbeschrieben ein Dateibezeichner 13 gebildet, der zumindest einen den Hersteller, den Typ der Applikation und/ oder ein anderes Dateigruppenmerkmal bezeichnen- den Teiibezeichner 17, 18, 19 enthält. Der gesamte Dateibezeichner 13 wird sodann auf Übereinstimmung mit den Dateibezeichnern der in der Datenbank bereits gespeicherten Paketdateien geprüft. Wird eine vollständige Übereinstimmung festgestellt, erhält die hinzuzufügende Paketdatei dieselbe Versionsnummer 26 wie die gefundene übereinstimmende. Wird eine Über- einstimmung nur bezüglich der angebenden Teiibezeichner 17, 19 nicht aber hinsichtlich des Inhaltsbezeichners 18 festgestellt, erhält die neue Paketdatei die auf die der gefundenen, übereinstimmenden Datei zugeordnete als nächste folgende Versionsnummer.It is widespread to document the creation of package files over time by version numbers, ie by an ascending sequence of integers beginning with 1. Such version numbers are expediently also attached in plain text to file identifiers such as file names 26 formed according to the invention. The above-described file identifier formation allows automation of the version number assignment. Should a If a further package file is added to the database, which can already contain package files of the same type, a file identifier 13 is first formed as described above, which has at least one part identifier 17, 18 that identifies the manufacturer, the type of application and / or another file group characteristic. 19 contains. The entire file identifier 13 is then checked for agreement with the file identifiers of the package files already stored in the database. If a complete match is found, the package file to be added receives the same version number 26 as the found match. If a match is found only with regard to the specified part identifiers 17, 19 but not with regard to the content identifier 18, the new package file is given the version number next to the one assigned to the found matching file.
Das vorgeschlagene Verfahren eignet sich zur Bestimmung von Dateibezeichnern 13 im Rahmen der DIN Norm 27816-5. Es ist auf diese Anwendung aber nicht eingeschränkt. Ebenso lassen sich auf dieselbe Weise etwa die Anwendungsbezeichner 11 für die Applikationen 10 gewinnen. Erfindungsgemäß gebildete Dateibezeichner 13 müssen auch nicht notwendig eine zweiteilige Grundstruktur mit Anbietercodesquenz 14 und Anwender- codesquenz 15 aufweisen, sondern können beispielsweise auch vollständig durch eine als Ergebnis der Anwendung einer Hash-Funktion erhaltene Codesquenz gebildet sein. Weiterhin ist die Länge des Dateibezeichners 13 nicht auf 16 Byte festgelegt. Möglich ist vielmehr jede beliebige Länge. Das- selbe gilt sinngemäß für die Länge der Anwendercodesequenz. Statt der in Fig. 5 dargestellten zwei Teiibezeichner 17, 18 können des weiteren auch mehr Teiibezeichner vorgesehen sein. Das vorgeschlagene Konzept eignet sich aufgrund der damit möglichen guten Speicherplatzausnützung besonders für mobile Datenträger in Form von Chipkarten, weil deren Speicherplatz baugrößenbedingt stark beschränkt ist. Mehrfachabspeicherungen identischer Paketdateien in verschiedenen Appli- kationen sind hier besonders zu vermeiden. Die Ausführung der Hash- Funktion kann bei Chipkarten in dem integrierten Schaltkreis der Karte realisiert sein. Das Versehen neu geladener Paketdateien 12 mit Dateibezeichnern 13 erfolgt dann erst während des Lade vor ganges. Durch Vergleich des beim Laden jeweils ermittelten Dateibezeichners 13 mit den auf der Karte bereits vorhandenen läßt sich dabei leicht und zuverlässig prüfen, ob eine Paketdatei 12 auf der Karte schon vorhanden ist. Bereits vorhandene Paketdateien 12 werden nicht geladen. Mit Hilfe des mittels einer Hash-Funktion gebildeten Dateibezeichners lassen sich desweiteren auch im Datencode einer Paketdatei 12 gegebenenfalls vorhandene Fehler auf einfache Weise unmittelbar sichtbar machen. Das vorgeschlagene Verfahren eröffnet einem Anbieter damit die Möglichkeit, es einem Nutzer zu gestatten, eigene Paketdateien 12 in den Speicher 21 eines Datenträgers zu bringen, ohne daß Dop- pelabspeicherungen oder unbeabsichtigte Überschreibungen befürchtet werden müssen. The proposed method is suitable for determining file identifiers 13 within the framework of the DIN standard 27816-5. However, it is not restricted to this application. Likewise, the application identifier 11 for the applications 10 can be obtained in the same way. File identifiers 13 formed according to the invention do not necessarily have to have a two-part basic structure with provider code sequence 14 and user code sequence 15, but can also be formed entirely, for example, by a code sequence obtained as a result of the application of a hash function. Furthermore, the length of the file identifier 13 is not fixed at 16 bytes. Rather, any length is possible. The same applies analogously to the length of the user code sequence. Instead of the two part identifiers 17, 18 shown in FIG. 5, more part identifiers can also be provided. The proposed concept is particularly suitable for mobile data carriers in the form of chip cards because of the good use of storage space that is possible because the storage space is very limited due to the size of the device. Multiple storage of identical package files in different applications should be avoided here in particular. In the case of chip cards, the hash function can be implemented in the integrated circuit of the card. The newly loaded package files 12 are then provided with file identifiers 13 only during the loading process. By comparing the file identifier 13 determined during loading with those already present on the card, it can be easily and reliably checked whether a package file 12 already exists on the card. Existing package files 12 are not loaded. With the aid of the file identifier formed by means of a hash function, any errors that may be present in the data code of a package file 12 can also be made directly visible in a simple manner. The proposed method thus opens up the possibility for a provider to allow a user to bring his own package files 12 into the memory 21 of a data carrier without fear of double storage or unintended overwriting.

Claims

P a t e n t a n s p r ü c h eP a t e n t a n s r u c h e
Verfahren zum Erzeugen eines Dateibezeichners für eine in den Speicher eines einen Prozessor beinhaltenden Schaltkreises einzuschreibende Datei, dadurch gekennzeichnet, daß zumindest ein Teil des Dateibezeichners (13) durch Anwendung einer eindeutigen mathematischen Operation auf Codezeichen (16) des in der Datei (12) enthaltenen Datencodes abgeleitet wird.Method for generating a file identifier for a file to be written into the memory of a circuit containing a processor, characterized in that at least a part of the file identifier (13) by applying a unique mathematical operation to code characters (16) of the data code contained in the file (12) is derived.
Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die eindeutige mathematische Funktion nichtumkehrbar ist.Method according to claim 1, characterized in that the unique mathematical function is irreversible.
3. Verfahren nach Anspruch 2, gekennzeichnet durch folgende Schritte: - Festlegen einer mathematischen Operation, welche zu einer Menge von Codezeichen nichtumkehrbar eine Codesequenz mit einer vorbestimmten Anzahl von Zeichen erzeugt,3. The method according to claim 2, characterized by the following steps: determining a mathematical operation which irreversibly generates a code sequence with a predetermined number of characters for a set of code characters,
- Auswählen wenigstens eines Teils der Zeichen (16) des Datencodes einer Datei (12), - Anwenden der mathematischen Operation (18) auf die ausgewählten- Select at least part of the characters (16) of the data code of a file (12), - Apply the mathematical operation (18) to the selected ones
Zeichen (16) zur Erzeugung einer ersten Codesequenz (23),Characters (16) for generating a first code sequence (23),
- Übernehmen der ersten Codesequenz (23) an eine dafür vorgesehene Position (15) in dem Dateibezeichner (13).- Accepting the first code sequence (23) at a designated position (15) in the file identifier (13).
4. Verfahren nach Anspruch 3, gekennzeichnet durch folgende Schritte:4. The method according to claim 3, characterized by the following steps:
- Vorgeben einer zweiten Codesequenz (14) bestimmter Länge durch einen Anwender,- A user specifies a second code sequence (14) of a certain length,
- Zusammenfügen der zweiten Codesequenz (14) mit der ersten Codesequenz (23) zu einem Dateibezeichner (13). - Merging the second code sequence (14) with the first code sequence (23) into a file identifier (13).
5. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß die vorbestimmte, nichtumkehrbare mathematische Operation (22) eine Hash- Funktion ist.5. The method according to claim 2, characterized in that the predetermined, irreversible mathematical operation (22) is a hash function.
6. Datenträger mit einem einen Prozessor enthaltenden Schaltkreis, der einen Speicher aufweist, worin sich ein von dem Prozessor ausführbares Anwendungsprogramm befindet, das zumindest teilweise in Form von Dateien aufgebaut ist, welche in dem Speicher unter jeweils zugeordneten, individuellen Dateibezeichnern abgelegt sind, dadurch ge- kennzeichnet, daß der Dateibezeichner (13) wenigstens einer Datei6. A data carrier with a circuit containing a processor, which has a memory, in which there is an application program executable by the processor, which is at least partially constructed in the form of files which are stored in the memory under respectively assigned, individual file identifiers, thereby - indicates that the file identifier (13) of at least one file
(12) einen Bestandteil (15) enthält, welcher aus der Anwendung einer eindeutigen mathematischen Operation auf die in der Datei (12) enthaltenen Codezeichen (16) resultiert.(12) contains a component (15) which results from the application of a unique mathematical operation to the code characters (16) contained in the file (12).
7. Datenträger nach Anspruch 6, dadurch gekennzeichnet, daß der Dateibezeichner (13) einen zweiten Bestandteil in Form einer Codesequenz (14) bestimmter Länge enthält, der durch den Hersteller der Datei (12) festgelegt ist.7. Data carrier according to claim 6, characterized in that the file identifier (13) contains a second component in the form of a code sequence (14) of certain length, which is determined by the manufacturer of the file (12).
8. Datenträger nach Anspruch 6, dadurch gekennzeichnet, daß der Dateibezeichner (13) wenigstens zwei Teiibezeichner (17, 18) beinhaltet, welche jeweils durch Anwendung einer eindeutigen mathematischen Operation auf verschiedene Bereiche des in der Datei (12) enthaltenen Datencodes gebildet sind.8. A data carrier according to claim 6, characterized in that the file identifier (13) contains at least two partial identifiers (17, 18), each of which is formed by applying a unique mathematical operation to different areas of the data code contained in the file (12).
Datenträger nach Anspruch 7, dadurch gekennzeichnet, daß den Teilbezeichnern (17, 18) jeweils getrennte Teilfunktionen erfüllende Datencodebereiche (24, 25) innerhalb der durch die Datei (12) realisierten Applikation (10) entsprechen. Data carrier according to Claim 7, characterized in that the data identifiers (17, 18) each correspond to data code areas (24, 25) which perform separate sub-functions within the application (10) implemented by the file (12).
PCT/EP1999/010089 1998-12-30 1999-12-17 Method for generating a file identifier by performing a hash function on the content of a file WO2000041097A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP99966975A EP1064607A1 (en) 1998-12-30 1999-12-17 Method for generating a file identifier by performing a hash function on the content of a file
AU22842/00A AU2284200A (en) 1998-12-30 1999-12-17 Method for generating a file identifier by performing a hash function on the content of a file

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE1998160803 DE19860803A1 (en) 1998-12-30 1998-12-30 Method of creating a file identifier
DE19860803.9 1998-12-30

Publications (1)

Publication Number Publication Date
WO2000041097A1 true WO2000041097A1 (en) 2000-07-13

Family

ID=7893173

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP1999/010089 WO2000041097A1 (en) 1998-12-30 1999-12-17 Method for generating a file identifier by performing a hash function on the content of a file

Country Status (4)

Country Link
EP (1) EP1064607A1 (en)
AU (1) AU2284200A (en)
DE (1) DE19860803A1 (en)
WO (1) WO2000041097A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5644266B2 (en) * 2010-08-30 2014-12-24 株式会社リコー Electronic blackboard system, electronic blackboard device, control method and program for electronic blackboard system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2242549A (en) * 1990-03-27 1991-10-02 Sun Microsystems Inc Naming of database component files to avoid duplication of files
WO1995001599A1 (en) * 1993-07-01 1995-01-12 Legent Corporation System and method for distributed storage management on networked computer systems
WO1998056129A1 (en) * 1997-06-04 1998-12-10 Simple Access Partners, Llc System and method for processing transaction messages

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2242549A (en) * 1990-03-27 1991-10-02 Sun Microsystems Inc Naming of database component files to avoid duplication of files
WO1995001599A1 (en) * 1993-07-01 1995-01-12 Legent Corporation System and method for distributed storage management on networked computer systems
WO1998056129A1 (en) * 1997-06-04 1998-12-10 Simple Access Partners, Llc System and method for processing transaction messages

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
VAN EMMERIK M: "Identifying library functions in executable file using patterns", PROCEEDINGS 1998 AUSTRALIAN SOFTWARE ENGINEERING CONFERENCE (CAT. NO.98EX233), PROCEEDINGS OF ASWEC '98: AUSTRALIAN SOFTWARE ENGINEERING CONFERENCE, ADELAIDE, SA, AUSTRALIA, 9-13 NOV. 1998, 1998, Los Alamitos, CA, USA, IEEE Comput. Soc, USA, pages 90 - 97, XP002136634, ISBN: 0-8186-9187-5 *

Also Published As

Publication number Publication date
DE19860803A1 (en) 2000-07-06
AU2284200A (en) 2000-07-24
EP1064607A1 (en) 2001-01-03

Similar Documents

Publication Publication Date Title
EP2517105B1 (en) Metod for compressing identifiers
DE2350146A1 (en) PROCEDURE AND NETWORK FOR REORGANIZATION OF A COMPUTER STORAGE SYSTEM
EP1430369B1 (en) Dynamic access to automation resources
EP1190324B1 (en) Process for the secure writing of a pointer for a circular memory
EP1005215B1 (en) Method and system for editing configuration data in telecommunications systems
EP1005216B1 (en) Method and system for the validation of configuration data for telecommunications systems
EP0788632A1 (en) Computerized conversion of tables
WO2000041097A1 (en) Method for generating a file identifier by performing a hash function on the content of a file
EP4168865B1 (en) Method for controlling an automation system with visualisation of program objects of a control program of the automation system, and automation system
EP1623394A1 (en) Memory management in a portable data carrier
EP1099172B1 (en) Method, arrangement and set of a plurality of arrangements for remedying at least one inconsistency in a group of databases which comprises a database and at least one copy database of the database
EP2264626B1 (en) Method and device for efficient searching for at least one query data element
DE102008044808B4 (en) Method for generating program code in an operating system memory and an application memory of a data carrier
DE2516909C2 (en) Data processing system for processing nested programs
DE102004006308B4 (en) Method for modifying program code of a portable data carrier by means of patch data
DE69935317T2 (en) PROCESS FOR CHANGING A MULTIPLE OF NON-VOLATILE MEMORY LOCATIONS OF A CHIP CARD, IN PARTICULAR A CARD WITHOUT CONTACT
EP4055473B1 (en) Method for updating a control program of an automation system with data migration for a program state of the control program
WO2004072850A2 (en) Method and device for modifying modular messages
EP1044409B1 (en) Program flow method and method for expanding a program component system
EP1629379A2 (en) Loading an executable program into a portable data carrier
DE112021007160T5 (en) DATA VALIDATION APPARATUS, DATA VALIDATION METHOD, AND DATA VALIDATION PROGRAM
EP4329267A1 (en) Method and system arrangement for decentralised data distribution depending on a data identifier description
EP1600855B1 (en) Generating and using information about memory occupation in a portable device
DE10313589A1 (en) Modification method for modifying modular messages that are to be transferred over an electronic messaging system using a computer, whereby desired changes to a message structure are checked to see if they are permissible
EP2290561B1 (en) Method and device for saving and restoring electronic documents and databases

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 1999966975

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 1999966975

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: CA

WWW Wipo information: withdrawn in national office

Ref document number: 1999966975

Country of ref document: EP