ITUB20159567A1 - METHOD OF PROTECTION OF MULTIMEDIA FILES FROM COPY AND UNAUTHORIZED DISTRIBUTION AND ASSOCIATED MULTIMEDIA FILES. - Google Patents

METHOD OF PROTECTION OF MULTIMEDIA FILES FROM COPY AND UNAUTHORIZED DISTRIBUTION AND ASSOCIATED MULTIMEDIA FILES. Download PDF

Info

Publication number
ITUB20159567A1
ITUB20159567A1 ITUB2015A009567A ITUB20159567A ITUB20159567A1 IT UB20159567 A1 ITUB20159567 A1 IT UB20159567A1 IT UB2015A009567 A ITUB2015A009567 A IT UB2015A009567A IT UB20159567 A ITUB20159567 A IT UB20159567A IT UB20159567 A1 ITUB20159567 A1 IT UB20159567A1
Authority
IT
Italy
Prior art keywords
file
data
sector
sectors
multimedia file
Prior art date
Application number
ITUB2015A009567A
Other languages
Italian (it)
Inventor
Antonio Carbonera
Paolo Forlani
Roberto Garavaglia
Original Assignee
Hermes Comm S R L S
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 Hermes Comm S R L S filed Critical Hermes Comm S R L S
Priority to ITUB2015A009567A priority Critical patent/ITUB20159567A1/en
Publication of ITUB20159567A1 publication Critical patent/ITUB20159567A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

“METODO DI PROTEZIONE DI FILE MULTIMEDIALI DA COPIA E DISTRIBUZIONE NON AUTORIZZATA E FILE MULTIMEDIALE ASSOCIATO” "METHOD OF PROTECTING MULTIMEDIA FILES AGAINST AUTHORIZED COPY AND DISTRIBUTION AND ASSOCIATED MULTIMEDIA FILE"

Campo dell’ invenzione Field of invention

La presente invenzione riguarda il campo dei file multimediali ed in dettaglio comprende un metodo per impedire la copia e la distribuzione non autorizzata dei file multimediali. The present invention relates to the field of multimedia files and in detail includes a method for preventing unauthorized copying and distribution of multimedia files.

Tecnica Nota Technique Note

Allo stato attuale, quasi la totalità dei contenuti multimediali è di tipo digitale. La digitalizzazione comporta grandi vantaggi, quali ad esempio la possibilità di copia senza alcuna perdita di qualità, la possibilità di distribuzione per mezzo di reti quali Internet, la durata pressoché illimitata dei supporti. At present, almost all multimedia content is digital. Digitization brings great advantages, such as the possibility of copying without any loss of quality, the possibility of distribution via networks such as the Internet, the almost unlimited duration of the media.

Purtroppo però proprio uno dei vantaggi principali che è la possibilità di copiare il file digitale che contiene il dato multimediale, rappresenta un grosso inconveniente quando il contenuto è soggetto a diritti d’autore; la copia e la distribuzione illecita dei file multimediali, anche se vietate, sono molto diffuse e provocano un grandissimo danno agli autori e a tutti gli operatori della catena distributiva. Unfortunately, however, one of the main advantages, which is the ability to copy the digital file that contains the multimedia data, represents a major drawback when the content is subject to copyright; the illegal copying and distribution of multimedia files, even if prohibited, are widespread and cause enormous damage to authors and to all operators in the distribution chain.

Il documento RM2013A000728 descrive un metodo per scambiare dati e comandi tra un computer e una periferica per mezzo di un file condiviso. Document RM2013A000728 describes a method for exchanging data and commands between a computer and a peripheral by means of a shared file.

Il documento 102015000043174 prevede la possibilità di allocare il file nel computer o nel cloud anziché nella periferica come indicato nella figura 1. In tale documento, e con riferimento alla figura 2, è indicato nel suo complesso un sistema real time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati per un elaboratore elettronico nel processo di I/O. Document 102015000043174 provides for the possibility of allocating the file in the computer or in the cloud instead of in the peripheral as indicated in figure 1. In this document, and with reference to figure 2, a real-time system for storing and bi-directional transmission of data is indicated as a whole. commands and data for a computer in the I / O process.

Tra l’elaboratore 21 e la periferica 23 sussiste una connessione diretta USB 22, realizzata in dettaglio tra il computer host 21 e la periferica 23, sempre tramite USB o altro protocollo di comunicazione. Between the computer 21 and the peripheral 23 there is a direct USB connection 22, made in detail between the host computer 21 and the peripheral 23, again via USB or other communication protocol.

Nella forma di realizzazione descritta nella presente invenzione il file di comunicazione 24 è nel computer 21 e non nella periferica 23. In the embodiment described in the present invention the communication file 24 is in the computer 21 and not in the peripheral 23.

Questa disposizione può essere realizzata, ad esempio, sfruttando il protocollo USB OTG prima descritto. Preferibilmente ma non limitatamente, in questo caso, la periferica 23 deve disporre della completa funzionalità di master MSD (Mass Storage Device) che nel brevetto originale non era necessaria. This arrangement can be realized, for example, by exploiting the USB OTG protocol described above. Preferably but not limitedly, in this case, the peripheral 23 must have the complete functionality of master MSD (Mass Storage Device) which in the original patent was not necessary.

La configurazione qui descritta presenta alcuni vantaggi. Il primo vantaggio consiste nel fatto che il file di comunicazione, realizzato all’ interno del disco del computer 21 o sotto forma di “ram disk”, può avere dimensioni di gran lunga maggiori di quelle realizzabili all’ interno della periferica 23. Nel caso in cui i dati sono trasmessi secondo la tecnica FIFO descritta nel brevetto RM2013A000728, si può aumentare a piacimento la quantità dei dati che possono restare in sospeso. The configuration described here has some advantages. The first advantage consists in the fact that the communication file, created inside the computer disk 21 or in the form of a "ram disk", can have dimensions much greater than those achievable inside the peripheral 23. In the case in point. to which the data are transmitted according to the FIFO technique described in the patent RM2013A000728, the quantity of data that can remain pending can be increased at will.

Un secondo vantaggio è dato dal fatto che un disco realizzato nel computer è molto più veloce di quello che può essere realizzato nella memoria RAM della periferica; questo vale in particolare in caso di “ram disk”. A second advantage is given by the fact that a disk made in the computer is much faster than the one that can be made in the RAM memory of the peripheral; this is especially true in the case of a "ram disk".

Un terzo vantaggio, disponibile se il disco è realizzato nel disco non volatile del computer 21 (magnetico o flash), è la “non volatilità” dei dati e dei comandi. Se la periferica si spegne o viene scollegata, ed anche se il computer viene spento e riacceso, il contenuto del file di comandi resta disponibile e le funzioni interrotte possono essere riprese esattamente dal momento dell’interruzione. A third advantage, available if the disk is made in the non-volatile disk of the computer 21 (magnetic or flash), is the “non-volatility” of the data and commands. If the device is turned off or disconnected, and even if the computer is turned off and on again, the contents of the command file remain available and the interrupted functions can be resumed exactly from the moment of interruption.

Un ulteriore vantaggio è quello di eliminare il problema che si presenta, in particolare con le unità viste come “disco di rete” come sopra descritto. Essendo il file all’ interno del computer stesso, anche in un computer virtualizzato (come ad esempio in un “thin client”) il file può essere aggiornato immediatamente sfruttando le funzioni di lettura/scrittura non bufferizzate su disco fisico. A further advantage is to eliminate the problem that arises, in particular with the units seen as a “network disk” as described above. Since the file is inside the computer itself, even in a virtualized computer (such as in a "thin client"), the file can be updated immediately using the unbuffered read / write functions on the physical disk.

In figura 3 è mostrata una seconda forma di realizzazione del sistema reai time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati per un elaboratore nel processo di I/O oggetto della presente invenzione. In tale seconda forma di realizzazione, il file 34 è condiviso simultaneamente con più di una periferica 33 per mezzo di più connessioni 32. In tal modo è possibile trasmettere gli stessi dati a più periferiche 33 contemporaneamente senza doverli replicare. Ognuna delle periferiche 33 collegate può avere una propria area di comandi separata da quella delle altre periferiche collegate allo stesso file, e in tal caso la coda FIFO può funzionare esattamente come nel caso del brevetto RM2013A000728; oppure la trasmissione può avvenire in “streaming”, senza aggiornamento dei puntatori da parte delle periferiche che ricevono i dati. In tal caso la trasmissione, similmente a un broadcast UDP, non ha un controllo di flusso. Figure 3 shows a second embodiment of the real time system for storing and bi-directional transmission of commands and data for a computer in the I / O process object of the present invention. In this second embodiment, the file 34 is shared simultaneously with more than one peripheral 33 by means of multiple connections 32. In this way it is possible to transmit the same data to several peripherals 33 at the same time without having to replicate them. Each of the connected peripherals 33 can have its own command area separate from that of the other peripherals connected to the same file, and in this case the FIFO queue can function exactly as in the case of the patent RM2013A000728; or the transmission can take place in "streaming", without updating the pointers by the peripherals that receive the data. In this case the transmission, similar to a UDP broadcast, does not have a flow control.

Nel caso di condivisione di file tra due o più periferiche, è anche possibile che due periferiche si scambino tra di loro dati e comandi, senza intervento da parte di programmi presenti nel computer host, oppure che i dati originati da una periferica siano ricevuti dal computer e allo stesso tempo da altre periferiche. In the case of file sharing between two or more peripherals, it is also possible that two peripherals exchange data and commands with each other, without intervention by programs on the host computer, or that data originating from a peripheral is received by the computer and at the same time from other peripherals.

Tornando alla figura 2 attraverso il posizionamento del file 24 di comandi e dati entro l’elaboratore 21 e comunque fuori dalla periferica si può fare operare il sistema oggetto della presente invenzione mediante funzionamento disconnesso. Si sfrutta la possibilità di realizzare all’ interno del file di comunicazione delle code FIFO di dati e di comandi. Returning to Figure 2 by positioning the command and data file 24 within the computer 21 and in any case outside the peripheral, the system object of the present invention can be operated by disconnected operation. It takes advantage of the possibility of creating FIFO queues of data and commands within the communication file.

Se si tiene disconnessa la periferica durante una sessione di trasferimento di dati e comandi (si pensi ad esempio ad un’operazione di stampa tradizionale o di stampa 3D), i dati e i comandi che non sono scaricati dalla periferica si accumulano all’ interno del file. Quando, a sessione terminata, la periferica viene ricollegata, essa scarica comandi e dati dalle code nel file e la sessione viene eseguita esattamente come se la periferica 23 fosse stata sempre collegata. Si può anche trasferire o copiare il file accumulato durante la sessione in un altro computer e collegare a questo la periferica, ottenendo Γ effettuazione della sessione (“playback”) in un luogo diverso. If you keep the device disconnected during a data and command transfer session (think for example of a traditional printing or 3D printing operation), the data and commands that are not downloaded from the device accumulate inside the file . When, at the end of the session, the peripheral is reconnected, it downloads commands and data from the queues in the file and the session is executed exactly as if the peripheral 23 had always been connected. It is also possible to transfer or copy the file accumulated during the session to another computer and connect the peripheral to this, obtaining Γ execution of the session (“playback”) in a different place.

