`a2) Patent Application Publication 0) Pub. No.: US 2002/0172368 Al
`(43) Pub. Date: Nov.21, 2002
`
`Peterka
`
`US 20020172368A1
`
`(54)
`
`INTIAL FREE PREVIEW FOR MULTIMEDIA
`MULTICAST CONTENT
`
`Publication Classification
`
`(75)
`
`Inventor: Petr Peterka, San Diego, CA (US)
`
`(SL) Ute C07 cacsccsssssssssssnssessesnstsntsnstsevee HO4L 9/00
`(52) US. Ch.
`cecescsssssssscnstssssetnsenssstn 380/278; 713/163
`
`Correspondence Address:
`TOWNSEND AND TOWNSEND AND CREW,
`LLP
`TWO EMBARCADERO CENTER
`EIGHTH FLOOR
`
`SAN FRANCISCO, CA 94111-3834 (US)
`
`(57)
`
`ABSTRACT
`
`According to one embodiment of the invention, a free
`preview of a program can be provided to client computers in
`a multicasting system. This can allow viewers in the mul-
`ticasting system to viewafirst portion of the program before
`(73) Assignee: General Instrument, Inc., Horsham, PA
`deciding whetherto order the program content. According to
`another embodiment, various distribution methods can be
`accomplished using encryption keys to distribute program
`content. According to yet another embodiment, an initial
`viewing period can be provided to allow negotiation of the
`encryption keys. According to another embodiment, rules
`and conditions for providing content in a multicasting envi-
`ronment can be utilized.
`
`(21) Appl. No.:
`
`10/007,120
`
`(22)
`
`Filed:
`
`Oct. 26, 2001
`
`Related U.S. Application Data
`
`(60) Provisional application No. 60/243,925,filed on Oct.
`26, 2000.
`
`104
`124
`
`Directory
`
`
`Active
`Crawling
`Directory
`
`
`
`
`100
`
`
`
`Origin
`
`108
`
`148
`
`External Origin
`
`Server(s)
`Server(s)
`
`112
`
`Client
`
`Computer(s)
`
`
`-, Content
`
`
`. Exchange(s)
`
`
`APPLE 1004
`
`APPLE 1004
`
`1
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 1 of 25
`
`(s)soyndwog
`
`justo
`
`éL
`
`ocl
`
`OOL
`
`BAO
`
`AjloJOo.G
`
`BuymMelo
`
`A1oyoaiq
`
`POLvel
`
`gol
`
`US 2002/0172368 Al
`
`
`
`(s)aBueyoxe»
`
`JU9JUOD°°
`
`|“bls
`
` |
`Come
`
`S)JIANIES|ulbuiC
`
`ubUO[eusa}xXF
`
`(S)aNaS
`
`BLL
`
`2
`
`
`
`
`
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 2 of 25
`
`US 2002/0172368 Al
`
`200
`
`\
`
`201
`
`202
`
`203
`
`204
`
`205b
`
`COMPUTER
`
`READABLE
`
`STORAGE MEDIA
`
`
`
`COMPUTER
`CPU(S) OUTPUT||STORAGEINPUT
`
`
`READABLE
`DEVICES||DEVICES|;DEVICES
`
`STORAGE
`MEDIA READER
`
`208
`
`209
`
`91
`
`
`COMM.|| PROCESSING © WORKING
`
`
`SYSTEM|| ACCELERATION | MEMORY
`bn 02
`OPERATING
`307
`SYSTEM
`
`206
`
`(PROGRAMS)
`
`OTHER CODE
`
`FIG. 2
`
`293
`
`3
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 3 of 25
`
`US 2002/0172368 Al
`
`PROVIDE ENCRYPTED MATERIAL
`FOR DISTRIBUTION TO A CLIENT
`
`PROVIDE KEY FOR USE BY CLIENT
`IN DECRYPTING FIRST PORTION OF
`THE ENCRYPTED PROGRAM
`MATERIAL BY PROVISIONING THE
`
`KEY TO THE CLIENT 300
`
`304
`
`+7308
`
`
`
`DISTRIBUTE FIRST PORTION OF
`
`ENCRYPTED PROGRAM MATERIAL
`TO CLIENT
`
`ALLOW CLIENT TO UTILIZE THE
`PROVIDED KEY SO AS TO OBTAIN
`
`FREE PREVIEW
`
`312
`
`316
`
`FIG. 3
`
`4
`
`
`
` 402
`
`404
`
`408
`
`ENCRYPT CONTENT KEY WITHA
`FREE PREVIEW KEY
`
`412
`
`416
`
`400
`
`424
`
`428
`
`436
`
`440
`
`FIG. 4
`
`PROVIDE ENCRYPTED CONTENT
`
`KEY TO THE CLIENTS
`
`
`
`UTILIZE FREE PREVIEW KEY AT
`THE CLIENT TO DECRYPT THE
`CONTENT KEY
`
`
`
`
`
`
`DISTRIBUTE FIRST PORTION OF
`
`ENCRYPTED PROGRAM MATERIAL
`TO CLIENTS
`
`
`5 P
`
`ALLOW CLIENT TO UTILIZE
`CONTENT KEY TO DECRYPT
`ENCRYPTED PROGRAM CONTENT
`AND OBTAIN FREE PREVIEW
`
`ROMPT USER TO PURCHASE THE
`PROGRAM MATERIAL
`
`Patent Application Publication Nov. 21,2002 Sheet 4 of 25
`
`US 2002/0172368 Al
`
`PROVIDE CLIENT WITH FREE
`PREVIEW KEY
`
`PROVIDE ENCRYPTED MATERIAL
`FOR DISTRIBUTION TO A CLIENT
`
`PROVIDE A CONTENT KEY
`
`5
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 5 of 25
`
`US 2002/0172368 Al
`
`PROVIDE PROGRAM MATERIAL FOR
`DISTRIBUTION
`
`DISTRIBUTE A FIRST PORTION OF THE
`PROGRAM MATERIAL
`
`Sos
`
`512
`
` sou
`
`ALLOW USER TO PURCHASE PROGRAM
`CONTENT
`
`ENCRYPT A REMAINING PORTION OF THE
`
`a16
`
`PROGRAM
`
`DISTRIBUTE THE REMAINING PORTION OF
`THE PROGRAM
`
`520
`
`Fig, S
`
`6
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 6 of 25
`
`US 2002/0172368 Al
`
`PROVIDE SERVER FOR COMMUNICATION
`
`WITH A PLURALITY OF CLIENT COMPUTERS
`
`
`
`CONFIGURE THE SERVER TO PROVIDE A
`PROGRAM TO THE PLURALITY OF CLIENT
`
`COMPUTERS
`
`ENCRYPT FIRST PORTION OF CONTENT
`
`DISTRIBUTE FIRST PORTION OF ENCRYTPED
`CONTENT
`
`PROVIDE A FREE PREVIEW FOR THE
`
`PROGRAM TO THE CLIENT COMPUTERS
`CLIENT REQUEST ACCESS TO CONTENT
`
`
`
`PROVIDE KEY TO CLIENT FOR USEIN
`DECRYPTING AN ENCRYPTED PORTION OF
`
`THE PROGRAM
`
`ENCRYPTED PORTION OF THE PROGRAM
`
`PROVIDE INITIAL VIEWING PERIOD FORA
`TIME SUFFICIENT TO ALLOW A
`PREDETERMINED NUMBEROFCLIENTS TO
`RECEIVE KEYS FOR DECRYPTING THE
`
`ENCRYPT SECOND PORTION OF CONTENT
`
`DISTRIBUTE SECOND PORTION OF
`ENCRYPTED CONTENT
`
`FIG. 6
`
`604
`
`608
`
`609
`
`610
`
`612
`
`614
`
`616
`
`620
`
`600
`
`624
`
`628
`
`7
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 7 of 25
`
`US 2002/0172368 Al
`
`at of
`REQUESTS
`
`' FRee
`PREVIEW
`
`PROGRAM dYRATION
`
` CONTENT
`Key 2
`coho eee eee
`KEY
`|...
`
`neaCTee|
`
`8
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 8 of 25
`
`US 2002/0172368 Al
`
`Program Duration
`
`Numberofrequésts
`
`EMM:[PK]uKn
`
`Period -|allowed
`
`Initial Key Distribution
`
`KEYs:
`
`ECMs:
`
`EMMs:
`
`ECM: [CKa2]pK
`
`9
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 9 of 25
`
`US 2002/0172368 Al
`
`RECEIVE REQUEST FOR A CRYPTOGRAPHIC
`KEY FROM A CLIENT
`
`
`
`
`
`
`LOG THE REQUEST FOR THE KEY
`
`
`$10
`
`414
`
`
`DISTRIBUTE THE KEY TO THE CLIENTIN
`RESPONSE TO THE REQUEST
`
`
`
`$13
`
`YOO
`
`
`
`DISTRIBUTE PROGRAM CONTENT FOR
`
`DECRYPTION BY THE CLIENT UTILIZING THE
`
`KEY
`BILL CLIENT BASED UPON LOG ENTRY(IES)
`
`42 2.
`
`10
`
`10
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 10 of 25
`
`US 2002/0172368 Al
`
`
`
`RECEIVE REQUEST FOR A CRYPTOGRAPHIC
`KEY FROM A CLIENT
`
`LOG THE REQUEST FOR THE KEY
`
`LOG A SEGMENT OF THE PROGRAM CONTENT
`FOR WHICH THE KEY CAN BE USED
`
`ENCRYPT KEY WITH A FIRST PROGRAM
`SEGMENT KEY
`
`DISTRIBUTE KEY ENCRYPTED UNDER FIRST
`PROGRAM SEGMENTKEYAS PART OF FIRST
`MULTICAST MESSAGE
`
`
`BILL CLIENT BASED UPON LOG ENTRY(IES)
`
`ENCRYPT KEY WITH A SECOND PROGRAM
`SEGMENT KEY
`
`DISTRIBUTE KEY ENCRYPTED UNDER SECOND
`PROGRAM SEGMENTKEYAS PART OF A
`SECOND MULTICAST MESSAGE
`
`DISTRIBUTE PROGRAM CONTENT FOR
`DECRYPTION BY THE CLIENT UTILIZING THE
`KEY
`
`910
`
`914
`
`[|-~918
`
`900
`
`926
`
`930
`
`932
`
`934°
`
`938
`
`942
`
`FIG. 9
`
`11
`
`11
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 11 of 25
`
`US 2002/0172368 Al
`
`RECEIVE REQUEST FOR FIRST KEY FROM A CLIENT
`
`CREATELIST OF CLIENTS REQUESTING A FIRST KEY
`
`£020.
`
`/0/6
`- [02°
`
`DISTRIBUTE MULTICAST MESSAGE TO PLURALITY OF
`CLIENT SO AS TO DISTRIBUTE A SECOND KEY
`
`Fig. |O
`
`12
`
`12
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 12 of 25
`
`US 2002/0172368 Al
`
`1110
` RECEIVE REQUESTFOR FIRST KEY FROM A CLIENT
`
`CREATELIST OF CLIENTS REQUESTING A FIRST KEY
`
`UTILIZE A UNIQUE KEY OF EACH OF THE CLIENTS TO
`ENCRYPT THE SECOND KEY PRIOR TO DISTRIBUTING TO
`
`EACH OF THE RESPECTIVE CLIENTS
`
`DISTRIBUTE MULTICAST MESSAGE TO PLURALITY OF
`CLIENT SO AS TO DISTRIBUTE A SECOND KEY
`
`RECEIVE A MESSAGE FROM A CLIENT INDICATING THAT
`THE CLIENT IS LEAVING THE MULTICAST SESSION
`
`REMOVE THE CLIENT FROM THE LIST INRESPONSE TO THE
`MESSAGE
`
`LOG AN ENTRY SO AS TO RECORD WHEN CLIENT LEFT THE
`SESSION AND NOTBILL CLIENT FOR ADDITIONAL CONTENT
`
`DISTRIBUTE A THIRD KEY TO PREVENT A REMOVED CLIENT
`FROM RECEIVING LATER OCCURRING CONTENT
`
`FIG. 11
`
`1120
`
`1130
`
`1140
`
`1150
`
`1160
`
`1170
`
`1180
`
`= — 2So|
`
`13
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 13 of 25
`
`US 2002/0172368 Al
`
`{210
`
`DISTRIBUTE KEY TO THE CLIENT
`
`AWAIT CONFIRMATION FROM THE CLIENT THAT THE KEY
`WAS RECEIVED
`
`CONFIRMATION
`
`WAIT A PREDETERMINED PERIOD OF TIME FOR
`
`REMOVE CLIENT FROM LIST IF NO CONFIRMATIONIS
`
`RECEIVED [240
`
`Fig. IZ
`
`14
`
`14
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 14 of 25
`
`US 2002/0172368 Al
`
`BEGIN MULTICASTING OF PROGRAM CONTENT
`
`[310
`
`
`
`
`CREATELIST OF ACTIVE PARTICIPANTS RECEIVING THE
`PROGRAM, INCLUDING AT LEAST ONE CLIENT
`
`
`320
`
`
`
`RECEIVE MESSAGE FROM THE CLIENT INDICATING THAT
`
`
`THE CLIENT SHOULD REMAIN ON THE LIST
`
`DECRYPTING PROGRAM CONTENT
`
`MULTICAST A MESSAGETO THE ACTIVE LIST OF
`PARTICIPANTS THAT INCLUDES A NEW KEY FOR
`
`{300
`
`/3 30
`
`{34-0
`
`Fig.
`
`[3
`
`15
`
`15
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 15 of 25
`
`US 2002/0172368 Al
`
`PROVIDE PACKET FOR USE AS AN RTP PACKET, HAVING A
`PAYLOAD PORTION AND A HEADER PORTION
`
`[410
`
`INSERT A FIXED FIELD BETWEEN HEADER AND PAYLOAD
`
`OPERABLE TO INDICATE A KEY CHANGE-
`
`[420
`
`CREATE MODIFIED RTP PACKET
`
`1430
`
`TRANSMIT MODIFIED RTP PACKET
`
`1440
`
`RECEIVE MODIFIED RTP PACKET ATCLIENT
`
`=»! 450
`
`DETERMINE FROMFIXED FIELD WHETHER KEY CHANGED
`
`1460
`
`REMOVEFIXED FIELD PORTION OF MODIFIED RTP PACKET
`SO AS TO RECOVER RTP PACKET
`
`1420
`
`PROCESS RECOVERED RTP PACKET
`
`[430
`
`144 Co
`
`16
`
`16
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 16 of 25
`
`US 2002/0172368 Al
`
`PROVIDE FIRST KEY TO A GROUPOF CLIENTS
`
`PROVIDE A SECOND KEY FOR USE iN DECRYPTING A FIRST
`PORTION OF THE PROGRAM CONTENT
`
`PROVIDE THE SECOND KEY ENCRYPTED UNDER THE
`FimST
`KEY TO ONE OF THE PLURALITY OF CLIENTS
`
`UTILIZE THE SECOND KEY AT THE SERVER TO ENCRYPT
`THE FIRST PORTION OF THE PROGRAM CONTENT
`
`DISTRIBUTE THE ENCRYPTED FIRST PORTION OF THE
`PROGRAM CONTENT TO THE GROUP OF CLIENTS
`
`| PERMIT THE CLIENT WHO RECEIVED THE SECOND KEY TO
`DECRYPT THE ENCRYPTED PROGRAM CONTENT
`
`FIG. 15
`
`1510
`
`1520
`
`1530
`
`(500
`
`1540
`
`1550
`
`1560
`
`17
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 17 of 25
`
`US 2002/0172368 Al
`
`PROVIDE THE CLIENTS WITH THE FIRST KEY
`
`PROVIDE PROGRAM CONTENTFOR MULTICASTING TO
`PLURALITY OF CLIENTS
`
`ENCRYPT FIRST PORTION OF THE PROGRAM CONTENT
`UTILIZING A FIRST KEY SO AS TO PRODUCE AN
`ENCRYPTED FIRST PORTION OF PROGRAM CONTENT
`
`1605
`
`1610
`
`1620
`
`1640
`
`1600
`
`1650
`
`1660
`
`1670
`
`
`
`
`MULTICAST THE ENCRYPTED FIRST PORTION OF THE
`PROGRAM CONTENTTO THE PLURALITY OF CLIENTS PRIOR
`TO THE PLURALITY OF CLIENTS INDICATING AN INTENT TO
`PURCHASE
`
`ENCRYPT THE FIRST PORTION OF THE PROGRAM CONTENT
`FOR A PERIOD OF TIME SO AS TO ALLOW THE USER TO
`OBTAIN A FREE PREVIEW
`
`PROMPT USER TO PURCHASE THE PROGRAM CONTENT
`
`
`
`
`PROVIDE A GUARANTEED TIME PERIOD SO AS TO ALLOW A
`USER TO PURCHASE THE PROGRAM CONTENT WITHOUT
`INTERRUPTION OF PROGRAM SERVICE
`
`FIG. 16A
`
`18
`
`18
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 18 of 25
`
`US 2002/0172368 Al
`
`PROVIDE A SECOND KEY
`
`ENCRYPT A SECOND PORTION OF THE PROGRAM CONTENT
`WITH THE SECOND KEY
`
`1680
`
` 1674
`PROGRAM CONTENT TO THE PLURALITY OF CLIENTS
`
`PROVIDE THE SECOND KEY TO EACH OF THE CLIENTS
`THAT PURCHASED THE PROGRAM CONTENT DURING THE
`GUARANTEED TIME PERIOD
`
`MULTICAST THE ENCRYPTED SECOND PORTION OF THE
`
`1684
`
`1690
`
`FIG. 16B
`
`19
`
`19
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 19 of 25
`
`US 2002/0172368 Al
`
`PROVIDE PROGRAM CONTENT FOR MULTICASTING
`
`IFlo
`
`[#20
`
`MULTICASTA FIRST PORTION OF THE PROGRAM CONTENT |
`TO A PLURALITY OF CLIENTS AT NO CHARGE
`
`PROVIDE A GUARANTEEDTIME PERIOD DURING
`MULTICASTING OF THE FIRST PORTION OF PROGRAM
`
`30
`
`IF
`
`ESTIMATE A NUMBEROFCLIENTS THAT WILL PURCHASE
`THE PROGRAM CONTENTDURING THE GUARANTEED TIME
`PERIOD
`
`1400
`
`PROVIDE AN INITIAL KEY DISTRIBUTION PERIOD HAVING A
`DURATION LONG ENOUGH TO PROVIDE CRYPTOGRAPHIC
`KEYS TO THE PURCHASING CLIENTS SO AS TO ALLOW
`RECEPTION OF THE PROGRAM CONTENTNOTTO BE
`
`1750
`
`CONTENT
`[#40
`INTERRUPTEDAT. THE PURCHASING CLIENTS
`ADJUSTINITIAL KEY DISTRIBUTION PERIOD
`
`)
`
`| #60
`
`Fig.
`
`| +
`
`20
`
`20
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 20 of 25
`
`US 2002/0172368 Al
`
`
`PROVIDE PROGRAM CONTENTFORDISTRIBUTION TO A
`PLURALITY OF CLIENTS
`
`
`
`|Glo
`
`PROVIDEA FIRST TIME PERIOD FOR PURCHASING AN
`UNINTERRUPTED VIEWING OF THE PROGRAM CONTENT
`
`lglo
`
`RECEIVE A PURCHASE REQUEST FROM A PURCHASING
`CLIENT FOR THE PROGRAM CONTENT
`
`PROVIDE A SECOND TIME PERIOD FOR PURCHASING THE
`PROGRAM CONTENT, THE SECOND TIME PERIOD
`
`OCCURRING AFTER THE FIRST TIME PERIOD
`PROGRAM CONTENT
`THE PROGRAM CONTENT
`
`RECEIVING A PURCHASE REQUEST FROM A LATE
`PURCHASING CLIENT FOR THE PROGRAM CONTENT
`DURING THE SECOND TIME PERIOD
`
`1850
`
`DISTRIBUTING THE PROGRAM CONTENTTO THE
`PURCHASING CLIENT WITHOUT INTERRUPTION OF
`
`1860.
`
`LATE PURCHASING CLIENT UNTIL THE PROGRAM CONTENT
`
`CAN BE DECRYPTED WITHOUT INTERRUPTING VIEWING OF
`
`21
`
`21
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 21 of 25
`
`US 2002/0172368 Al
`
`yale
`
`1920
`
`1904
`
`
`AUTHORI-|- ORIGIN
`CACHING
`ZATION
`CONTENT
`SERVER
`CENTER
`
`SERVER
`
`CLLENTOS)
`
`|208
`
`Fig. 9
`
`22
`
`22
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 22 of 25
`
`US 2002/0172368 Al
`
`2004
`
`2008
`
`2012
`
`2016
`
`2020
`
`2000
`
`2024
`
`2028
`
`2032
`
`ESTABLISH RULE DEFINING WHETHERCLIENT IS ENTITLED TO
`RECEIVE PROGRAM CONTENT
`
`
`
`ALLOW CLIENT TO REQUEST PROGRAM CONTENT FROM SERVER
`
`RECEIVING A REQUEST FOR THE PROGRAM CONTENT
`
`
`
`
`FORMAT DATA RECORD COMPRISING AN IDENTIFIER TO IDENTIFY
`THE PROGRAM CONTENT AND A RULE FOR THE PROGRAM
`CONTENT
`
`SIGN THE DATA RECORD
`
`
`
`UTILIZE TRUSTED THIRD PARTY TO SIGN DATA RECORD
`
`
`
`CONVEY DATA RECORD TO CLIENT
`
`CONVEY DATA RECORD TO CACHING SERVER
`
`FIG. 20A
`
`23
`
`23
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 23 of 25
`
`US 2002/0172368 Al
`
`VERIFY DATA INTEGRITY BY
`
`
`
`
`
`
`
`
`2036
`
`No
`
`
`
`IS CLIENT ENTITLED TO
`RECEIVE PROGRAM CONTENT
`9
`
`Yes
`
`DISTRIBUTE CONTENTKEY TO CLIENT
`
`DISTRIBUTE ENCRYPTED COPY OF PROGRAM MATERIAL FROM
`
`CACHING SERVER FOR USE BY CLIENTS
`
`2038
`
`2040
`
`FIG. 20B
`
`24
`
`24
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 24 of 25
`
`US 2002/0172368 Al
`
`CLIENT
`
`OBTAIN A PROGRAM CONTENTIDENTIFIER FROM
`
`OBTAIN THE USER'S SELECTED PAYMENT METHOD
`
`OBTAIN THE RULE(S) ASSOCIATED WITH THE
`PROGRAM CONTENTFOR USE BY CACHING SERVER
`IN DETERMING WHETHER THE CLIENT IS ENTITLED
`TO THE PROGRAM CONTENT
`
`Z110
`
`2120
`
`Z130
`
`
`
`RECEIVE A TICKET FROM THE CLIENT COMPRISING
`ENTITLEMENT INFORMATION
`
`2140
`
`2150
`
`Z100
`
`No
`
`END
`
`
`
`
`
`IS CLIENT ENTITLED TO
`THE PROGRAM CONTENT?
`
`
`
`VES
`
`DIRECT OR INDIRECT
`CONVEY KEY FOR,USE BY THE CLIENT IN
`
`DECRYPTING THE PROGRAM CONTENT
`
`2160
`
`Fic. ZI
`
`25
`
`25
`
`
`
`Patent Application Publication Nov. 21,2002 Sheet 25 of 25
`
`US 2002/0172368 Al
`
`2200
`
`
`
`RULE(S)
`
`DEFINING|RATING CLIENT'S
`
`
`
`
`
`AUTHENTI-
`
`ROCRAND|ACCESS TO| INFORMA- eoRctes|CATION
`
`
`
`
`
`
`
`
`
`
`
`
`
`PROGRAM
`ENCE
`DATA
`
`
`
`
`
`
`
`CONTENT
`
`FIG. 22
`
`LOCATION
`
`OF CLIENT
`
`AUTHENTI-
`SCRIPTIONG CATION
`OF CLIENT}
`DATA
`
`FIG, 23
`
`26
`
`26
`
`
`
`US 2002/0172368 Al
`
`Nov. 21, 2002
`
`INTIAL FREE PREVIEW FOR MULTIMEDIA
`MULTICAST CONTENT
`
`CROSS-REFERENCES TO RELATED
`APPLICATIONS
`
`[0001] This application claims the benefit of U.S. Provi-
`sional Application 60/243,925, filed on Oct. 26, 2000, which
`is hereby incorporated by reference for all purposes.
`
`[0002] This invention relates generally to the area of
`multicasting networks. More specifically,
`the invention
`relates to providing a preview portion of a program distrib-
`uted to clients on the network.
`
`BACKGROUND
`
`[0003] There are a variety of systems for distributing
`content, such as audiovisual content, to users across net-
`works. One example is pay-per-view programming in which
`a user pays for a program prior to viewing it. Another
`example is subscription based programming in which a user
`pays a subscription to a service provider in order to receive
`the programming for a particular channel for a prearranged
`period of time. For example, HBO™ or SHOWTIME™are
`examples of subscription based programs in which a user
`pays a monthly fee in order to receive any programs broad-
`cast on the designated channel for those programs. There-
`fore, the user is not required to pay for each individual show
`or event that occurs on those particular channels. Rather the
`subscription payment covers all programming.
`
`[0004] With the advent of multicasting networks, program
`content such as movies and music can now bedistributed in
`
`multicast transmissions across networks. For example, a
`server can multicast a movie across the internet to client
`computers. This can be accomplished by distributing the
`content to the address of each client simultaneously. How-
`ever, no cryptographic system appears to be in place to
`facilitate the commercialization of such transmissions.
`Namely, no cryptographic system appears to be in use which
`allows a user to preview a program that will later become
`encrypted and unavailable to the user.
`
`[0005] As a result, most multicast transmissions must be
`transmitted to a set of clients that are known ahead of time
`to be interested in the program content. This reduces the
`commercial benefit to the program content provider in that
`the program content provider can not entice other interested
`viewers into purchasing the program by providing a free
`preview of the program.
`
`SUMMARY
`
`In one embodimentof the invention a method of
`[0006]
`multicasting program material
`is provided by providing
`encrypted program material for distribution to a client;
`providing a key for use by the client; encrypting a first
`portion of the encrypted program material; distributing the
`first portion of the encrypted program material to the client,
`wherein the first portion of the encrypted program material
`is encrypted so that the client can decrypt
`the program
`material using the key so as to obtain a free preview of the
`program material.
`
`[0007] Acontent key can be provided to the client in one
`embodiment of the invention to allow the client to decrypt
`the first portion of the encrypted program material. Simi-
`
`27
`
`larly, a free preview key can be utilized at the server to either
`encrypt the first portion of the program material or encrypt
`the content key.
`
`In another embodiment a user interface can be
`[0008]
`utilized to allow the user at a client computer to purchase the
`content offered during the free preview.
`
`[0009] The free preview could, for example, take the form
`of a movie trailer prior to broadcast of the actual movie or
`an advertisement for the program material or a first portion
`of the actual movie.
`
`In another embodiment of the invention a method
`[0010]
`of multicasting program material is provided by providing
`program material for distribution to a client, distributing a
`first portion of the program material to the client in an
`unencrypted format, encrypting a remaining portion of the
`program, and distributing a remaining portion of the pro-
`gram to the client.
`
`[0011] One embodiment allows providing a key and uti-
`lizing the key to accomplish the encrypting of a remaining
`portion of the program. In addition, one embodiment may
`allow the user to purchase the program content as well as
`provide the user with a key that is operable to decrypt the
`encrypted portion of the program.
`
`‘Yet another embodimentof the invention provides
`[0012]
`a method of providing program material to multiple clients
`in a multicast system. The method comprises providing a
`server for communication with the multiple client comput-
`ers, configuring the server to be operable to provide a
`program to the plurality of client computers, providing a free
`preview of the program to the multiple client computers, and
`during the free preview providing the multiple client com-
`puters with keys that are operable to decrypt at least a
`portion of the encrypted program.
`
`[0013] Another embodiment of the invention provides
`articles of manufacture having computer executable instruc-
`tions operable for performing the above-stated methods.
`
`{0014] Further embodiments of the invention will be
`apparent to those of ordinary skill in the art from a consid-
`eration of the following description taken in conjunction
`with the following drawings. Certain methods, apparatuses,
`and articles of manufacture for practicing the embodiments
`of the invention are illustrated. However,
`it should be
`understood that the invention is not limited to the details
`disclosed but includesall such variations and modifications
`as fall within the spirit of the invention and the scope of the
`issued claims.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0015] FIG. 1 is a block diagram of an embodimentof a
`contentdistribution system such as those used for multicast-
`ing program content over the internet.
`
`[0016] FIG. 2 is a block diagram of an embodimentof a
`client computer portion of the content distribution system
`shown in FIG.1.
`
`FIG.3 is a flow chartillustrating one embodiment
`[0017]
`of the invention for providing a free preview to a client.
`
`[0018] FIG. 4 is a flow chartillustrating another embodi-
`ment of the invention for providing free preview content.
`
`27
`
`
`
`US 2002/0172368 Al
`
`Nov. 21, 2002
`
`[0019] FIG. 5 is a flow chart illustrating an embodiment
`of the invention for distributing an unencrypted portion of a
`program and an encrypted portion of a program.
`
`FIG.6 is a flow chart illustrating an embodiment
`[0020]
`of the invention to allow a free preview to be displayed.
`
`[0021] FIGS. 7A and 7B are graphs showing exemplary
`distribution of cryptographic keys during portions of a
`program.
`
`[0022] FIG. 8 illustrates a flow chart for distributing keys
`under one embodiment of the invention.
`
`[0023] FIG. 9 illustrates another flow chart for distribut-
`ing keys according to another embodimentof the invention.
`
`[0024] FIG. 10 illustrates a flow chart for one embodi-
`mentof the invention in which keys are multicast to multiple
`clients.
`
`[0025] FIG. 11 illustrates a flow chart demonstrating an
`embodiment of the invention in which clients request keys
`from a server for receiving multicast content.
`
`[0026] FIG. 12illustrates an embodimentof the invention
`for distributing keys to clients in which clients can send a
`confirmation message that a key wasreceived.
`
`[0027] FIG. 13 illustrates a flow chart for an embodiment
`of the invention in whicha list of active participants receiv-
`ing a program is created and clients send confirmation
`messages indicating that they should remain onthelist.
`
`[0028] FIG. 14illustrates a flow chart for an embodiment
`of the invention in which a modified RTP packetis created
`for signaling cryptographic key changes.
`
`[0029] FIG. 15 illustrates a flow chart according to one
`embodimentof the invention for providing a commonkey to
`clients in a multicast system.
`
`[0030] FIGS. 16A and 16B illustrate a flow chart accord-
`ing to one embodiment of the invention for providing an
`initial preview of program content.
`
`[0031] FIG. 17 illustrates a flow chart according to one
`embodiment of the invention for providing an adjustable
`initial key distribution period for purchasing program con-
`tent.
`
`[0032] FIG. 18 illustrates a flow chart according to one
`embodiment of the invention for providing uninterrupted
`viewing by a late purchasing client for program content.
`
`[0033] FIG. 19 shows a network for use in accordance
`with one embodimentof the invention.
`
`[0034] FIGS. 20A and 20B illustrate a flow chart for
`conveying data records from an origin content server to a
`cacheing server according to one embodimentof the inven-
`tion.
`
`[0035] FIG. 21 illustrates a flow chart according to one
`embodiment of the invention which provides for determin-
`ing whethera clientis entitled to program content based on
`at least one rule associated with the program content for use
`by a cacheing server.
`
`[0036] FIG. 22 illustrates a data structure according to one
`embodiment of the invention for conveying information
`from an origin content server to a cacheing server.
`
`[0037] FIG. 23 illustrates a data record according to one
`embodiment of the invention that can be provided for an
`individual client to define that particular client’s entitle-
`ments to different program content.
`
`DESCRIPTION OF THE SPECIFIC
`EMBODIMENTS
`
`[0038] Referring to FIG. 1, a block diagram of a content
`distribution system 100 is shown. In this embodiment, the
`contentdistribution system 100 includesan active directory
`104, one or more origin servers 108, one or more client
`computers 112, one or more content exchanges 116, one or
`more external origin servers 118, a network such as the
`internet 120, and a crawling directory 124. A particular
`client computer 112 is shown interacting with the active
`directory 104 to select a content object for downloading. The
`object can be played during download if it is a streaming
`media or can be stored for later display. The content object
`could be various types of information, such as audio, video,
`or data that is available to be downloaded from the network.
`Furthermore, it can be used for multicasting and/or unicast-
`ing.
`
`Insome embodiments,the origin servers 108 deter-
`[0039]
`mine the preferred source to direct the client computers in
`order to download content objects. The preference of the
`client computer 112 andthe location of copies of the content
`object are all considerations that the origin processor 108
`can use in redirecting the client computer to a preferred
`source of information. That source can be origin processor
`108 itself or one of the content exchanges 116.
`
`[0040] Content objects of an external origin processor 118
`can be preloaded to a content exchange(s) allocated to
`provide those content objects. To decrease latency when a
`content object is requested for the first time,
`the active
`directory 104 can call the external origin processor 118 to
`determine the content objects available from the external
`origin server 118. The available content objects may be
`added to the crawling directory 124. Once the available
`content objects are known, the active directory 104 can
`request each content object from the associated content
`exchange(s) in order to cause loading of each content object
`on the associated content exchange(s). In this way, content
`objects
`can be preloaded on the
`associated content
`exchanges.
`
`[0041] FIG. 2 broadly illustrates how individual system
`elements from FIG. 1 can be implemented in a separated or
`more integrated manner within various, generally similarly
`configured processing systems. System 200 is shown com-
`prised of hardware elements that are electrically coupled via
`bus 208, including a processor 201, input device 202, output
`device 203, storage device 204, computer-readable storage
`media reader 205a, communications system 206 processing
`acceleration (e.g., DSP or special-purpose processors) 207
`and memory 209. Computer-readable storage media reader
`205a is further connected to computer-readable storage
`media 205b, the combination comprehensively representing
`remote, local, fixed and/or removable storage devices plus
`storage media, memory, etc. for temporarily and/or more
`permanently containing computer-readable information,
`which can include storage device 204, memory 209 and/or
`any other such accessible system 200 resource. System 200
`also comprises software elements (shown as being currently
`
`28
`
`28
`
`
`
`US 2002/0172368 Al
`
`Nov. 21, 2002
`
`located within working memory 291) including an operating
`system 292 and other code 293, such as programs, applets,
`data and the like.
`
`[0042] System 200 is desirable as an implementation
`alternative largely due to its extensive flexibility and con-
`figurability. Thus, for example, a single architecture might
`be utilized to implement one or more servers that can be
`further configured in accordance with currently desirable
`protocols, protocol variations, extensions, etc. However,it
`will be apparent to those skilled in the art that substantial
`variations may well be utilized in accordance with more
`specific application requirements. For example, one or more
`elements might be implemented as sub-elements within a
`system 200 component(e.g. within communications system
`206). Customized hardware might also be utilized and/or
`particular elements might be implemented in hardware,
`software (including so-called “portable software,” such as
`applets) or both. Further, while connection to other comput-
`ing devices such as network input/output devices (not
`shown) may be employed,it is to be understood that wired,
`wireless, modem and/or other connection or connections to
`other computing devices might also be utilized. Distributed
`processing, multiple site viewing, information forwarding,
`collaboration, remote information retrieval and merging,
`and related capabilities are each contemplated. Operating
`system utilization will also vary depending onthe particular
`host devices and/or process types (e.g. computer, appliance,
`portable device, etc.) and certainly not all system 200
`components will be required in all cases.
`
`[0043] The network of FIG. 1 can be implemented in a
`variety of ways. For example, according to one embodiment,
`we can assume the use of User Datagram Protocol (UDP)
`which can carry “Real-Time Transport Protocol’/“Real-
`Time Control Protocol” (RTP/RTCP) “Internet Group Man-
`agement Protocol” (IGMP), “Real-Time Streaming Proto-
`col”
`(RTSP)
`and
`possibly
`“Session Announcement
`Protocol’”/“Session Description Protocol” (SAP/SDP). Fur-
`thermore, for purposes of multicast addressing, it can be
`assumed that multicast IP address allocation and assignment
`is transparent to any internet protocol rights management
`system. The session description can be distributed using
`either SAP protocol, RTSP ANNOUNCE commandor via
`HTTP. Also, as a business model, it can be assumed that
`pay-per-view, subscription, and pay-by-timeare all desirable
`purchase options. Furthermore, it is assumed that TV-like
`channel surfing is an expected user experience for broadcast
`like multicast distribution.
`
`[0044] The following terms used in this patent can be
`understood as follows:
`
`[0045] Content Provider—An entity that distributes con-
`tent, e.g.,
`to the caching servers while not necessarily
`consuming content.
`content
`[0046] Consumer—An entity that consumes
`obtained from a caching server and optionally redistributes
`content to other consumers in the system. The roles of
`consumer, caching server, and content provider can be
`viewed as a matrix of content sources and sinks, related by
`allowed behaviors and transfers.
`
`Program—Apieceofspecifically identified content
`[0047]
`with a beginning and an end.
`[0048] Service—A continuous collection of programs on
`the same stream.
`
`[0049] Ongoing Program—Aprogram that does not have
`a specifically defined beginning and end, which viewers
`usually join and leave at any time. This is suitable for “home
`shopping,”“fashion shows,” ongoing sports content, etc.
`
`[0050] Purchase Option—A mechanism allowinga client
`to purchase content.
`
`[0051] Subscription—A purchase mechanism in which the
`client registers and possibly pays for the content substan-
`tially ahead of time. The client typically gets authorized for
`more than one program (e.g., the entire service). When only
`a single program is authorized, it is known as Call-ahead
`PPV.
`
`[0052] Pay-Per-View (PPV)—A purchase mechanism in
`which the client registers and pays for a single program or
`packageat a time. This mechanism can be network-enabled,
`or locally enabled. In the network-enabled case, the client
`contacts the infrastructure once a purchase is desired, and
`the infrastructure enables the purchase. This approach often
`has scaling problems, due to peak demandprior to a pro-
`gram. In the locally enabled case, often called “IPPV”, or
`“Impulse” PPV, the client itself makes the purchase locally,
`and stores a record of the purchase. At somelater time, the
`record is reported to the infrastructure systems for billing.
`This approachis effective when events are being multicast,
`for example, as there is no spike of demand hitting the
`network prior to the program start. Also,
`in the locally
`enabled case, the client can view the content immediately, as
`there are no network latency or message exchangedelays. In
`either case, PPV purchases are typically for an entire pro-
`gram, regardless of how muchis actually watched.
`
`[0053] Pay-By-Time (PBT)—A purchase mechanism in
`whichthe client pays for the time duration of the content that
`was actually watched. The discrete time increments may
`have different durations for different programs or services.
`PBTis limited to a small set of programs and services for
`which a viewer can tolerate random access without loss of
`
`perceived value. Some sporting and music events are of this
`type.
`
`[0054] Pay-By-Quality (PBQ)—Content maybeoffered at
`a different quality (i.e., bit rates), either as separate streams
`or as layered streams with each additional layer adding
`quality to the content. The client may report the highest bit
`rate it can consume and be offered to purchase the content
`at that quality or less. The server may also adjust the rate in
`real time based on the immediate state of the network. If
`temporary network congestion is detected, the quality of the
`content may be decreased for a certain time period and then
`resume the advertised quality. The server may keep track of
`such occurrences and report them to the billing center, which
`could charge the user less than the original price. The client
`may also adjust
`the bit rate perceived by the user,
`in
`accordance with user selection. A thumbnail program, for
`example, has value to the user but notif its cost 1s equal to
`a full-screen, living room viewable program.
`
`