`Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 1 of 12
`
`EXHIBIT 12
`EXHIBIT 12
`
`
`
`Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 2 of 12
`
`(12) United States Patent
`Farher et al.
`
`I 1111111111111111 11111 11111111111111111111111111111111111111111111111111111
`US006928442H2
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,928,442 B2
`Aug. 9, 2005
`
`(54) ENFORCEMENT AND POLICING OF
`LICENSED CONTENT USING
`CONTENT-BASEU IUENTIFIERS
`
`(7S)
`
`Inventors: Dnvid A. Forber, Ojai, CA (US);
`ltonnld U. L11chm1m, Northbrook, IL
`(US)
`
`(73) A'iSignees: Kinetech, Inc., Northbrook, IL (US);
`Snvvls, Jnc., 'lhwn & Counlry, MO
`(US)
`
`( *) Nolice:
`
`Subject to any disclaimer, the term of this
`patenl is extended or adjusted under 35
`U.SC. 154(b) by O clays.
`
`(21) Appl. No.: 09/987,723
`Nov. 15, 2001
`rt·ior Puhlicntion Data
`
`(22) Filed:
`
`(6S)
`
`(63)
`
`(51)
`(52)
`
`(58)
`
`(56)
`
`US 2002/0052884 A 1 May 2, 2002
`
`Relntcd U.S. Appllcntlon Dato
`
`Cantinunlion of application No. 09/283,160, filed on Apr. 1,
`11 <;<, now Pat. No. 6,41. .280, which is a divi$ion of
`application No. 08/960 079, lilcu on Od. 24, 11 97, now Pal.
`No. 5,97S.7CJ1, which i.~ 11 conlinua{ion of applil-alion No.
`08/425,160, filed on Apr. 11 , 1995, now abandoned.
`Int. Cl. 7
`• ••• ... ....... . ....... . .... .. ............ ...... . G06F 17/30
`U.S. Cl . .... ......................... 707/10; 707i3; 707/ 101;
`707/200; 709/203; 709/219; 709/229
`Field of Search ........................ ...... 707/3, 6, 9, 10,
`707/101, 200; 709/203, 219, 229
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`3,668,647 A
`4,215,402 A
`4,290,105 A
`4,376,299 A
`4,405,829 A.
`4,412,285 A
`
`6/1972 Evangelisli
`7/1980 Mitchell
`9/1981 Cichelli
`3/1983 Rivesl
`9/1983 Rivest
`10/1983 Neches
`
`(Continued)
`
`FOREIGN PATENT DOCUMENTS
`
`EP
`
`0592045
`
`411994
`
`OTHER PUBLICATIONS
`
`Gwerlzrnan, James, et al. "111e Case for Geographical Push(cid:173)
`Caching." Technical Report HU TR 34-94 (excerpt), Har(cid:173)
`vard University, DAS, Cambridge, MA 02138, 1994, 2 pgs.
`Grigni, Michelangelo, el al. "Tight Bounds on Minimum
`Broadcasts Networks." SIAM Journal of Discrete Math(cid:173)
`ematics, vol. 4, No. 2, May 1991, pp. 207- 222.
`Devine, Robert. "Design and Implcmentalion of DDH: A
`Distributed Dynamic Hashing Algorithm." In Proceedings
`of 4th Inlernatiotrnl Conference on Foundations of Data
`Organizations and Algorithms, 1993, pp. 101-114.
`Deering, Stephen, el al. "Mullicast Routing in Datagram
`Inlernelworks and Extended LANs." ACM Transactions on
`Computer Systems, vol. 8, No. 2, May 1990, pp. 85-110.
`
`(Continued)
`
`Primary Examiner-Luke S Wossum
`Assistafll Examiner-Khanh Pham
`(74) Attorne_)\ Agent, or Firm-Davidson llerquist Jackson
`& (,owdey, LLP
`
`(57)
`
`ABSTRACT
`
`Data files are distributed across a plurality of computers. The
`computers may form a network such as a content delivery
`network (CDN) or a peer-lo-peer network. 1be network may
`operate as a TCP/IP network such as the lnlernel. Data files
`may represent may represent digital messages, images,
`videos or audio signals. For contenl--data items or files in
`tbe system-a name is obtained (or determined), where the
`name is based, at least in parl, on a given function of the data
`in a dala item or file. The given function may be a message
`digest or hash function, and it may be MD4, MD5, and SHA
`A cony of a requested file is only provided to licensed (or
`authorized) parties. 'The system may check one or more
`computers for unauthorized or unlicensed content. Contcnl
`is served based on a measure of availability of servers.
`
`56 Claims, 31 Drawing Sheets
`
`DATAFTl!M
`
`COMPUTI! MD FUNCTION ON
`DATA ITEM
`
`APPl:>ID LENGTH MOOULD 32 OF
`DATA ITEM
`
`...................... . ··-···-----···
`
`TRUENAMe t
`
`
`
`Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 3 of 12
`
`US 6,928,442 B2
`
`1
`ENFORCEMENT AND POLICING OF
`LICENSED CONTENT USING CONTENT(cid:173)
`RASRD IDRNTIFIRRS
`
`This is a continuation of application Ser. No. 09/283,160,
`filed Apr. 1, 1999, now U.S. Pat. No. 6,415,280, which is a
`division of application Ser. No. 08/960,079, filed Oct. 24,
`1997, now U.S. Pal. No. 5,978,791 filed Oct. 24, 2001 which
`is a continuation of Ser. No. 08/425,160, filed Apr. 11, 1995,
`now abandoned.
`
`BACKGROUND OF THE INVENTION
`
`5
`
`2
`being tiles, directories, records in the database, objects in
`object-oriented programming, locations in memory or on a
`physical device, or the like) are always defined relative lo a
`specific context. For instance, the file identified by a par-
`ticular file name can only be determined when the directory
`containing the file (iht: context) is known. The file identified
`by a pathname can be determined only when the file system
`(context) is known. Similarly, the addresses in a process
`address space, the keys in a database table, or domain names
`10 011 a global computer network such as the Internet are
`meaningful only because they are spccilied relative to a
`context.
`In prior art systems for identifying data items there is no
`direct relationship between the data names and the data item.
`15 The same data name in two different contexts may refer to
`different data items, and two different data names in the
`same context may refer to the same data item.
`In addition, because there is no correlation between a data
`name and the data it refers to, there is no a priori way to
`20 confirm that a given data item is ia fact the one named by a
`data name. For instance, in a DP system, if one proccs.<;or
`requests that another processor deliver a data item with a
`given ch1ta name, the requesting processor cannot, in
`general, verify that the data delivered is the correct data
`(given only the name). Therefore it may require further
`processing, typically on the part of the requester, lo veri[y
`that the data item it has obtained is, in fact, the item it
`requested.
`/\ common operation in a 1)1' system is adding a new data
`item to the system. When a new data item is added lo the
`system, a name can be assigned to it only by updating the
`context in which names are defined . Thus such systems
`require a centralized mechanism for the management of
`names. Such a mechanism is required even in a multi-
`processing system when data items arc created and identified
`at separate processors in distinct locations, and in which
`there is no other need for communication when data items
`arc added.
`I □ many data processing systems or environments, data
`items are transferred between different locations in the
`system . These locations may be processors in the data
`processing system, storage devices, memory, or the like. For
`example, one processor may obtain a data item from another
`45 processor or from an external storage device, such as a
`floppy disk, and may incorporate that data item into its
`syslem (using the name provided wilh that data item).
`However, when a processor (or some location) obtains a
`data item from another location in the DP system , it is
`50 possible that this obtained data item is already present in the
`system (either at the location of the processor or at some
`other location accessible by the processor) and therefore a
`duplicate of the data item is created. This situation is
`common in a network data processing environment where
`55 proprietary software products a re installed from floppy disks
`onto several processors sharing a common file server. In
`these systems, it is often the case that the same product will
`be installed on several systems, so that several copies of
`each Ille will rnside on the common lile server.
`In some data processing systems in which several pro-
`cessors are connected in a network, one system is designated
`as a cache server to maintain master copies of data items,
`and other systems are designated as cache clients to copy
`local copies of the master data items into a local cache on an
`65 as-needed basis. Before using a cached item, a cache client
`must either reload the cached item, he informed of changes
`to the cached item, or confirm that the master item corre-
`
`J. Field of the Invention
`This invention relates to data prc\cessing systems anti,
`more particularly, to data processing systems wherein data
`items are identified by substantially unique identifiers which
`depend on all of the clata in the data items and only on the
`dala in the data items.
`2. Background of the Invention
`Data processing (DP) systems, computers, networks of
`computers, or the like, typically offer users and programs
`various ways lo idenlify the data in the systems.
`Users typically identify data in the data processing system
`by giving the data some form of name. Por example, a 25
`typical operating system (OS) on a computer provides a file
`system in which data items are named by alphanumeric
`identifiers. Programs typically identify data in the data
`processing system using a location or address. For example,
`a program may identify a record in a file or database by using 30
`a record number which serves to locate that record.
`In all but the most primitive operating systems, users and
`programs are able to creale and use collections of named
`data items, these collections tl1cmsclvcs being named by
`identifiers. These named collections can then, themselves, 35
`be made part of other named collections. Por example, an
`OS may provide mechanisms to group Jiles (data items) into
`directories ( collections). These directories can then, them(cid:173)
`selvc. be made part of other directories. A data item may
`thus be identified relative to these nested di rectories using a
`sequence of names, or a so-called pathname, which defines
`a path through the directories to a particular data item (file
`or directory).
`As another example, a database management system may
`group data rewrds (data items) into tables and then group
`these tables into database files (collections). The complete
`address of any data record can then be specified using the
`database file name, the table name, and the record number of
`that data record.
`Other examples of identifying data items include: identi(cid:173)
`fying files in a network file system, identifying objects in an
`object-oriented database, identifying images in an image
`database, and identifying articles in a text database.
`In general, the terms ''data" and "data item" as used herein
`refer to sequences of bits. Thus a data item may be the
`contents of a file, a portion of a file, a page in memory, an
`object in an object-oriented program, a digital message, a
`digital scanned image, a part or a video or audio signal, or
`any other entity which can be represented hy a sequence of r,n
`bits. The term "data processing'' herein refers to the pro(cid:173)
`cessing of data items, and is sometimes dependent on the
`type of data item being processed . For example, a data
`prm;essor for a digital imagt: may differ from a data pro(cid:173)
`cessor for an audio signal.
`In all or the prior data processing systems the names or
`identifiers provided to identify data items (the data items
`
`40
`
`
`
`Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 4 of 12
`
`US 6,928,442 B2
`
`10
`
`39
`True Names in Relational and Object-Oriented Databases
`Although the preferred embodiment of this invention has
`been presented in the context of a file system, the invention
`of True Names would be equally valuable in a relational or
`object-oriented database. A relational or object-oriented 5
`database system using True Names would have similar
`benefits lo those of the file system employing the invention.
`For instance, such a database would permit efficient elimi(cid:173)
`nation of duplicate records, support a cache for records,
`simplify the proce&<; of maintaining cache consistency, pro-
`vitle localion-imkpendenl access lo records, maintain
`archives and histories of records, and synchronize with
`distant or disconnected systems or databases.
`The mechanisms described above can be easily modified
`to serve in such a database 1;11vironment. 'll1e True N,rnte 15
`registry would be used as a reposito ry of dntnbasc records.
`All references to records would be via the True Name of the
`record. (The Local Directory Extensions table is an example
`of a primary index that uses the True Name as the unique
`identifier of the desired records.)
`In such a database, the operations of inserting, updating,
`and deleting records would be implemented by first assimi(cid:173)
`lating records into the registry, and lhen updating a primary
`key index lo map the key of the record lo its contents hy
`using the True Name as a pointer to the contents.
`The mechanisms described in the preferred embodiment,
`or similar mechanisms, would be employed in such a
`system. These mechanisms could include, for example, the
`mechanisms for calculating true names, assimilaiing,
`locating, realizing, deleting, copying, and moving True 30
`Piles, for mirroring True riles, for maintaining a cache of
`True Files, for grooming True Files, and other mechanisms
`basi:d on lhe use or substantially unique identilii:rs.
`While the invention has been described in connection
`with what is presently considered to be tbc most practical 35
`and preferred embodiments, it is to be understood that the
`invention is not to be limited lo the disclosed embodiment,
`but on the contrary, is intended to cover various modifll:a(cid:173)
`tions and equivalent arrangements included within the spirit
`and scope of the appended claims .
`What is claimed is:
`1. Io a system in which a plurality of files arc distributed
`across a plurality of computers, a method comprising:
`oblaining a name for a data file, tbe name being based at
`least in part on a given fonetion of the data, wherein the 45
`data used by the given function to determine the name
`comprises the contents of the data file; and
`in response to a request for the a data fl!e, the request
`including at least lht: name of the particular lile, causing
`a copy of the file to be provided from a given one of the 50
`plurality of computers, wherein a copy of the requested
`file is only provided lo licensed parties.
`2. A method as in claim 1 further comprising:
`determ ining, using al lcust the name, whelher a copy of
`the data file is present on a particular one of said
`computers.
`3. A method as in claim 1 further comprising:
`determining, using at least the name, whether an unau(cid:173)
`thorized or uulicensed copy of tile data file is present on 60
`a particular one of said computers.
`4. A method as in claim 1, further comprising:
`maintaining accounting information relating to the data
`files.
`5. A method as in claim 4, wherein the maintaining of 65
`accounting information includes al kasl some of activities
`selected from:
`
`40
`(a) tracking which files have been stored on a computer;
`and
`(b) tracking which files have been transmitted from a
`computer.
`6. A method, in a system in which a plurality of files are
`distributed ucross a plurality or computers, wherein data in
`a file in the system may represent a digital message, a digital
`image, a video signal or an audio signal, the method com(cid:173)
`prising:
`obtaining a name for a data file, tbe name having been
`dekrmim:d using an M 1)5 !'unction or tin: data, wherein
`the data used by the MOS function comprises the
`contents of the data file; and
`in response to a request for tbe data file, the request
`int:luding at least lhe name of the data li lc, providing a
`copy of the data fil e from a given o ne of the plurality
`of computers, said providing being based at least in part
`on the obtained name, and wherein a copy of the
`requested file is only provided lo licon~ed parties.
`7. A method, in as •stem in which a 1>l11r:11ity of files are
`distributed across a plurality of computers, wherein some of
`the computers communicate with each olher using a TCP/IP
`communication protocol, the method comprising:
`obtaining a name for a data lile, the contents of said data
`file representing a digital image, the name having been
`determined using at least a given function of the data in
`the data file, wherein the data used by the given
`function to determine the name comprises the conlents
`of the data file; and
`in response to a request for the data file, the request
`including at least the name of tbe data file, providing a
`copy of the file from a given one of the plurality of
`computers, wherein a copy of the re4uesled Ille is nol
`provided to unlicensed parties or to unauthorized par(cid:173)
`ties.
`8. A method, in a network comprising a plurality of
`computers, some of the computers functioning as servers
`and some of the computers functioning as clients, wherein
`40 some computers in the network communicate with each
`other using a TCP/IP communication protocol, wherein a
`key is required to identify a file on tbe network, the method
`comprising:
`storing some files on a first computer in the network and
`storing copies of some of the files from
`the firs!
`computer on a set of computers distinct from the first
`computer;
`for a partirnlar 111c, determining a different cache key
`from an ordinarily used key for the file, the different
`key being determined at least in part using a message
`function MOS of the data, wherein th e data used by the
`function to determine the name comprises the contents
`of lht: partirnlar file; and
`n:sponsivc to a rct111e~t for the particular file, lhi; request
`including the dilicrcnt key for the tile, causing a copy
`of the parlicu Jar file lo be provided to the requester,
`wherein the requested file is not provided to unlicensed
`parties, and
`wherein the contents of the file may represent: a page i n
`memory, a digital message, a digital image, a video
`signal or an audio signal.
`9. I\ cnnlcnt delivery method, comprising:
`distributing files across a network or servi:rs;
`for a particular file having a contextual name specifying
`locations in the network al which the lile may be
`located, determining another name for the particular
`
`20
`
`25
`
`55
`
`
`
`Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 5 of 12
`
`US 6,928,442 B2
`
`15
`
`41
`file, the other name including at least a data identifier
`determined using a given fundion or the data, where
`said duta used h y 1he g iven ru11 cl ion lo delerrninc the
`Olh<ir irnme c11n1 pri.~.:.,;; th e 0011lents c,f 1hc particular lilc;
`obtn in ing o req uest for the particufar fil e, the ccq11cst s
`including the conlex tunl 11nme nnd the ot he r name o f
`the par1ic ul11r file; ancl
`rei;p ons ive to the request , provitling a copy of the par(cid:173)
`lieu la r f1lc from o n · of the i;crvers of the network of
`servers, said providing being based, at least in part, on 10
`the othe r name of the particular item, wherein the
`requested file is not provided to unlicensed parties.
`10. A method, in a system in which a plurality of files arc
`distributed across a plurality of computers, the method
`compr i, ing:
`obtaining a name for a data file, the name being based at
`lea. t in part on a given function of the data, whcrci n !he
`data used by the function comprises the contents of the
`particular file;
`determining, using at least the nnme, whether a copy of
`the c!ntn file is present on at least o ne of said computers; 20
`and
`determining whether a copy of !he data ti le thnl L-; prc.<;eu t
`on a at least one of said computers is an un;iulhori1.cd
`copy or an unlicensed copy of lhe cl11rn file.
`11. A method as in claim 10 further compris.iL1g:
`allowing the file to be provided from one of the com pul.:r:s
`having an aulhorizecl or licensed copy of the 111c.
`12. A method as in claim 10 wherein al lenst stime of lhe
`plurality of computers comprise a peer-to -peer ne two rk.
`13. A method, in a system in which a plu ra lity of 11lc: arc
`distributed across a plurality of computers w h i I, form a
`peer-In-peer nelwork, the method comprising:
`obtaining a True Name for a data file, lhc 'l'rnc Na me
`being based at least in part on a given runcti o n o( Ilic _15
`dala, wherein the dala used by lhc given
`l'nndion
`comprises the contents of the parlicu lar file; Rncl
`determining, using at leas! the name, whether an unl i(cid:173)
`censed or unaulhorized copy of the tlal :1 fil e is present.
`on a particular computer.
`14. A method comprising:
`obtaining a name for a data tile, lbe name being, based al
`least in part on a function of the datn wln:rcin the dnln
`used by the fu□ction comprise al least th e ctrntcnls of
`the file; and
`in response lo a request for the daln fi le, 1he req uest
`including at least lhe obtained nam e of the data Ille,
`causing the conlents of lhe data file to he p.rovided fnim
`a computer having a licensed copy of tho dala lilc.
`15. A method as in claim 14 wherein t.hc f1inctio n i: n 5fJ
`message digest function or a hasl1 function.
`L6. A method :ts in cl nirn 14 wh rein the function is
`selected rrom the l'unclio os: MD4-, MDS, and SHA.
`l7. A method ns .in claim l 4 wherei n the given function
`rando ml y distributes its outpu ts .
`18. A method as in claim 14 whe rein the function pro(cid:173)
`duces a substantially unique value based on the data com(cid:173)
`pris ing the dala lilc.
`L9. A method ~s in c laim 14 wherei n n daln fi le may
`cmnpriw a tile a pu n ion u r a file, 11 pug,e in mctnnry, ;t di gital 60
`nici;.sage, n digit11I irnnge, a vidCtl signa l or nn aud io s ign al.
`20. A me thod as in claim 14 wherein certain processors in
`the nc lwork communic;1le with each other using a TCP/IP
`communication protocol.
`21. A method as in claim 14 wberein said name for said 65
`data nle, as determined using said runclion, will chauge
`when the data tile is modified.
`
`42
`22. Amethocl, in a system in which a pluralily of files are
`distributed across a plurality of computers, the method
`comprising:
`obta ining a na me for a daln li le. th e nnmc being based al
`lea t i11 part 0 11 an MDS l~mcli on of t he d nla which
`comprises the conlenls ol' Ille p11r licul;1r fi k:; and
`determ ini ng, using al least the obtained name, wbclbcr an
`unau thorized or unlicensed copy of the dala fik is
`present on a at least one of said computers.
`23. A method comprising:
`oblaining a list of tile names, al leasl one file name for
`each of a plurality of files, each of said ftle names
`having been determined, al least in part, by applying a
`func tion lo lhe contenls of the corresponding file; and
`us ing ut least said list tu <lclerm'inc whelhc r un;n1 lhor il.ctl
`or unlicensed C(1pios of snmc o f !he plurol ity of dala
`files are present o n a particula r computer.
`24. A method as in claim 23 further comprising:
`in response lo a request l~r n J)Mliculnr dntu lile, nllowing
`the conlellls o r the daln ril e to be prov iclccl
`l'rom a
`C<u11p11 1er de tcm1inecl lo have a licensed o r aut horized
`copy of th e d ata file.
`25 . {\ 111clhcKI as in claim 23 wherein lhe parlicular
`25 cornp111er is parl of a peer-to-peer network of computers.
`2/i. A me thod tti- in claim 23 further comprising:
`if' the comp ute r is found to have a tile that it is nol
`autlmril.cd or licensed lo have, recording information
`aboul rhe computer and about the file.
`27. A me thod as in claim 23 wherein the function is a
`message digosl [u net ion or a hash function.
`28 . A met(K)d as in claim 23 wherein lhe funclinn is
`sldccted from the funclions: MD4, MDS, and SHA.
`29. A mctht,d ns in claim 23 wberein the given function
`mndonll y (listribu1es its outputs.
`30. A method ns in claim 23 wherein the function pro(cid:173)
`lluccs ,t suhstm1!ially unique value based on the dala corn(cid:173)
`p.ri. iog the data file.
`Jl. A mclhod comprising:
`obtaining a list of True Names, one for each of a plurality
`~1r flies, wherein, for each of the files, the True Name for
`llrnl file is de termined using a function of !he contents
`or lhc 111e;
`le,tsl ~nme computers that make up part of a
`[(Ir ill
`pccr-lo-pct! r network of computers, comparing al least
`-'iO lllC ol' thc contents of !he computers lo the list of True
`N11111 e1
`to determine whether unaulhorizecl or unli(cid:173)
`censed copies of some of the plurality of data files are
`prc,,cnl 011 those computers; and
`based at least in part on said comparing, if a computer is
`round lo have conlenl lhal it is not authorized or
`liccnlled 10 lrnve, recording information about the com-
`1m1cr and ubou t the umlll tho rizcd or nnliccn~d t1mlcnt.
`32. A met hod us in claim 31 wbcrcio the True Names arc
`<lclermined using a message clige-~I l'\l!lCI ion or a hash
`runcrion.
`33. A melhnd as in claim 31 wherein the function is
`scleclcd l'rom the functions: MD4, MOS, and SHA.
`34. A method ~s in claim 3 l , l'urlhcr C()mprising:
`in response lo n req ucsi t'or the d ata file. allow ing a copy
`of Ille file 10 be pmvidccl from n given one of the
`pluralily of computers having an authorized or licensed
`copy or the Ille.
`35. A method comprising:
`oblaining a !isl ol'Truc Names, one !'or each nf a ph1rality
`of files, wherein, for each of the files, the True Name for
`
`30
`
`40
`
`55
`
`
`
`Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 6 of 12
`
`US 6,928,442 B2
`
`JO
`
`IS
`
`20
`
`43
`that file is determined using an MOS function of the
`contents of !he nle;
`comparing the True Names of al least some of the contents
`of a computer to the list of True Names lo determine
`whether unauthoriz.ecl or unlicensed copies of some of s
`the plurality of data til es are present on that computer;
`and
`based al least in part on said comparing, if a computer is
`found to have content that ii is not authorized or
`licensed to have, recording information about the com-
`putcr and about the un authorized or unlicensed content.
`36. In a system in which a data file is distributed across
`a plurality of computers, a method comrrising:
`obtaining a name for the data file, the name being based
`al least in part on a given function of the data, wherein
`the data used by the function which comprise lhc
`contents of the data file; and
`determining, using at least the name, whether an unau(cid:173)
`thorized or unlicensed copy of the data file is present on
`a particular one of said computers.
`37. Computer-readable media tangibly embodying a pro(cid:173)
`gram of instructions executable by at least one computer, the
`program comprising code to:
`obtain a name for a data 11le, the name being based at least
`in part on a given function of the data, wherein the data
`used by the function comprises the contents of the data
`file; and
`in response to a request for the a data file, the request
`including at least the nnmc of lhc p~rlicular file, cause
`a 1.'0py of lhe file lo be provided fmnt a given one of the 30
`plurality of computers, wherein the copy is only pro(cid:173)
`vided to licensed parties.
`38. Computer-readable media tangibly embodying a pro(cid:173)
`gram of inslrm:lions cxccutable by at leasl one computer, lhc
`program comprisi ng code lo:
`obtain a True Name for a data 11le, the True Name being
`based at least in part oo a given function of the data,
`wherein the data used by the runclion comprises lhe
`con1cnls of the particular file; and
`determine. using at least the name, wbether an unautho-
`rized or unlicensed copy of the data file is present on a
`particular computer.
`39. Computer-readable media tangibly embodying a pro(cid:173)
`gram of instruclion: c:--ccutable by al least one computer, the
`program comprising code to:
`obtain a !isl of tile names, one for each of a pluralily of
`files, each of said file names having been determined,
`at least in part, by applying a function to the contents
`of the corresponding file; and
`delermine, using at least said list, whether unauthorized or
`unlicensed copies oi' some of the plurality of dala files
`are present on a particular computer.
`40. Computer-readable media tangibly embodying a pro(cid:173)
`gram of instructions executable by at least one computer, the 55
`program comprising code to:
`obtain a name for lhe data tile, the name being based at
`least in part on a given function of the dala which
`comprise the contents of lhe dala lile; and
`delermine, using at least the name, whether an unautho(cid:173)
`rized or unlicensed copy of lhc data file is present on a
`particular one of said computers.
`41. Media as in claim 40 when:in the given l'unclion is a
`message digest function or a hash function.
`42. A computer system programmed lo:
`obtain a lisl of file names for a plurality of liles, each of
`said file names having been determined, at least in part,
`
`44
`by applying a function to the conlenls o[ the corre(cid:173)
`spomling 11le; and
`determine, using al least said list, whether unauthorized or
`unlicensed copies of some of the plurality of data files
`arc present on a particular computer.
`43. A computer system as in claim 42 wherein lhe
`l'unction is a message cligesl function or a hash funclinn .
`44. A computer system as in claim 42 wherein the
`fonction is an MD5 function.
`45. In a system in which a plurality of tiles are distributed
`across a plurality of computers, al least some of the com(cid:173)
`puters forming a peer-to-peer network, a method compris(cid:173)
`ing:
`obtaining a name for a data tile, the name being based al
`least in part on a given function of the data, wherein the
`data used by the given function comprises the contents
`of the data file; and
`in response to a request for the a dala file, the request
`including at lcasl the name of the particular file,
`allempling to cause a copy of the file lo be provided
`from a given one of the plurality of computers, wherein
`the requested file is only provided to authoriz.ed or
`licensed parties.
`46. A method, in a system in which a plurality of files are
`25 distributed across a plurality of computers, at least some of
`the computers forming a peer-to-peer network, the method
`comprising:
`obtaining a name for a data file, the name being based at
`least in part on a given funclion of the data, wherein the
`data used by the function comprises the contents of the
`data Ille;
`determining whether a copy of \he clala file is present on
`a at least one of said computers; and
`determining, lL5ing al least the name, whether a copy of
`the data 111e lhat is present on a at leasl one of said
`computers is an unlieenscd copy of the file.
`47. A method, in a syslcm in which a plurality of files arc
`distributed across a plurality of computers, the method
`comprising:
`determining whether a copy of a data file is present on a
`al least one of said computers;
`obtaining a name for a data file, lhc name being based al
`least in parl on a given function of the data which
`comprises the contents of the data file; and,
`using al least tbe name, attempting to determine whether
`a copy of the data file that is present on tbc al least one
`of said computers is an unlicensed copy of the file .
`48. A method as in claim 47 wherein the given function
`comprises a mes.-;age digest or a hash function.
`49. A method as in claim 48 wherein the given function
`is selected from tbc functions: MD4, MD5 and SHA
`50. A method as in claim 47 further comprising:
`if a computer is found to have a file that it is nol licensed
`to have, recording information about the corriputer.
`51. A method as in claim 47, further comprising:
`maintaining accounting information relating to data files
`in the system.
`52. A method as in any one of claims 4 and 51, further
`60 comprising:
`using the accounting informalioo as a basis for a system
`in which charges are based on an identity of the data
`liles.
`53. A mclhocl as in claim 47, further comprising, for at
`least one computer in the system:
`(a) tracking which dala lilcs have het:n stored on a
`computer; and
`
`JS
`
`40
`
`45
`
`50
`
`65
`
`
`
`Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 7 of 12
`
`US 6,928,442 B2
`
`45
`(b) tracking which data f-iles have been transmitted from
`a computer.
`54. A method, in network in which a plurality of files are
`distributed across a plurality of computers of the network,
`the method comprising:
`determining whether a copy of a data file is present on a
`at ieast one of said computers, said data file represent(cid:173)
`ing one or more of a digital image, a video signal or an
`audio signal;
`obtaining a name for the data file, the name being based 10
`al least in part on an MD5 function or the data which
`comprises the contents of the data file; and,
`when a copy of the data file is found to be present on one
`of the computers, determining, using at least the name,
`whether the copy of the data