Nel caso, ad esempio, di un’operazione lunga quale una stampa 3D, è possibile preparare un file di “sessione di stampa” in un computer 21 dotato della potenza di elaborazione necessaria, per poi trasferire il file ed eseguire la stampa con un secondo computer non dotato di alcuna capacità di elaborazione grafica. Un altro vantaggio è dato dal fatto che il file trasferito (anche in più copie) non è il file grafico 3D, ma un file 24 di comandi e dati di cui si può solo effettuare il playback e dal quale non si può risalire al file originale. Il file grafico infatti potrebbe essere soggetto a diritti di proprietà e riservatezza che ne renderebbero problematico il trasferimento. Sempre per tutelare i diritti, per mezzo di adatte tecniche crittografiche è anche possibile limitare il numero di esecuzioni del playback del comando e stabilire dei limiti temporali alla sua esecuzione. In the case, for example, of a long operation such as a 3D printing, it is possible to prepare a "print session" file in a computer 21 equipped with the necessary processing power, to then transfer the file and print with a second computer with no graphics processing capabilities. Another advantage is given by the fact that the transferred file (even in multiple copies) is not the 3D graphic file, but a file 24 of commands and data which can only be played back and from which the original file cannot be traced. . The graphic file could in fact be subject to property rights and confidentiality that would make the transfer problematic. Again to protect the rights, by means of suitable cryptographic techniques it is also possible to limit the number of executions of the playback of the command and to establish time limits for its execution.

In definitiva, questa applicazione della tecnologia permette la “virtualizzazione”, anche controllata, di una sessione di lavoro. Ultimately, this technology application allows the "virtualization", even controlled, of a work session.

Una terza forma di realizzazione è descritta in figura 4. In tale terza forma di realizzazione del sistema oggetto della presente invenzione, il file di comunicazione 44 è vantaggiosamente allocato in un server remoto o, secondo la denominazione attualmente più diffusa, è “in cloud”. A third embodiment is described in figure 4. In this third embodiment of the system object of the present invention, the communication file 44 is advantageously allocated in a remote server or, according to the currently most widespread name, is "in cloud" .

Il file 44 è sempre condiviso tra computer 41 ed una o più periferiche 43, che vi accedono tramite commessioni Internet schematizzate nella figura con il numero 42. File 44 is always shared between computers 41 and one or more peripherals 43, which access it through Internet commissions schematized in the figure with number 42.

Anche in questo caso computer 41 e periferica 43 si possono scambiare dati e comandi esattamente come nel brevetto originale RM2013A000728. Also in this case computer 41 and peripheral 43 can exchange data and commands exactly as in the original patent RM2013A000728.

La minore velocità e stabilità di questo genere di connessione sono ampiamente compensate dalla possibilità di operare comunque, qualsiasi sia la distanza tra il computer e la periferica. The lower speed and stability of this kind of connection are amply compensated by the possibility of operating anyway, whatever the distance between the computer and the peripheral.

Una quarta forma di realizzazione del sistema oggetto della presente invenzione è infine descritta in figura 5. In tale quarta forma di realizzazione si utilizza un programma applicativo “in cloud” detto anche “SaaS”, nell’esempio un gestore di spreadsheet quale ad esempio “Fogli Google”. Due computer 51 e 53 sono collegati tramite Internet 52 al programma applicativo in cloud, che presenta ad ambedue i computer lo spreadsheet 54. Invece di settori del disco o di byte all’ interno dei settori, in questo caso i dati, i comandi e le risposte sono posizionati in celle del foglio identificate da numero di riga e lettera di colonna. Sequenze di dati, anziché in settori del disco come nel brevetto RM2013A000728, possono essere allocate in intere righe o colonne del foglio. Tutto il funzionamento dell’interfaccia è analogo a quello descritto nel brevetto RM2013A000728, permettendo così lo scambio di dati e comandi tra i due computer. Se occorre agire su periferiche come la 56, queste possono essere collegate ad uno dei due computer con un’interfaccia 55 che può essere sia di tipo tradizionale, sia del tipo secondo il brevetto RM2013A000728, in questo caso operante su un apposito file di dati e comandi. A fourth embodiment of the system object of the present invention is finally described in figure 5. In this fourth embodiment, a "cloud" application program also called "SaaS" is used, in the example a spreadsheet manager such as " Google Sheets ". Two computers 51 and 53 are connected via Internet 52 to the cloud application program, which presents the spreadsheet 54 to both computers. Instead of disk sectors or bytes within the sectors, in this case the data, commands and Answers are placed in cells of the sheet identified by row number and column letter. Data sequences, instead of in disk sectors as in the RM2013A000728 patent, can be allocated in entire rows or columns of the sheet. All the operation of the interface is similar to that described in the patent RM2013A000728, thus allowing the exchange of data and commands between the two computers. If it is necessary to act on peripherals such as 56, these can be connected to one of the two computers with an interface 55 which can be either of the traditional type, or of the type according to the patent RM2013A000728, in this case operating on a specific data file and commands.

Nei due computer 51 e 53, un apposito programma applicativo provvede alla comunicazione con Γ applicazione “Fogli Google” per mezzo dell’ API (Application Program Interface) prevista dal fornitore del servizio in cloud. Quindi non c’è alcuna necessità di rendere il foglio leggibile ad un operatore umano e nemmeno di renderlo visibile agli utenti. La diagnostica e la messa a punto possono comunque essere effettuate osservando lo spreadsheet, eventualmente aprendolo in un terzo computer. In the two computers 51 and 53, a special application program provides communication with the "Google Sheets" application by means of the API (Application Program Interface) provided by the cloud service provider. So there is no need to make the sheet readable to a human operator or even to make it visible to users. In any case, diagnostics and tuning can be carried out by observing the spreadsheet, possibly opening it on a third computer.

Mentre l’esempio sopra riportato usa un gestore di spreadsheet per la comunicazione di dati e comandi, è anche possibile usare altri tipi di programmi applicativi in cloud, quale ad esempio un editore di testi; in tal caso dati e comandi sono posizionati in locazioni predefinite di un documento di testo. While the example above uses a spreadsheet manager for communicating data and commands, it is also possible to use other types of cloud application programs, such as a text editor; in this case data and commands are placed in predefined locations of a text document.

In definitiva, mentre il brevetto RM2013A000728 prevede l’allocazione nella periferica del file usato per la comunicazione di dati e comandi, il trovato qui descritto aggiunge la possibilità di allocarlo vantaggiosamente nel computer host oppure nel cloud. Ultimately, while the patent RM2013A000728 provides for the allocation in the peripheral of the file used for the communication of data and commands, the invention described here adds the possibility of allocating it advantageously in the host computer or in the cloud.

Nel documento 102015000043174, la richiedente tendeva a precisare che il programma applicativo che viene eseguito nel computer host e che realizza la funzionalità generale del sistema computer-periferica non deve essere modificato in seguito alla diversa allocazione del file, perché al fine del programma cambia solo la cartella logica in cui il file deve essere aperto. In document 102015000043174, the applicant tended to specify that the application program which runs on the host computer and which implements the general functionality of the computer-peripheral system must not be modified following the different allocation of the file, because at the end of the program only the logical folder in which the file is to be opened.

Si può anche concepire un programma che, quando avviato, effettua una “ricerca per nome” del file di comunicazione in tutte le cartelle disponibili nel computer, eliminando quindi anche la necessità di definire la cartella in una fase di configurazione iniziale. It is also possible to conceive a program which, when started, performs a "search by name" of the communication file in all the folders available on the computer, thus eliminating the need to define the folder in an initial configuration phase.

Nella descrizione si è fatto riferimento in più punti all’uso dello standard USB per la comunicazione; è comunque chiaro che la comunicazione può avvenire con qualsiasi standard attuale (es. SCSI, SAS, SATA, FireWire..) ed ulteriori standard futuri senza per questo uscire dall’ambito di protezione del brevetto. In the description, reference was made in several points to the use of the USB standard for communication; however, it is clear that communication can take place with any current standard (eg SCSI, SAS, SATA, FireWire ..) and further future standards without thereby departing from the scope of patent protection.

In ognuno dei tre casi principali e anche nel caso secondario di uso di spreadsheet in cloud, il metodo presenta numerosi vantaggi, tra i quali la possibilità di realizzare un’interazione tra un computer e una o più periferiche senza usare driver, semplificando i programmi applicativi e permettendo un’interazione a qualsiasi distanza a basso costo. In each of the three main cases and also in the secondary case of use of spreadsheets in the cloud, the method has numerous advantages, including the possibility of creating an interaction between a computer and one or more peripherals without using drivers, simplifying application programs and allowing interaction at any distance at low cost.

Il documento RM2013A000728 e parte della presente descrizione fanno riferimento all’uso della tecnica per l’interfacciamento di una tavoletta digitalizzatrice, ma è chiaro che la stessa tecnica può essere vantaggiosamente usata in ogni caso in cui un elaboratore comunica con una o più periferiche. Document RM2013A000728 and part of this description refer to the use of the technique for interfacing a digitizing tablet, but it is clear that the same technique can be advantageously used in any case in which a computer communicates with one or more peripherals.

Infine il brevetto 102015000056882 estende le funzionalità del brevetto originale aggiungendo caratteristiche di sicurezza e di protezione dei dati. Finally, patent 102015000056882 extends the functionality of the original patent by adding security and data protection features.

In tale documento, viene descritto un metodo di scambio di dati e comandi sicurizzato, tra due dispositivi uno ricevente ed uno trasmittente che sono visti, in particolare per quanto riguarda una periferica, come una memoria di massa e dunque possono operare con uno scambio di dati e comandi in modalità driverless. In this document, a secure data and command exchange method is described, between two devices, one receiving and one transmitting, which are seen, in particular as regards a peripheral, as a mass memory and therefore can operate with an exchange of data. and commands in driverless mode.

Come si è detto, conoscendo la tecnica di scambio dati e comandi tramite file descritta nel brevetto RM2013A000728 è possibile, con uno sforzo limitato, leggere i dati trasmessi. Infatti, anche non conoscendo le reali posizioni dei byte di controllo (ad esempio quelli che contengono i puntatori ai settori in lettura e scrittura) e le reali posizioni dei settori in cui sono allocati i dati da scambiare, è possibile ricavare tali posizioni per mezzo di un’attenta osservazione, eventualmente automatizzata, dei dati e settori interessati ad uno scambio. As stated, knowing the data and command exchange technique through file described in the patent RM2013A000728 it is possible, with a limited effort, to read the transmitted data. In fact, even not knowing the real positions of the control bytes (for example those containing the pointers to the sectors in reading and writing) and the real positions of the sectors in which the data to be exchanged are allocated, it is possible to obtain these positions by means of careful observation, possibly automated, of the data and sectors involved in an exchange.

Infatti i settori che contengono i byte di controllo della trasmissione (i puntatori) sono letti e scritti ad ogni operazione di lettura e scrittura dei settori di dati, quindi ad un settore di questo tipo si fa accesso molto più frequentemente che a quelli che contengono i dati: è quindi possibile capire quali sono i settori relativi ai byte di controllo. In fact, the sectors that contain the transmission control bytes (pointers) are read and written at each reading and writing operation of the data sectors, therefore a sector of this type is accessed much more frequently than those containing the data sectors. data: it is therefore possible to understand which are the sectors relating to the control bytes.

