1. A control method for use in controlling a short protection mechanism providing short protection to a plurality of light-emitting diode (LED) chains, wherein a plurality of driving currents flow through the LED chains, the control method comprising:
detecting whether at least one of the driving currents encounters an under-current event;
blocking a short protection mechanism when the under-current event is encountered, wherein the short protection mechanism provides short protection to the LED chains; and
resuming the short protection mechanism after the short protection mechanism is blocked for at least a predetermined time period.
2. The control method of claim 1, further comprising:
resetting a timer when the under-current event is encountered.
3. The control method of claim 2, further comprising:
resetting the timer every time the under-current event is encountered.
4. The control method of claim 2, further comprising:
pausing the timer when a dimming signal is disabled.
5. The control method of claim 2, wherein the timer is a counter, and the counter counts according to a clock signal when the short protection mechanism is blocked.
6. The control method of claim 1, further comprising:
resetting a clock every time the under-current event is encountered; and
resuming the short protection mechanism when a count result of the counter exceeds a predetermined result.
7. The control method of claim 2, further comprising:
detecting the LED chains to regulate an output power, wherein the output power is used for driving the LED chains;
detecting the output power; and
starting the timer after the output power exceeds an over-voltage value.
8. The control method of claim 2, further comprising:
detecting the LED chains to regulate an output power, wherein the output power is used for driving the LED chains;
comparing the output power with an over-voltage value; and
starting the timer after the output power exceeds the over-voltage value and the under-current event is encountered.
9. A short protection control circuit for controlling a short protection mechanism, wherein the short protection mechanism provides short protection applied to a plurality of light-emitting diode (LED) chains, the short protection control circuit comprising:
a detection circuit coupled to the LED chains for generating an indication signal whenever any terminal voltage of the LED chains is lower than an under-current reference value;
a first logic circuit for starting blocking of the short protection mechanism when the indication signal is enabled; and
a timer for counting time when the short protection mechanism is blocked to generate a timing result;
wherein the first logic circuit resumes the short protection mechanism after the timing result indicates that the short protection mechanism has been blocked for at least a predetermined time period.
10. The short protection control circuit of claim 9, wherein the detection circuit comprises:
at least one pulse generator for emitting a pulse to start blocking the short protection mechanism whenever any one of the terminal voltages is lower than the under-current reference value.
11. The short protection control circuit of claim 10, wherein the pulse resets the timer.
12. The short protection control circuit of claim 9, wherein the timer has a clock input terminal, the short protection control circuit further comprising:
a second logic circuit for sending a clock signal to the clock input terminal when a dimming signal is enabled.
13. The short protection control circuit of claim 9, wherein the timer has a clock input terminal, the short protection control circuit further comprising:
a second logic circuit coupled to the clock input terminal and the first logic circuit for blocking the clock signal from reaching the clock input terminal when the short protection mechanism is resumed.
14. The short protection control circuit of claim 9, wherein the timer has a clock input terminal, the short protection control circuit further comprising:
an over-voltage detection circuit for detecting whether an output power exceeds an over-voltage value; and
a second logic circuit coupled to the clock input terminal, the first logic circuit, and the over-voltage detection circuit for blocking the clock signal from reaching the clock input terminal after the short protection mechanism is blocked and when the output power does not exceed the over-voltage value.
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 computer software product that includes a non-transitory storage medium readable by a processor, the non-transitory storage medium having stored thereon a set of instructions for performing public key XZ-elliptic curve cryptography for use with network security protocols, the instructions comprising:
(a) a first set of instructions which, when loaded into main memory and executed by the processor, causes the processor to calculate a shared key as a scalar multiplication between a sending private key kSPr, a receiving private key kRPr and a base point (XB,YB,ZB) as kSPr(kRPr(XB,YB,ZB)), wherein a sending correspondent and a receiving correspondent select and agree upon an elliptic curve set EC3, and the sending correspondent establishes the sending private key kSPr and the receiving correspondent establishes the receiving private key kRPr, the sending correspondent and the receiving correspondent further agreeing upon the base point (XB,YB,ZB)\u03b5EC3, and the receiving correspondent establishing a receiving public key kRPr(XB,YB,ZB) and the sending correspondent establishing a sending public key kSPr(XB,YB,ZB);
(b) a second set of instructions which, when loaded into main memory and executed by the processor, causes the processor to embed a secret message bit string into an elliptic curve message point (Xm,Ym,Zm), wherein the embedding is performed as:
(i) defining the respective message bit string as an M-bit string, wherein M is an integer such that (3N\u2212L)>M>(2N\u2212L), where L is an integer, N represents a number of bits used to represent F(p) elements, F(p) representing a finite field containing the elliptic curve set EC3, wherein D represents a set of points on EC3,
(ii) dividing the respective message bit string into three strings m1, m2 and m3, wherein the length of string m1 is less than or equal to (N\u2212L) bits, the length of string m2 is less than or equal to (N\u22121) bits, and the length of string m3 is less than or equal to N bits;
(iii) assigning the value of the bit string m3 to Em;
(iv) assigning the value of the bit string m2 to Zm by first assigning the value of the bit string m2 to Rm, then using a Legendre test to determine if Rm has a square root, and then, if Rm has a square root, setting Zm=Rm and if Rm does not have a square root, then setting Zm=gRm, wherein g is non-quadratic residue in F(p);
(v) computing aZm2 and bZm2, wherein a and b are selected scalars;
(vi) assigning the value of the bit string m1 to Xm;
(vii) computing a value T as T=Xm3+(aZm2)Xm+(bZm3) and using a Legendre test to determine if T has a square root; and
(viii) assigning the square root of T to Ym if T has a square root, and incrementally increasing Xm and returning to step (vii) if T does not have a square root;
(c) a third set of instructions which, when loaded into main memory and executed by the processor, causes the processor to compute a cipher point (Xc,Yc,Zc) as (Xc,Yc,Zc)=(Xm,Ym,Zm)+kSPr(kRPr(XB,YB,ZB));
(d) a fourth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to record a set of appropriate bits of Xc and Zc as an encoded bit string and sending the set of appropriate bits of Xc and Zc forming the encoded bit string to the receiving correspondent;
(e) a fifth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to calculate the shared key as kRPr(kSPr(XB,YB,ZB));
(f) a sixth set of instructions which, when loaded into main memory and executed by the processor, causes the Processor to compute the elliptic curve message point (Xm,Ym,Zm) as (Xm,Ym,Zm)=(Xc,Yc,Zc)\u2212kRPr(kSPr(XB,YB,ZB));
(g) a seventh set of instructions which, when loaded into main memory and executed by the processor, causes the processor to retrieve the first secret message bit string from Xm and Zm;
(h) an eighth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to select a random integer k, wherein the random integer k is modulo p, wherein p is a selected integer at the sending correspondent;
(i) a ninth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to compute a scalar multiplication for a first signature point (X1,Y1,Z1) as (X1,Y1,Z1)=k (XB,YB,ZB) at the sending correspondent;
(j) a tenth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to concatenate bit strings of X1 and Z1 together to form a single bit string X1:Z1 at the sending correspondent;
(k) an eleventh set of instructions which, when loaded into main memory and executed by the processor, causes the processor to convert the single bit string X1:Z1 into an integer r mod p at the sending correspondent;
(l) a twelfth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to compute a message digest digest(M), wherein digest(M) is a bit string dependent upon secret message M, and converting the bit string into an integer e at the sending correspondent;
(m) a thirteenth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to compute a signature value s as s=k\u22121(e+kPrr)mod p at the sending correspondent:
(n) a fourteenth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to generate a digital signature of the message M as (r,s) at the sending correspondent;
(o) a fifteenth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to compute the message digest digest(M) and converting the bit string into an integer e at the receiving correspondent;
(p) a sixteenth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to compute a pair of intermediate values u1 and u2 as u1=es\u22121 mod p and u2=rs\u22121 mod p, respectively, at the receiving correspondent;
(q) a seventeenth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to compute a scalar multiplication for a second signature point (X2,Y2,Z2) as (X2,Y2,Z2)=u1(XB,YB,ZB)+u2(XPu,YPu,ZPu) at the receiving correspondent;
(r) an eighteenth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to concatenate bit strings of X2 a Z2 together to form a single bit string X2:Z2 at th receiving correspondent;
(s) a nineteenth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to convert the single bit string X2:Z2 into an integer v mod p at the receiving correspondent; and
(t) a twentieth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to accept the digital signature if v=r at the receiving correspondent.
2. A system for performing public key XZ-elliptic curve cryptography for use with network security protocols, wherein a sending correspondent and a receiving correspondent select and agree upon an elliptic curve set EC3, wherein the sending correspondent further establishes a sending private key kSPr and the receiving correspondent establishes a receiving private key kRPr, the sending correspondent and the receiving correspondent further agreeing upon a base point (XB,YB,ZB)\u03b5EC3, the receiving correspondent establishing a receiving public key kRPr(XB,YB,ZB) and the sending correspondent establishing a sending public key kSPr(XB,YB,ZB), the system comprising:
a processor,
computer readable memory coupled to the processor;
a user interface coupled to the processor;
a display coupled to the processor,
software stored in the memory and executable by the processor, the software having:
means for calculating a shared key as a scalar multiplication between a sending private key kSPr, a receiving private key kRPr and a base point (XB,YB,ZB) as kSPr(kRPr(XB,YB,ZB));
means for embedding a secret message bit string into an elliptic curve message point (Xm,Ym,Zm), wherein said means for embedding comprise:
means for defining the respective message bit string as an M-bit string, wherein M is an integer such that (3N\u2212L)>M>(2N\u2212L), where L is an integer, N represents a number of bits used to represent F(p) elements, F(p) representing a finite field containing the elliptic curve set EC3, wherein p represents a set of points on EC3;
means for dividing the respective message bit string into three strings m1, m2 and m3, wherein the length of string m1 is less than or equal to (N\u2212L) bits, the length of string m2 is less than or equal to (N\u22121) bits, and the length of string m3 is less than or equal to N bits;
means for assigning the value of the bit string m3 to Em;
means for assigning the value of the bit string m2 to Zm by first assigning the value of the bit string m2 to Rm, then using a Legendre test to determine if Rm has a square root, and then, if Rm has a square root, setting Zm=Rm and if Rm does not have a square root, then setting Zm=gRm, wherein 2 is non-quadratic residue in F(p);
means for computing aZm2 and bZm3, wherein a and b are selected scalars;
means for assigning the value of the bit string m1 to Xm;
means for computing a value T as T=Xm3+(aZm2)Xm+(bZm3) and using a Legendre test to determine if T has a square root; and
means for assigning the square root of T to Ym if T has a square root, and incrementally increasing Xm and returning to step (vii) if T does not have a square root;
means for computing a cipher point (Xc,Yc,Zc) as (Xc,Yc,Zc)=(Xm,Ym,Zm)+kSPr(kRPr(XB,YB,ZB));
means for recording a set of appropriate bits of Xc and Zc as an encoded bit string;
means for sending the set of appropriate bits of Xc and Zc forming the encoded bit string to the receiving correspondent;
means for calculating the shared key as kRPr(kSPr(XB,YB,ZB));
means for computing the elliptic curve message point (Xm,Ym,Zm) as (Xm,Ym,Zm)=(Xc,Yc,Zc)\u2212kRPr(kSPr(XB,YB,ZB));
means for retrieving the first secret message bit string from Xm and Zm;
means for selecting a random integer k, wherein the random integer k is modulo p, wherein p is a selected integer at the sending correspondent;
means for computing a scalar multiplication for a first signature point (X1,Y1,Z1) as (X1,Y1,Z1)=k(XB,YB,ZB) at the sending correspondent;
means for concatenating bit strings of X1 and Z1 together to form a single bit string X1:Z1 at the sending correspondent;
means for converting the single bit string X1:Z1 into an integer r mod p at the sending correspondent;
means for computing a message digest digest(M), wherein digest(M) is a bit string dependent upon secret message M, and converting the bit string into an integer e at the sending correspondent;
means for computing a signature value s as s=k\u22121(e+kPrr)mod p at the sending correspondent;
means for generating a digital signature of the message M as (r,s) at the sending correspondent;
means for computing the message digest digest(M) and converting the bit string into an integer e at the receiving correspondent;
means for computing a pair of intermediate values u1 and u2 as u1=es\u22121 mod p and u2=rs\u22121 mod p, respectively, at the receiving correspondent;
means for computing a scalar multiplication for a second signature point (X2,Y2,Z2) as (X2,Y2,Z2)=u1(XB,YB,ZB)+u2(XPu,YPu,ZPu) at the receiving correspondent;
means for concatenating bit strings of X2 ad Z2 together to form a single bit string X2:Z2 at the receiving correspondent;
means for converting the single bit string X2:Z2 into an integer v mod p at the receiving correspondent; and
means for accepting the digital signature if v=r at the receiving correspondent.