Please refer to
According to this embodiment, the processing module 110 is capable of generating at least one candidate number array CA comprising a plurality of candidate numbers respectively corresponding to a plurality of candidate addresses Add-1, Add-2, . . . , and Add-N (not shown), where a candidate number can be selected by assigning a candidate address. As shown in
According to this embodiment, the address generating module 130 is capable of generating at least one specific address according to at least one generator polynomial, and each specific address is a candidate address within the plurality of candidate addresses Add-1, Add-2, . . . , and Add-N. In this embodiment, the address generating module 130 generates M specific addresses Add-I(1), Add-I(2), . . . , and Add-I(M) according to a plurality of generator polynomials, and more particularly, generates the M specific addresses according to coefficients of the plurality of generator polynomials, where the coefficients of the generator polynomials can be utilized as a plurality of bits of data for generating indexes representing specific addresses. The number M mentioned above is a positive integer greater than one, and I(m) (where m=1, 2, . . . , M) represents a number out of 1, 2, . . . , and N. That is, each of these specific addresses Add-I(l), Add-I(2), . . . , and Add-I(M) is a candidate address within the candidate addresses Add-1, Add-2, . . . , and Add-N.
Within the candidate number arrays CA11, CA12, CA13, . . . , etc. sequentially sent from the processing module 110, the processing module 120 is capable of selecting candidate numbers corresponding to the M specific addresses Add-I(1), Add-I(2), . . . , and Add-I(M) as random numbers, where the operations mentioned above can be explained in detail as follows.
Within the first candidate number array CA11 sent from the processing module 110, the processing module 120 first selects a candidate number corresponding to the specific address Add-I(1) as a random number. The first candidate number array CA11 can be utilized a plurality of times, for example, K1 times, and within the first candidate number array CA11, the processing module 120 sequentially selects the candidate numbers corresponding to the specific addresses Add-I(1), Add-I(2), . . . , and Add-I(K1) as random numbers. Then, one of the processing modules 110 and 120 determines to change the candidate number array that is utilized currently, where the processing module for determining changing the candidate number array that is utilized currently is the host processing module in this embodiment, i.e. the processing module 110. As a result, within the candidate number array CA12, the processing module 120 sequentially selects the candidate numbers corresponding to the specific addresses Add-I(K1+1), Add-I(K1+2), . . . , and Add-I(K1+K2) as random numbers. Afterwards, within the candidate number array CA13, the processing module 120 sequentially selects the candidate numbers corresponding to the specific addresses Add-I(K1+K2+1), Add-I(K1+K2+2), . . . , and Add-I(K1+K2+K3) as random numbers. According to an implementation choice of this embodiment, the operations mentioned above can be continued till the candidate number corresponding to the specific address Add-I(M) is selected as a random number. The operations mentioned above can also be continued by overriding the latest random number array from the processing module 110 to the processing module 120, in order to generate new random numbers according to the latest specific addresses continuously. Please note that specific addresses of different cyclic periods can be generated according to different generator polynomials, so by the operations mentioned above, the present invention is capable of eliminating the prior art problems such as periodic appearance of random numbers within a random number sequence. According to this embodiment, the processing module 120 is a digital image halftone processing module for correcting patterns due to quantization errors according to the generated random numbers.
According to a variation of this embodiment, the processing module 120 is a communication processing module for performing encryption/decryption processing according to the generated random numbers, where the override mechanism mentioned above makes the encrypted communication content hard to be decrypted. According to another variation of this embodiment, the processing modules 110 and 120 can be respectively installed in a host personal computer (PC) and a slave PC, where the processing module 110 is a communication processing module for generating random numbers according to the generated random number array to perform encryption processing, and the processing module 120 is a communication processing module for generating random numbers according to the latest random number array sent from the processing module 110 to perform decryption processing.
According to another variation of this embodiment, values of the numbers K1, K2, K3, . . . , etc. are determined according to a common predetermined value, where the values of the numbers K1, K2, K3, . . . , etc. are equal to each other. According to another variation of this embodiment, values of the numbers K1, K2, . . . , etc. can be randomly defined, where the operations of randomly defining the values of the numbers K1, K2, . . . , etc. can be utilized for eliminating the prior art problems such as periodic appearance of random numbers within a random number sequence.
According to another embodiment of the present invention, which is also a variation of this embodiment mentioned above, the mechanism that determines whether to change the candidate number array that is utilized currently, for example, the processing module 110 or the processing module 120, determines whether to override the latest random number array from the processing module 110 to the processing module 120 according to a function of time. According to a variation of this embodiment, the latest random number array is periodically overridden from the processing module 110 to the processing module 120. According to another variation of this embodiment, the latest random number array is randomly overridden from the processing module 110 to the processing module 120, where the operations of randomly overriding the latest random number array can be utilized for eliminating the prior art problems such as periodic appearance of random numbers within a random number sequence.
According to a variation of the embodiment shown in
According to another variation of the embodiment shown in
Please refer to
According to an implementation choice of this embodiment, if the random number generating method mentioned above is implemented by utilizing software, operations corresponding to the address generating module 130 can be integrated into one of the processing modules 310 and 320. For example, the operations corresponding to the address generating module 130 are integrated into the processing module 310 in this embodiment. Similar descriptions are not repeated in detail.
According to a variation of this embodiment, the processing modules 310 and 320 can be software modules of different program codes, respectively. For example, the processing module 310 can be a procedure installed within an operating system (OS), and the processing module 320 can be an operation module installed within an application program.
Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
095123791 | Jun 2006 | TW | national |