Un successivo esame del contenuto dei byte all’ interno di un settore di controllo permette di individuare quali sono i puntatori, perché essi si incrementano regolarmente fino a puntare all’ultimo settore di dati e poi tornano indietro a puntare al primo settore di dati e riprendono quindi ad incrementarsi. I settori di dati sono anch’essi facilmente riconoscibili perché vi si accede sequenzialmente, uno dopo l’altro, prima in scrittura e poi in lettura. Quindi si può affermare che, per mezzo dell’analisi di una certa quantità di dati trasmessi, è possibile ricavare l’organizzazione dei dati nel disco di scambio e quindi è possibile estrarre tutti i dati scambiati in seguito con lo stesso protocollo. A subsequent examination of the contents of the bytes inside a control sector allows us to identify which pointers are, because they regularly increase until they point to the last data sector and then go back to point to the first data sector and resume. therefore to increase. The data sectors are also easily recognizable because they are accessed sequentially, one after the other, first in writing and then in reading. So it can be said that, by analyzing a certain amount of transmitted data, it is possible to derive the organization of the data in the exchange disk and therefore it is possible to extract all the data exchanged later with the same protocol.

La tecnica che è oggetto della invenzione secondo il documento 102015000056882 si basa sul fatto che la decodifica dei dati scambiati è di gran lunga più difficile se la posizione dei dati all’ interno del file di scambio cambia frequentemente, ad esempio ad ogni nuovo scambio di dati. The technique which is the object of the invention according to document 102015000056882 is based on the fact that the decoding of the exchanged data is far more difficult if the position of the data inside the exchange file changes frequently, for example with each new data exchange. .

Con riferimento alla figura 6, è indicata l’organizzazione logica dei settori del file 100 di scambio dati e comandi (che per semplicità è rappresentato come formato da soli 8 settori). Il primo settore, indicato con 0 e tratteggiato, è quello che contiene i byte di controllo della comunicazione (byte di stato e puntatori). Ognuno dei settori dei file è, secondo il presente metodo, in realtà allocato nel disco in una diversa posizione: il settore 0 è allocato nel settore fisico 3, il settore 1 nel 6 e così via. Per stabilire la posizione dei settori si usa un “algoritmo di scrambling” 200, che è un procedimento matematico che, a partire da un insieme finito di numeri interi, genera un secondo insieme o file 101 formato dagli stessi numeri, ma scambiati tra loro secondo una legge apparentemente casuale. With reference to Figure 6, the logical organization of the sectors of the data and command exchange file 100 is indicated (which for simplicity is represented as consisting of only 8 sectors). The first sector, indicated by 0 and dashed, is the one that contains the communication control bytes (status byte and pointers). According to this method, each of the file sectors is actually allocated on the disk in a different position: sector 0 is allocated in physical sector 3, sector 1 in 6 and so on. To establish the position of the sectors, a "scrambling algorithm" 200 is used, which is a mathematical procedure which, starting from a finite set of integers, generates a second set or file 101 formed by the same numbers, but exchanged according to a seemingly random law.

Con riferimento alla figura 7, la quale illustra il detto algoritmo di scrambling, si vede che i numeri interi appartenenti ad un insieme ordinato di A, per mezzo della trasformazione C, detta scrambling 200, sono collegati ad altrettanti numeri interi del secondo insieme B in modo apparentemente casuale. In realtà Γ algoritmo di scrambling si basa su una chiave di scrambling D, che è un grande numero intero e opera in modo tale che la stessa chiave, applicata in momenti o luoghi diversi, produce sempre la stessa corrispondenza tra i due insiemi di numeri. With reference to Figure 7, which illustrates the said scrambling algorithm, it can be seen that the integers belonging to an ordered set of A, by means of the transformation C, called scrambling 200, are connected to as many integers of the second set B in seemingly casual way. Actually Γ scrambling algorithm is based on a scrambling key D, which is a large integer and operates in such a way that the same key, applied at different times or places, always produces the same correspondence between the two sets of numbers.

Quindi, analogamente ad un algoritmo di crittografia, il possesso della chiave di scrambling D permette a due soggetti di costruire la stessa corrispondenza. Detta chiave di scrambling è mantenuta segreta. Thus, similar to an encryption algorithm, possession of the scrambling key D allows two parties to construct the same correspondence. This scrambling key is kept secret.

Nella tecnica oggetto del presente brevetto, la chiave di scrambling viene scambiata, per ogni nuovo trasferimento di dati, con l’algoritmo Diffie-Hellman secondo la tecnica già descritta nel brevetto RM2013A000728, quindi l’allocazione dei settori del disco cambia con legge apparentemente casuale ad ogni nuova comunicazione tra il computer e la periferica e/o viceversa. In the technique object of the present patent, the scrambling key is exchanged, for each new data transfer, with the Diffie-Hellman algorithm according to the technique already described in the patent RM2013A000728, therefore the allocation of the disk sectors changes with an apparently random law at each new communication between the computer and the peripheral and / or vice versa.

Un ulteriore livello di sicurezza può essere ottenuto per mezzo dello scrambling applicato, all’ interno di ogni settore, all’allocazione dei singoli byte che lo compongono. La chiave usata può essere la stessa usata per lo scrambling dei settori oppure una seconda chiave anch’essa concordata in anticipo tramite Diffie-Hellman. An additional level of security can be obtained by means of the scrambling applied, within each sector, to the allocation of the individual bytes that compose it. The key used can be the same used for sector scrambling or a second key also agreed in advance through Diffie-Hellman.

La Richiedente fa notare che, usando la tecnica qui descritta, è anche possibile usare contemporaneamente la cifratura a blocchi dei dati contenuti nei settori, con un algoritmo simmetrico “tradizionale” quali ad esempio DES, 3DES o AES. The Applicant points out that, using the technique described herein, it is also possible to use block encryption of the data contained in the sectors at the same time, with a "traditional" symmetric algorithm such as DES, 3DES or AES.

Il vantaggio della protezione per mezzo dello scrambling è duplice: prima di tutto, non permette a chi intercetta la comunicazione di leggere i byte di controllo della comunicazione e quindi di seguirne (o eventualmente modificarne) l’andamento; in secondo luogo lo scrambling è meno oneroso dal punto di vista computazionale rispetto ad un algoritmo crittografico tradizionale, quindi è più facilmente realizzabile nel caso di periferiche dotate di piccoli microcontrollori con limitate capacità di elaborazione. The advantage of protection by means of scrambling is twofold: first of all, it does not allow anyone who intercepts the communication to read the communication control bytes and then to follow (or possibly modify) its progress; secondly, scrambling is less onerous from a computational point of view compared to a traditional cryptographic algorithm, therefore it is more easily achievable in the case of peripherals equipped with small microcontrollers with limited processing capacity.

Viceversa, nel caso in cui si desideri la massima sicurezza possibile, è possibile usare la tecnica di scrambling, ma cifrando anche i blocchi di dati con un algoritmo simmetrico tradizionale. La chiave di cifratura simmetrica può essere una seconda o terza chiave scambiata sempre all’inizio di ogni nuova comunicazione. Conversely, if you want the highest possible security, you can use the scrambling technique, but also encrypting the data blocks with a traditional symmetric algorithm. The symmetric encryption key can be a second or third key always exchanged at the beginning of each new communication.

Sia nel caso di uso dello scrambling da solo, sia nel caso di uso congiunto scrambling+cifratura simmetrica, le chiavi possono essere scambiate con qualsiasi periodicità, secondo il livello di sicurezza desiderato: solo una volta; ad ogni nuova sessione; ad ogni nuovo scambio di dati; periodicamente anche all’ interno dello stesso scambio di dati. Both in the case of use of scrambling alone, and in the case of joint use of scrambling + symmetric encryption, the keys can be exchanged at any frequency, according to the desired security level: only once; at each new session; with each new data exchange; periodically also within the same data exchange.

Tutti i metodi finora descritti si basano su uno scambio, più o meno frequente, di chiavi segrete e condivise per mezzo del noto metodo Diffie-Hellman ma, come scritto sopra, tale metodo non è utilizzabile nel caso in cui il computer e la periferica non sono connessi tra loro e il file di scambio dati e comandi è usato per accumulare una sessione di lavoro da effettuare in diversi tempi e luoghi. All the methods described so far are based on a more or less frequent exchange of secret and shared keys by means of the well-known Diffie-Hellman method but, as written above, this method cannot be used if the computer and the peripheral they are connected to each other and the data and command exchange file is used to accumulate a work session to be carried out at different times and places.

Nel caso del funzionamento disconnesso si usa una tecnica addizionale descritta nel seguito. In the case of disconnected operation, an additional technique described below is used.

Il destinatario di un file di scambio dati e comandi (persona fisica, organizzazione oppure macchina periferica, ad esempio stampante 3D), viene preventivamente dotato di una coppia di chiavi di cifratura asimmetrica, ad esempio secondo il metodo RSA. La chiave privata resta segreta all’ interno della periferica mentre quella pubblica è inviata al mittente (persona fisica, organizzazione oppure computer) con qualsiasi mezzo a disposizione, ad esempio tramite Internet oppure con l’invio di un file su mezzo fisico. The recipient of a data and command exchange file (natural person, organization or peripheral machine, for example 3D printer), is previously equipped with a pair of asymmetric encryption keys, for example according to the RSA method. The private key remains secret inside the device while the public key is sent to the sender (natural person, organization or computer) by any means available, for example via the Internet or by sending a file on a physical medium.

Come indicato in figura 8, il dispositivo che genera il file di scambio dati e comandi 100 (computer mittente) genera, per mezzo di un generatore di numeri casuali, le chiavi segrete 300. Le chiavi segrete 300 sono: l’eventuale chiave di crittografia simmetrica K1 usata per cifrare i dati (con algoritmo DES, 3DES, AES o simili); la chiave di scrambling dei settori K2; l’eventuale chiave di scrambling dei byte all’interno dei settori K3. Il numero di chiavi segrete 300 qui descritto come tre non è da considerarsi limitativo al fine dell’ambito di protezione fornito dalle rivendicazioni. As indicated in figure 8, the device that generates the data and command exchange file 100 (sender computer) generates, by means of a random number generator, the secret keys 300. The secret keys 300 are: the possible encryption key symmetric K1 used to encrypt data (with DES, 3DES, AES or similar algorithm); the K2 sector scrambling key; any byte scrambling key within the K3 sectors. The number of secret keys 300 described here as three is not to be considered limiting for the purpose of the scope of protection provided by the claims.

Il computer mittente provvede quindi, per mezzo del codificatore RSA 402, a cifrare le chiavi segrete 300 con la chiave pubblica 400 del destinatario. Il codificatore RSA 402 presenta dunque un primo ed un secondo ingresso 402’, 402” rispettivamente alimentati con le chiavi segrete 300 e con la chiave pubblica 400, e produce il messaggio codificato sulla sua uscita 403. Il risultato prodotto sull’uscita 403 del codificatore RSA 402, cioè l’insieme delle chiavi segrete 300, viene scritto in uno dei settori del file di scambio 100, indicato con E nella figura 3. Il settore E è allocato in una posizione predeterminata; se la lunghezza delle chiavi è tale da richiedere più di un settore, è allocato un numero sufficiente di settori contigui o separati 404. Eventualmente la detta posizione predeterminata è generata a sua volta da un generatore di numeri casuali, e il numero corrispondente al detto settore E viene condiviso tra computer e periferica. In questo modo la sicurezza della trasmissione viene aumentata di volta in volta. Il file così protetto viene memorizzato ed inviato alla periferica che lo dovrà attuare. The sending computer then proceeds, by means of the RSA 402 encoder, to encrypt the secret keys 300 with the recipient's public key 400. The RSA 402 encoder therefore has a first and a second input 402 ', 402 "respectively powered with the secret keys 300 and with the public key 400, and produces the coded message on its output 403. The result produced on the output 403 of the encoder RSA 402, ie the set of secret keys 300, is written in one of the sectors of the exchange file 100, indicated by E in Figure 3. The sector E is allocated in a predetermined position; if the length of the keys is such as to require more than one sector, a sufficient number of contiguous or separate sectors is allocated 404. Possibly said predetermined position is generated in turn by a random number generator, and the number corresponding to said sector And it is shared between computer and peripheral. In this way the security of the transmission is increased from time to time. The file thus protected is stored and sent to the device that will have to implement it.

