| The Datasheet Archive - 100 Million Datasheets from 7500 Manufacturers. |
Data Encryption Routines PIC18 Author: David Flowers Microchip Te
Top Searches for this datasheetAN953 Data Encryption Routines PIC18 Author: David Flowers Microchip Technology Inc. ENCRYPTION MODULE OVERVIEW Four algorithms choose from, each with their benefits Advanced Encryption Standard (AES) Modules available Assembly Assembly written Allows user decide include encoder, decoder both Allows user pre-program decryption into code function calculate decryption Tiny Encryption Algorithm version (XTEA) Modules available Assembly Programmable number iteration cycles SKIPJACK Module available Pseudo-random binary sequence generator encryption Modules available Assembly Allows user change feedback taps run-time KeyJump breaks regular cycle increase variability sequence Out-of-the-box support MPLAB® Various compiling options customize routines specific application Available Microchip Application Maestromodule simplify customization INTRODUCTION This Application Note covers four encryption algorithms: AES, XTEA, SKIPJACK® simple encryption algorithm using pseudo-random binary sequence generator. science cryptography dates back ancient Egypt. today's information technology where data widely accessible, sensitive material, especially electronic data, needs encrypted user's protection. example, network-based card entry door system that logs persons have entered building susceptible attack where user information stolen manipulated sniffing spoofing link between processor memory storage device. information encrypted first, better chance remaining secure. Many encryption algorithms provide protection against someone reading hidden data, well providing protection against tampering. most algorithms, decryption process will cause entire block information destroyed there single error block prior decryption. 2005 Microchip Technology Inc. DS00953A-page AN953 Overview/History/Background Advanced Encryption Standard (AES) means encrypting decrypting data adopted National Institute Standards Technology (NIST) October 2000. late 1990s, NIST held contest initiate development encryption algorithms that would replace Data Encryption Standard (DES). contest tested algorithms' security execution speed determine which would named AES. algorithm chosen called "Rijndael" algorithm after designers, Joan Daemen Vincent Rijmen Belgium. symmetric block cipher that utilizes secret encrypt data. implementation this application note based 16-byte block data 16-byte size. DS00953A-page 2005 Microchip Technology Inc. AN953 ENCRYPTION FIGURE ENCRYPT FLOWCHART ENCRYPTION Round Counter Rcon Addition S-Table Substitution Encode Shift True Round Counter False Encode Column Encode Schedule Addition Round Counter Round Counter False True 2005 Microchip Technology Inc. DS00953A-page AN953 There five basic subdivisions encryption flowchart. detailed explanation each will follow. number rounds needed transformation taken from following table. 16-Byte Block 16-byte 24-byte 32-byte 24-Byte Block 32-Byte Block Used this implementation. This implementation uses 16-byte block 16-byte thus uses rounds encryption. last encryption round, column subdivision left out. structures data blocks shown below. TABLE MATRIX: [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] TABLE Data Data Data Data DATA MATRIX: Data Data Data Data Data Data Data [10] Data [11] Data [12] Data [13] Data [14] Data [15] Data [16] Data [17] Data [18] Data [19] Data [20] Data [21] Data [22] Data [23] Data [24] Data [25] Data [26] Data [27] Data [28] Data [29] Data [30] Data [31] into data matrix structure, plain text encrypted needs broken into appropriate size blocks, with leftover space being padded. example, take following quote from Tale Cities", Charles Dickens. best times, worst times, Broken into 16-byte blocks, data would look similar this: EXAMPLE best PLAIN TEXT DIVIDED INTO 16-BYTE BLOCKS times, worst mes, tuvwxyz( Note blocks into correct size matrix, values must padded block. this case, "tuvwxyz" added quote complete last block. Finally must selected that 128-bits long. examples this document, will [Charles Dickens]. With selected data sectioned into appropriate size blocks, encryption cycle begin. DS00953A-page 2005 Microchip Technology Inc. AN953 S-Table (Encryption Substitution Table): S-Table Substitution direct table lookup replacement data. Below code this procedure: for(i=0;i<BLOCKSIZE;i++) block[i]=STable[block[i]]; values table defined following chart. TABLE S-BOX ENCRYPTION SUBSTITUTION TABLE (VALUES HEXADECIMAL) 2005 Microchip Technology Inc. DS00953A-page AN953 Xtime xtime(a) predefined linear feedback shift register that repeats every cycles. operation defined if(a<0x80) a<<=1; else a=a<<1)^0x1b; Column XORed with column Addition: addition defined each byte XORed with each corresponding data bytes. addition process same both encryption decryption processes. following C-code example: for(i=0;i<16;i++) data[i] key[i]; Schedule Each round uses different encryption based previous encryption key. example follows that takes given calculates next round's key. EXAMPLE Given generic key: GENERATION Shift shift cyclical shift left rows data block according table below: TABLE ENCRYPTION CYCLICAL SHIFT TABLE shifts shifts shifts shifts scheduling goes follows: Column XORed with S_Table lookup column S_Table[K13] S_Table[K14] S_Table[K15] S_Table[K12] XORed with Rcon 16-byte block 24-byte block 32-byte block Note that this transformation different encryption decryption. EXAMPLE TRANSFORMATION Rcon; Rcon updated with xtime Rcon Given original data: Rcon xtime(Rcon); (the starting value Rcon 0x01 encoding) Column XORed with column Column XORed with column results transformation would follows: DS00953A-page 2005 Microchip Technology Inc. AN953 column Chapter Section 4.2.3 specification defines column transformation. this operation, matrix c(x) cross-multiplied input vector (a(x)) using special rules Polynomials with coefficients GF(28) form output vector b(x). FIXED MATRIX c(x) special rules multiplication equate following: xtime(a) xtime(xtime(a)) xtime(a) xtime(xtime(a)) first resulting multiplication would EXAMPLE b[0]= xtime(a[0]) (a[1] xtime(a[1])) a[2] a[3](1,2) Note stands members multiplication XORed together rather then added together they would regular matrix multiplication. Refer Application Note 821, "Advanced Encryption Standard Using PIC16XXX" (DS00821), available www.microchip.com, full example this multiplication. EXAMPLE Plain text: Key: Plain hex: ENCRYPTION EXAMPLE: best ][of times, was][the worst ti][mes, tuvwxyz(1)] [Charles Dickens.] Cipher hex: Note line been padded with "tuvwxyz" that data fits block. Only first block results shown. between each block, must reset change must taken into consideration when decryption begins. 2005 Microchip Technology Inc. DS00953A-page AN953 DECRYPTION subdivisions decryption algorithm similar those encryption algorithm, with most being inverse operation. major difference, however, setup preceding decryption. decryption different than encryption must loaded correctly. decryption calculated running through encryption schedule appropriate number rounds. during encryption, reset between blocks, decryption will then have adjust accordingly. value Rcon must also differently decryption process. value 0x36 used rounds. This determined running encryption schedule routine appropriate number rounds. FIGURE DECRYPT FLOWCHART DECRYPTION Round Counter Rcon 0x36 Addition Round Counter False Decode Column True S-Table Substitution Decode Shift Decode Schedule Addition Round Counter Round Counter False True DS00953A-page 2005 Microchip Technology Inc. AN953 Si-Table (decryption lookup table): Si-Table similar S-Table function provides inverse loop-up results. TABLE Si-BOX DECRYPTION SUBSTITUTION TABLE (VALUES HEXADECIMAL) 2005 Microchip Technology Inc. DS00953A-page AN953 Schedule Each round decryption uses same that used encrypt data. next iteration determined from previous decryption performing inverse operation encryption schedule. obtain decryption from encryption key, cycle appropriate amount times through encryption schedule. encryption cycle, value that point correct decryption key, this value saved, recalculated later pre-calculated stored system. Given generic key: scheduling goes follows: Starting from decryption key: Column XORed with column Column XORed with column Column XORed with column DS00953A-page 2005 Microchip Technology Inc. AN953 Column XORed with S-Table lookup column (Note: This uses S-Table Si-Table): S_Table [K13] S_Table [K14] S_Table [K15] S_Table [K16] XORed with Rcon Rcon; Inverse Column: inverse column operation differs from column operation only matrix c(x). (Note: values hexadecimal) FIXED MATRIX c(x) operation a[0] 0x0E very calculation intensive 8-bit processor. There several different methods calculating these numbers reduce mathematical load. method chosen this implementation simple lookup table xtime(a), xtime(xtime(a)) xtime(xtime(xtime(a))) values. Rcon updated with inverse xtime Rcon if(Rcon 0x01) Rcon 0x80; else Rcon >>=1; Note: starting value Rcon 0x36 decoding using 128-bit Shift shift cyclical shift left rows data based below table: shifts 16-byte block 24-byte block 32-byte block shifts shifts shifts Note that this transformation different encryption decryption. Also note that results this transformation equivalent shift transformation encryption blocks shifted right instead left. EXAMPLE SHIFT Given original data: results transformation would follows: 2005 Microchip Technology Inc. DS00953A-page AN953 Overview Routines AESEncode This function encrypts input data with input key. Syntax void Encode(unsigned char* block, unsigned char* key) Parameters Block block data encrypt, used encrypt Return Values None Pre-condition Block preloaded with correct values Side-effects Values block have changed encrypted version, contains decryption that block Remarks None Example: Usage Encode AESEncode(block,key); Assembly mov1w 0x34 movwf key+0 mov1w 0x12 movwf key+1 movff data+0,block+0 movff data+1,block+1 call AESEncode DS00953A-page 2005 Microchip Technology Inc. AN953 AESDecode This function decrypts input data with input decryption key. Syntax void Decode(unsigned char* block, unsigned char* key) Parameters Block block data decrypt, used decrypt Return Values None Pre-condition Block preloaded with correct values Side Effects Values block have changed decrypted version, contains original encryption that block Remarks None Example: Usage Decode AESDecode(block,key); Assembly mov1w movwf mov1w movwf movff movff call 0x34 key+0 0x12 key+1 data+0,block+0 data+1,block+1 AESDecode 2005 Microchip Technology Inc. DS00953A-page AN953 AESCalcDecodeKey This function calculates decryption block data from encryption key. Syntax void Decode(unsigned char* block, unsigned char* key) Parameters used encrypt Return Values None Pre-condition preloaded with correct values Side Effects contains decryption that block Remarks None Example: Usage calcDecodeKey AEScalcDecodeKey(key); Assembly mov1w 0x34 movwf key+0 mov1w 0x12 movwf key+1 call AEScaleDecodeKey DS00953A-page 2005 Microchip Technology Inc. AN953 XTEA Overview/History/Background Tiny Encryption Algorithm version (XTEA) encryption algorithm that gets fame from size. XTEA adaptation original algorithm (TEA) after weakness found structure. XTEA's authors David Wheeler Roger Needham Cambridge Computer Laboratory. XTEA gets security from number encryption iterations goes through. authors recommend iterations high security, they believe iterations should secure several decades, with iterations being sufficient applications with lower security needs. most notable feature XTEA smallness encryption decryption algorithm. Below code flow chart (next page) encryption cycle. ((x2<<4 x2>>5) (sum *(key+(sum&0x03))); sum+=DELTA; ((x1<<4 x1>>5) (sum *(key+(sum>>11&0x03))); EXAMPLE Plain text: Key: Plain hex: XTEA ENCRYPTION EXAMPLE t][he best ][of times][, was][ wor][st ti][mes, [Charles Dickens.] [0x4974207761732074](1,2). Cipher hex: [0x7C0BA7CED6E78034]. Note Only first block results shown. between each block, must reset. Otherwise, decryption flow chart must changed. decoding process equally simple. following C-code describes reverse operation. ((x1<<4 x1>>5) (sum *(key+(sum>>11&0x03))); sum-=DELTA; ((x2<<4 x2>>5) (sum *(key+(sum&0x03))); 2005 Microchip Technology Inc. DS00953A-page AN953 FIGURE XTEA FLOWCHART Key[ 0x03 delta Key[ (sum>>11) 0x03 addition, DS00953A-page 2005 Microchip Technology Inc. AN953 Overview Routines XTEAEncode This function encrypts input data with input key. Syntax void XTEAEncode(unsigned long* data, unsigned char dataLength) Parameters data block data encrypt, dataLength amount data encrypt (must factor Return Values None Pre-condition data preloaded with correct values Side Effects Values data have changed encrypted version Remarks Note that assembly version only encrypts bytes time Example: Usage Encode XTEAEncode(data,sizeof(data)); Assembly mov1w 0x08 movwf dataLength mov1w 0x34 movwf key+0 mov1w 0x12 movwf key+1 lfsr pointerNum,data call XTEAEncode 2005 Microchip Technology Inc. DS00953A-page AN953 TEADecode This function decrypts input data with input decryption key. Syntax void XTEADecode(unsigned long* data, unsigned char dataLength) Parameters data block data decrypt, dataLength amount data decrypt (must factor Return Values None Pre-condition Data preloaded with correct values Side Effects Values data have changed decrypted version Remarks Note that assembly version only decrypts bytes time Example: Usage Decode XTEADecode(data,sizeof(data)); Assembly mov1w 0x08 movwf dataLength mov1w 0x34 movwf key+0 mov1w 0x12 movwf key+1 1fsr pointerNum,data call XTEADecode DS00953A-page 2005 Microchip Technology Inc. AN953 SKIPJACK Overview/History/Background SKIPJACK encryption algorithm that developed early 1980s encrypting governmental documents. remained classified SECRET until 1998 when declassified public. SKIPJACK uses 80-bit 64-bit block data. smaller size SKIPJACK left vulnerable becoming obsolete must faster than AES, XTEA other encryption standards that support sizes larger. Encryption Like many other encryption algorithms, SKIPJACK based Feistel network structure. SKIPJACK alternates between rules over Feistel network with substitution table. counter counts from used determine round using counter index into crypto-variable. FIGURE SKIPJACK® ENCRYPTION FLOWCHARTS PAGE ENCRYPTION Counter Rule False rule times? True Rule Counter False rule times? True Rule Counter False rule times? True Rule Counter False rule times? True Counter 2005 Microchip Technology Inc. DS00953A-page AN953 FIGURE SKIPJACK® ENCRYPTION FLOWCHARTS PAGE Rule Counter Rule Counter Note stands G-permutation later described this document. W1,2,3 four words that being encrypted. Stands operation. DS00953A-page 2005 Microchip Technology Inc. AN953 F-TABLE F-Table simple substitution table that used both encryption decryption cycles SKIPJACK. (Note: values hexadecimal) TABLE F-TABLE 2005 Microchip Technology Inc. DS00953A-page AN953 G-PERMUTATION G-permutation operation Feistel network SKIPJACK. splits upper lower byte input word encrypt. network also makes crypto-variable, which 80-bit long key. crypto-variable indexed with number iterations through Feistel network. This number considered that index wraps). resulting byte then XORed into data used look into F-Table. flow graph below illustrates this process. Note that stands loop into F-Table. Also note that counter FIGURE G-PERMUTATION (high byte) (low byte) CryptoVariable [(4k) CryptoVariable [((4k) CryptoVariable [((4k) CryptoVariable [((4k) (high byte) (low byte) Note: represents operation. DS00953A-page 2005 Microchip Technology Inc. AN953 DECRYPTION Decrypt Flowchart decryption flowchart nearly identical encryption flow chart. only differences being counter starts rule starts before rule FIGURE DECRYPTION FLOWCHART DECRYPTION Counter Rule False rule times? True Rule Counter False rule times? True Rule Counter False rule times? True Rule Counter False rule times? True Counter 2005 Microchip Technology Inc. DS00953A-page AN953 INVERSE G-PERMUTATION inverse G-permutation very similar G-permutation. Note that stands loop into F-Table. Also note that counter FIGURE INVERSE G-PERMUTATION (high Byte) (low byte) CryptoVariable [((4k) CryptoVariable [((4k) CryptoVariable [((4k) CryptoVariable [(4k) (high byte) (low byte) DS00953A-page 2005 Microchip Technology Inc. AN953 Overview Routines SKIPJACKEncode This function encrypts input data with cryptovariable key. Syntax void Encode(unsigned int* data, unsigned char dataLength) Parameters data block data encrypt, dataLength amount data encrypt (must factor Return Values None Pre-condition data preloaded with correct values factor size Side Effects Values data have changed encrypted version Remarks None Example: Usage Encode 2005 Microchip Technology Inc. DS00953A-page AN953 SKIPJACKDecode This function decrypts input data. Syntax void Decode(unsigned int* data, unsigned char dataLength) Parameters data block data decrypt, dataLength amount data decrypt (must factor Return Values None Pre-condition Data preloaded with correct values factor size Side Effects Values data have changed decrypted version Remarks None Example: Usage Decode DS00953A-page 2005 Microchip Technology Inc. AN953 PRBS Overview/History/Background Pseudo-Random Binary Sequence (PRBS) generators used create sequence bits that have very good randomness properties, though sequences they generate predictable eventually repeated. Linear Feedback Shift Registers (LFSRs) used create PRBS. Specifically, this implementation uses Galois implementation LFSR create PRBS. order sequence controlled where feedback effects nodes. PRBSs used very simple encryption. While this technique secure, used fast simple conceal data deter attacks. This method very secure when data encrypt plain text there consecutive bytes that altered, leaving partial messages visible). Berlekamp-Massey algorithm used take output cycle from LFSR compute feedback tabs. From feedback taps data, then calculated. FIGURE PRBS FLOWCHART [8,7,6,1] Note: stands operation. above LFSR maximal with taps 8,7,6 output binary sequence. output system always wraps around input system, well other taps. output this sequence good randomness properties. think binary sequence series coin tosses, would expect that would land heads half time tails other half. probability getting heads (11) would (1/2)*(1/2)=1/4. output binary sequences LFSRs follow this pattern. likelyhood getting length (`010' `101') 1/2. probablity getting length (`0110' `1001') This just many randomness properties that LFSRs fulfill. EXAMPLE Plain text: Key: Plain hex: PRBS EXAMPLES best times, worst times, [Char] [0x4974207761732074](1). Cipher hex: [0x3BCD7351F2B5C30A]. Key: Feedback: Plain hex: [Char] [0x4974207761732074](1). Cipher hex: [0x3BCD73517275A33A]. Note Only first block results shown. 2005 Microchip Technology Inc. DS00953A-page AN953 SUGGESTIONS IMPROVEMENT/VARIATION Though LFSRs succeptable brute force attack simplicity their nature, there improvements feedback system that make them more difficult crack. through separate times with different keys different feedbacks Change module that data operated different (preferably non-linear) manner Replace data key[0]; with data (key[3]&0b00110011) (key[2]&0b10101010) Replace with data swapf(key[1]) (key[2]&0b11000010) other combinations Additional taps feedback system found DS00953A-page 2005 Microchip Technology Inc. AN953 Overview Routines PRBSEncodeDecode This function encrypts decrypts data using PRBS generator. Syntax void EncodeDecode(unsigned char* data, unsigned dataLength) Parameters data block data decrypt, dataLength amount data decrypt Return Values None Pre-condition preloaded with correct value Side Effects Values data have changed decrypted version Remarks None Example: Usage Decode Assembly lfsr pointerNum.data mov1w 0x08 movwf dataLength call PRBSEncodeDecode 2005 Microchip Technology Inc. DS00953A-page AN953 PRECAUTIONS With exception pseudo-random number generator encryption, single error encrypted data cause destruction entire block data once decrypted. Because this phenomenon, extra caution should taken ensure that data correct. checksum verification byte embedded into data help ensure that information data block remains intact after decryption. This feature also used help prevent theft. AES, SKIPJACK XTEA relatively secure algorithms, long encryption remains hidden (even encryption algorithm known). becomes public knowledge, however, then data vulnerable. errors intentionally introduced into encrypted data attackers unaware existence, then knowing encryption algorithm will still allow them decrypt data. i.e. block[2] block[3]; block[6] 0x34; EXAMPLE Plain text: Cipher Text: Added errors: (Least significant byte XORed with 0x01) Plain Text results: (without correcting error) Note: single error this example caused destruction entire block data. DS00953A-page 2005 Microchip Technology Inc. AN953 RESULTS TABLE Method PRBS encryption with skipping SkipJack® XTEA (also referred TEAN TEA-N) XTEA (also referred TEAN TEA-N) (Rijndael Algorithm) Assembly PRBS encryption with skipping PRBS encryption with skipping XTEA (also referred TEAN TEA-N) XTEA (also referred TEAN TEA-N) (Rijndael Algorithm) KeyJump KeyJump iterations iterations High High/ Very High High/ Very High 22-40 (*,**) 97-120 (*,**) (*,***) (*,***) 22-40 (*,**) 97-120 (*,**) (*,***) (*,***) 620-687 (****) 250000 83333 21552 10799 27248 250000 83333 21552 10799 14556 iterations iterations Iterations/ Variables Tested KeyJump Security High High High/ Very High High/ Very High Encoding Cycles Byte (approx.) 92-146 (**,*) 2812 1075 (*,***) 2133 (*,***) 2153 Decoding Cycles Byte (approx.) 92-146 (**,*) 2817 1280 (*,***) 2194 (*,***) 2940 (****) Inst./Sec Bytes/Sec (Encode) 68493 3556 9302 4688 4645 Bytes/Sec (Decode) 68493 2550 7813 4558 3401 TIMING **** Depends size data array. Depends value used. Depends iterations/jumps. Depends decode generated hard-coded. TABLE Method USAGE 3616 1950 6104 PRBS encryption with skipping SkipJack® XTEA (also referred TEAN TEA-N) (Rijndael Algorithm) Assembly PRBS encryption with skipping XTEA (also referred TEAN TEA-N) (Rijndael Algorithm) 4400 This figure does include memory holding data encrypted. 2005 Microchip Technology Inc. DS00953A-page AN953 Summary Like many other applications, when choosing encryption algorithm application, becomes balancing between execution speed, code size security. application emphasizes speed over security, then PRBS algorithm probably best choice. absolute security needed matter what speed, cost code size, then best choices XTEA with more rounds AES. balance between code size, execution speed security XTEA with iterations. When developing system that needs securely talk other systems, will necessary implement same encryption standard communication deciphered. probably most common implementation four discussed this application note. When developing products that will remain several decades, also important remember that technology cryptography methods improve, encryption algorithms implemented today will become weaker with time. Brute force attacks will become faster methods getting better then brute force attacks constantly being developed. more secure encryption implementation appropriate applications where firmware will remain field without updating encryption alogorithm, will remain field long periods time help keep data secure long possible. REFERENCES AN821, "Advanced Encryption Standard Using PIC16XXX" (DS00821), Caio Gubel, Microchip Technology,Inc. Rijndael Page: NIST Page: Russell Page: NIST DES/SKIPJACK Page: Wave Instruments Page: DS00953A-page 2005 Microchip Technology Inc. Note following details code protection feature Microchip devices: Microchip products meet specification contained their particular Microchip Data Sheet. Microchip believes that family products most secure families kind market today, when used intended manner under normal conditions. There dishonest possibly illegal methods used breach code protection feature. these methods, knowledge, require using Microchip products manner outside operating specifications contained Microchip's Data Sheets. Most likely, person doing engaged theft intellectual property. Microchip willing work with customer concerned about integrity their code. Neither Microchip other semiconductor manufacturer guarantee security their code. Code protection does mean that guaranteeing product "unbreakable." Code protection constantly evolving. Microchip committed continuously improving code protection features products. Attempts break Microchip's code protection feature violation Digital Millennium Copyright Act. such acts allow unauthorized access your software other copyrighted work, have right relief under that Act. Information contained this publication regarding device applications like provided only your convenience superseded updates. your responsibility ensure that your application meets with your specifications. MICROCHIP MAKES REPRESENTATIONS WARRANTIES KIND WHETHER EXPRESS IMPLIED, WRITTEN ORAL, STATUTORY OTHERWISE, RELATED INFORMATION, INCLUDING LIMITED CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY FITNESS PURPOSE. Microchip disclaims liability arising from this information use. Microchip's products critical components life support systems authorized except with express written approval Microchip. licenses conveyed, implicitly otherwise, under Microchip intellectual property rights. Trademarks Microchip name logo, Microchip logo, Accuron, dsPIC, KEELOQ, microID, MPLAB, PIC, PICmicro, PICSTART, MATE, PowerSmart, rfPIC, SmartShunt registered trademarks Microchip Technology Incorporated U.S.A. other countries. AmpLab, FilterLab, Migratable Memory, MXDEV, MXLAB, PICMASTER, SEEVAL, SmartSensor Embedded Control Solutions Company registered trademarks Microchip Technology Incorporated U.S.A. Analog-for-the-Digital Age, Application Maestro, dsPICDEM, dsPICDEM.net, dsPICworks, ECAN, ECONOMONITOR, FanSense, FlexROM, fuzzyLAB, In-Circuit Serial Programming, ICSP, ICEPIC, MPASM, MPLIB, MPLINK, MPSIM, PICkit, PICDEM, PICDEM.net, PICLAB, PICtail, PowerCal, PowerInfo, PowerMate, PowerTool, rfLAB, rfPICDEM, Select Mode, Smart Serial, SmartTel Total Endurance trademarks Microchip Technology Incorporated U.S.A. other countries. SQTP service mark Microchip Technology Incorporated U.S.A. other trademarks mentioned herein property their respective companies. 2005, Microchip Technology Incorporated, Printed U.S.A., Rights Reserved. Printed recycled paper. Microchip received ISO/TS-16949:2002 quality system certification worldwide headquarters, design wafer fabrication facilities Chandler Tempe, Arizona Mountain View, California October 2003. Company's quality system processes procedures PICmicro® 8-bit MCUs, KEELOQ® code hopping devices, Serial EEPROMs, microperipherals, nonvolatile memory analog products. addition, Microchip's quality system design manufacture development systems 9001:2000 certified. 2005 Microchip Technology Inc. DS00953A-page WORLDWIDE SALES SERVICE AMERICAS Corporate Office 2355 West Chandler Blvd. Chandler, 85224-6199 Tel: 480-792-7200 Fax: 480-792-7277 Technical Support: http://support.microchip.com Address: www.microchip.com Atlanta Alpharetta, Tel: 770-640-0034 Fax: 770-640-0307 Boston Westford, Tel: 978-692-3848 Fax: 978-692-3821 Chicago Itasca, Tel: 630-285-0071 Fax: 630-285-0075 Dallas Addison, Tel: 972-818-7423 Fax: 972-818-2924 Detroit Farmington Hills, Tel: 248-538-2250 Fax: 248-538-2260 Kokomo Kokomo, Tel: 765-864-8360 Fax: 765-864-8387 Angeles Mission Viejo, Tel: 949-462-9523 Fax: 949-462-9608 Jose Mountain View, Tel: 650-215-1444 Fax: 650-961-0286 Toronto Mississauga, Ontario, Canada Tel: 905-673-0699 Fax: 905-673-6509 ASIA/PACIFIC Australia Sydney Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 China Beijing Tel: 86-10-8528-2100 Fax: 86-10-8528-2104 China Chengdu Tel: 86-28-8676-6200 Fax: 86-28-8676-6599 China Fuzhou Tel: 86-591-8750-3506 Fax: 86-591-8750-3521 China Hong Kong Tel: 852-2401-1200 Fax: 852-2401-3431 China Shanghai Tel: 86-21-5407-5533 Fax: 86-21-5407-5066 China Shenyang Tel: 86-24-2334-2829 Fax: 86-24-2334-2393 China Shenzhen Tel: 86-755-8203-2660 Fax: 86-755-8203-1760 China Shunde Tel: 86-757-2839-5507 Fax: 86-757-2839-5571 China Qingdao Tel: 86-532-502-7355 Fax: 86-532-502-7205 ASIA/PACIFIC India Bangalore Tel: 91-80-2229-0061 Fax: 91-80-2229-0062 India Delhi Tel: 91-11-5160-8631 Fax: 91-11-5160-8632 Japan Kanagawa Tel: 81-45-471- 6166 Fax: 81-45-471-6122 Korea Seoul Tel: 82-2-554-7200 Fax: 82-2-558-5932 82-2-558-5934 Singapore Tel: 65-6334-8870 Fax: 65-6334-8850 Taiwan Kaohsiung Tel: 886-7-536-4818 Fax: 886-7-536-4803 Taiwan Taipei Tel: 886-2-2500-6610 Fax: 886-2-2508-0102 Taiwan Hsinchu Tel: 886-3-572-9526 Fax: 886-3-572-6459 EUROPE Austria Weis Tel: 43-7242-2244-399 Fax: 43-7242-2244-393 Denmark Ballerup Tel: 45-4450-2828 Fax: 45-4485-2829 France Massy Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 Germany Ismaning Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Italy Milan Tel: 39-0331-742611 Fax: 39-0331-466781 Netherlands Drunen Tel: 31-416-690399 Fax: 31-416-690340 England Berkshire Tel: 44-118-921-5869 Fax: 44-118-921-5820 10/20/04 DS00953A-page 2005 Microchip Technology Inc. Other recent searchesTMS320C6000 - TMS320C6000 TMS320C6000 Datasheet TMP86FS28FG - TMP86FS28FG TMP86FS28FG Datasheet ST-70 - ST-70 ST-70 Datasheet S15SC4M - S15SC4M S15SC4M Datasheet DSP56F80x - DSP56F80x DSP56F80x Datasheet BY296 - BY296 BY296 Datasheet BY299 - BY299 BY299 Datasheet bq24090 - bq24090 bq24090 Datasheet bq24091 - bq24091 bq24091 Datasheet bq24092 - bq24092 bq24092 Datasheet bq24093 - bq24093 bq24093 Datasheet
Privacy Policy | Disclaimer |