Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer program product for executing a machine instruction, the computer program product comprising: a non-transitory computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising: obtaining, by a processor, a machine instruction for execution, the machine instruction being defined for computer execution according to a computer architecture, the machine instruction comprising: an opcode field to provide an opcode, the opcode to identify a perform pseudorandom number operation; and a register field to be used to identify a register, the register to specify a location in memory of a second operand to be used by the machine instruction; and executing the machine instruction, the executing comprising: obtaining a modifier (M) field of a register associated with the machine instruction; based on the M field having a first value, performing a deterministic pseudorandom number seed operation, the deterministic pseudorandom number seed operation comprising: obtaining seed material based on information included in the second operand; using a 512 bit secure hash technique and the seed material to provide one or more seed values; and storing the one or more seed values in a parameter block associated with the machine instruction.
2. The computer program product of claim 1 , wherein the machine instruction further comprises another register field to be used to identify another register, the another register to specify a location in memory of a first operand to be used by the machine instruction, and wherein the method further comprises: executing the machine instruction another time, the executing the machine instruction another time comprising: based on the M field having a second value, performing a deterministic pseudorandom number generate operation, the deterministic pseudorandom number generate operation comprising: for each block of memory of one or more blocks of memory of the first operand, generating a hash value using the 512 bit secure hash technique and at least one seed value of the one or more seed values in the parameter block, and storing at least a portion of the generated hash value in a corresponding block of memory of the first operand, the generated hash value being at least a portion of a pseudorandom number.
3. The computer program product of claim 1 , wherein the executing further comprises obtaining a function code from the register associated with the machine instruction, the function code to specify a function to be performed, and based on the function code being a particular value, obtaining the modifier field, and wherein the parameter block is located using another register associated with the machine instruction.
4. The computer program product of claim 1 , wherein the parameter block is configured to include a reseed counter to indicate a number of times the machine instruction has completed with a specific condition code since the parameter block was last instantiated or reseeded; a stream bytes field to track a number of bytes stored based on a generate operation; a value to indicate an internal state of a random number generator represented by the parameter block; and a constant value to be initialized by execution of a seed operation.
5. The computer program product of claim 1 , wherein the deterministic pseudorandom number seed operation further comprises forming the seed material, the forming based on a value of a reseed counter of the parameter block.
6. The computer program product of claim 5 , wherein based on the value of the reseed counter having one value, the forming comprises using the information of the second operand to form the seed material, the information comprising at least one of entropy input, nonce and a personalized string.
7. The computer program product of claim 5 , wherein based on the value of the reseed counter having another value, the forming comprises combining a selected value, contents of a value field of the parameter block, and the information of the second operand to form the seed material, the information comprising at least one of entropy input and additional input.
8. The computer program product of claim 1 , wherein the using the 512 bit secure hash technique to provide one or more seed values comprises using the 512 bit secure hash technique to provide a V new seed value, the using to provide the V new seed value comprising: providing a first counter, a selected value, the seed material and padding to the 512 bit secure hash technique; invoking the 512 bit secure hash technique using the first counter, the selected value, the seed material and the padding to obtain a first hashed result; providing a second counter, the selected value, the seed material and the padding to the 512 bit secure hash technique; invoking the 512 bit secure hash technique using the second counter, the selected value, the seed material and the padding to obtain a second hashed result; combining the first hashed result and the second hashed result to obtain a combined result; and using a portion of the combined result to provide the V new seed value.
9. The computer program product of claim 8 , wherein the using the 512 bit secure hash technique to provide the one or more seed values further comprises using the 512 bit secure hash technique to provide a C new seed value, the using to provide the C new seed value comprising: invoking the 512 bit secure hash technique using the first counter, the selected value, a defined value, the V new w seed value, and the padding to obtain a third hashed result; invoking the 512 bit secure hash technique using the second counter, the selected value, the defined value, the V new seed value, and the padding to obtain a fourth hashed result; combining the third hashed result and the fourth hashed result to obtain another combined result; and using a portion of the another combined result to provide the C new seed value.
10. The computer program product of claim 9 , wherein the combining the first hashed value and the second hashed value comprises concatenating the first hashed value and the second hashed value to provide the combined result, and the using a portion of the combined result comprises using a leftmost number of bytes of the combined result as V new ; and wherein the combining the third hashed value and the fourth hashed value comprises concatenating the third hashed value and the fourth hashed value to provide the another combined result, and the using a portion of the another combined result comprises using a leftmost number of bytes of the another combined result as C new .
11. A computer system for executing a machine instruction, the computer system comprising: a memory; and a processor in communications with the memory, wherein the computer system is configured to perform a method, said method comprising: obtaining, by a processor, a machine instruction for execution, the machine instruction being defined for computer execution according to a computer architecture, the machine instruction comprising: an opcode field to provide an opcode, the opcode to identify a perform pseudorandom number operation; and a register field to be used to identify a register, the register to specify a location in memory of a second operand to be used by the machine instruction; and executing the machine instruction, the executing comprising: obtaining a modifier (M) field of a register associated with the machine instruction; based on the M field having a first value, performing a deterministic pseudorandom number seed operation, the deterministic pseudorandom number seed operation comprising: obtaining seed material based on information included in the second operand; using a 512 bit secure hash technique and the seed material to provide one or more seed values; and storing the one or more seed values in a parameter block associated with the machine instruction.
12. The computer system of claim 11 , wherein the machine instruction further comprises another register field to be used to identify another register, the another register to specify a location in memory of a first operand to be used by the machine instruction, and wherein the method further comprises: executing the machine instruction another time, the executing the machine instruction another time comprising: based on the M field having a second value, performing a deterministic pseudorandom number generate operation, the deterministic pseudorandom number generate operation comprising: for each block of memory of one or more blocks of memory of the first operand, generating a hash value using the 512 bit secure hash technique and at least one seed value of the one or more seed values in the parameter block, and storing at least a portion of the generated hash value in a corresponding block of memory of the first operand, the generated hash value being at least a portion of a pseudorandom number.
13. The computer system of claim 11 , wherein the deterministic pseudorandom number seed operation further comprises forming the seed material, the forming based on a value of a reseed counter of the parameter block, and wherein based on the value of the reseed counter having one value, the forming comprises using the information of the second operand to form the seed material, the information comprising at least one of entropy input, nonce and a personalized string.
14. The computer system of claim 11 , wherein the deterministic pseudorandom number seed operation further comprises forming the seed material, the forming based on a value of a reseed counter of the parameter block, and wherein based on the value of the reseed counter having another value, the forming comprises combining a selected value, contents of a value field of the parameter block, and the information of the second operand to form the seed material, the information comprising at least one of entropy input and additional input.
15. The computer system of claim 11 , wherein the using the 512 bit secure hash technique to provide one or more seed values comprises using the 512 bit secure hash technique to provide a V new seed value, the using to provide the V new seed value comprising: providing a first counter, a selected value, the seed material and padding to the 512 bit secure hash technique; invoking the 512 bit secure hash technique using the first counter, the selected value, the seed material and the padding to obtain a first hashed result; providing a second counter, the selected value, the seed material and the padding to the 512 bit secure hash technique; invoking the 512 bit secure hash technique using the second counter, the selected value, the seed material and the padding to obtain a second hashed result; combining the first hashed result and the second hashed result to obtain a combined result; and using a portion of the combined result to provide the V new seed value.
16. The computer system of claim 15 , wherein the using the 512 bit secure hash technique to provide the one or more seed values further comprises using the 512 bit secure hash technique to provide a C new seed value, the using to provide the C new seed value comprising: invoking the 512 bit secure hash technique using the first counter, the selected value, a defined value, the V new seed value, and the padding to obtain a third hashed result; invoking the 512 bit secure hash technique using the second counter, the selected value, the defined value, the V new seed value and the padding to obtain a fourth hashed result; combining the third hashed result and the fourth hashed result to obtain another combined result; and using a portion of the another combined result to provide the C new seed value.
17. The computer system of claim 16 , wherein the combining the first hashed value and the second hashed value comprises concatenating the first hashed value and the second hashed value to provide the combined result, and the using a portion of the combined result comprises using a leftmost number of bytes of the combined result as V new ; and wherein the combining the third hashed value and the fourth hashed value comprises concatenating the third hashed value and the fourth hashed value to provide the another combined result, and the using a portion of the another combined result comprises using a leftmost number of bytes of the another combined result as C new .
Unknown
December 1, 2015
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.