Con riferimento alla figura 9, la periferica, allorquando ha ricevuto il file 100 di scambio di dati e comandi, dapprima estrae dal file di scambio le chiavi segrete E dal detto file 100 e per mezzo di un decodificatore RSA 502 provvede a decifrare le chiavi usando la propria chiave privata 500. Analogamente al caso del codificatore, il decodificatore RSA comprende un primo ed un secondo ingresso 502’, 502” alimentati rispettivamente dalle chiavi E e dalla chiave privata 500 e produce in uscita le chiavi decodificate K1-K3 600. With reference to Figure 9, when the peripheral has received the data and command exchange file 100, it first extracts the secret keys E from the said file 100 from the exchange file and by means of an RSA 502 decoder decrypts the keys using its own private key 500. Similarly to the case of the encoder, the RSA decoder comprises a first and a second input 502 ', 502 ”powered respectively by the keys E and by the private key 500 and outputs the decoded keys K1-K3 600.

A questo punto sono disponibili le chiavi segrete K1-K3 per la decifratura e per il “descrambling” dei dati e il processo di esecuzione dei comandi contenuti nel file e di estrazione dei dati avviene come prima descritto per il caso in cui le chiavi sono scambiate con l’algoritmo Diffie-Hellman. At this point the secret keys K1-K3 are available for decryption and for the "descrambling" of the data and the process of executing the commands contained in the file and extracting the data takes place as described above for the case in which the keys are exchanged with the Diffie-Hellman algorithm.

Veduto quanto sopra, lo scopo della presente invenzione è dunque quello di descriver un metodo per impedire la copia e la distribuzione non autorizzata dei file multimediali. Having seen the above, the object of the present invention is therefore to describe a method for preventing the unauthorized copying and distribution of multimedia files.

Sommario dell’invenzione Summary of the invention

Secondo la presente invenzione viene realizzato un metodo di protezione di file multimediali da copia e distribuzione non autorizzata, il detto metodo essendo caratterizzato dal fatto di comprendere: According to the present invention, a method of protecting multimedia files from unauthorized copying and distribution is provided, said method being characterized in that it comprises:

- un passo di creazione di un file multimediale in una memoria, in cui il detto file multimediale presenta una pluralità di settori; - a step of creating a multimedia file in a memory, in which the said multimedia file has a plurality of sectors;

- un passo di creazione su detto file multimediale di un settore d’autorizzazione, in cui in detto settore d’autorizzazione vengono memorizzati una pluralità di permessi di accesso e/o lettura del detto file multimediale; - a step of creating an authorization sector on said multimedia file, in which a plurality of access and / or reading permissions of said multimedia file are stored in said authorization sector;

- un passo di creazione in detta memoria di una tavola di allocazione di una pluralità di settori di dati e comandi di detto file multimediale; - a step for creating in said memory an allocation table of a plurality of data and command sectors of said multimedia file;

- un passo di crittazione del detto settore d’autorizzazione e della detta tavola di allocazione di una pluralità di settori di dati e comandi di detto file multimediale, in cui la crittazione avviene con una prima chiave di crittazione pubblica. - an encryption step of said authorization sector and of said allocation table of a plurality of data sectors and commands of said multimedia file, in which encryption takes place with a first public encryption key.

In un aspetto della presente invenzione, in detto metodo, in un passo di scaricamento del detto file multimediale il detto file multimediale viene scaricato un settore per volta in un file di destinazione contenuto in una memoria di destinazione, ed in cui è presente un passo di lettura ripetuto per ogni settore scaricato, in cui un programma per elaboratore accede al sistema operativo o ad una tabella di allocazione dei file della detta memoria di destinazione, e carica un indirizzo fisico del settore appena scaricato. In an aspect of the present invention, in said method, in a step of downloading the said multimedia file the said multimedia file is downloaded one sector at a time in a destination file contained in a destination memory, and in which there is a step of repeated reading for each downloaded sector, in which a computer program accesses the operating system or a file allocation table of said destination memory, and loads a physical address of the sector just downloaded.

In un aspetto della presente invenzione, in detto metodo, il detto programma per elaboratore, dopo aver acceduto al detto sistema operativo o alla detta tabella di allocazione di file, aggiunge una nuova riga ad una tabella di allocazione dei settori di dati e comandi e ripete i passi di trasferimento di ricavo dell’ indirizzo fisico e di scrittura di una nuova riga fino alla fine del detto file multimediale. In one aspect of the present invention, in said method, said computer program, after having accessed said operating system or said file allocation table, adds a new row to a data and command sector allocation table and repeats the steps of transferring the physical address and writing a new line up to the end of said multimedia file.

In un aspetto della presente invenzione, in detto metodo, il detto programma per elaboratore esegue una generazione di detto settore d’autorizzazione ed esegue un passo di memorizzazione entro il detto settore d’autorizzazione di permessi di utilizzo del file. In one aspect of the present invention, in said method, said computer program performs a generation of said authorization sector and performs a storage step within said authorization sector of file use permissions.

In un aspetto della presente invenzione, in detto metodo, il detto programma per elaboratore, al termine del detto passo di memorizzazione esegue un passo di codifica della tavola di allocazione dei settori di dati e comandi sul detto file di destinazione e chiude il detto file. In one aspect of the present invention, in said method, said computer program, at the end of said memorization step, executes an encoding step of the data and command sector allocation table on said destination file and closes said file.

In un aspetto della presente invenzione, in detto metodo, è presente un passo di riproduzione del detto file multimediale in cui si ha dapprima un passo di lettura della tavola di allocazione dei settori di dati e comandi e un successivo passo di decrittazione della detta tavola di allocazione dei settori di dati e comandi del detto file multimediale. In an aspect of the present invention, in said method, there is a reproduction step of the said multimedia file in which there is first a reading step of the data and command sector allocation table and a subsequent decryption step of the said data table. allocation of the data sectors and commands of the said multimedia file.

In un aspetto della presente invenzione, in detto metodo, il detto passo di decrittazione avviene impiegando la detta prima chiave di crittazione pubblica. In one aspect of the present invention, in said method, said decryption step takes place using said first public encryption key.

In un aspetto della presente invenzione, in detto metodo, sono presenti un passo di decrittazione del detto settore d’autorizzazione e un passo di caricamento di una pluralità di dati di autorizzazione contenuti nel detto settore d’autorizzazione dopo la decrittazione. In one aspect of the present invention, in said method, there are a decryption step of said authorization sector and a step for loading a plurality of authorization data contained in said authorization sector after decryption.

In un aspetto della presente invenzione, in detto metodo, una riproduzione elettronica del detto file multimediale avviene solamente allorquando i detti dati di autorizzazione comprendono un’autorizzazione alla detta riproduzione. In one aspect of the present invention, in said method, an electronic reproduction of said multimedia file occurs only when said authorization data includes an authorization for said reproduction.

In un aspetto della presente invenzione, in detto metodo, nella riproduzione del detto file multimediale si ha una lettura sequenziale della pluralità di settori del detto file multimediale impiegando la detta tavola di allocazione dei settori di dati e comandi memorizzata nel file multimediale stesso. In one aspect of the present invention, in said method, in the reproduction of the said multimedia file there is a sequential reading of the plurality of sectors of the said multimedia file using the said table for allocating the data and command sectors stored in the multimedia file itself.

In un aspetto della presente invenzione, in detto metodo, è presente un passo di caricamento di almeno parte della detta pluralità di settori del detto file multimediale in uno stadio buffer di un dispositivo elettronico di riproduzione del detto file. In one aspect of the present invention, in said method, there is a step for loading at least part of said plurality of sectors of said multimedia file into a buffer stage of an electronic device for reproducing said file.

In un aspetto della presente invenzione, in detto metodo, all’interno di almeno parte dei detti settori del detto file multimediale sono contenuti dati utili cifrati mediante codifica simmetrica con una chiave di scrambling. In one aspect of the present invention, in said method, at least part of said sectors of said multimedia file contains useful data encrypted by symmetrical coding with a scrambling key.

In un aspetto della presente invenzione, in detto metodo, la detta chiave di scrambling è scritta nel detto file multimediale mediante codifica asimmetrica. In one aspect of the present invention, in said method, said scrambling key is written in said multimedia file by asymmetric coding.

In un aspetto della presente invenzione, in detto metodo, la detta chiave di scrambling è una chiave ad uso singolo ottenuta da un sito internet predefinito. In one aspect of the present invention, in said method, said scrambling key is a single use key obtained from a predefined internet site.

In un aspetto della presente invenzione, in detto metodo, la detta chiave di scrambling è una chiave ad uso cablata all’ interno di un programma per elaboratore di decodifica del detto file multimediale. In one aspect of the present invention, in said method, said scrambling key is a key for use wired inside a computer program for decoding said multimedia file.

In un aspetto della presente invenzione, in detto metodo è presente un passo di copiatura del detto file multimediale a sua volta comprendente un passo di decodifica della detta tavola di allocazione di settori di dati e comandi e del detto settore d’autorizzazione del detto file multimediale ed un successivo passo di lettura da detta tavola di allocazione di settori di dati e comandi del detto file multimediale di un settore ed un passo di successiva scrittura del settore appena letto in un file di destinazione. In an aspect of the present invention, in said method there is a copying step of the said multimedia file in turn comprising a decoding step of the said table for allocating data and command sectors and of the said authorization sector of the said multimedia file. and a subsequent step of reading from said table for allocating data sectors and commands of said multimedia file of a sector and a subsequent writing step of the sector just read in a destination file.

In un aspetto della presente invenzione, in detto metodo a seguito del detto passo di successiva scrittura del settore appena letto in detto file di destinazione, il detto programma per elaboratore legge il numero fisico del settore del file di destinazione appena scritto e aggiunge una riga contenente tale numero fisico nella tavola di allocazione dei settori di dati e comandi del detto file di destinazione. In an aspect of the present invention, in said method following said step of subsequent writing of the sector just read in said destination file, said computer program reads the physical number of the sector of the destination file just written and adds a line containing this physical number in the data and command sectors allocation table of said destination file.

Secondo la presente invenzione viene realizzato un programma per elaboratore elettronico, caricato su di un supporto di memoria non transitorio e atto ad essere eseguito su di un elaboratore elettronico, il detto programma essendo atto causare l’esecuzione di almeno parte dei passi descritti in una qualsiasi dei passi descritti precedentemente. According to the present invention, an electronic computer program is provided, loaded on a non-transient memory support and adapted to be executed on an electronic computer, said program being able to cause the execution of at least part of the steps described in any one of the steps described above.

Secondo la presente invenzione viene inoltre realizzato un file multimediale caratterizzato dal fatto di comprendere una struttura avente una pluralità di settori, in cui in detta pluralità di settori, almeno parte è atta a contenere dati utili multimediali ed in cui in detta pluralità di settori sono presenti: According to the present invention, a multimedia file is also produced characterized in that it comprises a structure having a plurality of sectors, in which in said plurality of sectors, at least part is adapted to contain useful multimedia data and in which in said plurality of sectors there are present :

- almeno un settore d’autorizzazione contenente dati elettronici di autorizzazione alla lettura o copiatura dei detti dati utili multimediali e/o del detto file multimediale stesso; e - at least one authorization sector containing electronic data authorizing the reading or copying of said useful multimedia data and / or said multimedia file itself; And

