This application claims the benefit of the priority date of my earlier filed British Application No. 0123417.8, entitled “Improved Data Processing”, filed on Sep. 28, 2001.
1. Field of the Invention
The present invention relates generally to an improved process of encrypting data and corresponding process of decrypting data for use within non-volatile memory, for example to provide a known level of security within a data processing system and particularly to a reversible method and apparatus of processing data comprising the data being encrypted before being written to a non-volatile memory wherein the data cannot be accessed without decryption in the case of a direct physical access to the non-volatile memory.
2. Description of the Prior Art
In known data processing systems having an on-volatile memory such as flash memory it is common for user data to be written to the flash memory without any modification taking place. An example of a known data processing system shown in
In
This means that if the flash memory card 12 is physically opened and disassembled the flash memory contents can be accessed directly and the contents of the user data portions, or memory sectors, can be read.
In
Thus, a need arises to obviate or mitigate at least one of the aforementioned problems.
An object of the present invention is to provide a reversible method of processing data comprising the data being encrypted before being written to a non-volatile memory wherein the data cannot be accessed without decryption in the case of a direct physical access to the non-volatile memory.
In a first aspect of the present invention there is provided a reversible method of processing data which comprises the encryption of data before it is written to non-volatile memory so that it cannot be accessed without decryption in the case of a direct physical access to the non-volatile memory, wherein the encryption of data is carried out by an encryption process which comprises the user data and associate header data undergoing at least one of the two steps of scrambling and encoding.
Preferably the encryption process further comprises the other of the two steps of scrambling and encoding.
Conveniently the encryption process may further comprise at least one further encoding step.
Preferably the user data and header data is divided into portions, and the step of scrambling the user data and header data is performed by a portion address to flash portion address function.
Preferably the step of encoding the user data and header data is performed by a data to flash data function.
Conveniently the non-volatile memory is flash memory.
Conveniently the encrypted data of non-volatile memory can be decrypted by applying the reverse of the encryption process to the encrypted data.
Conveniently the steps of scrambling the encoding are conditional operations and have memory sector address as input which is independent from a host defined logical sector address.
Preferably the addresses of the data portions parameterize the data encoding.
Preferably the step of scrambling the data uses user data or other data supplied by the host as extra input as a parameter for use in the scrambling function.
Conveniently the steps of scrambling and encoding are implemented by hardware.
Preferably the header data provides at least some control information.
Preferably the portion address to flash portion address function is parameterized by a memory sector address to which the encrypted data is written.
In a second aspect the invention comprises a method of decrypting said encrypted data wherein the encrypted data undergoes a decryption process which is the reverse of the encryption process applied to encrypt the data.
Conveniently the decryption process comprises at least one of the two steps of scrambling and decoding. Preferably the decryption process comprises the step of unscrambling and at least one decoding step as appropriate.
Preferably the step of decoding and data is performed by a flash data to data function.
Preferably the step of unscrambling the data is performed by a portion flash address to portion address function.
Preferably the data which has undergone the first step of decryption and the original error correction code is used to check the integrity of all the data which results form the decryption.
In a third aspect of the present invention there is provided a memory system adapted for use with a non-volatile memory and which is arranged to present the logical characteristics of a disc storage device to a host system, wherein the memory system comprises a controller to manage the data transfers to and from the non-volatile memory, the controller being adapted reversibly to encrypt data in accordance with the first aspect of the present invention.
In a fourth aspect of the present invention there is provided a memory system for connection to a host processor, the system comprising: a solid state memory having non-volatile memory sectors which are individually addressable and which are arranged in erasable blocks of sectors, each said sector having a physical address defining its physical position in the memory; and a controller for writing data structures to and reading data structures from the memory, wherein the controller includes means for translating logical addresses received form the host processor to physical addresses received from the host processor to physical addresses of said memory sectors in the memory; and wherein each said memory sector is physically partitioned into a data area and a spare area and the controller is configured so as to write overhead data (OD) comprising header data and error connection code data (ECC) at a position in the sector which is offset from the start of the data area of the sector and to write user data, received from the host processor, in the space remaining in the sector, on either side of the overhead data (OD), the user data and header data being divided into portions which are encrypted in the memory sector by scrambling, the step of scrambling the user data and header data being performed by a portion address to flash portion address function.
Conveniently said overhead data (OD) is offset by an amount which is determined by at least one bit of the user data to be written to the sector.
The foregoing and other objects, features and advantages of the present invention will be apparent from the following detailed description of the preferred embodiments which make reference to several figures of the drawing.
With reference to
With reference to
By applying A1′, which is the same byte-wise XOR function as A1, to the scrambled data, the original unscrambled user data and header data is retrieved. This means that in order to return the scrambled data to its original format all of the scrambled data portions must be accessed.
The A1′ function, being an XOR function, unscrambles the scrambled data because the XOR function is a symmetrical reversible function and therefore acts as the reverse of the scrambling function A1 and returns the data to its original array address within the buffer memory. The A1′ function can be considered a flash address to address function.
An example of he scrambling function operating on user and header data portions is shown in
The scrambling function A1 is such that header data portion H(1) is positionally interchanged with user data portion D(n), the header data portion H(2) is positionally interchanged with user data portion D(m) in the flash memory 12. The addresses n and m etc. are a function F of parameters P1, P2 etc:
n=F(1, P1, P2, . . . ) and
m=F(2, P1, P2, . . . ).
The parameters P1, P2 etc. may be determined by, for example, the physical location or by the data itself. For example, if the function F is parameterized by both the user data and the header data parameter P1 is:
P1=D(1)⊕D(2)⊕. . . ⊕D(512)⊕H(1)⊕. . . ⊕H(4)
where ⊕ is a byte-wise exclusive OR function.
The encryption methods of the first and second embodiments provide read-protection for data stored in non-volatile memory and are simple to implement within a variety of memory systems. The two embodiments of encryption methods can also be combined easily to provide more complex encryption functions. As the encryption function can be parameterized by the memory sector address, or by the memory sector data itself, the final location of any data portion within the data block is not predefined.
In
With reference to
The encrypted data in the flash memory 12 can be read by carrying out the reverse operation. Thus, the flash memory sector data are decoded by flash data to data function D1′. The ECC is checked using the original ECC and the decoded data. The decoded data is then unscrambled by flash address to address function A1′.
As is shown in
The processing of the data, in order to encrypt or decrypt the data respectively, can be implemented in a ‘security block’ within either processor firmware of a memory system or within hardware of the memory device.
In
The block of data (comprising 512 bytes of user data) is generated by the host, via the host interface 16 and is located in buffer memory 10 prior to any modification, having an appropriate header of 4 bytes added to the end. The block of data is represented by a plurality of contiguously addressed data portions represented as before as UD1, UD2 . . . , and H1, H2, . . . The A1 converter 56 scrambles and data block by modifying the data portion address issued by the memory port module 22 for any of the data portions being input by the host and the overhead data generated by the controller. This is in contrast to the typical memory port function of just counting the data portions to be written to the memory (not shown). In this case the A1 converter 56 is an address mixer which perform, for example an XOR function on each portion address. This means that the user data, supplied by the host, is mixed with the header data located in the sector buffer SRAM 10. In the simplest case only the 4 byte sector header data is pre-written to the sector buffer SRAM 10. The scrambled data is then sent to converter 54 which performs encoding function D1, which is an XOR function with a parameter, upon each of the scrambled and D1 encoded data portions. At the same time as this, the ECC block generator 20 generates the ECC using the scrambled and D1 encoded data. The ECC data, and scrambled and D2 encoded data are both then written to converter 62 which performs encoding function D3, which is, for example an XOR function with a parameter, on all the data being written to the memory including the ECC block. The encrypted data is then written to the memory via memory port 22. It can be seen from
In
In the decryption process corresponding to the encryption process of
The security block 39, such as that of
In an alternative system, shown in
Various modifications may be made to the invention as hereinabove described without departing from the scope of the invention. For example, in the examples shown the buffer memory stores data which has been written to it by the host. However, it may alternatively store data from a variety of sources such as the control processor. The memory which the encryption process protects may be any non-volatile memory such as flash memory. As described, the encoding function which is applied to each data portion is the same for each data portion. However, in order to provide a higher level of encryption the encoding function may be different for each data portion which is encoded. Furthermore, the encoding function has been described as an XOR with a parameter. However, it may alternatively be a parameterized barrel shift function, a combination of an XOR function and barrel shift function or any other similarly symmetric function. If the encoding function is non-symmetric the decoding function required will be the reverse of the encoding function first applied and not merely the same function applied again.
It should be noted that the encryption method which is detailed in the description is an example only and alternative, more complex data encryption methods, such as complex scrambling or encoding functions, may be implemented in the same manner.
It should also be noted that the encryption process may be applied to the user data only. Alternatively, it may, as described, be applied to all of the data thus additionally protecting the data structure.
In the example of encryption given in
Other factors which may define the parameters are, for example, the data portion address within a sector, which can be used for encoding only and acts to “blur” data having the same pattern, the memory sector address, which can be used to provide different encryption of the same data or sector written at different locations within the memory. Alternatively, using up to all of the sector data as a parameter makes the final data partitioning, as a result of data scrambling, unpredictable. Therefore, in order to work out the parameter, up to all of the sector data should be read first. Another alternative factor, which may be used to define a parameter, is a user password that can be used to protect the user data only, in which case only the user data is encrypted, or can be used to protect all of the sector data, in which case the overheads and control data structures are also encrypted. This latter case makes the card unusable by another user because, in order to decrypt the data and/or allow the memory system to find the data, the user password should be given by the host first.
It is also the case that in some embodiments the security block, in which the encryption is carried out, may be implemented as a controller processor firmware function without any need for change in the physical controller architecture providing it has access to an ECC block and a sector butter SRAM. This would mean that the processor could move data from one location in SRAM to another location, thus simulating the A1 function. IT would be capable of reading the ECC field from the ECC block and copying this to the SRAM and any data within the sector buffer SRAM could be modified within the processor, thus implementing D1, D2 and D3 function equivalents.
Another modification which may be made is that the sector buffer SRA may be either a dual port RAM or a single port RAM with shared access.
Although the present invention has been described in terms of specific embodiments it is anticipated that alterations and modifications thereof will no doubt become apparent to those skilled in the art. It is therefore intended that the following claims be interpreted as covering all such alterations and modification as fall within the true spirit and scope of the invention.
Number | Name | Date | Kind |
---|---|---|---|
4099069 | Cricchi et al. | Jul 1978 | A |
4130900 | Watanabe | Dec 1978 | A |
4210959 | Wozniak | Jul 1980 | A |
4309627 | Tabata | Jan 1982 | A |
4355376 | Gould | Oct 1982 | A |
4398248 | Hsia et al. | Aug 1983 | A |
4405952 | Slakmon | Sep 1983 | A |
4414627 | Nakamura | Nov 1983 | A |
4450559 | Bond et al. | May 1984 | A |
4456971 | Fukuda et al. | Jun 1984 | A |
4468730 | Dodd et al. | Aug 1984 | A |
4473878 | Zolnowsky et al. | Sep 1984 | A |
4476526 | Dodd | Oct 1984 | A |
4498146 | Martinez | Feb 1985 | A |
4525839 | Nozawa et al. | Jun 1985 | A |
4532590 | Wallach et al. | Jul 1985 | A |
4609833 | Gutterman | Sep 1986 | A |
4616311 | Sato | Oct 1986 | A |
4654847 | Dutton | Mar 1987 | A |
4710871 | Belknap et al. | Dec 1987 | A |
4746998 | Robinson et al. | May 1988 | A |
4748320 | Yorimoto et al. | May 1988 | A |
4757474 | Fukushi et al. | Jul 1988 | A |
4774700 | Satoh et al. | Sep 1988 | A |
4780855 | Iida et al. | Oct 1988 | A |
4788665 | Fukuda et al. | Nov 1988 | A |
4797543 | Watanabe | Jan 1989 | A |
4800520 | Iijima | Jan 1989 | A |
4829169 | Watanabe | May 1989 | A |
4843224 | Ohta et al. | Jun 1989 | A |
4896262 | Wayama et al. | Jan 1990 | A |
4914529 | Bonke | Apr 1990 | A |
4920518 | Nakamura et al. | Apr 1990 | A |
4924331 | Robinson et al. | May 1990 | A |
4943745 | Watanabe et al. | Jul 1990 | A |
4953122 | Williams | Aug 1990 | A |
4970642 | Yamamura | Nov 1990 | A |
4970727 | Miyawaki et al. | Nov 1990 | A |
5070474 | Tuma et al. | Dec 1991 | A |
5093785 | Iijima | Mar 1992 | A |
5150407 | Chan | Sep 1992 | A |
5168465 | Harari | Dec 1992 | A |
5198380 | Harari | Mar 1993 | A |
5200959 | Gross et al. | Apr 1993 | A |
5218695 | Noveck et al. | Jun 1993 | A |
5220518 | Haq | Jun 1993 | A |
5226168 | Kobayashi et al. | Jul 1993 | A |
5227714 | Lou | Jul 1993 | A |
5253351 | Yamamoto et al. | Oct 1993 | A |
5267218 | Elbert | Nov 1993 | A |
5268318 | Harari | Dec 1993 | A |
5268870 | Harari | Dec 1993 | A |
5270979 | Harari et al. | Dec 1993 | A |
5293560 | Harari | Mar 1994 | A |
5297148 | Harari et al. | Mar 1994 | A |
5303198 | Adachi et al. | Apr 1994 | A |
5305276 | Uenoyama | Apr 1994 | A |
5305278 | Inoue | Apr 1994 | A |
5315541 | Harari et al. | May 1994 | A |
5315558 | Hag | May 1994 | A |
5329491 | Brown et al. | Jul 1994 | A |
5337275 | Garner | Aug 1994 | A |
5341330 | Wells et al. | Aug 1994 | A |
5341339 | Wells | Aug 1994 | A |
5341341 | Fukazo | Aug 1994 | A |
5353256 | Fandrich et al. | Oct 1994 | A |
5357475 | Hasbun et al. | Oct 1994 | A |
5359569 | Fujita et al. | Oct 1994 | A |
5365127 | Manley | Nov 1994 | A |
5369615 | Harari et al. | Nov 1994 | A |
5371702 | Nakai et al. | Dec 1994 | A |
5381539 | Yanai et al. | Jan 1995 | A |
5382839 | Shinohara | Jan 1995 | A |
5384743 | Rouy | Jan 1995 | A |
5388083 | Assar et al. | Feb 1995 | A |
5392356 | Konno et al. | Feb 1995 | A |
5396468 | Harari et al. | Mar 1995 | A |
5404485 | Ban | Apr 1995 | A |
5406527 | Honma | Apr 1995 | A |
5418752 | Harari et al. | May 1995 | A |
5422842 | Cernea et al. | Jun 1995 | A |
5422856 | Sasaki et al. | Jun 1995 | A |
5428621 | Mehrotra et al. | Jun 1995 | A |
5430682 | Ishikawa et al. | Jul 1995 | A |
5430859 | Norman et al. | Jul 1995 | A |
5431330 | Wieres | Jul 1995 | A |
5434825 | Harari | Jul 1995 | A |
5438573 | Mangan et al. | Aug 1995 | A |
5465235 | Miyamoto | Nov 1995 | A |
5465338 | Clay | Nov 1995 | A |
5471478 | Mangan et al. | Nov 1995 | A |
5473765 | Gibbons et al. | Dec 1995 | A |
5479638 | Assar et al. | Dec 1995 | A |
5485595 | Assar et al. | Jan 1996 | A |
5490117 | Oda et al. | Feb 1996 | A |
5495442 | Cernea et al. | Feb 1996 | A |
5504760 | Harari et al. | Apr 1996 | A |
5508971 | Cernea et al. | Apr 1996 | A |
5513138 | Manabe et al. | Apr 1996 | A |
5515333 | Fujita et al. | May 1996 | A |
5519847 | Fandrich et al. | May 1996 | A |
5523980 | Sakui et al. | Jun 1996 | A |
5524230 | Sakaue et al. | Jun 1996 | A |
5530673 | Tobita et al. | Jun 1996 | A |
5530828 | Kaki et al. | Jun 1996 | A |
5530938 | Akasaka et al. | Jun 1996 | A |
5532962 | Auclair et al. | Jul 1996 | A |
5532964 | Cernea et al. | Jul 1996 | A |
5534456 | Yuan et al. | Jul 1996 | A |
5535328 | Harari et al. | Jul 1996 | A |
5541551 | Brehner et al. | Jul 1996 | A |
5544118 | Harari | Aug 1996 | A |
5544356 | Robinson et al. | Aug 1996 | A |
5552698 | Tai et al. | Sep 1996 | A |
5554553 | Harari | Sep 1996 | A |
5563825 | Cernea et al. | Oct 1996 | A |
5566314 | DeMarco et al. | Oct 1996 | A |
5568439 | Harari | Oct 1996 | A |
5572466 | Sukegawa | Nov 1996 | A |
5579502 | Konishi et al. | Nov 1996 | A |
5581723 | Hasbun et al. | Dec 1996 | A |
5583812 | Harari | Dec 1996 | A |
5592415 | Kato et al. | Jan 1997 | A |
5592420 | Cernea et al. | Jan 1997 | A |
5596526 | Assar et al. | Jan 1997 | A |
5598370 | Niisima et al. | Jan 1997 | A |
5602987 | Harari et al. | Feb 1997 | A |
5603001 | Sukegawa et al. | Feb 1997 | A |
5606660 | Estakhri et al. | Feb 1997 | A |
5611067 | Okamoto et al. | Mar 1997 | A |
5640528 | Harney et al. | Jun 1997 | A |
5642312 | Harari | Jun 1997 | A |
5648929 | Miyamoto | Jul 1997 | A |
5663901 | Wallace et al. | Sep 1997 | A |
5666516 | Combs | Sep 1997 | A |
5693570 | Cernea et al. | Dec 1997 | A |
5712819 | Harari | Jan 1998 | A |
5719808 | Harari et al. | Feb 1998 | A |
5723990 | Roohparvar | Mar 1998 | A |
5734567 | Griffiths et al. | Mar 1998 | A |
5745418 | Ma et al. | Apr 1998 | A |
5754567 | Norman | May 1998 | A |
5757712 | Nagel et al. | May 1998 | A |
5758100 | Odisho | May 1998 | A |
5761117 | Uchino et al. | Jun 1998 | A |
5765197 | Combs | Jun 1998 | A |
5768190 | Tanaka et al. | Jun 1998 | A |
5768195 | Nakamura et al. | Jun 1998 | A |
5773901 | Kanter | Jun 1998 | A |
5778418 | Auclair et al. | Jul 1998 | A |
5781478 | Takeeuchi et al. | Jul 1998 | A |
5787445 | Daberko | Jul 1998 | A |
5787484 | Norman | Jul 1998 | A |
RE35881 | Barrett et al. | Aug 1998 | E |
5799168 | Ban | Aug 1998 | A |
5802551 | Komatsu et al. | Sep 1998 | A |
5809515 | Kaki et al. | Sep 1998 | A |
5809558 | Matthews et al. | Sep 1998 | A |
5809560 | Schneider | Sep 1998 | A |
5818350 | Estakhri et al. | Oct 1998 | A |
5818781 | Estakhri et al. | Oct 1998 | A |
5822245 | Gupta et al. | Oct 1998 | A |
5822252 | Lee et al. | Oct 1998 | A |
5822781 | Wells et al. | Oct 1998 | A |
5831929 | Manning | Nov 1998 | A |
5835935 | Estakhri et al. | Nov 1998 | A |
5838614 | Estakhri et al. | Nov 1998 | A |
5845313 | Estakhri et al. | Dec 1998 | A |
5847552 | Brown | Dec 1998 | A |
5860083 | Sukeawa | Jan 1999 | A |
5860124 | Matthews et al. | Jan 1999 | A |
5862099 | Gannage et al. | Jan 1999 | A |
5890192 | Lee et al. | Mar 1999 | A |
5901086 | Wang et al. | May 1999 | A |
5907856 | Estakhri et al. | May 1999 | A |
5909586 | Anderson | Jun 1999 | A |
5920884 | Jennings, III et al. | Jul 1999 | A |
5924113 | Estakhri et al. | Jul 1999 | A |
5928370 | Asnaashari | Jul 1999 | A |
5930815 | Estakhri et al. | Jul 1999 | A |
5933368 | Ma et al. | Aug 1999 | A |
5933846 | Endo | Aug 1999 | A |
5936971 | Harari et al. | Aug 1999 | A |
5937425 | Ban | Aug 1999 | A |
5953737 | Estakhri et al. | Sep 1999 | A |
5956473 | Ma et al. | Sep 1999 | A |
5959926 | Jones et al. | Sep 1999 | A |
5966727 | Nishino | Oct 1999 | A |
5986933 | Takeuchi et al. | Nov 1999 | A |
5987563 | Itoh et al. | Nov 1999 | A |
5987573 | Hiraka | Nov 1999 | A |
5991849 | Yamada et al. | Nov 1999 | A |
6011322 | Stumfall et al. | Jan 2000 | A |
6011323 | Camp | Jan 2000 | A |
6018265 | Keshtbod | Jan 2000 | A |
6021408 | Ledain et al. | Feb 2000 | A |
6026020 | Matsubara et al. | Feb 2000 | A |
6026027 | Terrell, II et al. | Feb 2000 | A |
6034897 | Estakhri et al. | Mar 2000 | A |
6035357 | Sakaki | Mar 2000 | A |
6040997 | Estakhri | Mar 2000 | A |
6041001 | Estakhri | Mar 2000 | A |
6047352 | Lakhani et al. | Apr 2000 | A |
6055184 | Acharya et al. | Apr 2000 | A |
6055188 | Takeuchi et al. | Apr 2000 | A |
6069827 | Sinclair | May 2000 | A |
6072796 | Christensen et al. | Jun 2000 | A |
6076137 | Asnaashari | Jun 2000 | A |
6081447 | Lofgren et al. | Jun 2000 | A |
6081878 | Estakhri et al. | Jun 2000 | A |
6084483 | Keshtbod | Jul 2000 | A |
6089460 | Hazama | Jul 2000 | A |
6097666 | Sakui et al. | Aug 2000 | A |
6115785 | Estakhri et al. | Sep 2000 | A |
6122195 | Estakhri et al. | Sep 2000 | A |
6122716 | Combs | Sep 2000 | A |
6125424 | Komatsu et al. | Sep 2000 | A |
6125435 | Estakhri et al. | Sep 2000 | A |
6128695 | Estakhri et al. | Oct 2000 | A |
6134145 | Wong | Oct 2000 | A |
6134151 | Estakhri et al. | Oct 2000 | A |
6141249 | Estakhri et al. | Oct 2000 | A |
6145051 | Estakhri et al. | Nov 2000 | A |
6151247 | Estakhri et al. | Nov 2000 | A |
6172906 | Estakhri et al. | Jan 2001 | B1 |
6173362 | Yoda | Jan 2001 | B1 |
6181118 | Meehan et al. | Jan 2001 | B1 |
6182162 | Estakhri et al. | Jan 2001 | B1 |
6202138 | Estakhri et al. | Mar 2001 | B1 |
6223308 | Estakhri et al. | Apr 2001 | B1 |
6226708 | McGoldrick et al. | May 2001 | B1 |
6230234 | Estakhri et al. | May 2001 | B1 |
6262918 | Estakhri et al. | Jul 2001 | B1 |
6272610 | Katayama et al. | Aug 2001 | B1 |
6275436 | Tobita et al. | Aug 2001 | B1 |
6279069 | Robinson et al. | Aug 2001 | B1 |
6279114 | Toombs et al. | Aug 2001 | B1 |
6282651 | Ashe | Aug 2001 | B1 |
6285607 | Sinclair | Sep 2001 | B1 |
6327639 | Asnaashari | Dec 2001 | B1 |
6345367 | Sinclair | Feb 2002 | B1 |
6374337 | Estakhri | Apr 2002 | B1 |
6385667 | Estakhri et al. | May 2002 | B1 |
6393513 | Estakhri et al. | May 2002 | B2 |
6397314 | Estakhri et al. | May 2002 | B1 |
6411546 | Estakhri et al. | Jun 2002 | B1 |
6467021 | Sinclair | Oct 2002 | B1 |
6490649 | Sinclair | Dec 2002 | B2 |
6567307 | Estakhri | May 2003 | B1 |
6578127 | Sinclair | Jun 2003 | B1 |
6587382 | Estakhri et al. | Jul 2003 | B1 |
6711059 | Sinclair et al. | Mar 2004 | B2 |
6721819 | Estakhri et al. | Apr 2004 | B2 |
6721843 | Estakhri | Apr 2004 | B1 |
6725321 | Sinclair et al. | Apr 2004 | B1 |
6728851 | Estakhri et al. | Apr 2004 | B1 |
6751155 | Gorobets | Jun 2004 | B2 |
6757800 | Estakhri et al. | Jun 2004 | B1 |
6772274 | Estakhri | Aug 2004 | B1 |
6813678 | Sinclair et al. | Nov 2004 | B1 |
6898662 | Gorobets | May 2005 | B2 |
6898721 | Schmidt | May 2005 | B2 |
6912618 | Estakhri et al. | Jun 2005 | B2 |
6950918 | Estakhri | Sep 2005 | B1 |
6957295 | Estakhri | Oct 2005 | B1 |
6973519 | Estakhri et al. | Dec 2005 | B1 |
6978342 | Estakhri et al. | Dec 2005 | B1 |
7000064 | Payne et al. | Feb 2006 | B2 |
20030033471 | Lin et al. | Feb 2003 | A1 |
Number | Date | Country |
---|---|---|
0 557 723 | Jan 1987 | AU |
0 220 718 | May 1987 | EP |
0 243 503 | Nov 1987 | EP |
0 392 895 | Oct 1990 | EP |
0 424 191 | Apr 1991 | EP |
0 489 204 | Jun 1992 | EP |
0 522 780 | Jan 1993 | EP |
0 537 925 | Apr 1993 | EP |
0 544 252 | Jun 1993 | EP |
0 613 151 | Aug 1994 | EP |
0 617 363 | Sep 1994 | EP |
0 619 541 | Oct 1994 | EP |
0 663 636 | Jul 1995 | EP |
0 686 976 | Dec 1995 | EP |
0 897 579 | Jul 2000 | EP |
1 043 860 | Oct 2000 | EP |
0 891 580 | Nov 2000 | EP |
0 896 699 | Nov 2000 | EP |
1 056 015 | Nov 2000 | EP |
1 074 906 | Feb 2001 | EP |
0 852 766 | May 2001 | EP |
0 852 765 | Sep 2001 | EP |
0 722 585 | May 2002 | EP |
0 910 826 | Jun 2002 | EP |
0 691 008 | Nov 2002 | EP |
0 861 468 | Apr 2003 | EP |
0 978 040 | May 2004 | EP |
1 157 328 | May 2005 | EP |
93 01908 | Aug 1993 | FR |
2 251 323 | Jul 1992 | GB |
2 291 990 | Feb 1996 | GB |
2 291 991 | Feb 1996 | GB |
2 297 637 | Aug 1996 | GB |
2 304 428 | Mar 1997 | GB |
2 348 991 | Dec 2002 | GB |
2 351 822 | Jan 2003 | GB |
2 384 337 | Jul 2003 | GB |
2 384 883 | Oct 2005 | GB |
2 384 338 | Nov 2005 | GB |
2 384 072 | Dec 2005 | GB |
2 411 499 | Feb 2006 | GB |
117881 | May 2003 | IS |
59-45695 | Sep 1982 | JP |
58-215794 | Dec 1983 | JP |
58-215795 | Dec 1983 | JP |
59-162695 | Sep 1984 | JP |
60-212900 | Oct 1985 | JP |
61-96598 | May 1986 | JP |
62-283496 | Dec 1987 | JP |
62-283497 | Dec 1987 | JP |
63-183700 | Jul 1988 | JP |
1-138694 | May 1989 | JP |
3-228377 | Oct 1991 | JP |
4-57295 | Feb 1992 | JP |
4-254994 | Sep 1992 | JP |
4-268284 | Sep 1992 | JP |
4-278297 | Oct 1992 | JP |
4-332999 | Nov 1992 | JP |
5-128877 | May 1993 | JP |
5-282883 | Oct 1993 | JP |
6-36578 | Feb 1994 | JP |
6-124175 | May 1994 | JP |
6-124231 | May 1994 | JP |
6-131889 | May 1994 | JP |
6-132747 | May 1994 | JP |
6-149395 | May 1994 | JP |
6-266596 | Sep 1994 | JP |
7-93499 | Apr 1995 | JP |
7-311708 | Nov 1995 | JP |
8-18018 | Jan 1996 | JP |
8-69696 | Mar 1996 | JP |
9-147581 | Jun 1997 | JP |
138877 | Apr 1988 | SU |
1408439 | Jul 1988 | SU |
1515164 | Oct 1989 | SU |
1541619 | Feb 1990 | SU |
1573458 | Jun 1990 | SU |
1686449 | Oct 1991 | SU |
8400628 | Feb 1984 | WO |
WO 9420906 | Sep 1994 | WO |
WO 9516238 | Jun 1995 | WO |
WO 0026791 | May 2000 | WO |
Number | Date | Country | |
---|---|---|---|
20030126451 A1 | Jul 2003 | US |