Abstract:
A method and a system for sharing files recorded by non-divisible sections in a first memory, including dividing each section into subsets to which are respectively assigned specific access rights; storing, in a second memory, separate from the first one, a specification table comprising at least the location of each subset in the section, at least one key conditioning the access to this subset, and the rights assigned to the key; and conditioning the accesses to the subsets to their respective specifications by a control performed by a microprocessor.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention generally relates to digital data files stored in a memory and, more specifically, files with non-divisible sections, that is, having their physical recording in a memory area performed by sections of fixed length or linearly.  
         [0003]     The present invention more specifically relates to the management of the accesses to files according to rights (of writing, reading, deleting, copying, etc.) granted to users or to applications. Such rights are a function of keys or codes which are assigned to the different users or to the different functions or applications.  
         [0004]     The present invention more specifically applies to the field of smart cards or the like for which the file system processes non-divisible sections of fixed size.  
         [0005]     2. Discussion of the Related Art  
         [0006]     Currently, a key conditioning rights of access to a file having as a parameter to have to be written in non-divisible fashion by sections or linearly, can only be assigned to the entire file or to a section of this file. The distribution of the rights of access must be compatible with the granularity (minimum size) of each section read from or written into the memory.  
         [0007]     This constraint is little disturbing in applications where the memory is almost unlimited (computer hard disk, for example). However, in applications of smart card type, or more generally as soon as the memory size is critical with respect to the information volume to be stored, the granularity of the file section often curbs the increase of the number of applications that the system can process.  
         [0008]     For example, in the case of a contactless smart card (transponder) applied to the management of transport documents, the management systems (size of the exploited information, number of different categories of access rights, etc.) often differ from one network to another (from one town to another, from one operator to another, from one country to another, etc.). For a same smart card to be able to operate on several networks, it must comprise as many files as there are networks, each file being dedicated to a network.  
         [0009]     Such a limitation reduces the possibilities of sharing a smart card between several applications.  
         [0010]     The same problems are posed, even for variable-size sections, if the file writing is linear, that is, not dividable at will. For simplification, reference will be made hereafter to the granularity of data in a memory to designate the minimum size of the undividable sections which can be read from it or written into it. However, all that will be described in relation with granularity applies to linear-writing variable-size sections.  
         [0011]     A solution would be to decrease the granularity of the memory sections (in the extreme, down to a bit) according to the minimum size of the information to which specific access rights are desired to be granted. Such a theoretical solution however cannot be envisaged in practice, for several reasons.  
         [0012]     First, this solution would require modifying the memory management devices (direct memory access controller or DMA), or even the memory structure (granularity of the input-output amplifiers).  
         [0013]     Further, the access right management would require assigning a key to each element of minimum granularity. This would multiply the number of keys and would require, only to manage the rights, a memory of a size greater than that of the memory containing the information.  
         [0014]     Further, the user or the application supposed to have access would have to have as many keys as there are sections. Such a system would accordingly rapidly become unmanageable.  
       SUMMARY OF THE INVENTION  
       [0015]     The present invention aims at overcoming the disadvantages of known methods for managing files with a linear writing or a writing by non-divisible sections.  
         [0016]     The present invention especially aims at providing a solution to share a same file between different systems.  
         [0017]     The present invention also aims at making the access right management independent (in terms of data size) from the granularity of the data in a memory.  
         [0018]     To achieve these and other objects, the present invention provides a method for sharing files recorded by non-divisible sections in a first memory, comprising: 
        dividing each section into subsets to which are respectively assigned specific access rights;     storing, in a second memory, separate from the first one, a specification table comprising at least the location of each subset in the section, at least one key conditioning the access to this subset and the rights assigned to the key; and     conditioning the accesses to said subsets to their respective specifications by a control performed by a microprocessor.        
 
         [0022]     According to an embodiment of the present invention, said files are transferred between said first memory and a third memory by entire sections, the access control being performed based on the content of the third memory.  
         [0023]     According to an embodiment of the present invention, the location comprises: 
        an offset value of the beginning of the subset with respect to the beginning of the section; and     the length of the subset.        
 
         [0026]     According to an embodiment of the present invention, the specification of a subset further comprises an information about the type of data that it contains.  
         [0027]     According to an embodiment of the present invention, the subsets of a same section are nested in one another.  
         [0028]     The present invention also provides a system for sharing files recorded by non-divisible sections in a first memory, comprising: 
        a microprocessor for managing the accesses to the data contained in the sections by subsets to which are respectively assigned specific access rights;     a second memory, separate from the first one, containing at least a table of specifications comprising at least the location of each subset in the section, at least one key conditioning the access to this subset and the rights assigned to the key.        
 
         [0031]     According to an embodiment of the present invention, the system further comprises a third memory for transferring, by entire sections, information contained in the files.  
         [0032]     According to an embodiment of the present invention, the third memory is a cache memory, the second memory being a non-volatile memory.  
         [0033]     The present invention further provides a smart card comprising a file sharing system.  
         [0034]     The foregoing objects, features, and advantages of the present invention, as well as others, will be discussed in detail in the following non-limiting description of specific embodiments in connection with the accompanying drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0035]      FIG. 1  very schematically shows in the form of blocks an example of a device of smart card type to which the present invention applies;  
         [0036]      FIG. 2  shows an example of a division of a file section into subsets according to an embodiment of the present invention; and  
         [0037]      FIG. 3  illustrates an example of a specification table according to an embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION  
       [0038]     The same elements have been designated with the same reference numerals in the different drawings. For clarity, only those elements which are necessary to the understanding of the present invention have been shown in the drawings and will be described hereafter. In particular, the generation of the keys conditioning the rights of access to the different sections has not been described in detail. The present invention is compatible with any conventional key assignment system.  
         [0039]     A feature of the present invention is to divide each file section into subsets independent from one another and defined by a start bit rank (position) in the section and a length (bit number). Another feature of the present invention is to assign to each subset access rights conditioned by one or several keys.  
         [0040]     According to the present invention, the file read-write mode in the memory is not modified. Only once the sections are directly exploitable by the processor exploiting the data, more specifically in registers or a cache memory, does the present invention carry out the processing by subsets.  
         [0041]      FIG. 1  very schematically shows in the form of blocks an example of a smart card for the implementation of the present invention.  
         [0042]     In this example, a processor  1  (CPU) has the function of executing applications (programs) based on data stored in a memory  2  (MEM). Memory  2  is, for example, a memory in which the data are stored by words of 32 bits, which is the minimum size (granularity) of a section capable of being read or written. In the meaning of the present invention, term “data” encompasses any type of digital data, whatever their destination. In particular, although these data, the access to which is desired to be controlled, preferentially are data exploited by programs, this designation encompasses the actual programs which, from the point of view of memory  2 , are bits to be read and written.  
         [0043]     Conventionally, a cache memory  3  (CACHE) or a register bank is used as a buffer between memory  2  and processor  1 . The management of the exchanges between cache memory  3 , memory  2 , and processor  1  is within the abilities of those skilled in the art and implements a conventional operation. In  FIG. 1 , the data exchange or control links have been symbolized by arrows. In practice, the information generally transits over one or several buses, shared or not, but this has no incidence upon the present invention.  
         [0044]     The present invention takes advantage of the presence of this intermediary storage element (cache or registers) between memory  2  and processor  1 , generally provided for rapidity reasons, to divide the data into subsets when they are in this “intermediary memory”.  
         [0045]     Regarding the security with respect to the access controls defined by the keys assigned to the different subsets, the present invention generates no weakness since the cache memory is associated with the processor, that is, it can be considered as being in as tamper resistant an area as the actual processor.  
         [0046]     According to the present invention, a correspondence table is stored in an area of memory  2  for transfer into memory  3  before any exploitation of the data, or preferentially in an area of a non-volatile memory  4  (NVM) of the chip. This table contains, according to the present invention and for each subset, a specification of the subset in terms of location and of access rights. Thus, for each subset, the specification stored in the table comprises at least a start position (position of the first bit of the subset in the file section) and a length (number of bits of the subset). The start position may be expressed in the form of an offset with respect to the first bit of the section. The specification also contains, in relation with each subset, a category of access rights and, preferably, a concerned data type (counter, free data, date, etc.). This last information optimizes the access control by allowing a verification not only of the key but also of the data type. For simplification, reference will be made hereafter to access rights to indifferently designate the operations performed on the data and the type of concerned data, controlling the data type actually amounting to specializing (adding a condition to) a write access right.  
         [0047]     The division of each file section performed by the present invention may indifferently result in subsets formed of separate bit sequences, in imbricate subsets, etc.  
         [0048]      FIG. 2  illustrates, in a simplified representation of a section  10  of bits stored in a memory, an example of implementation of the present invention.  
         [0049]      FIG. 3  shows an example of a table  20  containing the specifications of the subsets of  FIG. 2 .  
         [0050]     In the example of  FIG. 2 , four subsets Z 1  to Z 4  have been defined in a 32-bit section forming a word storable in undividable fashion in the memory ( 2 ,  FIG. 1 ). For simplification, the bits have been designated from 1 to 32. Subsets Z 1  to Z 4  respectively comprise bits  1  to  12 ,  5  to  10 ,  13  to  28 , and  14  to  32 .  
         [0051]     To each subset are assigned specific access rights which are conditioned by the provision of at least one key (KEY,  FIG. 3 ). In the considered example, keys K 1  to K 3  are assigned to respective subsets Z 1  to Z 3 . It is assumed that two keys K 4  and K 4 ′ condition different rights on a same subset Z 4 . This amounts to considering the existence of two subsets Z 4  and Z 4 ′ of same coordinates to which are respectively assigned keys K 4  and K 4 ′.  
         [0052]     Thus, in the table of  FIG. 3 , the respective initial offsets (OFF) of the subsets are 0, 4, 12, 13, and 13 and their respective lengths (L) are 18, 6, 16, 19, and 19.  
         [0053]     The respective rights are reading (R) and writing (W) for area Z 1 , writing in counter mode (WC) in area Z 2 , reading (R) in area Z 3 , reading (R) and writing (W) in area Z 4 , erasing (E) in area Z 4 ′. For simplification, the data type specification has been mixed with the key. In practice, it will however be preferred to distinguish a code indicating the data type from the actual access right.  
         [0054]     Other accesses and types than those given hereabove as an example are of course possible.  
         [0055]     Similarly, the keys may correspond to security mechanisms different from one another. For example, some keys may be internal to the device (the smart card), others may be keyed in by the user while the card is in a reader. Others still may come from a dialog with a distant system (for example, a server connected to the reader) based on a mechanism with public and private keys.  
         [0056]     An advantage of the present invention is that the non-divisible section storable in the memory (here, 32 bits) can now be managed like several areas different from one another and over which the access rights are different. The selection, from the section, of the bits of the considered subset, is performed in the cache memory ( 3 ,  FIG. 1 ) where the section is entirely available. In other words, the access right management is no longer performed upon transfer to or from memory  2 , but while the information is in the cache memory associated with the CPU. This enables, among others, respecting the access right management rapidity constraints required by most applications.  
         [0057]     Considering again the example of smart cards in the transportation field (transport document management), it is now no longer necessary to assign one file (one section) per system or town. A same section can be shared by several systems to which are respectively assigned different subsets. Thus, a same end product (smart card) of limited memory capacity can be used, for example, in several towns.  
         [0058]     Another advantage of the present invention is that the organization of the file sharing is independent from the memory ( 2 ) in which they are stored, except regarding the section size. Indeed, be it in the read direction (from memory  2  to CPU  1 ) or in the write direction (from CPU  1  to memory  2 ), the sections are always transferred entirely from or towards memory  2 , the access management per subset being performed at the level of cache memory  3 . The memory management provided by the present invention is thus adaptable to multiple systems.  
         [0059]     Of course, the present invention is likely to have various alterations, modifications, and improvements which will readily occur to those skilled in the art. In particular, the programming of a smart card or of any other similar electronic element for the implementation of the present invention is within the abilities of those skilled in the art based on the functional indications given hereabove. Further, the possible modification of the electronic element so that it contains the assignment table of the present invention is also within the abilities of those skilled in the art. Moreover, although the present invention has been described in relation with a specific example with files of fixed size as concerns their reading-writing into the memory, the transposition of the present invention to variable-size files with a linear reading-writing (which amounts to a reading-writing per block as to transfers into the cache memory of the processor) will pose no difficulty to those skilled in the art.  
         [0060]     Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and the scope of the present invention. Accordingly, the foregoing description is by way of example only and is not intended to be limiting. The present invention is limited only as defined in the following claims and the equivalents thereto.