- una tavola di allocazione di settori di dati e comandi del detto file multimediale in cui la detta tavola di allocazione di settori di dati e comandi del detto file multimediale è crittata assieme al detto settore d’autorizzazione. - an allocation table of data sectors and commands of said multimedia file in which said table of allocation of data sectors and commands of said multimedia file is encrypted together with said authorization sector.

Descrizione delle figure Description of the figures

L’invenzione verrà ora descritta facendo riferimento alle figure annesse nelle quali: The invention will now be described with reference to the attached figures in which:

la figura 1 illustra un sistema reai time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati per un elaboratore nel processo di I/O in una sua forma di realizzazione nota dal documento RM2013A000728; Figure 1 illustrates a real time system for storing and bi-directional transmission of commands and data for a computer in the I / O process in an embodiment thereof known from document RM2013A000728;

la figura 2 illustra un sistema reai time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati per un elaboratore nel processo di I/O in una sua prima forma di realizzazione nota; Figure 2 illustrates a real time system for storing and bi-directional transmission of commands and data for a computer in the I / O process in a first known embodiment thereof;

la figura 3 illustra un sistema reai time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati per un elaboratore nel processo di I/O in una sua seconda forma di realizzazione nota; Figure 3 illustrates a real time system for storing and bi-directional transmission of commands and data for a computer in the I / O process in a second known embodiment thereof;

la figura 4 illustra un sistema reai time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati per un elaboratore nel processo di I/O in una sua terza forma di realizzazione nota; Figure 4 illustrates a real time system for storing and bi-directional transmission of commands and data for a computer in the I / O process in a third known embodiment thereof;

la figura 5 illustra un sistema reai time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati per un elaboratore nel processo di I/O in una sua quarta forma di realizzazione nota; Figure 5 illustrates a real time system for storing and bi-directional transmission of commands and data for a computer in the I / O process in a fourth known embodiment thereof;

la figura 6 illustra una pluralità di file con settori scambiati e ordine di scambio; Figure 6 illustrates a plurality of rows with exchanged sectors and exchange order;

la figura 7 illustra un ordine di scambio dei settori dei detti file; Figure 7 illustrates an order of exchange of the sectors of said rows;

la figura 8 illustra un diagramma di codifica di un file; Figure 8 illustrates an encoding diagram of a file;

la figura 9 illustra un diagramma di decodifica di un file; e per quanto riguarda specificamente l’oggetto della presente invenzione; Figure 9 illustrates a decoding diagram of a file; and as regards specifically the object of the present invention;

la figura 10 illustra una memoria di massa ove è presente una struttura di file multimediale; Figure 10 illustrates a mass memory containing a multimedia file structure;

la figura 11 illustra un diagramma di flusso di un processo di scaricamento del detto file multimediale oggetto della presente invenzione; Figure 11 illustrates a flow diagram of a download process of the said multimedia file object of the present invention;

la figura 12 illustra un diagramma di flusso di un processo di riproduzione di un file multimediale oggetto della presente invenzione; e figure 12 illustrates a flow diagram of a reproduction process of a multimedia file object of the present invention; And

la figura 13 illustra un digramma di flusso di un processo di copia di un file multimediale oggetto della presente invenzione. Figure 13 illustrates a flow diagram of a copying process of a multimedia file object of the present invention.

Descrizione dettagliata delFinvenzione Detailed description of the invention

Un file di scambio dati e comandi secondo il brevetto RM2013A000728 prevede una allocazione strettamente consecutiva dei settori del disco che contengono il file. A data and command exchange file according to the RM2013A000728 patent provides for a strictly consecutive allocation of the disk sectors that contain the file.

Questa caratteristica, realizzata in una periferica governata da un microcontrollore, presenta il vantaggio di una semplificazione nell’accesso al file da parte del microcontrollore. This feature, implemented in a peripheral governed by a microcontroller, has the advantage of simplifying the access to the file by the microcontroller.

Se invece si desidera usare un file formato secondo i brevetti citati per contenere dati multimediali, la maggior potenza di elaborazione del processore multimediale che elabora i dati rende non più necessaria l’allocazione consecutiva e il file, che può risiedere in un computer, in un tablet o smartphone o in un riproduttore multimediale, può essere allocato secondo qualsiasi sequenza e, in particolare nei sistemi FAT che sono i più diffusi nei supporti portatili quali “chiavette USB’’ e schede di memoria SD e similari, potrà avere qualsiasi grado di frammentazione. If, on the other hand, you want to use a file format according to the cited patents to contain multimedia data, the greater processing power of the multimedia processor that processes the data makes consecutive allocation no longer necessary and the file, which can reside on a computer, in a tablet or smartphone or in a multimedia player, it can be allocated according to any sequence and, in particular in FAT systems which are the most common in portable media such as "USB sticks '' and SD memory cards and the like, it can have any degree of fragmentation .

Ai sensi della presente invenzione si ricorda che per “frammentazione” si intende la allocazione di un file in settori non consecutivi ma distanti tra loro e “sparpagliati” nel disco e comunque non uno consecutivo all’altro. La frammentazione normalmente rappresenta un inconveniente, perché rallenta gli accessi in lettura e scrittura al file, ma nella presente invenzione viene sfruttata per proteggere un file dalla copia non autorizzata. Pursuant to the present invention, please note that by "fragmentation" we mean the allocation of a file in sectors that are not consecutive but distant from each other and "scattered" in the disk and in any case not one consecutive to the other. Fragmentation normally represents a drawback, because it slows down the read and write accesses to the file, but in the present invention it is exploited to protect a file from unauthorized copying.

La figura 10 illustra un file multimediale introdotto in una memoria di massa 1000. Un file multimediale 1002 realizzato secondo la presente invenzione contiene, in una posizione predeterminata (ad esempio alla fine), una mappa dei settori fisici in cui il file stesso è allocato, cifrata con algoritmo asimmetrico usando come chiave una chiave pubblica del destinatario autorizzato all’ utilizzo dei dati multimediali. Figure 10 illustrates a multimedia file introduced into a mass memory 1000. A multimedia file 1002 made according to the present invention contains, in a predetermined position (for example at the end), a map of the physical sectors in which the file itself is allocated, encrypted with an asymmetric algorithm using as a key a public key of the recipient authorized to use the multimedia data.

Il file multimediale 1002 contiene poi i dati multimediali, organizzati in forma di coda di dati e protetti contro la copia non autorizzata usando il metodo descritto nel documento IT 102015000056882. The multimedia file 1002 then contains the multimedia data, organized in the form of a data queue and protected against unauthorized copying using the method described in the IT document 102015000056882.

Il file multimediale 1002 contiene anche, sempre cifrato con la stessa chiave, un settore P, indicato con il numero di riferimento 1004, in cui sono contenuti i permessi relativi al file: l’autorizzazione alla copia ed eventualmente il numero di copie permesse; un eventuale numero massimo di riproduzioni permesse; una eventuale data di scadenza delle autorizzazioni. The multimedia file 1002 also contains, always encrypted with the same key, a sector P, indicated with the reference number 1004, which contains the permissions relating to the file: the authorization to copy and possibly the number of copies allowed; any maximum number of reproductions permitted; a possible expiry date of the authorizations.

Il file multimediale 1002 così strutturato non può essere usato tale e quale, ad esempio usando i normali programmi di riproduzione quale ad esempio Windows Media Player con un codec standard, ma deve essere riprodotto con un programma o un codec specificatamente concepito, in grado di decodificarlo correttamente. Anche la copia, se permessa, non può essere realizzata per mezzo delle normali funzioni del sistema operativo ma per mezzo di un programma apposito. Infatti la normale copia, pur sempre possibile, effettuata per mezzo del sistema operativo, produce un file che non può più essere riprodotto nemmeno usando il programma o il codec apposito sopra indicato. The multimedia file 1002 structured in this way cannot be used as it is, for example using normal playback programs such as Windows Media Player with a standard codec, but must be played with a specifically designed program or codec capable of decoding it correctly. Even copying, if permitted, cannot be made by means of the normal functions of the operating system but by means of a specific program. In fact, the normal copy, still possible, carried out by means of the operating system, produces a file that can no longer be reproduced even using the program or the appropriate codec indicated above.

Mentre non è possibile impedire la copia fatta per mezzo delle funzioni del sistema operativo (ma che produce copie inutilizzabili), la tecnica qui descritta permette di impedire del tutto la copia in forma utilizzabile o di limitare il numero delle copie utilizzabili, ad esempio alle tre normalmente previste per l’uso personale. While it is not possible to prevent copying made by means of the operating system functions (but which produces unusable copies), the technique described here allows to completely prevent copying in usable form or to limit the number of usable copies, for example to three normally intended for personal use.

Per potere usufruire di un file multimediale 1002 come quello oggetto della presente invenzione (ad esempio, musica o film), l’utente che lo acquisisce viene dotato di una coppia di chiavi di cifratura asimmetrica, la cui chiave privata gli viene consegnata in modo sicuro e che resta protetta all’ interno del dispositivo riproduttore che intende usare (computer, tablet, smartphone o simile). In order to be able to use a multimedia file 1002 such as the one object of the present invention (for example, music or film), the user who acquires it is provided with a pair of asymmetric encryption keys, whose private key is safely delivered to him and which remains protected inside the reproducing device it intends to use (computer, tablet, smartphone or similar).

Per meglio descrivere la tecnica, occorre riferirsi alla figura 10, in cui si vede una rappresentazione schematica della memoria di massa 1000, organizzata a settori, in cui è memorizzato il file multimediale 1002. To better describe the technique, it is necessary to refer to figure 10, in which a schematic representation of the mass memory 1000, organized in sectors, in which the multimedia file 1002 is stored, is seen.

Il file è formato di dati e comandi, indicati con il numero di riferimento 1005, organizzati secondo la tecnica descritta nel brevetto RM2013A000728 e contenenti i dati multimediali veri e propri; ma contiene anche ulteriori dati introdotti dal trovato qui descritto: un certo numero di settori, indicati con A, B,., che contengono una tavola di allocazione dei settori di dati e comandi indicata con il numero di riferimento 1003. Questa tavola di allocazione dei settori di dati e comandi indicata con 1003 è formata dalla serie (indicata con NI, N2... nella figura 10) degli indirizzi fisici dei settori che contengono i dati e i comandi del file. The file is made up of data and commands, indicated with the reference number 1005, organized according to the technique described in the patent RM2013A000728 and containing the actual multimedia data; but it also contains further data introduced by the invention described here: a certain number of sectors, indicated with A, B,., which contain an allocation table of the data and command sectors indicated with the reference number 1003. data and command sectors indicated with 1003 is formed by the series (indicated with NI, N2 ... in Figure 10) of the physical addresses of the sectors that contain the data and commands of the file.

Gli indirizzi fisici sono relativi alla numerazione reale dei settori in cui è suddiviso il disco, che, nel caso ad esempio del sistema FAT (che, essendo ben noto, non necessita di ulteriori spiegazioni), sono quelli riportati nella “file allocation table’’ del file stesso e possono essere ricavati da funzioni di basso livello del sistema operativo. Pertanto, la tavola di allocazione dei settori è un sottoinsieme della file allocation table del file multimediale 1002 stesso. The physical addresses are related to the real numbering of the sectors into which the disk is divided, which, for example in the case of the FAT system (which, being well known, does not require further explanations), are those reported in the "file allocation table" file itself and can be derived from low-level functions of the operating system. Therefore, the sector allocation table is a subset of the file allocation table of the multimedia file 1002 itself.

