US20140205093A1 - Method and system for generating a random number - Google Patents
Method and system for generating a random number Download PDFInfo
- Publication number
- US20140205093A1 US20140205093A1 US14/172,489 US201414172489A US2014205093A1 US 20140205093 A1 US20140205093 A1 US 20140205093A1 US 201414172489 A US201414172489 A US 201414172489A US 2014205093 A1 US2014205093 A1 US 2014205093A1
- Authority
- US
- United States
- Prior art keywords
- data storage
- storage location
- seed
- random number
- storage device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
Definitions
- the present invention relates to a method and system for generating a random number, and more particularly, to generating the random number using sector numbers within a disk drive.
- Random numbers are used in many applications, and especially in cryptography which is broadly defined as “the art and science of keeping data secure.” Three major elements of data security include authentication, confidentiality, and integrity.
- Authentication ensures that only an authorized user has access to data.
- An example protocol for authentication using a random number is as follows:
- the server responds with a random challenge which is a random number combined with other information
- the user encrypts the random challenge using its password as a key and returns the encrypted challenge to the server;
- the server encrypts the same random challenge with the user's password retrieved from its own database
- the server compares the two encrypted random challenges, and if they are the same, the user is authorized to have access to the data.
- the random challenge is used, the user is authorized without the user ever sending just the password over a network.
- the random challenge constantly changes over time for secure authorization.
- Data encryption is the process of combining plain text with a cryptographic key to generate encrypted data which ideally is impossible to decrypt without a decryption key. Random numbers, used for such encryption and description keys, are essential for data encryption.
- Integrity detects for undesired tampering to data using a digital signature which is a binary string of fixed length (i.e., a cryptography hash) unique to a given message and signed with the originator's private key.
- a user having the Originator's public key decrypts the message and is ensured that the owner of the private key originated the message. Random numbers are used to generate such digital signatures.
- random numbers are essential for the various data security protocols, and a higher degree of randomness of the random number enhances the level of security.
- FIGS. 1 and 2 show a flowchart and a system 100 for generating a random number according to the prior art.
- the system 100 includes a data processor 102 that receives a variable SEED from a system timer 104 (step 106 of FIG. 1 ).
- the system timer 104 generates SEED depending on the current time at the system 100 .
- the RANDOM NUMBER X(n+1) is generated as follows (step 110 of FIG. 1 ):
- Such an equation is an example of a linear congruential random number generator calculated by the data processor 102 of FIG. 2 .
- This equation for X(n+1) is described in the well-known book entitled The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie.
- steps 110 , 114 , and 116 are repeated until n>7 when X(1), X(2), X(3), X(4), X(5), X(6), X(7), and XeS) are generated and stored within the data buffer 112 .
- the binary bits of such random numbers X(1), X(2), X(3), X(4), X(5), X(6), X(7), and X(8) may be sequentially appended to form a random number of increased bits.
- each of the random numbers X(1), X(2), X(3), X(4), X(5), X(6), X(7), and X(8) is also eight bits long.
- X(1), X(2), X(3), X(4), X(5), X(6), X(7), and X(8) are sequentially appended together.
- Any random number generated from calculation by a data processor is not “purely random.” In contrast, tossing a dice or movement of an electron are “purely random” physical processes. Thus, a random number generated from calculation by a data processor is deemed to be “pseudo random.” Such a pseudo random number follows a same repeatable pattern when the starting SEED is the same, and there is only a finite set of possible SEED values.
- the quality (i.e., the level of randomness) of a pseudo random number generator depends on the quality of the SEED value.
- the SEED value is desired to be as random as possible and is desired to have high complexity meaning a high number of bits that are as unpredictable as possible.
- the prior art method and system of FIGS. 1 and 2 are disadvantageous because the SEED value from the timer 104 is comprised of only eight bits. In addition, because the SEED value is dependent on the current time from the timer 104 , such a value may not necessarily be unpredictable.
- HDD hard disk drives
- a hard disk drive has advantages of random access, high data transmission speed, low cost, and high capacity as compared with other auxiliary memory devices.
- hard disk drives are being widely used in storing multimedia data for example.
- a personal video recorder is generally used for storing digital audio/video (AV) data received from broadcasting stations on a hard disk drive and reproducing the stored digital AV data.
- the digital AV data is generally encrypted and scrambled, so that it cannot be used without a valid broadcast receiver.
- the digital AV data to be stored on the hard disk drive may be intercepted during transmission by an unauthorized third party.
- Korean Patent Publication No. 2001-27550 discloses a device for storing received digital AV data on a hard disk drive through repeated descrambling and encryption.
- the device includes a random number generator having a different initial value with respect to each broadcast receiver for such descrambling and encryption.
- a method of generating a random number in a data storage device can include generating a seed from a respective data storage location identifier for each of a plurality of data storage locations of the data storage device, wherein the seed is generated from a combination of the plurality of respective data storage location identifiers of the plurality of data storage locations before the random number is generated from the seed.
- the method can also include calculating the random number based on the seed.
- a system can include a processor adapted to generate a seed from a combination of data storage location identifiers for a plurality of data storage locations of a data storage device.
- the processor can also be adapted to generate a random number based on the seed.
- a data storage device can include a data storage memory having data storage locations addressable with data storage location identifiers and a processor unit coupled to the data storage memory and configured to generate a seed from a combination of a plurality of data storage location identifiers corresponding to data storage locations of the data storage device.
- the data storage device can also include a random number generator configured to generate a random number based on the seed.
- FIG. 1 is a flowchart of a prior art method of generating a random number
- FIG. 2 is a prior art system for generating the random number according to the method of FIG. 1 ;
- FIG. 3 is a block diagram of components within a HDD (hard disk drive) adapted to generate a random number according to an embodiment of the present invention
- FIG. 4 is a block diagram of a system implemented with components within the HDD in FIG. 3 for generating the random number according to an embodiment of the present invention
- FIG. 5 shows a flowchart of steps during operation of the system of FIG. 4 for generating the random number according to an embodiment of the present invention
- FIG. 6 shows a flowchart of steps during operation of the system of FIG. 5 for generating a seed using sector numbers according to an embodiment of the present invention
- FIG. 7 shows a magnetic disk of the HOD of FIG. 3 organized into tracks and sectors
- FIG. 8 shows an example ATA interface register storing the track number and the sector number for a sector to be accessed.
- FIG. 9 shows a flowchart of steps for generating a seed using sector numbers of sectors located on different tracks, according to another embodiment of the present invention.
- FIGS. 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , and 9 refer to elements having similar structure and/or function.
- the present invention is described herein for a HDD (hard disk drive). However, the present invention may be applied for generating a random number within any other types of disk drives having sectors that are accessed for read/write of data.
- FIG. 3 shows a block diagram of a disk drive 200 such as a HDD (hard disk drive) for example that stores data magnetically.
- a host system 202 accesses the disk drive 200 for reading/writing data from/to a magnetic disk 204 within the disk drive 200 .
- the disk drive 200 includes a disk interface 206 to the host system 202 .
- a MPU (main processing unit) 208 is a data processor that controls operation of the components of the disk drive 200 and is coupled to the disk interface 206 .
- the MPU 208 is also coupled to a data storage unit 210 that stores various instructions and data for operation of the
- MPU 208 is coupled to a read/write IC (integrated circuit) 211 for performing the read/write of data from/to the magnetic disk 204 .
- a pre-amplifier 212 amplifies signals from/to a magnetic head 214 used for reading/writing data from/to the magnetic disk 204 .
- the MPU 208 controls a VCM (voice coil motor) driver 216 that moves the magnetic head 214 with respect to the magnetic disk 204 .
- the MPU 208 also controls a SPM (spindle motor) driver 218 that rotates the magnetic disk 204 with respect to the magnetic head 214 .
- FIG. 3 for typical operations of read/write from/to the magnetic disk 204 are known to one of ordinary skill in the art.
- the components of the HDD 200 are further modified from the prior art to form a system 201 of FIG. 4 for generating a random number according to the present invention.
- the MPU 208 is modified to include a random number generator 252
- the data storage unit 210 is modified to store a plurality of sector numbers to generate a seed according to the present invention.
- the MPU 208 is modified to perform the steps of the flowcharts of FIGS. 5 , 6 , and/or 9 , especially when the HDD 200 is used within an application requiring data cryptography such as a PVR (personal video recorder) for processing A/V (audio/video) data.
- FIGS. 5 , 6 , and 9 show flowcharts of steps performed by the MPU 208 when executing sequences of instructions stored within the data storage unit 210 .
- FIG. 5 shows a flowchart of steps for generating a random number for data cryptography within the HDD 200 .
- the MPU 208 receives a request for data cryptography such as user authentication or data encryption (step 302 of FIG. 5 ).
- the MPU 208 generates a SEED using sector numbers within the HDD 200 (step 304 of FIG. 5 ).
- the MPU 208 uses such a SEED, the MPU 208 generates the RANDOM NUMBER with the random number generator 252 that is a linear congruential random number generator according to one embodiment of the present invention (step 306 of FIG. 5 ).
- the MPU 208 uses the RANDOM NUMBER for performing user authentication or data decryption (step 308 of FIG. 5 ).
- FIG. 6 shows a flowchart with detailed sub-steps for generating the SEED in step 304 of FIG. 5 .
- the MPU 208 then waits until the head 214 settles on a track of the magnetic disk 204 (step 314 of FIG. 6 ).
- the magnetic disk 204 is organized into a plurality of concentric tracks. Each track is then divided into a plurality of sectors. Thus, each sector on the disk 204 is labelled with TX,SY, with X referring to a track number and Y referring to a sector number.
- the host system 202 For reading/writing data from/to the disk 204 , the host system 202 specifies the track number and the sector number to be accessed for such a read/write operation via the disk interface 206 . Such information is transferred to the disk interface 206 according to the ATA/IDE standard as known to one of ordinary skill in the art.
- the disk interface 206 includes ATA interface registers 254 for storing such track and sector numbers.
- a first ATA interface register 256 stores the track number of the sector to be accessed, and a second ATA interface register 258 stores the sector number of the sector to be accessed.
- the first ATA interface register 256 is a 16-bit register for storing the selected track number
- the second ATA interface register 258 is an 8-bit register for storing the selected sector number.
- the magnetic head 214 settles to the track having the track number specified in the first ATA interface register 256 . Thereafter, the 8 -bit sector number S(n) stored in the second ATA interface register 258 is read and stored within the data storage unit 210 (steps 316 and 318 of FIG. 6 ). Thereafter, the MPU 208 waits a time period (step 320 of FIG. 6 ). In one embodiment of the present invention, such a time period depends on the value of the previous sector number S(n) read in step 316 .
- each of eight sector numbers S(0), S(1). S(2), S(3), S(4), S(5), S(6), and S(7) are read at a respective time point.
- Each of the sector numbers S(0), S(1). S(2), S(3), S(4), S(5), S(6), and S(7) are sequentially read in that order. Because the time points for reading such eight sector numbers is different, such sector numbers are likely to be different.
- each of the sector numbers is 8-bits long.
- the SEED is generated by appending the sector numbers S(0), S(1), S(2), S(3), S(4), S(5), S(6), and S(7) together in that order such that the SEED is 64 bits long.
- the maximum value for the variable n in step 322 is dictated by the bit-length of the sector number and the desired bit-length of the SEED.
- the sector numbers S(0), S(1), S(2), S(3), S(4), S(5), S(6), and S(7) are for sectors on a same track of the disk 204 .
- the sector numbers S(0), S(1), S(2), S(3), S(4), S(5), S(6), and S(7) are for sectors on different tracks of the disk 204 .
- the flowchart of FIG. 9 is followed such that the MPU determines whether the head has settled on a track before each sector number is read.
- the flowcharts of FIGS. 6 and 9 are similar except that the flowchart of FIG. 9 loops back to step 314 after n is incremented in step 324 .
- the flowchart of FIG. 9 has a different step 326 from the step 320 of FIG. 6 .
- the MPU 208 determines whether a same predetermined time period has elapsed between readings of the sector numbers. Such a predetermined time period may be selected to ensure that the sector number within the second ATA interface register 258 changes within such a predetermined time period.
- step 320 of FIG. 6 the time period elapsed between readings of the sector numbers varies depending on the value of the previously read sector number. Such variation advantageously adds further unpredictability to the read sector numbers and thus to the SEED generated with such sector numbers.
- the seed is generated using sector numbers of sectors that are accessed at various time points such that the seed is relatively unpredictable.
- the sector numbers are combined to form the seed having a relatively high number of bits for enhanced complexity.
- the seed that is generated with such unpredictability and complexity is used to generate a random number for secure data cryptography within the disk drive.
- the present invention is described herein for a HDD (hard disk drive).
- the present invention may be applied for generating a random number within any other types of disk drives having sectors that are accessed for read/write of data.
- the present invention may be used when the sector numbers are used with other functions or other combinations to generate the SEED.
- any numbers and values used herein are by way of example only.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
For generating a seed, such as for a random number, a plurality of data storage location identifiers, such as sectors, can be combined. A random number can be calculated using the seed. The selection of the data storage location identifiers can be time varied based on commands received from a host. The seed that is generated can have enhanced unpredictability and complexity for secure data cryptography.
Description
- The present application is a continuation of and claims priority to pending U.S. patent applications Ser. No. 10/872,838, filed Jun. 21, 2004, entitled “Method and System for Generating a Random Number in Disk Drive,”, which claimed priority to Korean Patent Application No. 2003-40481, filed on Jun. 21, 2003 in the Korean Intellectual Property Office, the contents of which are both hereby incorporated by reference in their entireties.
- 1. Field of the Invention
- The present invention relates to a method and system for generating a random number, and more particularly, to generating the random number using sector numbers within a disk drive.
- 2. Description of the Related Art
- Random numbers are used in many applications, and especially in cryptography which is broadly defined as “the art and science of keeping data secure.” Three major elements of data security include authentication, confidentiality, and integrity.
- Authentication ensures that only an authorized user has access to data. An example protocol for authentication using a random number is as follows:
- A. a user requests access to data that is password protected on a server;
- B. the server responds with a random challenge which is a random number combined with other information;
- C. the user encrypts the random challenge using its password as a key and returns the encrypted challenge to the server;
- D. the server encrypts the same random challenge with the user's password retrieved from its own database; and
- E. the server compares the two encrypted random challenges, and if they are the same, the user is authorized to have access to the data.
- In this manner, because the random challenge is used, the user is authorized without the user ever sending just the password over a network. In addition, because a random number is used, the random challenge constantly changes over time for secure authorization.
- Confidentiality ensures that an unauthorized person is not able to extract meaningful data from encrypted data. Data encryption is the process of combining plain text with a cryptographic key to generate encrypted data which ideally is impossible to decrypt without a decryption key. Random numbers, used for such encryption and description keys, are essential for data encryption.
- Integrity detects for undesired tampering to data using a digital signature which is a binary string of fixed length (i.e., a cryptography hash) unique to a given message and signed with the originator's private key. A user having the Originator's public key decrypts the message and is ensured that the owner of the private key originated the message. Random numbers are used to generate such digital signatures.
- In this manner, random numbers are essential for the various data security protocols, and a higher degree of randomness of the random number enhances the level of security.
-
FIGS. 1 and 2 show a flowchart and asystem 100 for generating a random number according to the prior art. Thesystem 100 includes a data processor 102 that receives a variable SEED from a system timer 104 (step 106 ofFIG. 1 ). Thesystem timer 104 generates SEED depending on the current time at thesystem 100. The data processor 102 then sets a variable X(n)=SEED, initially with n=O (step 108 ofFIG. 1 ). Next, the RANDOM NUMBER X(n+1) is generated as follows (step 110 ofFIG. 1 ): -
RANDOM NUMBER, X(n+1)=[1103515245*X(n)+12345]mod M - Such an equation is an example of a linear congruential random number generator calculated by the data processor 102 of
FIG. 2 . This equation for X(n+1) is described in the well-known book entitled The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie. Such an equation for X(n+1) includes modular arithmetic with mod M that returns a random integer in the range [0−(M−1)], when the SEED=X(O) is also in a range of [0−(M−1)]. For example, if the SEED=X(O) is eight bits long, the SEED is in a range of 0 to (28−1)=255, and M=256. - After the RANDOM NUMBER X(n+1) is calculated at
step 110 and if n is not greater than 7 (step 116 ofFIG. 1 ), X(n+1) is stored within a data buffer 112 in the system 100 (step 110 ofFIG. 1 ). In addition in that case, n is incremented by 1 (i.e., n=n+1) (step 116 ofFIG. 1 ), and the flowchart loops back tostep 110 to calculate the next X(n+1) with the incremented n. On the other hand, if n is great than 7, the flowchart ofFIG. 1 ends. - Thus,
steps timer 104 is just eight bits long, each of the random numbers X(1), X(2), X(3), X(4), X(5), X(6), X(7), and X(8) is also eight bits long. To generate a random number that is 64-bits long, X(1), X(2), X(3), X(4), X(5), X(6), X(7), and X(8) are sequentially appended together. - Any random number generated from calculation by a data processor is not “purely random.” In contrast, tossing a dice or movement of an electron are “purely random” physical processes. Thus, a random number generated from calculation by a data processor is deemed to be “pseudo random.” Such a pseudo random number follows a same repeatable pattern when the starting SEED is the same, and there is only a finite set of possible SEED values.
- Thus, the quality (i.e., the level of randomness) of a pseudo random number generator depends on the quality of the SEED value. The SEED value is desired to be as random as possible and is desired to have high complexity meaning a high number of bits that are as unpredictable as possible.
- The prior art method and system of
FIGS. 1 and 2 are disadvantageous because the SEED value from thetimer 104 is comprised of only eight bits. In addition, because the SEED value is dependent on the current time from thetimer 104, such a value may not necessarily be unpredictable. - Data security is becoming an important factor in HDD (hard disk drives) for modern consumer electronics. A hard disk drive has advantages of random access, high data transmission speed, low cost, and high capacity as compared with other auxiliary memory devices. Thus, hard disk drives are being widely used in storing multimedia data for example.
- In particular, a personal video recorder (PVR) is generally used for storing digital audio/video (AV) data received from broadcasting stations on a hard disk drive and reproducing the stored digital AV data. The digital AV data is generally encrypted and scrambled, so that it cannot be used without a valid broadcast receiver. However, the digital AV data to be stored on the hard disk drive may be intercepted during transmission by an unauthorized third party. Thus, various measures have been taken to prevent such interception. For example, Korean Patent Publication No. 2001-27550 discloses a device for storing received digital AV data on a hard disk drive through repeated descrambling and encryption. The device includes a random number generator having a different initial value with respect to each broadcast receiver for such descrambling and encryption.
- In any case, because data security is becoming such an important factor for hard disk drive applications, a mechanism for generating a random number with high randomness is desired.
- In some embodiments, a method of generating a random number in a data storage device can include generating a seed from a respective data storage location identifier for each of a plurality of data storage locations of the data storage device, wherein the seed is generated from a combination of the plurality of respective data storage location identifiers of the plurality of data storage locations before the random number is generated from the seed. The method can also include calculating the random number based on the seed.
- In other embodiments, a system can include a processor adapted to generate a seed from a combination of data storage location identifiers for a plurality of data storage locations of a data storage device. The processor can also be adapted to generate a random number based on the seed.
- In yet other embodiments, a data storage device can include a data storage memory having data storage locations addressable with data storage location identifiers and a processor unit coupled to the data storage memory and configured to generate a seed from a combination of a plurality of data storage location identifiers corresponding to data storage locations of the data storage device. The data storage device can also include a random number generator configured to generate a random number based on the seed.
- The above and other features and advantages of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings in which:
-
FIG. 1 is a flowchart of a prior art method of generating a random number; -
FIG. 2 is a prior art system for generating the random number according to the method ofFIG. 1 ; -
FIG. 3 is a block diagram of components within a HDD (hard disk drive) adapted to generate a random number according to an embodiment of the present invention; -
FIG. 4 is a block diagram of a system implemented with components within the HDD inFIG. 3 for generating the random number according to an embodiment of the present invention; -
FIG. 5 shows a flowchart of steps during operation of the system ofFIG. 4 for generating the random number according to an embodiment of the present invention; -
FIG. 6 shows a flowchart of steps during operation of the system ofFIG. 5 for generating a seed using sector numbers according to an embodiment of the present invention; -
FIG. 7 shows a magnetic disk of the HOD ofFIG. 3 organized into tracks and sectors; -
FIG. 8 shows an example ATA interface register storing the track number and the sector number for a sector to be accessed; and -
FIG. 9 shows a flowchart of steps for generating a seed using sector numbers of sectors located on different tracks, according to another embodiment of the present invention. - The figures referred to herein are drawn for clarity of illustration and are not necessarily drawn to scale. Elements having the same reference number in
FIGS. 1 , 2, 3, 4, 5, 6, 7, 8, and 9 refer to elements having similar structure and/or function. - The present invention is described herein for a HDD (hard disk drive). However, the present invention may be applied for generating a random number within any other types of disk drives having sectors that are accessed for read/write of data.
-
FIG. 3 shows a block diagram of adisk drive 200 such as a HDD (hard disk drive) for example that stores data magnetically. Ahost system 202 accesses thedisk drive 200 for reading/writing data from/to amagnetic disk 204 within thedisk drive 200. Thedisk drive 200 includes a disk interface 206 to thehost system 202. - A MPU (main processing unit) 208 is a data processor that controls operation of the components of the
disk drive 200 and is coupled to the disk interface 206. TheMPU 208 is also coupled to adata storage unit 210 that stores various instructions and data for operation of the -
MPU 208. In addition, theMPU 208 is coupled to a read/write IC (integrated circuit) 211 for performing the read/write of data from/to themagnetic disk 204. Apre-amplifier 212 amplifies signals from/to amagnetic head 214 used for reading/writing data from/to themagnetic disk 204. TheMPU 208 controls a VCM (voice coil motor)driver 216 that moves themagnetic head 214 with respect to themagnetic disk 204. TheMPU 208 also controls a SPM (spindle motor)driver 218 that rotates themagnetic disk 204 with respect to themagnetic head 214. The components ofFIG. 3 for typical operations of read/write from/to themagnetic disk 204 are known to one of ordinary skill in the art. - However, the components of the
HDD 200 are further modified from the prior art to form asystem 201 ofFIG. 4 for generating a random number according to the present invention. Referring toFIG. 4 , theMPU 208 is modified to include a random number generator 252, and thedata storage unit 210 is modified to store a plurality of sector numbers to generate a seed according to the present invention. - Furthermore, the
MPU 208 is modified to perform the steps of the flowcharts ofFIGS. 5 , 6, and/or 9, especially when theHDD 200 is used within an application requiring data cryptography such as a PVR (personal video recorder) for processing A/V (audio/video) data.FIGS. 5 , 6, and 9 show flowcharts of steps performed by theMPU 208 when executing sequences of instructions stored within thedata storage unit 210. -
FIG. 5 shows a flowchart of steps for generating a random number for data cryptography within theHDD 200. Referring toFIGS. 4 and 5 , theMPU 208 receives a request for data cryptography such as user authentication or data encryption (step 302 ofFIG. 5 ). Upon such a request, theMPU 208 generates a SEED using sector numbers within the HDD 200 (step 304 ofFIG. 5 ). Using such a SEED, theMPU 208 generates the RANDOM NUMBER with the random number generator 252 that is a linear congruential random number generator according to one embodiment of the present invention (step 306 ofFIG. 5 ). TheMPU 208 then uses the RANDOM NUMBER for performing user authentication or data decryption (step 308 ofFIG. 5 ). -
FIG. 6 shows a flowchart with detailed sub-steps for generating the SEED instep 304 ofFIG. 5 . Referring toFIGS. 3 , 4, 5, and 6, for generating the SEED, theMPU 208 sets a variable n=0 (step 312 ofFIG. 6 ). TheMPU 208 then waits until thehead 214 settles on a track of the magnetic disk 204 (step 314 ofFIG. 6 ). - Referring to
FIG. 7 , themagnetic disk 204 is organized into a plurality of concentric tracks. Each track is then divided into a plurality of sectors. Thus, each sector on thedisk 204 is labelled with TX,SY, with X referring to a track number and Y referring to a sector number.FIG. 7 shows three tracks with eight sectors per track for clarity of illustration and description. However, a typical disk of a modem HDD has tens of thousands of tracks and about 28=256 sectors per track. - For reading/writing data from/to the
disk 204, thehost system 202 specifies the track number and the sector number to be accessed for such a read/write operation via the disk interface 206. Such information is transferred to the disk interface 206 according to the ATA/IDE standard as known to one of ordinary skill in the art. Thus, referring toFIGS. 4 and 5 , the disk interface 206 includes ATA interface registers 254 for storing such track and sector numbers. A first ATA interface register 256 stores the track number of the sector to be accessed, and a secondATA interface register 258 stores the sector number of the sector to be accessed. In the ATA/IDE standard, the first ATA interface register 256 is a 16-bit register for storing the selected track number, and the secondATA interface register 258 is an 8-bit register for storing the selected sector number. - Referring back to step 314 of
FIG. 6 , themagnetic head 214 settles to the track having the track number specified in the first ATA interface register 256. Thereafter, the 8-bit sector number S(n) stored in the secondATA interface register 258 is read and stored within the data storage unit 210 (steps 316 and 318 ofFIG. 6 ). Thereafter, theMPU 208 waits a time period (step 320 ofFIG. 6 ). In one embodiment of the present invention, such a time period depends on the value of the previous sector number S(n) read instep 316. - When such a time period has elapsed and if the value n is not greater than 7 (step 322 of
FIG. 6 ), n is incremented by one, n=n+1 (step 324 ofFIG. 6 ), and the flowchart loops back tostep 316. With such looping back, steps 316, 318, 320, 322, and 324 are repeated with the incremented n to read a subsequent sector number stored within the secondATA interface register 258. - In this manner, each of eight sector numbers S(0), S(1). S(2), S(3), S(4), S(5), S(6), and S(7) are read at a respective time point. Each of the sector numbers S(0), S(1). S(2), S(3), S(4), S(5), S(6), and S(7) are sequentially read in that order. Because the time points for reading such eight sector numbers is different, such sector numbers are likely to be different. In the example embodiment of the present invention, each of the sector numbers is 8-bits long. In an example embodiment of the present invention, the SEED is generated by appending the sector numbers S(0), S(1), S(2), S(3), S(4), S(5), S(6), and S(7) together in that order such that the SEED is 64 bits long. Thus, the maximum value for the variable n in
step 322 is dictated by the bit-length of the sector number and the desired bit-length of the SEED. When n is greater than 7 instep 322, the SEED is generated by appending the sector numbers S(0), S(1), S(2), S(3), S(4), S(5), S(6), and S(7) in that order. Referring toFIGS. 6 and 7 , such a 64-bit SEED is used to determine the RANDOM NUMBER in step 306 ofFIG. 7 with M′=264 for the mod function. - In one embodiment of the present invention, the sector numbers S(0), S(1), S(2), S(3), S(4), S(5), S(6), and S(7) are for sectors on a same track of the
disk 204. In an alternative embodiment of the present invention, the sector numbers S(0), S(1), S(2), S(3), S(4), S(5), S(6), and S(7) are for sectors on different tracks of thedisk 204. In that case, the flowchart ofFIG. 9 is followed such that the MPU determines whether the head has settled on a track before each sector number is read. Thus, the flowcharts ofFIGS. 6 and 9 are similar except that the flowchart ofFIG. 9 loops back to step 314 after n is incremented instep 324. - Furthermore, in another embodiment of the present invention, the flowchart of
FIG. 9 has adifferent step 326 from thestep 320 ofFIG. 6 . Instep 326 ofFIG. 9 , theMPU 208 determines whether a same predetermined time period has elapsed between readings of the sector numbers. Such a predetermined time period may be selected to ensure that the sector number within the second ATA interface register 258 changes within such a predetermined time period. - In contrast, in
step 320 ofFIG. 6 , the time period elapsed between readings of the sector numbers varies depending on the value of the previously read sector number. Such variation advantageously adds further unpredictability to the read sector numbers and thus to the SEED generated with such sector numbers. - In this manner, the seed is generated using sector numbers of sectors that are accessed at various time points such that the seed is relatively unpredictable. In addition, the sector numbers are combined to form the seed having a relatively high number of bits for enhanced complexity. The seed that is generated with such unpredictability and complexity is used to generate a random number for secure data cryptography within the disk drive.
- The foregoing is by way of example only and is not intended to be limiting. For example, the present invention is described herein for a HDD (hard disk drive). However, the present invention may be applied for generating a random number within any other types of disk drives having sectors that are accessed for read/write of data. In addition, the present invention may be used when the sector numbers are used with other functions or other combinations to generate the SEED. Furthermore, any numbers and values used herein are by way of example only. Thus, it should be understood by those of ordinary skill in the art that various changes in form and details may be made without departing from the spirit and scope of the present invention as defined by the following claims.
Claims (20)
1. A method of generating a random number in a data storage device, comprising:
generating a seed from a respective data storage location identifier for each of a plurality of data storage locations of the data storage device, wherein the seed is generated from a combination of the plurality of respective data storage location identifiers of the plurality of data storage locations before the random number is generated from the seed; and
calculating the random number based on the seed.
2. The method of claim 1 , further comprising the respective data storage location identifier is a respective sector for each of a plurality of sectors of the data storage device.
3. The method of claim 1 , further comprising each of the respective data storage location identifiers is selected, at a respective time, from accessed data storage locations.
4. The method of claim 3 , further comprising a time period between reading a previous data storage location identifier and a subsequent data storage location identifier is determined based on the previous data storage location identifier.
5. The method of claim 4 , further comprising the time period between reading the previous data storage location identifier and a subsequent data storage location identifier varies based on a value of the previous data storage location identifier.
6. The method of claim 1 , further comprising performing data encryption based on the random number generator.
7. The method of claim 1 , further comprising sequentially appending each of the respective data storage location identifiers to generate the seed.
8. A system comprising:
a processor adapted to:
generate a seed from a combination of data storage location identifiers for a plurality of data storage locations of a data storage device; and
generate a random number based on the seed.
9. The system of claim 8 , further comprising a data storage unit and the processor is adapted to store the data storage location identifiers in the data storage unit.
10. The system of claim 8 , further comprising each of the respective data storage location identifiers is selected, at varying times, from accessed data storage locations.
11. The system of claim 8 , further comprising:
an interface coupled to the processor, the interface adapted to receive data access commands from a host system; and
the processor is adapted to select the data storage location identifiers for generating the seed from data storage location identifiers corresponding to the commands received from the host.
12. The system of claim 8 , further comprising the data storage device is a disk drive.
13. The system of claim 12 , further comprising the disk drive is a hard disk drive.
14. A data storage device comprising:
a data storage memory having data storage locations addressable with data storage location identifiers;
a processor unit coupled to the data storage memory and configured to generate a seed from a combination of a plurality of data storage location identifiers corresponding to data storage locations of the data storage device; and
a random number generator configured to generate a random number based on the seed.
15. The data storage device of claim 14 further comprising:
an interface coupled to the processor unit, the interface adapted to receive data access commands from a host; and
the processor unit is configured to select the plurality of data storage location identifiers for generating the seed from data storage location identifiers corresponding to the commands received from the host.
16. The data storage device of claim 15 , further comprising each of the plurality of data storage location identifiers for generating the seed is selected, at varying times, from data storage location identifiers received from the host.
17. The data storage device of claim 14 , further comprising the processor is configured to determine a time period between reading a previous data storage location identifier and a subsequent data storage location identifier based on the previous data storage location identifier.
18. The data storage device of claim 17 , further comprising the processor is configured to vary the time period between reading the previous data storage location identifier and a subsequent data storage location identifier based on a value of the previous data storage location identifier.
19. The data storage device of claim 12 , further comprising the data storage device is a disk drive.
20. The data storage device of claim 19 , further comprising the disk drive is a hard disk drive and the data storage memory is a magnetic disk.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/172,489 US20140205093A1 (en) | 2003-06-21 | 2014-02-04 | Method and system for generating a random number |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030040481A KR100712498B1 (en) | 2003-06-21 | 2003-06-21 | Method for generating a random number in hard disc drive |
KR200340481 | 2003-06-21 | ||
US10/872,838 US8650234B2 (en) | 2003-06-21 | 2004-06-21 | Method and system for generating a random number in disk drive |
US14/172,489 US20140205093A1 (en) | 2003-06-21 | 2014-02-04 | Method and system for generating a random number |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/872,838 Continuation US8650234B2 (en) | 2003-06-21 | 2004-06-21 | Method and system for generating a random number in disk drive |
Publications (1)
Publication Number | Publication Date |
---|---|
US20140205093A1 true US20140205093A1 (en) | 2014-07-24 |
Family
ID=33516438
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/872,838 Active 2032-08-07 US8650234B2 (en) | 2003-06-21 | 2004-06-21 | Method and system for generating a random number in disk drive |
US14/172,489 Abandoned US20140205093A1 (en) | 2003-06-21 | 2014-02-04 | Method and system for generating a random number |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/872,838 Active 2032-08-07 US8650234B2 (en) | 2003-06-21 | 2004-06-21 | Method and system for generating a random number in disk drive |
Country Status (3)
Country | Link |
---|---|
US (2) | US8650234B2 (en) |
JP (1) | JP4515166B2 (en) |
KR (1) | KR100712498B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256562B1 (en) * | 2012-10-04 | 2016-02-09 | Qlogic, Corporation | Method and system for communication between a computing system and a device |
US20170123913A1 (en) * | 2015-10-30 | 2017-05-04 | Seagate Technology Llc | Process for verification of randomly generated i/o requests |
CN108279864A (en) * | 2018-01-31 | 2018-07-13 | 上海集成电路研发中心有限公司 | System random number generation method |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100712498B1 (en) * | 2003-06-21 | 2007-04-27 | 삼성전자주식회사 | Method for generating a random number in hard disc drive |
US7330328B2 (en) * | 2006-02-17 | 2008-02-12 | Seagate Technology Llc | Random number generation using back electromotive force (BEMF) values |
JP4685693B2 (en) * | 2006-04-14 | 2011-05-18 | シーゲイト テクノロジー エルエルシー | Random number generation using back electromotive force value |
JP4689539B2 (en) * | 2006-06-01 | 2011-05-25 | キヤノン株式会社 | Data processing apparatus and method |
JP2009258141A (en) * | 2006-06-30 | 2009-11-05 | Kiyoto Yui | Infinite encryption/decryption device using infinite random number generation device and infinite encryption device |
US8131920B2 (en) * | 2007-12-06 | 2012-03-06 | Hitachi Global Storage Technologies, Netherlands B.V. | Method and system for dynamically allocating read and write sequence randomizer |
US8019935B2 (en) * | 2007-12-23 | 2011-09-13 | Hitachi Global Storage Technologies Netherlands, B.V. | Random number generation for a host system using a hard disk drive |
US20090161246A1 (en) * | 2007-12-23 | 2009-06-25 | Hitachi Global Storage Technologies Netherlands, B.V. | Random Number Generation Using Hard Disk Drive Information |
US10372528B1 (en) | 2014-12-15 | 2019-08-06 | Seagate Technology Llc | Random values from data errors |
US10338890B1 (en) | 2015-01-07 | 2019-07-02 | Seagate Technology Llc | Random values from data errors |
CN105447154B (en) * | 2015-11-30 | 2019-05-21 | 中国联合网络通信集团有限公司 | A kind of update method and more new system of entropy pool |
JP6980407B2 (en) * | 2016-05-30 | 2021-12-15 | ローム株式会社 | Random number generation method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5126889A (en) * | 1989-11-22 | 1992-06-30 | At&T Bell Laboratories | Technique for information protection on fault-tolerant redundant information storage devices |
US20030182259A1 (en) * | 2002-03-20 | 2003-09-25 | Pickett Terence Daniel | Method and system for automated tracing of an agricultural product |
US6833787B1 (en) * | 1999-10-07 | 2004-12-21 | Asap Software Express, Inc. | Method and system for device tracking |
US6986057B1 (en) * | 2000-08-07 | 2006-01-10 | Dallas Semiconductor Corporation | Security device and method |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2872665A (en) * | 1957-01-24 | 1959-02-03 | Lab For Electronics Inc | Input/output equipment |
US4694412A (en) * | 1982-09-22 | 1987-09-15 | Intel Corporation | Random number generator for use in an authenticated read-only memory |
JPH10211108A (en) * | 1997-01-30 | 1998-08-11 | Jiro Suyama | Broiled food cooking machine |
JP3910736B2 (en) | 1998-07-27 | 2007-04-25 | 株式会社東芝 | Disk storage device and servo sector address error detection method in the same device |
WO2000055736A1 (en) * | 1999-03-15 | 2000-09-21 | Koninklijke Philips Electronics N.V. | Copy-protection on a storage medium by randomizing locations and keys upon write access |
JP2001016593A (en) * | 1999-06-25 | 2001-01-19 | Mitsubishi Electric Corp | Image decoding display device |
EP1093121A1 (en) * | 1999-10-13 | 2001-04-18 | Matsushita Electric Industrial Co., Ltd. | Information recording medium, and method and apparatus for recording and reproducing information using the same |
US6792438B1 (en) * | 2000-03-31 | 2004-09-14 | Intel Corporation | Secure hardware random number generator |
JP3881513B2 (en) | 2000-12-28 | 2007-02-14 | 株式会社東芝 | Data recording apparatus and data recording method |
RU2298824C2 (en) | 2001-09-28 | 2007-05-10 | Хай Денсити Дивайсез Ас | Method and device for encoding/decoding data in high capacity memory device |
US6886023B2 (en) * | 2002-01-14 | 2005-04-26 | Ip-First, Llc | Apparatus for generating random numbers |
US6963952B1 (en) * | 2002-07-19 | 2005-11-08 | Sonic Solutions, Inc. | Multi-session optical media and methods for recording |
KR100712498B1 (en) * | 2003-06-21 | 2007-04-27 | 삼성전자주식회사 | Method for generating a random number in hard disc drive |
US8019935B2 (en) * | 2007-12-23 | 2011-09-13 | Hitachi Global Storage Technologies Netherlands, B.V. | Random number generation for a host system using a hard disk drive |
-
2003
- 2003-06-21 KR KR1020030040481A patent/KR100712498B1/en active IP Right Grant
-
2004
- 2004-06-21 US US10/872,838 patent/US8650234B2/en active Active
- 2004-06-21 JP JP2004182806A patent/JP4515166B2/en not_active Expired - Fee Related
-
2014
- 2014-02-04 US US14/172,489 patent/US20140205093A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5126889A (en) * | 1989-11-22 | 1992-06-30 | At&T Bell Laboratories | Technique for information protection on fault-tolerant redundant information storage devices |
US6833787B1 (en) * | 1999-10-07 | 2004-12-21 | Asap Software Express, Inc. | Method and system for device tracking |
US6986057B1 (en) * | 2000-08-07 | 2006-01-10 | Dallas Semiconductor Corporation | Security device and method |
US20030182259A1 (en) * | 2002-03-20 | 2003-09-25 | Pickett Terence Daniel | Method and system for automated tracing of an agricultural product |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256562B1 (en) * | 2012-10-04 | 2016-02-09 | Qlogic, Corporation | Method and system for communication between a computing system and a device |
US20170123913A1 (en) * | 2015-10-30 | 2017-05-04 | Seagate Technology Llc | Process for verification of randomly generated i/o requests |
US9934094B2 (en) * | 2015-10-30 | 2018-04-03 | Seagate Technology Llc | Process for verification of randomly generated I/O requests |
CN108279864A (en) * | 2018-01-31 | 2018-07-13 | 上海集成电路研发中心有限公司 | System random number generation method |
Also Published As
Publication number | Publication date |
---|---|
KR20040110924A (en) | 2004-12-31 |
JP2005011356A (en) | 2005-01-13 |
JP4515166B2 (en) | 2010-07-28 |
US20040258398A1 (en) | 2004-12-23 |
KR100712498B1 (en) | 2007-04-27 |
US8650234B2 (en) | 2014-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140205093A1 (en) | Method and system for generating a random number | |
US9009497B1 (en) | Secure methods for generating content and operating a drive based on identification of a system on chip | |
US6868404B1 (en) | Digital data recording device, digital data memory device, and digital data utilizing device for converting management information which contains restrictive information using a different key in each management information send/receive session | |
US7003674B1 (en) | Disk drive employing a disk with a pristine area for storing encrypted data accessible only by trusted devices or clients to facilitate secure network communications | |
US7770030B2 (en) | Content guard system for copy protection of recordable media | |
US6832319B1 (en) | Content guard system for copy protection of recordable media | |
CN1218239C (en) | Digital data file scrambler and its method | |
US8532296B2 (en) | Processor, memory device, computer system, and method for transferring data | |
US8296582B2 (en) | Method and system for providing copy-protection on a storage medium and storage medium for use in such a system | |
US20060002561A1 (en) | Apparatus and/or method for encryption and/or decryption for multimedia data | |
US6526010B1 (en) | Recording medium, method and apparatus for recording/reproducing information which has been scrambled using a medium identifier and a sector number | |
US20070276756A1 (en) | Recording/Reproducing Device, Recording Medium Processing Device, Reproducing Device, Recording Medium, Contents Recording/Reproducing System, And Contents Recording/Reproducing Method | |
CN1311456C (en) | Apparatus and method for reproducing user data | |
CN1462442A (en) | Method and device for decrypting encriphered data stored on record carrier | |
US20060277415A1 (en) | Content protection method and system | |
CN111954035A (en) | Method and device for encrypting video-audio signal stream | |
US20100031057A1 (en) | Traffic analysis resistant storage encryption using implicit and explicit data | |
JP4731034B2 (en) | Copyright protection system, encryption device, decryption device, and recording medium | |
US20100293390A1 (en) | Secure movie download | |
CN113055155A (en) | Data security storage method based on big data platform | |
CN1722052A (en) | Digital data file scrambler and its method | |
US20040252973A1 (en) | System and method for audio/video data copy protection | |
JP2001156771A (en) | Encrypted information transmission method, encrypted information transmitter and transmission medium | |
WO2004109688A1 (en) | System and method for audio/video data copy protection | |
EP1667451A2 (en) | Audio/video stream processing system and method for data copy protection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONMENT FOR FAILURE TO CORRECT DRAWINGS/OATH/NONPUB REQUEST |