Patent ID: 8925109

Claim:
A method performed by data processing apparatus, the method comprising: obtaining a license, from a remote server, for a content item to be presented using a player file executed by a virtual machine multimedia player on a computing device, the license including an encryption key and an authorization to present the content item using one or more authorized player files that include one or more predetermined hash values; receiving the player file for use in presenting the content item; making a determination whether the player file is authorized for use in presenting the content item based on the authorization, said making the determination includes: computing one or more hash values using the player file, said computing includes using a plurality of nonlinear functions to generate the one or more hash values, and operations performed by the plurality of nonlinear functions are modified based on a key value that is selected based on the player file; identifying an input hash value; modifying the input hash value by iteratively applying a plurality of subsets of the nonlinear functions to data from the player file in parallel to generate a plurality of parallel hash values; combining the parallel hash values to generate an output hash value; comparing the one or more computed hash values with the one or more predetermined hash values; in response to a match being determined based on the comparison, authorizing the player file to present the content item; decrypting the content item using the encryption key; and presenting the content item using the player file executing on the virtual machine multimedia player in accordance with the determination.