La tavola di allocazione dei settori di dati e comandi indicata con 1003, anche se per semplicità appare in chiaro nella figura 10, è in realtà cifrata assieme al settore P (indicato con il numero di riferimento 1004) usando la chiave pubblica di crittografia asimmetrica associata all’utente autorizzato alla riproduzione. The table of allocation of the data and command sectors indicated with 1003, even if for simplicity it appears in clear text in Figure 10, is actually encrypted together with sector P (indicated with the reference number 1004) using the associated asymmetric cryptographic public key to the user authorized to reproduce.

Nel seguito della presente descrizione sono spiegati i dettagli operativi delle tre fasi che tipicamente compongono la vita di un file multimediale: lo scaricamento da Internet, la riproduzione e la copia. The operational details of the three phases that typically make up the life of a multimedia file are explained below: downloading from the Internet, reproduction and copying.

Nella seguente porzione di descrizione viene descritto lo scaricamento di un file multimediale; tale descrizione fa riferimento al diagramma di flusso rappresentato a supporto della descrizione in figura 11. The following portion of the description describes the download of a multimedia file; this description refers to the flow diagram shown to support the description in Figure 11.

Lo scaricamento da Internet si può fare per mezzo di un programma per elaboratore elettronico, di una applicazione software, oppure di un oggetto attivo incorporato in una pagina Web e richiede che tale programma o applicazione possano accedere alle funzioni di basso livello del sistema operativo o comunque che possano leggere la “file allocation table” dell’unità di memoria di massa in cui il file multimediale viene scritto durante lo scaricamento. The download from the Internet can be done by means of a computer program, a software application, or an active object embedded in a Web page and requires that such program or application be able to access the low-level functions of the operating system or in any case that can read the “file allocation table” of the mass memory unit in which the multimedia file is written during the download.

Se il cedente del file ha deciso di non autorizzarne la copia, lo scaricamento può essere fatto solo direttamente nel dispositivo che sarà usato per la riproduzione, che in tal caso potrà essere anche a sola lettura (CD-ROM). Nei casi in cui è autorizzato un massimo numero di copie, è invece necessario che il supporto sia modificabile (hard disk, memoria Flash o simile). If the transferor of the file has decided not to authorize the copy, the download can only be done directly to the device that will be used for reproduction, which in this case can also be read-only (CD-ROM). In cases where a maximum number of copies is authorized, the medium must be modifiable (hard disk, Flash memory or similar).

Come si vede nella Figura 11, che rappresenta un diagramma di flusso semplificato di questa operazione, il file multimediale (già nel formato previsto dal brevetto RM2013A000728 e protetto come previsto nel brevetto 102015000056882) viene trasferito un settore per volta nel file di destinazione (passo 2100). Non appena il settore è stato scritto, il programma di scaricamento accede al sistema operativo o legge la FAT della memoria di massa per ricavare l’indirizzo fisico (numero di settore) in cui il settore è stato scritto (passo 2200); il programma o la applicazione aggiunge quindi una riga alla propria tavola di allocazione dei settori di dati e comandi indicata con il numero di riferimento 1003 (passo 2300) e ripete il ciclo (passo 2400) fino alla fine del file. As can be seen in Figure 11, which represents a simplified flow diagram of this operation, the multimedia file (already in the format envisaged by patent RM2013A000728 and protected as envisaged in patent 102015000056882) is transferred one sector at a time in the destination file (step 2100 ). As soon as the sector has been written, the download program accesses the operating system or reads the FAT of the mass memory to obtain the physical address (sector number) in which the sector was written (step 2200); the program or application then adds a row to its data sector and command allocation table indicated with the reference number 1003 (step 2300) and repeats the cycle (step 2400) until the end of the file.

Il programma quindi genera il settore P che contiene, in modo opportunamente codificato, i permessi di utilizzo del file (passo 2500), quindi codifica con la chiave pubblica dell’utente la tavola di allocazione dei settori di dati e comandi indicata con il numero di riferimento 1003 e il settore P (passo 2600). Infine scrive la tavola di allocazione dei settori di dati e comandi indicata con 1003 in posizione predeterminata nel file di destinazione (ad esempio alla fine) e chiude il file (passi 2700 e 2800). The program then generates the sector P which contains, in an appropriately coded way, the permissions to use the file (step 2500), and then encodes with the public key of the user the table of allocation of the data and command sectors indicated with the number of reference 1003 and sector P (step 2600). Finally, it writes the table of allocation of the data and command sectors indicated with 1003 in a predetermined position in the destination file (for example at the end) and closes the file (steps 2700 and 2800).

Allorquando il file multimediale 1002 viene riprodotto, il metodo oggetto della presente invenzione opera come segue. In dettaglio, la descrizione dell’operazione del metodo oggetto della presente invenzione è coadiuvata dal supporto visuale fornito dal diagramma di flusso di figura 12. When the multimedia file 1002 is reproduced, the method object of the present invention operates as follows. In detail, the description of the operation of the method object of the present invention is assisted by the visual support provided by the flow chart of figure 12.

La riproduzione (ad esempio di un file audio) può essere effettuata solo usando un programma apposito di riproduzione oppure installando, in un normale programma di riproduzione multimediale (quale ed esempio Windows Media Player), un codec plug-in realizzato per decodificare i file generati secondo la presente tecnologia. Con riferimento alla figura 12, la prima operazione (passo 3100) consiste nella lettura dal file della tavola di allocazione dei settori, che come si è detto è in una posizione predeterminata, e nella sua decodifica per mezzo della chiave privata dell’utente che effettua la riproduzione. Chiaramente un utente non autorizzato non dispone della chiave e non può effettuare la riproduzione. The reproduction (for example of an audio file) can be carried out only using a special reproduction program or by installing, in a normal multimedia playback program (such as Windows Media Player), a plug-in codec designed to decode the generated files according to the present technology. With reference to Figure 12, the first operation (step 3100) consists in reading the sector allocation table from the file, which as mentioned is in a predetermined position, and decoding it by means of the private key of the user who performs reproduction. Clearly an unauthorized user does not have the key and cannot perform the reproduction.

Il settore P che contiene i permessi viene esaminato (fase 3200) per verificare se la riproduzione è permessa; la tecnologia permette infatti di stabilire un massimo numero di riproduzioni oppure un limite temporale di utilizzo del file. The sector P which contains the permissions is examined (step 3200) to verify if the reproduction is allowed; the technology makes it possible to establish a maximum number of reproductions or a time limit for the use of the file.

A questo punto inizia il loop di lettura e riproduzione, formato dai passi 3300,3400,3500,3600. Ogni settore viene letto andandolo ad indirizzare per mezzo della tavola di allocazione settori letta dal file stesso (passo 3300), e non usando le funzioni del sistema operativo che permettono la lettura sequenziale del file. In questo modo, se il file è stato spostato o copiato, la riproduzione non può avvenire perché i settori in cui è scritto fisicamente il file non corrispondono più con quelli elencati nella tavola di allocazione letta dal file stesso. At this point the reading and playback loop begins, formed by 3300,3400,3500,3600 steps. Each sector is read by addressing it by means of the sector allocation table read from the file itself (step 3300), and not using the operating system functions that allow the sequential reading of the file. In this way, if the file has been moved or copied, playback cannot take place because the sectors in which the file is physically written no longer correspond to those listed in the allocation table read from the file itself.

I settori sono letti di seguito (passo 3400), eventualmente accumulati in un buffer di lettura e quindi riprodotti (passo 3500). Quando il file finisce, viene chiuso (passi 3600 e 3700). The sectors are read in succession (step 3400), eventually accumulated in a reading buffer and then reproduced (step 3500). When the file finishes, it is closed (steps 3600 and 3700).

Notare che, visto che Γ allocazione reale dei settori del file è sempre ricavabile dal sistema operativo, sembra possibile che un programma di riproduzione scritto appositamente per aggirare la protezione possa decodificare il file. Questo non può avvenire perché, come si è detto, i dati e i comandi non sono comunque decodificabili, essendo per essi usata la tecnica descritta nel brevetto 102015000056882, che effettua uno “scrambling” ed una codifica simmetrica dei dati utili del file. Per realizzare il “descrambling” occorre disporre della chiave di scrambling che viene tenuta segreta: può essere fissa e cablata all’ interno del programma di decodifica autorizzato, scritta nel file multimediale stesso in forma crittografata con algoritmo asimmetrico oppure ottenuta ogni volta da un servizio via rete Internet. Note that, since the real sector allocation of the file is always obtainable from the operating system, it seems possible that a reproduction program written specifically to circumvent the protection could decrypt the file. This cannot happen because, as mentioned, the data and commands cannot be decoded anyway, since the technique described in the patent 102015000056882 is used for them, which performs a "scrambling" and a symmetrical coding of the useful data of the file. To carry out the "descrambling" it is necessary to have the scrambling key which is kept secret: it can be fixed and wired inside the authorized decoding program, written in the multimedia file itself in an encrypted form with an asymmetric algorithm or obtained each time by a service via Internet network.

Se il file ha un massimo numero di riproduzioni autorizzate, deve necessariamente essere su supporto riscrivibile. In tal caso, il settore P viene aggiornato decrementando il numero di riproduzioni ancora permesse, viene nuovamente codificato con la chiave pubblica dell’utente e il settore del file che lo contiene viene riscritto al termine della riproduzione (o anche all’inizio della riproduzione, o dopo alcuni secondi, secondo la scelta del produttore). If the file has a maximum number of authorized reproductions, it must necessarily be on rewritable media. In this case, the P sector is updated by decreasing the number of reproductions still allowed, it is re-encoded with the user's public key and the sector of the file that contains it is rewritten at the end of the reproduction (or even at the beginning of the reproduction, or after a few seconds, depending on the manufacturer's choice).

La copia del file multimediale 1002, come si può vedere in figura 13, inizia con la decodifica della tavola di allocazione settori e del settore P del file di origine (passo 4100), Se, come risulta dal settore P, la copia è permessa (passo 4200), si passa alla lettura del numero del settore da copiare dalla tavola di allocazione settori del file di origine (passo 4300); quindi avviene la lettura del settore dal file di origine (passo 4400), la scrittura del settore nel file di destinazione (passo 4500), la lettura del numero fisico del settore relativo al file di destinazione (passo 4600) a l’aggiunta di una riga contenente tale numero alla tavola di allocazione settori del file di destinazione (passo 4700). The copy of the multimedia file 1002, as can be seen in figure 13, begins with the decoding of the sector allocation table and of the sector P of the source file (step 4100), If, as shown by sector P, copying is allowed ( step 4200), the sector number to be copied is read from the sector allocation table of the source file (step 4300); then the sector is read from the source file (step 4400), the sector is written to the destination file (step 4500), the physical number of the sector relative to the destination file is read (step 4600) and the addition of a line containing this number to the sector allocation table of the destination file (step 4700).

La copia dei settori prosegue fino alla fine del file (passo 4800). Alla fine, viene creato un nuovo settore P per il file di destinazione, che contiene i diritti che il cedente del file ha stabilito: ad esempio, è possibile fare in modo che la copia sia riproducibile ma che non possa essere ulteriormente copiata (passo 4900). La nuova tavola di allocazione dei settori è quindi cifrata con la chiave pubblica del destinatario, che può essere lo stesso del file di origine oppure un altro (passo 5000), e quindi scritta nel file di destinazione nella posizione prestabilita (passo 5100). Il file è quindi chiuso (passo 5200). The copy of the sectors continues until the end of the file (step 4800). At the end, a new sector P is created for the destination file, which contains the rights that the originator of the file has established: for example, it is possible to make the copy be reproducible but cannot be copied further (step 4900 ). The new sector allocation table is then encrypted with the recipient's public key, which can be the same as the source file or another (step 5000), and then written to the destination file in the predetermined position (step 5100). The file is then closed (step 5200).

