1. A method of identifying a congruency of media data, the method comprising:
accessing a first mood profile digest comprising a first vector including a first plurality of first mood categories, each having an associated value;
accessing a second mood profile digest comprising a second vector including a second plurality of second mood categories, each having an associated value;
determining that at least one first mood category is similar to at least one second mood category based on a correlates matrix that quantifies a similarity relationship between the first mood category and the second mood category,
the determining including calculation of a normalized comparison vector of the first mood profile digest in accordance with
A
comp
\u2061
n
=
\u2211
m
=
1
M
\u2062
A
score
\u2061
m
\xd7
C
\u2061
(
A
category
\u2061
m
,
A
category
\u2061
n
)
,
wherein Acompn is an nth element of the normalized comparison vector Acomp, Ascorem is a score of an mth element of the first mood profile digest A, Acategorym is a first mood category of the mth element of the first mood profile digest A, and C(x,y) is a comparison value between the first and second mood categories x and y as indicated in the correlates matrix; and
dependent upon the similarity between the first mood category and the second mood category,
comparing the value associated with the first mood category with the value associated with the second mood category,
the comparing of the values being performed by a processor of a machine; and
generating a similarity score representing a degree of congruency between the first mood profile digest and the second mood profile digest based on the comparing of the associated values.
2. The method of claim 1, wherein
the first mood profile digest is a portion of a first mood profile; and
the second mood profile digest is a portion of a second mood profile.
3. The method of claim 1, wherein
the first mood profile digest is a summarization of a first mood profile; and
the second mood profile digest a summarization of a second mood profile.
4. The method of claim 1 further comprising:
comparing a further value associated with a further first mood category of the first plurality of first mood categories with a further value associated with a further second mood category of the second plurality of second mood categories; and wherein
the generating of the similarity score is based on the comparing of the further values.
5. The method of claim 1, wherein
the correlates matrix contains a comparative value indicating an extent of similarity between the first mood category and the second mood category; and wherein
the comparing of the value associated with the first mood category with the value associated with the second mood category is based on the comparative value.
6. The method of claim 5, further comprising:
generating a first set of normalized values based on the comparative value and based on values associated with the first plurality of first mood categories;
generating a second set of normalized values based on the comparative value and based on values associated with the second plurality of second mood categories; and wherein
the generating of the similarity score is based on the first set of normalized values and based on the second set of normalized values.
7. The method of claim 6, further comprising
determining that the first mood category and the second mood category are different mood categories; and wherein
the generating of at least one of the first set of normalized values or the second set of normalized values is based on the determining that the first mood category in the second mood category are not the same.
8. The method of claim 6, wherein
the first mood category is predominant among the first plurality of first mood categories, based on the value associated with the first mood category being largest within the first vector;
the second mood category is predominant among the second plurality of second mood categories, based on the value associated with the second mood category being largest within the second vector; and the method further comprises
identifying the comparative value within the correlates matrix based on the first and second mood categories being predominant.
9. The method of claim 1, wherein:
the first mood profile digest is associated with a first recording;
the second mood profile digest is associated with a second recording; and the method further comprises
retrieving the second recording from a database based on the similarity score exceeding a threshold similarity.
10. The method of claim 1, further comprising:
communicating an audio identifier to a server,
the audio identifier identifying an audio recording accessible by a media player;
receiving the first mood profile digest from the server,
the first mood profile digest identifying at least one mood associated with the audio recording; and
selecting the second mood profile digest from a set of mood profile digests received from the server.
11. A non-transitory machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:
accessing a first mood profile digest comprising a first vector including a first plurality of first mood categories, each having an associated value;
accessing a second mood profile digest comprising a second vector including a second plurality of second mood categories, each having an associated value;
determining that at least one first mood category is similar to at least one second mood category based on a correlates matrix that quantifies a similarity relationship between the first mood category and the second mood category,
the determining including calculation of a normalized comparison vector of the first mood profile digest in accordance with
A
comp
\u2061
n
=
\u2211
m
=
1
M
\u2062
A
score
\u2061
m
\xd7
C
\u2061
(
A
category
\u2061
m
,
A
category
\u2061
n
)
,
wherein Acompn is an nth element of the normalized comparison vector Acomp, Ascorem is a score of an mth element of the first mood profile digest A, Acategorym is a first mood category of the mth element of the first mood profile digest A, and C(x,y) is a comparison value between the first and second mood categories x and y as indicated in the correlates matrix; and
dependent upon the similarity between the first mood category and the second mood category,
comparing the value associated with the first mood category with the value associated with the second mood category, the comparing of the values being performed by the one or more processors of the machine; and
generating a similarity score representing a degree of congruency between the first mood profile digest and the second mood profile digest based on the comparing of the associated values.
12. The non-transitory machine-readable storage medium of claim 11, wherein:
the correlates matrix contains a comparative value indicating an extent of similarity between the first mood category and the second mood category; and wherein
the comparing of the value associated with the first mood category with the value associated with the second mood category is based on the comparative value.
13. The non-transitory machine-readable storage medium of claim 12, wherein the operations further comprise:
generating a first set of normalized values based on the comparative value and based on values associated with the first plurality of first mood categories;
generating a second set of normalized values based on the comparative value and based on values associated with the second plurality of second mood categories; and wherein
the generating of the similarity score is based on the first set of normalized values and based on the second set of normalized values.
14. The non-transitory machine-readable storage medium of claim 13, wherein the operations further comprise:
determining that the first mood category and the second mood category are different mood categories; and wherein
the generating of at least one of the first set of normalized values or the second set of normalized values is based on the determining that the first mood category in the second mood category are not the same.
15. The non-transitory machine-readable storage medium of claim 13, wherein:
the first mood category is predominant among the first plurality of first mood categories, based on the value associated with the first mood category being largest within the first vector;
the second mood category is predominant among the second plurality of second mood categories, based on the value associated with the second mood category being largest within the second vector; and the operations further comprise
identifying the comparative value within the correlates matrix based on the first and second mood categories being predominant.
16. Apparatus comprising:
a mood determining module configured to:
access a first mood profile digest comprising a first vector including a first plurality of first mood categories, each having an associated value; and
access a second mood profile digest comprising a second vector including a second plurality of second mood categories, each having an associated value; and
a processor configured by a mood comparing module to:
determine that at least one first mood category is similar to at least one second mood category based on a correlates matrix that quantifies a similarity relationship between the first mood category and the second mood category,
the determining including calculation of a normalized comparison vector of the first mood profile digest in accordance with
A
comp
\u2061
n
=
\u2211
m
=
1
M
\u2062
A
score
\u2061
m
\xd7
C
\u2061
(
A
category
\u2061
m
,
A
category
\u2061
n
)
,
wherein Acompn is an nth element of the normalized comparison vector Acomp, Ascorem is a score of an mth element of the first mood profile digest A, Acategory m is a first mood category of the mth element of the first mood profile digest A, and C(x,y) is a comparison value between the first and second mood categories x and y as indicated in the correlates matrix; and
dependent upon the similarity between the first mood category and the second mood category,
compare the value associated with the first mood category with the value associated with the second mood category; and
generate a similarity score representing a degree of congruency between the first mood profile digest and the second mood profile digest based on the comparing of the associated values.
17. The apparatus of claim 16, wherein:
the correlates matrix contains a comparative value indicating an extent of similarity between the first mood category and the second mood category; and wherein
the mood comparing module configures the processor to compare the value associated with the first mood category with the value associated with the second mood category based on the comparative value.
18. The apparatus of claim 17, wherein:
the mood comparing module configures the processor to:
generate a first set of normalized values based on the comparative value and based on values associated with the first plurality of first mood categories; and
generate a second set of normalized values based on the comparative value and based on values associated with the second plurality of second mood categories; and wherein
the generating of the similarity score is based on the first set of normalized values and based on the second set of normalized values.
19. The apparatus of claim 18, wherein:
the mood comparing module configures the processor to determine that the first mood category and the second mood category are different mood categories; and
the generating of at least one of the first set of normalized values or the second set of normalized values is based on the determining that the first mood category in the second mood category are not the same.
20. The apparatus of claim 18, wherein:
the first mood category is predominant among the first plurality of first mood categories, based on the value associated with the first mood category being largest within the first vector;
the second mood category is predominant among the second plurality of second mood categories, based on the value associated with the second mood category being largest within the second vector; and
the mood comparing module configures the processor to identify the comparative value within the correlates matrix based on the first and second mood categories being predominant.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method comprising:
receiving a software update at a computing device having an existing software application, the existing software application having an historic publicprivate key pair including an historic private key and an historic public key, the historic private key usable by the existing software application to access historic protected content, the historic protected content previously protected using the historic public key and the existing software application; and
applying the software update to the existing software application to provide an updated software application, applying the software update including:
retaining the historic private key for use by the updated software application to access the historic protected content, the historic private key not usable to access new protected content, the new protected content protected by a new public key and the updated software application; and
generating a new publicprivate key pair locally at the computing device, the new publicprivate key pair including the new public key and a new private key, the new public key usable to protect content to provide the new protected content, the new private key usable by the updated software application to access the new protected content.
2. The method as recited in claim 1, further comprising:
submitting a request for content to a content provider, the request including the new public key;
receiving the requested content from the content provider, the requested content protected using the new public key; and
accessing the requested content using the new private key.
3. The method as recited in claim 2, wherein the content is an audio or video file.
4. The method as recited in claim 1, wherein the software update includes a symmetric key and applying the software update further includes:
encrypting the new private key at the computing device using the symmetric key to create an encrypted private key thereby preventing the new private key from being determined by unauthorized software applications or users; and
storing the encrypted private key within a key file located at the computing device, the updated software application capable of accessing the new private key by decrypting the encrypted private key using the symmetric key.
5. The method as recited in claim 4, wherein the software update includes an historic symmetric key and the key file includes the historic private key in an encrypted form that can be decrypted using the historic symmetric key.
6. The method as recited in claim 4, wherein applying the software update includes retaining an historic symmetric key and the key file includes the historic private key in an encrypted form that can be decrypted using the historic symmetric key.
7. The method as recited in claim 4, wherein:
an original installation of the existing software application has sub-versions each associated with other symmetric keys;
a particular sub-version of the sub-versions is selected based on device-specific information associated with the computing device;
the software update is one of multiple software updates, each of the multiple software updates associated with one of the sub-versions of the original installation of the existing software application; and
the software update and the symmetric key are associated with the particular sub-version and the software update does not include symmetric keys associated with others of the sub-versions.
8. The method as recited in claim 4, wherein encrypting the new private key includes altering one or more cryptographic algorithms using device-specific information unique to the computing device.
9. The method as recited in claim 8, wherein altering the cryptographic algorithms includes setting an initialization vector of at least one of the cryptographic algorithms using the device-specific information.
10. The method as recited in claim 8, wherein device-specific information includes one or more of:
a serial number associated with one or more hardware components of the computing device;
a hardware identifier associated with one or more hardware components of the computing device;
a media-access-control (MAC) address associated with a network adapter of the computing device; or
a globally-unique-identifier (GUID) associated with the computing device.
11. The method as recited in claim 4, wherein the symmetric key is created by a key authority using a key-file-key seed, the key-file-key seed altering one or more cryptographic algorithms so that a master-secret key is capable of deriving the symmetric key.
12. The method as recited in claim 1, wherein generating the new publicprivate key pair includes altering one or more cryptographic algorithms using device-specific information unique to the computing device.
13. The method as recited in claim 12, wherein altering the cryptographic algorithms includes setting an initialization vector of at least one of the cryptographic algorithms using the device-specific information.
14. The method as recited in claim 12, wherein device-specific information includes one or more of:
a serial number associated with one or more hardware components of the computing device;
a hardware identifier associated with one or more hardware components of the computing device;
a media-access-control (MAC) address associated with a network adapter of the computing device; or
a globally-unique-identifier (GUID) associated with the computing device.
15. A method comprising:
selecting one or more historic symmetric keys associated with an existing software application on a remote computing device, the historic symmetric keys for decrypting one or more encrypted historic private keys stored at the remote computing device to provide one or more historic private keys for accessing historic protected content previously protected using the existing software application; and
sending a software update to the remote computing device, the software update including a new symmetric key and the one or more historic symmetric keys and capable, once applied to the existing software application by the remote computing device, of providing an updated software application, the new symmetric key for encrypting a new private key generated at the remote computing device, the new private key for accessing new protected content protected using the updated software application.
16. The method as recited in claim 15, further comprising generating the new symmetric key using a key-file-key seed, the key-file-key seed altering one or more cryptographic algorithms to provide a master-secret key encrypted using the new symmetric key.
17. The method as recited in claim 15, wherein selecting the one or more historic symmetric keys includes selecting the software update from a set of software updates, each software update associated with one of multiple sub-versions of an original installation of the existing software application.
18. One or more tangible computer-readable media having stored thereon computer-executable instructions that, if executed by a computing device, cause the computing device to perform a method comprising:
receiving a software update at the computing device, the computing device including an existing software application having an historic publicprivate key pair including an historic private key and an historic public key, the historic private key usable by the existing software application to access historic protected content, the historic protected content previously protected using the historic public key and the existing software application; and
applying the software update to the existing software application to provide an updated software application, applying the software update including:
retaining the historic private key for use by the updated software application to access the historic protected content, the historic private key not usable to access new protected content, the new protected content protected by a new public key and the updated software application; and
generating a new publicprivate key pair locally at the computing device, the new publicprivate key pair including the new public key and a new private key, the new public key usable to protect content to provide the new protected content, the new private key usable by the updated software application to access the new protected content.
19. The media as recited in claim 18, wherein the software update includes a symmetric key and applying the software update further includes:
encrypting the new private key at the computing device using the symmetric key to create an encrypted private key; and
storing the encrypted private key within a key file located at the computing device, the updated software application capable of accessing the new private key by decrypting the encrypted private key using the symmetric key.
20. The media as recited in claim 19, wherein the software update includes an historic symmetric key and the key file includes the historic private key in an encrypted form that can be decrypted using the historic symmetric key.