Ulteriori metodi particolari vengono descritti nella presente parte della descrizione. Come si comprende dalla descrizione precedente, la protezione contro la copia è data dalla presenza della tavola di allocazione dei settori e dal fatto che, se quella presente nel file non coincide con quella in cui il file è realmente allocato, la riproduzione o la copia non sono possibili. Ne consegue che, ai fini della protezione, è preferibile che il file abbia un certo grado di frammentazione, perché una allocazione contigua dei settori è più facile da riprodurre. Esiste inoltre un caso particolare in cui la protezione potrebbe essere inefficace: quello in cui il file viene scaricato in un disco completamente vuoto, e viene quindi allocato a partire dal primo settore del disco e su settori contigui. Se il file viene copiato in un altro disco completamente vuoto, la protezione non è in grado di operare. Questo possibile problema, come pure quello della debolezza della protezione in caso di mancanza di frammentazione, può essere risolto introducendo appositamente un certo grado di frammentazione al momento della scrittura del file. Questo può essere ottenuto sia accedendo a funzioni a basso livello del sistema operativo, sia (particolarmente nei sistemi FAT) chiudendo e riaprendo il file più volte durante la scrittura ed andando, tra una scrittura e l’altra, a scrivere un file fittizio, di dimensioni variabili, che, andando ad occupare i primi settori liberi del disco, crea una frammentazione nel file multimediale. Il file fittizio può essere aperto più volte, aggiungendo lunghezze variabili di dati, e cancellato alla fine della scrittura del file multimediale. Further particular methods are described in this part of the description. As can be understood from the previous description, the copy protection is given by the presence of the sector allocation table and by the fact that, if the one present in the file does not coincide with the one in which the file is actually allocated, the reproduction or copy will not are possible. It follows that, for security purposes, it is preferable that the file has some degree of fragmentation, because a contiguous sector allocation is easier to reproduce. There is also a particular case in which the protection could be ineffective: the one in which the file is downloaded to a completely empty disk, and is therefore allocated starting from the first sector of the disk and on contiguous sectors. If the file is copied to another completely blank disk, the protection is unable to work. This possible problem, as well as that of the weakness of the protection in case of lack of fragmentation, can be solved by introducing a certain degree of fragmentation on purpose when the file is written. This can be achieved both by accessing low-level functions of the operating system, and (particularly in FAT systems) by closing and reopening the file several times during writing and by going, between one writing and another, to write a dummy file, of variable dimensions, which, going to occupy the first free sectors of the disk, creates a fragmentation in the multimedia file. The dummy file can be opened multiple times, adding varying lengths of data, and deleted at the end of writing the media file.

La dimensione dei “gap” di frammentazione è preferibilmente pseudocasuale e, perché non sia uguale per tutti i file multimediali, può usare come seme del numero casuale la chiave pubblica dell’utente o una sua parte; il grado di frammentazione così generato non deve essere necessariamente molto spinto, ma sufficiente a garantire il livello di protezione desiderato. The size of the fragmentation "gaps" is preferably pseudorandom and, because it is not the same for all multimedia files, it can use the user's public key or a part of it as the seed of the random number; the degree of fragmentation thus generated does not necessarily have to be very high, but sufficient to guarantee the desired level of protection.

La descrizione finora riportata assume che la zona dati del file multimediale sia protetta con il metodo descritto nel brevetto 102015000056882; naturalmente, nei casi meno importanti, questa protezione non è indispensabile perché si possa utilizzare il metodo di protezione dalla copia. The description reported so far assumes that the data area of the multimedia file is protected with the method described in the patent 102015000056882; of course, in less important cases, this protection is not required for the copy protection method to be used.

Anche il formato dei dati, anziché quello con coda di dati previsto dal brevetto RM2013A000728, può essere quello tradizionale finora usato per il tipo di file multimediale desiderato. The data format, instead of the one with a data queue envisaged by the patent RM2013A000728, can also be the traditional one used up to now for the type of multimedia file desired.

Per evitare le conseguenze dovute a modifiche non autorizzate alla tabella di allocazione dei settori (che può avvenire dopo la decifrazione), vi si può aggiungere una hash di controllo (di tutto il file o di parte di esso) codificata con la chiave privata del cedente del file multimediale (firma digitale). To avoid the consequences due to unauthorized changes to the sector allocation table (which can occur after decryption), a control hash (of the whole file or part of it) can be added to it, encoded with the transferor's private key. of the multimedia file (digital signature).

Se, nonostante la protezione, si dovessero trovare in circolazione delle copie del file multimediale fatte circolare assieme alla loro chiave di lettura (chiave privata dell’utente), è possibile dalla chiave risalire senza possibilità di smentita all’autore della copia non autorizzata. If, despite the protection, copies of the multimedia file circulated together with their reading key (user private key) are found in circulation, it is possible from the key to trace the author of the unauthorized copy without the possibility of denial.

Il sistema ha un possibile punto debole: se si usa un programma di deframmentazione del disco, e questo deframmenta il file multimediale o comunque ne alloca una parte in una zona diversa del disco, il file diventa inutilizzabile. In alcuni sistemi operativi è possibile contrassegnare il file come “da non deframm entare ” , in modo da evitare questa possibilità. In altri sistemi, quali ad esempio Linux e derivati, la deframmentazione non è normalmente necessaria e i programmi di deframmentazione spesso non sono nemmeno installati. Un metodo per evitare la deframmentazione di un file è quello di farlo apparire come “aperto” o “in uso” nel momento in cui si avvia il programma di deframmentazione. The system has a possible weak point: if you use a disk defragmentation program, and this defragments the multimedia file or in any case allocates a part of it to a different area of the disk, the file becomes unusable. In some operating systems it is possible to mark the file as “not to be deframmed” to avoid this possibility. In other systems, such as Linux and derivatives, defragmentation is not usually necessary and the defragmentation programs are often not even installed. One way to avoid defragmenting a file is to make it appear as “open” or “in use” when you start the defragmentation program.

Quando il metodo descritto nel presente brevetto avrà una sufficiente diffusione, i produttori di programmi di deframmentazione certamente faranno in modo che le loro utility non deframmentino i file multimediali del tipo qui descritto. When the method described in the present patent has a sufficient diffusion, the producers of defragmentation programs will certainly ensure that their utilities do not defragment multimedia files of the type described here.

È infine chiaro che all’oggetto della presente invenzione possono essere applicate aggiunte, modifiche o varianti ovvie per un tecnico del ramo senza per questo fuoriuscire dall’ambito di tutela fornito dalle rivendicazioni annesse. Finally, it is clear that additions, modifications or obvious variants for a person skilled in the art can be applied to the object of the present invention without thereby departing from the scope of protection provided by the attached claims.

Claims (19)

Rivendicazioni 1. Metodo di protezione di file multimediali da copia e distribuzione non autorizzata, il detto metodo essendo caratterizzato dal fatto di comprendere: - un passo di creazione di un file multimediale (1002) in una memoria (1000), in cui il detto file multimediale (1002) presenta una pluralità di settori; - un passo di creazione su detto file multimediale (1002) di un settore (P) d’autorizzazione, in cui in detto settore (P) d’autorizzazione vengono memorizzati una pluralità di permessi di accesso e/o lettura del detto file multimediale (P); - un passo di creazione in detta memoria (1000) di una tavola di allocazione di una pluralità di settori di dati e comandi (1003) di detto file multimediale (1002); - un passo di crittazione del detto settore (P) d’autorizzazione e della detta tavola di allocazione di una pluralità di settori di dati e comandi (1003) di detto file multimediale, in cui la crittazione avviene con una prima chiave di crittazione pubblica. Claims 1. Method of protecting multimedia files from unauthorized copying and distribution, the said method being characterized by comprising: - a step of creating a multimedia file (1002) in a memory (1000), in which the said multimedia file (1002) has a plurality of sectors; - a step for creating an authorization sector (P) on said multimedia file (1002), in which a plurality of access and / or reading permissions of said multimedia file are stored in said authorization sector (P) ( P); - a step for creating in said memory (1000) an allocation table of a plurality of data and command sectors (1003) of said multimedia file (1002); - an encryption step of said authorization sector (P) and of said allocation table of a plurality of data and command sectors (1003) of said multimedia file, in which encryption takes place with a first public encryption key. 2. Metodo secondo la rivendicazione 1, caratterizzato dal fatto che in un passo di scaricamento del detto file multimediale (1002), il detto file multimediale (1002) viene scaricato un settore per volta (2100) in un file di destinazione contenuto in una memoria di destinazione, ed in cui è presente un passo di lettura ripetuto per ogni settore scaricato, in cui un programma per elaboratore accede al sistema operativo o ad una tabella di allocazione dei file della detta memoria di destinazione, e carica (2200) un indirizzo fisico del settore appena scaricato. 2. Method according to claim 1, characterized in that in a download step of said multimedia file (1002), said multimedia file (1002) is downloaded one sector at a time (2100) in a destination file contained in a memory destination, and in which there is a reading step repeated for each downloaded sector, in which a computer program accesses the operating system or a file allocation table of said destination memory, and loads (2200) a physical address of the sector you just downloaded. 3. Metodo secondo la rivendicazione 2, in cui in il detto programma per elaboratore, dopo aver acceduto al detto sistema operativo o alla detta tabella di allocazione di file, aggiunge una nuova riga (2300) ad una tabella di allocazione dei settori di dati e comandi (1003), e ripete i passi di trasferimento (2100), di ricavo dell’indirizzo fisico (2200) e di scrittura di una nuova riga (2300) fino alla fine del detto file multimediale (1002). The method according to claim 2, wherein in said computer program, after accessing said operating system or said file allocation table, adds a new row (2300) to a data sector allocation table and commands (1003), and repeats the transfer steps (2100), obtaining the physical address (2200) and writing a new line (2300) until the end of said multimedia file (1002). 4. Metodo secondo una qualsiasi delle precedenti rivendicazioni 2-3, caratterizzato dal fatto che il detto programma per elaboratore esegue una generazione di detto settore (P) d’autorizzazione ed esegue un passo di memorizzazione (2500) entro il detto settore (P) d’autorizzazione di permessi di utilizzo del file. Method according to any one of the preceding claims 2-3, characterized in that said computer program performs a generation of said authorization sector (P) and executes a storage step (2500) within said sector (P) authorization of file usage permissions. 5. Metodo secondo la rivendicazione 4, caratterizzato dal fatto che il detto programma per elaboratore, al termine del detto passo di memorizzazione (2500) esegue un passo di codifica (2600) della tavola di allocazione dei settori di dati e comandi (1003) sul detto file di destinazione e chiude il detto file (2800). 5. Method according to claim 4, characterized in that the said computer program, at the end of the said memorization step (2500), executes a coding step (2600) of the table for allocating the data sectors and commands (1003) on the said destination file and closes said file (2800). 6. Metodo secondo una qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto di comprendere un passo di riproduzione del detto file multimediale (1002) in cui si ha dapprima un passo di lettura della tavola di allocazione dei settori di dati e comandi (1003) e un successivo passo di decrittazione (3100) della detta tavola di allocazione dei settori di dati e comandi (1003) del detto file multimediale (1002). Method according to any one of the preceding claims, characterized in that it comprises a reproduction step of said multimedia file (1002) in which there is first a reading step of the data and command sector allocation table (1003) and a subsequent decryption step (3100) of the said table for allocating the data and command sectors (1003) of the said multimedia file (1002). 7. Metodo secondo la rivendicazione 6, caratterizzato dal fatto che il detto passo di decrittazione avviene impiegando la detta prima chiave di crittazione pubblica. 7. Method according to claim 6, characterized in that said decryption step takes place using said first public encryption key. 8. Metodo secondo la rivendicazione 5 o la rivendicazione 6, caratterizzato dal fatto di comprendere inoltre un passo di decrittazione del detto settore (P) d’autorizzazione e un passo di caricamento di una pluralità di dati di autorizzazione contenuti nel detto settore (P) d’autorizzazione dopo la decrittazione. 8. Method according to claim 5 or claim 6, characterized in that it further comprises a decryption step of said authorization sector (P) and a step for loading a plurality of authorization data contained in said sector (P) authorization after decryption. 9. Metodo secondo la rivendicazione 8, caratterizzato dal fatto che una riproduzione elettronica del detto file multimediale (1002) avviene solamente allorquando i detti dati di autorizzazione comprendono un autorizzazione alla detta riproduzione e l’allocazione fisica dei settori del file nell’unità di memoria coincide con quella scritta nella tavola di allocazione presente nel file stesso. Method according to claim 8, characterized in that an electronic reproduction of the said multimedia file (1002) takes place only when the said authorization data includes an authorization to the said reproduction and the physical allocation of the sectors of the file in the memory unit coincides with the one written in the allocation table in the file itself. 10. Metodo secondo la rivendicazione 8 o la rivendicazione 9, caratterizzato dal fatto di comprendere nella riproduzione del detto file multimediale (1002) una lettura sequenziale (3400) della pluralità di settori del detto file multimediale (1002) impiegando la detta tavola di allocazione dei settori di dati e comandi (1003) memorizzata nel file multimediale (1002) stesso. Method according to claim 8 or claim 9, characterized in that it comprises in the reproduction of the said multimedia file (1002) a sequential reading (3400) of the plurality of sectors of the said multimedia file (1002) using the said allocation table of the data and command sectors (1003) stored in the multimedia file (1002) itself. 11. Metodo secondo la rivendicazione 10, caratterizzato dal fatto di comprendere un passo di caricamento di almeno parte della detta pluralità di settori del detto file multimediale (1002) in uno stadio buffer di un dispositivo elettronico di riproduzione del detto file. Method according to claim 10, characterized in that it comprises a step for loading at least part of said plurality of sectors of said multimedia file (1002) into a buffer stage of an electronic device for reproducing said file. 12. Metodo secondo la rivendicazione 11 o la rivendicazione 12, caratterizzato dal fatto che all’ interno di almeno parte dei detti settori del detto file multimediale (1002) sono contenuti dati utili cifrati mediante codifica simmetrica con una chiave di scrambling. 12. Method according to claim 11 or claim 12, characterized in that at least part of said sectors of said multimedia file (1002) contain useful data encrypted by symmetrical coding with a scrambling key. 13. Metodo secondo la rivendicazione 12, caratterizzato dal fatto che la detta chiave di scrambling è scritta nel detto file multimediale (1002) mediante codifica asimmetrica. 13. Method according to claim 12, characterized in that said scrambling key is written in said multimedia file (1002) by asymmetric coding. 14. Metodo secondo la rivendicazione 12, caratterizzato dal fatto che la detta chiave di scrambling è una chiave ad uso singolo ottenuta da un sito internet predefinito. 14. Method according to claim 12, characterized in that said scrambling key is a single-use key obtained from a predefined internet site. 15. Metodo secondo la rivendicazione 12, caratterizzato dal fatto che la detta chiave di scrambling è una chiave ad uso cablata all’interno di un programma per elaboratore di decodifica del detto file multimediale (1002). 15. Method according to claim 12, characterized by the fact that said scrambling key is a key for use wired inside a computer program for decoding said multimedia file (1002). 16. Metodo secondo una qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto di comprendere un passo di copiatura del detto file multimediale (1002) a sua volta comprendente un passo di decodifica (4100) della detta tavola di allocazione di settori di dati e comandi (1003) e del detto settore (P) d’autorizzazione del detto file multimediale (1003) ed un successivo passo di lettura (4400) da detta tavola di allocazione di settori di dati e comandi (1003) del detto file multimediale (1002) di un settore ed un passo di successiva scrittura (4500) del settore appena letto in un file di destinazione. Method according to any one of the preceding claims, characterized in that it comprises a copy step of the said multimedia file (1002) in turn comprising a decoding step (4100) of the said data and command sector allocation table (1003 ) and of said authorization sector (P) of said multimedia file (1003) and a subsequent reading step (4400) from said table for allocating data sectors and commands (1003) of said multimedia file (1002) of a sector and a subsequent write step (4500) of the sector just read in a destination file. 17. Metodo secondo la rivendicazione 16, caratterizzato dal fatto che a seguito del detto passo di successiva scrittura (4500) del settore appena letto in detto file di destinazione, il detto programma per elaboratore legge il numero fisico del settore del file di destinazione appena scritto e aggiunge una riga contenente tale numero fisico nella tavola di allocazione dei settori di dati e comandi (1003) del detto file di destinazione. Method according to claim 16, characterized in that following the step of subsequent writing (4500) of the sector just read in said destination file, said computer program reads the physical number of the sector of the destination file just written and adds a line containing such physical number in the data and command sectors allocation table (1003) of said destination file. 18. Programma per elaboratore elettronico, caricato su di un supporto di memoria non transitorio e atto ad essere eseguito su di un elaboratore elettronico, il detto programma essendo atto causare l’esecuzione di almeno parte dei passi descritti in una qualsiasi delle precedenti rivendicazioni 1-17. 18. Computer program, loaded on a non-transient memory medium and adapted to be executed on an electronic computer, said program being capable of causing the execution of at least part of the steps described in any one of the preceding claims 1- 17. 19. File multimediale (1002) caratterizzato dal fatto di comprendere una struttura avente una pluralità di settori, in cui in detta pluralità di settori, almeno parte è atta a contenere dati utili multimediali ed in cui in detta pluralità di settori sono presenti: - almeno un settore (P) d’autorizzazione contenente dati elettronici di autorizzazione alla lettura o copiatura dei detti dati utili multimediali e/o del detto file multimediale stesso; e - una tavola di allocazione di settori di dati e comandi (1003) del detto file multimediale (1002), in cui la detta tavola di allocazione di settori di dati e comandi del detto file multimediale è crittata assieme al detto settore (P) d’ autorizzazione .19. Multimedia file (1002) characterized in that it comprises a structure having a plurality of sectors, in which in said plurality of sectors, at least part is suitable for containing useful multimedia data and in which in said plurality of sectors there are: - at least one sector (P) of authorization containing electronic data authorizing the reading or copying of said useful multimedia data and / or said multimedia file itself; And - a table for allocating data sectors and commands (1003) of said multimedia file (1002), in which said table for allocating data sectors and commands of said multimedia file is encrypted together with said sector (P) of authorization .
ITUB2015A009567A 2015-12-18 2015-12-18 METHOD OF PROTECTION OF MULTIMEDIA FILES FROM COPY AND UNAUTHORIZED DISTRIBUTION AND ASSOCIATED MULTIMEDIA FILES. ITUB20159567A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
ITUB2015A009567A ITUB20159567A1 (en) 2015-12-18 2015-12-18 METHOD OF PROTECTION OF MULTIMEDIA FILES FROM COPY AND UNAUTHORIZED DISTRIBUTION AND ASSOCIATED MULTIMEDIA FILES.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ITUB2015A009567A ITUB20159567A1 (en) 2015-12-18 2015-12-18 METHOD OF PROTECTION OF MULTIMEDIA FILES FROM COPY AND UNAUTHORIZED DISTRIBUTION AND ASSOCIATED MULTIMEDIA FILES.

Publications (1)

Publication Number Publication Date
ITUB20159567A1 true ITUB20159567A1 (en) 2017-06-18

Family

ID=55642740

Family Applications (1)

Application Number Title Priority Date Filing Date
ITUB2015A009567A ITUB20159567A1 (en) 2015-12-18 2015-12-18 METHOD OF PROTECTION OF MULTIMEDIA FILES FROM COPY AND UNAUTHORIZED DISTRIBUTION AND ASSOCIATED MULTIMEDIA FILES.

Country Status (1)

Country Link
IT (1) ITUB20159567A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020199099A1 (en) * 2000-10-20 2002-12-26 Taizo Shirai Information recording device, information playback device, information recording medium, information recording method, information playback method, and program providing medium
US20070043667A1 (en) * 2005-09-08 2007-02-22 Bahman Qawami Method for secure storage and delivery of media content
US20090157948A1 (en) * 2007-12-14 2009-06-18 Spansion Llc Intelligent memory data management
US20120017084A1 (en) * 2010-07-14 2012-01-19 Hutton Henry R Storage Device and Method for Providing a Partially-Encrypted Content File to a Host Device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020199099A1 (en) * 2000-10-20 2002-12-26 Taizo Shirai Information recording device, information playback device, information recording medium, information recording method, information playback method, and program providing medium
US20070043667A1 (en) * 2005-09-08 2007-02-22 Bahman Qawami Method for secure storage and delivery of media content
US20090157948A1 (en) * 2007-12-14 2009-06-18 Spansion Llc Intelligent memory data management
US20120017084A1 (en) * 2010-07-14 2012-01-19 Hutton Henry R Storage Device and Method for Providing a Partially-Encrypted Content File to a Host Device

Similar Documents

Publication Publication Date Title
US9735962B1 (en) Three layer key wrapping for securing encryption keys in a data storage system
ES2659293T3 (en) Device and method for content management
AU2012204448B2 (en) System and method for in-place encryption
US7428306B2 (en) Encryption apparatus and method for providing an encrypted file system
JP6067757B2 (en) Using the storage controller bus interface to protect data transmission between the storage device and the host
KR20200071682A (en) Self-encryption drive (sed)
Khati et al. Full disk encryption: bridging theory and practice
AU2012204448A1 (en) System and method for in-place encryption
CN109040134B (en) Information encryption design method and related device
CN109657497B (en) Secure file system and method thereof
EP2425369B1 (en) Memory device and method for adaptive protection of content
US8438112B2 (en) Host device, portable storage device, and method for updating meta information regarding right objects stored in portable storage device
US11032253B2 (en) Secure application processing systems and methods
CN107423631A (en) A kind of database encipher-decipher method and device
ITUB20159567A1 (en) METHOD OF PROTECTION OF MULTIMEDIA FILES FROM COPY AND UNAUTHORIZED DISTRIBUTION AND ASSOCIATED MULTIMEDIA FILES.
Mandhare et al. A Proposal on Protecting Data Leakages In Cloud Computing
TWI736000B (en) Data storage device and operating method therefor
TWI775284B (en) Memory system, its control method and information processing system
JP7481076B2 (en) Key-compressible encryption
Diesburg et al. When cryptography meets storage
TWI509457B (en) Data storage device and data protection method
KR102280067B1 (en) Encryption and decryption method of script language execution file based on pki and computer program stored in recording medium for executing the same
JP5539024B2 (en) Data encryption apparatus and control method thereof
ITUB20154062A1 (en) DATA EXCHANGE METHOD AND SECURE CONTROLS.
WO2024094290A1 (en) Apparatus and method for storage protection