fbpx
วิกิพีเดีย

โบลว์ฟิช

โบลว์ฟิช (อังกฤษ: Blowfish) ในวิทยาการเข้ารหัสลับนั้น เป็นการเข้ารหัสวิธีหนึ่งซึ่งใช้วิธีการเข้ารหัสแบบบล็อก (Block Cipher) และคีย์แบบสมมาตร (Symmetric Key) ซึ่งได้รับการออกแบบในปี ค.ศ. 1993 โดยนายบรูค ชไนย์เออร์ (Bruce Schneier) ซึ่งเป็นเจ้าพ่อแห่งวิทยาการเข้ารหัสลับ และการเข้ารหัสแบบ Blowfish นี้ได้รับความนิยมเป็นอย่างยิ่งในการนำมาใช้ทางด้านการเข้ารหัสกับผลิตภัณฑ์ของซอฟต์แวร์ต่าง ๆ ทั้งยังยากต่อการโจมตีและถูกเจาะวิเคราะห์จาก Cryptanalysis อีกด้วย ยิ่งไปกว่านั้นในปัจจุบัน ขั้นตอนวิธี Blowfish นี้ก็ยังเป็นที่นิยมในบรรดาวิธีการเข้ารหัสแบบ Block Cipher เช่นเดียวกับ ขั้นตอนวิธีอื่น ๆ เช่น AES และ Twofish

Diagram of Blowfish
Diagram of Blowfish's F function

ต้นกำเนิดของขั้นตอนวิธี Blowfish เกิดขึ้นจากการนำออกมาเผยแพร่ในการแสดงผลงานทางด้านวิทยาการเข้ารหัสลับในงาน First Fast Software Encryption Workshop ที่เมือง Cambridge ประเทศอังกฤษในปี ค.ศ. 1994 และในเดือนเมษายนในปีเดียวกัน Blowfish ก็ได้รับการตีพิมพ์ในวารสารของ Dr. Dobb จนเมื่อ 1 ปีต่อมา Blowfish ก็ได้ปรากฏอีกครั้งในวารสารฉบับเดือนกันยายนของปี 1995 ของ Dr. Dobb

นาย Bruce Schneier ได้ออกแบบขั้นตอนวิธี Blowfish โดยใช้ขั้นตอนวิธีทั่ว ๆ ไปในการ ออกแบบ และ Blowfish นี้ก็ได้เข้ามาแทนที่ขั้นตอนวิธี DES และ IDEA ที่เป็นขั้นตอนวิธีที่ได้รับความนิยมในอดีต ทั้งยังไม่มีปัญหาในการทำงานเหมือนอย่างที่ขั้นตอนวิธีในอดีตประสบกัน จึงทำให้หลาย ๆ หน่วยงานและบริษัททางด้านซอฟต์แวร์ต่าง ๆ หันมาใช้ขั้นตอนวิธี Blowfish กันมากยิ่งขึ้น จากที่เมื่อก่อนนั้นขั้นตอนวิธีในการเข้ารหัสนั้นจะต้องมีการจดลิขสิทธิ์ในการนำมาใช้งาน และเจ้าของผู้ที่จะอนุญาตให้ใช้งานคือหน่วยงานของรัฐบาลเท่านั้น แต่ขั้นตอนวิธี Blowfish นี้ได้เป็นขั้นตอนวิธีตัวแรกที่ได้มีการนำออกมาให้ใช้ได้อย่างเสรี โดยไม่มีลิขสิทธิ์ในการใช้งานใด ๆ ทั้งสิ้น สิ่งนี้เลยเป็นสิ่งที่จุดประกายให้ขั้นตอนวิธี Blowfish ได้เป็นที่นิยมกันอย่างรวดเร็ว และต่อเนื่องจนถึงปัจจุบัน

ขั้นตอนวิธี Blowfish เป็นการใช้คีย์แบบ Variable-Length Key โดยมีขนาดความยาวของคีย์ตั้งแต่ขนาด 32 Bit จนถึง 448 Bit ซึ่งจะทำให้เกิดความยืดหยุ่นในการเลือกใช้คีย์กับการเข้ารหัสแบบ Block Cipher มากยิ่งขึ้นซึ่งจะดีกว่าวิธีการแบบ DES หรือ IDEA ซึ่งมีการ Fixed-Length Key โดยใช้คีย์ขนาด 32 Bit เท่านั้น

นาย Bruce Schneier: ผู้คิดค้นขั้นตอนวิธี Blowfish

นาย Bruce Schneier ผู้คิดออกแบบวิธีการเข้ารหัสลับแบบ Blowfish เกิดเมื่อวันที่ 15 เดือนมกราคม ปี ค.ศ. 1963 ในประเทศสหรัฐอเมริกา เขาทำงานเป็นนัก Cryptographer เป็นผู้ดูแลความปลอดภัยทางคอมพิวเตอร์ (Computer Security Specialist) และยังเป็นนักเขียนอีกด้วย, Bruce ยังได้เขียนหนังสือหลาย ๆ เล่มในเรื่องของ Computer Security และ Cryptography และเขายังเป็นผู้ก่อตั้งและเป็นผู้บริหารของสำนักงานเทคโนโลยี Counterpane Internet Security อีกด้วย

ปัจจุบันนาย Bruce Schneier อาศัยอยู่ในเมือง Minneapolis, Minnesota กับภรรยาของเขาคือ นาง Karen Cooper, นาย Bruce Schneier จบการศึกษาระดับปริญญาตรีทางด้านฟิสิกส์จากมหาวิทยาลัยโรเชสเตอร์ (University of Rochester) และจบการศึกษาในระดับปริญญาโททางด้านวิทยาการคอมพิวเตอร์จากมหาวิทยาลัยชาวอเมริกัน (American University) โดยก่อนหน้าที่เขาจะมาเป็นผู้ก่อตั้งสำนักงานเทคโนโลยี Counterpane Internet Security นั้น เข้าได้ทำงานในหน่วยงานกระทรวงกลาโหมสหรัฐอเมริกา (United States Department of Defense) และในหน่วยงานของ Bell Labs มาก่อน

การศึกษาทางด้าน Applied Cryptography เป็นสิ่งที่ได้รับความนิยมและทำให้เขามีชื่อเสียงทางด้านวิทยาการเข้ารหัสลับ หรือ Cryptography เป็นอย่างมาก, Schneier ได้ออกแบบ และร่วมออกแบบในเทคนิควิธีการเข้ารหัสในหลาย ๆ ขั้นตอนวิธีซึ่งได้แก่ Blowfish, Twofish และ MacGuffin ทั้งยังออกแบบเทคนิคการสุ่มและสร้างตัวเลขในการเข้ารหัสแบบ Yarrow และ Fortuna อีกด้วย

ขั้นตอนวิธี Blowfish

Blowfish จะเป็นการเข้ารหัสแบบ 64 Bit Block Cipher โดยข้อมูลในการเข้ารหัสจะถูกแบ่งออกเป็นบล็อก บล็อกละ 64 Bit และใช้คีย์แบบ Variable-Length Key โดยจะมีขนาดตั้งแต่ 32 Bit ไปจนถึง 448 Bit โดยขั้นตอนการทำงานนั้นจะมีการทำเป็นรอบทั้งหมด 16 รอบ ซึ่งเรียกว่าวิธีการแบบ Feistel Network และเลือกใช้คีย์ที่เหมาะสมกับ S-boxes ในการเข้ารหัส โดยจะมีโครงสร้างคล้ายกับการทำงานของขั้นตอนวิธี CAST-128 ที่เป็นแบบ Fixed S-boxes

ตาม Diagram ทางขวามือนั้นจะเป็นการแสดงการทำงานของขั้นตอนวิธี Blowfish ซึ่ง 1 เส้นจะแทนด้วยข้อมูลขนาด 32 Bit ที่เรียกว่า P-entries โดย ขั้นตอนวิธี ในการเลือก Key หรือ Subkey นั้นจะประกอบด้วย 2 ส่วนคือ 18-entry P-array และ 4 ของ 256-entry S-boxes โดยที่ S-boxes นั้นจะเป็นการรับข้อมูลเข้า (Input) ขนาด 8 Bit เข้าไปเพื่อทำงานในกระบวนการต่าง ๆ และจะให้ข้อมูลขนาด 32 Bit ออกมา (Output) โดยในแต่ละ P-array จะนำมาใช้ในแต่ระรอบตั้งแต่ P1 จนถึง P16 และหลังจากที่มีการเสร็จสิ้นการทำงาน 16 รอบ แล้วในแต่ละ 32 Bit ของ Data Block จะถูกทำการ XORed (Exclusive OR) กับ P-array อีก 2 ตัว คือ P17 และ P18

ตาม Diagram ทางขวามือจะเป็นการแสดงการทำงานภายในของฟังก์ชัน F (F-function) ซึ่งปรากฏอยู่จาก Diagram ด้านบน โดยการทำงานของฟังก์ชัน F นั้นจะเริ่มต้นโดยจะแบ่งข้อมูลขนาด 32 Bit เป็น 4 ส่วน ส่วนละ 8 Bit เพื่อเป็น Input ในการเข้าไปทำงานของ 4 S-boxes ที่อยู่ภายในฟังก์ชัน F นั้น และเมื่อทำการผ่าน S-box ไปแล้วจะได้ Output ออกมาเป็นข้อมูลที่มีขนาด 32 Bit ในทุก ๆ S-box โดยจะนำมาทำการบวก แล้วหารเอาเศษด้วย 232 และการ XOR จนได้ข้อมูลสุดท้ายที่มีขนาด 32 Bit เช่นเดิม

ตารางคีย์ของขั้นตอนวิธี Blowfish จะเริ่มทำการกำหนดค่าเป็น Subkey ที่เรียกว่า P-array และ S-box ซึ่งประกอบไปด้วยค่าของตัวเลขฐานสิบหกของค่า Pi ซึ่งเป็นค่าที่ไม่เป็นระเบียบและยากต่อการจัดเรียง โดยที่คีย์ลับนี้จะทำการ XORed กับ P-entries หรือข้อมูลที่เป็น 32 bit ทางซ้ายมือในทุก ๆ รอบตั้งแต่ P1 จนถึง P16 และในทุก ๆ รอบจะมีการ Generate Subkey ขึ้นมาใหม่ทุกครั้ง เมื่อทำการ XORed ในรอบนั้น ๆ แล้วก็จะเข้าสู่การทำงานในฟังก์ชัน F ซึ่งประกอบไปด้วย 4 S-box จากนั้นก็จะทำการ XORed อีกครั้งกับ P-entries หรือ Data Block ที่มีขนาด 32 Bit ที่อยู่ทางฝั่งขวามือ จากนั้นจะมีการสลับข้อมูลโดยที่ 32 Bit P-entries ทางขวามือจะถูกสลับไปทางซ้ายมือ และ 32 Bit P-entries ทางซ้ายมือจะถึงสลับไปทางขวามือ ก็เป็นการสิ้นสุดการทำงานในแต่ละรอบ โดยจะทำงานแบบนี้ไปเรื่อย ๆ จนครบ 16 รอบ และเมื่อครบ 16 รอบแล้วก็จะทำการ XORed อีกครั้งกับ P-array ตัวที่ 17 และ 18 ซึ่งเป็น Subkey 2 ตัวสุดท้าย ก็จะสิ้นสุดขั้นตอนการเข้ารหัส และจะมีขั้นตอนการรวมกันของ 32 Bit Block Cipher ทั้ง 2 ฝั่งเข้าด้วยกันเป็น Cipher text ขนาด 64 Bit เช่นเดิม ซึ่งการเข้ารหัสแบบ Blowfish นี้จะมีการทำงาน (Run) ทั้งหมด 521 ครั้งเพื่อทำการ Generate ค่าของทุก ๆ Subkey ที่เกิดขึ้น ซึ่งจะใช้เนื้อของ CPU ที่มีขนาดเป็น 4 KB ในการ Process เท่านั้นซึ่งถือว่าน้อยมาก

การวิเคราะห์และตรวจสอบขั้นตอนวิธี Blowfish

เมื่อขั้นตอนวิธี Blowfish ซึ่งไม่มีการกำหนดลิขสิทธิ์ใด ๆ เกิดขึ้นมาได้ 1 ปี ก็ได้มีผู้สนับสนุนของวารสาร Dr. Dobb's Journal ที่เป็น Cryptanalysis ได้ให้ข้อมูลเอาไว้ 5 ส่วนด้วยกันโดยทั้ง 5 ส่วนนั้นได้ข้อสรุปออกมาดังนี้คือ

นาย John Kelsey ได้ทำการโจมตีโดยเข้าไปขัดขวางการทำงานในรอบที่ 3 ในการทำงานของ Blowfish แต่ปรากฏว่าไม่สามรถหยุดการทำงานลงได้ การโจมตีในการทำงานของฟังก์ชัน F และการทำงานแบบ Addition mod 232 and XOR ยากต่อการแปรค่าออกไปจากเดิม นาย Vikramjit Singh Chhabra พบว่าการสร้าง Key ของ Blowfish จะใช้เครื่องในการทำงานซึ่งเป็นการทำงานที่มีประสิทธิภาพเป็นอย่างมาก

นาย Serge Vaudenay ได้ตรวจสอบถึงการแปรผันของขั้นตอนวิธี Blowfish โดยใช้ S-boxes ที่ไม่ขึ้นอยู่กับค่า key เพื่อนำมาเป็นตัวแปรผัน ซึ่งค่าความแตกต่างจากการโจมตีสามารถแสดงให้เห็นว่าค่า P-array ที่เป็น 28r+1 จะมีค่าใกล้เคียงกับ ข้อความธรรมดา (โดยที่ r คือจำนวนรอบ) ซึ่งการโจมตีนี้เป็นไปได้ในรอบที่ 8 ของ Blowfish หรือสูงกว่านั้น

สำหรับค่าคีย์ที่เป็น Weak Key และ Weak S-box จะถูกทำการสร้างขึ้นมาได้โดยการกำหนดเลขคี่เพื่อมาสุ่มตัวเลข 1 ตัวใน 214 ตัว และการโจมตีต้องการเพียง 24r+1 ของ plaintext เพื่อจะทำการหาค่าของ P-array ออกมากได้และทำให้รู้ถึงค่าของ S-box ด้วย เมื่อรู้ค่าของ S-box แล้วก็จะสามารถย้อนรอยไปจนถึงข้อมูลต้นตอได้ และการทำงานโดยการโจมตีแบบนี้สามารถที่จะลดรอบการทำงานลงได้ และก็จะได้ค่าข้อมูลที่เหมือน 16 รอบ

ในปีค.ศ. 2005 นาย Dieter Schmidt ได้ตรวจสอบถึงตารางคีย์ของขั้นตอนวิธี Blowfish และพบว่า Subkeys ที่ใช้ในรอบที่ 3 และ 4 นั้นจะไม่ขึ้นกับ 64 bits แรกของ key เดิม

การทำงานกับ Blowfish

Blowfish เป็นหนึ่งในการเข้ารหัสแบบ Block Cipher ที่ทำงานได้รวดเร็วและปลอดภัยสูง โดยมีการกำหนดค่าของ Subkey ใหม่อยู่ตลอดเวลา และใช้เนื้อที่ในการสร้าง Key ขึ้นมาโดยใช้เนื้อที่ของ CPU เพียง 4 KB เท่านั้นซึ่งน้อยมากเมื่อเทียบกับการเข้ารหัสของขั้นตอนวิธีตัวอื่น ๆ ดังนั้นจึงได้นำมาใช้ในด้านการทำงานของ Application โปรแกรมต่าง ๆ มากมายเช่น การทำ Password-hashing ใน OpenBSD ก็จะใช้ขั้นตอนวิธีของ Blowfish ในการสร้างตาราง Key ขึ้นมาเป็นต้น

ในการเขียนโปรแกรมหรือ Implement โปรแกรมต่าง ๆ นั้นก็จะใช้การทำงานของ Blowfish เข้ามาเกี่ยวข้องอีกด้วยโดยเฉพาะการนำมาใช้กับโปรแกรมที่ใช้ในอุปกรณ์ขนาดเล็กอย่างเช่น PlamOS หรือ เครื่อง PDAs เป็นต้น และยังนำมาใช้ในเครื่องคอมพิวเตอร์แบบ Laptop มากมาย แต่ก็ยังใช้งานไม่ได้กับอุปกรณ์ที่มีขนาดเล็กมาก ๆ ไปกว่านี้ ยกตัวอย่างเช่นบัตร Smartcards เป็นต้น

Blowfish เป็นขั้นตอนวิธีที่ไม่มีการจดลิขสิทธิ์ใด ๆ ทั้งสิ้น เป็นขั้นตอนวิธีที่มีให้ฟรีและ สามารถหาได้โดยทั่วไป สิ่งนี้เลยเป็นสิ่งที่ทำให้ผู้คนสนใจและหันมาใช้ขั้นตอนวิธี Blowfish กันอย่างแพร่หลายและได้รับความนิยมเป็นอย่างยิ่งในปัจจุบันเพื่อใช้เป็นเทคนิคการเข้ารหัสกับผลิตภัณฑ์ของซอฟต์แวร์ต่าง ๆ นั่นเอง

ผลิตภัณฑ์ที่ใช้ขั้นตอนวิธี Blowfish

  • Blowfish Advanced CS by Markus Hahn: เป็นการเข้ารหัสของ File encryption โดยจะเป็น Win32 systems ซึ่งประกอบไปด้วยการแสดง File browser, การทำ job automation, การกำหนด auto password, การรักษาความปลอกภัยกับ key setup ด้วย SHA-1, และการทำ data compression ด้วย LZSS
  • 96Crypt by fever.link: เป็นการเข้ารหัสและถอดรหัสของ file และ folder
  • Access Manager by Citi-Software Ltd: เป็นการจัดการ password สำหรับระบบ Windows และมีให้ใช้ฟรี
  • AEdit: เป็นฟรีโปรแกรม word processorในระบบ Windows ที่มีการเข้ารหัส
  • Coolfish: เป็นการ encrypting ข้อมูลหรือข้อความใน editor สำหรับระบบ Windows
  • Foopchat: เป็นโปรแกรม Encrypted chat และโปรแกรมแชร์ไฟล์แบบ client/server
  • JFile by Land-J Technologies: เป็นโปรแกรมทำงานเกี่ยวกับฐานข้อมูลในระบบของ PalmOS
  • Freedom by Zero-Knowledge: เป็นโปรแกรมใช้ทางด้าน web browsing, การส่งอีเมล, การ chat, คำสั่ง telnet, และการทำ newsgroups

โบลว, บทความน, ไม, การอ, างอ, งจากแหล, งท, มาใดกร, ณาช, วยปร, บปร, งบทความน, โดยเพ, มการอ, างอ, งแหล, งท, มาท, าเช, อถ, เน, อความท, ไม, แหล, งท, มาอาจถ, กค, ดค, านหร, อลบออก, เร, ยนร, าจะนำสารแม, แบบน, ออกได, อย, างไรและเม, อไร, งกฤษ, blowfish, ในว, ทยาการเข, . bthkhwamniimmikarxangxingcakaehlngthimaidkrunachwyprbprungbthkhwamni odyephimkarxangxingaehlngthimathinaechuxthux enuxkhwamthiimmiaehlngthimaxacthukkhdkhanhruxlbxxk eriynruwacanasaraemaebbnixxkidxyangiraelaemuxir oblwfich xngkvs Blowfish inwithyakarekharhslbnn epnkarekharhswithihnungsungichwithikarekharhsaebbblxk Block Cipher aelakhiyaebbsmmatr Symmetric Key sungidrbkarxxkaebbinpi kh s 1993 odynaybrukh chinyexxr Bruce Schneier sungepnecaphxaehngwithyakarekharhslb aelakarekharhsaebb Blowfish niidrbkhwamniymepnxyangyinginkarnamaichthangdankarekharhskbphlitphnthkhxngsxftaewrtang thngyngyaktxkarocmtiaelathukecaawiekhraahcak Cryptanalysis xikdwy yingipkwanninpccubn khntxnwithi Blowfish nikyngepnthiniyminbrrdawithikarekharhsaebb Block Cipher echnediywkb khntxnwithixun echn AES aela TwofishDiagram of Blowfish Diagram of Blowfish s F function tnkaenidkhxngkhntxnwithi Blowfish ekidkhuncakkarnaxxkmaephyaephrinkaraesdngphlnganthangdanwithyakarekharhslbinngan First Fast Software Encryption Workshop thiemuxng Cambridge praethsxngkvsinpi kh s 1994 aelaineduxnemsayninpiediywkn Blowfish kidrbkartiphimphinwarsarkhxng Dr Dobb cnemux 1 pitxma Blowfish kidpraktxikkhrnginwarsarchbbeduxnknyaynkhxngpi 1995 khxng Dr Dobbnay Bruce Schneier idxxkaebbkhntxnwithi Blowfish odyichkhntxnwithithw ipinkar xxkaebb aela Blowfish nikidekhamaaethnthikhntxnwithi DES aela IDEA thiepnkhntxnwithithiidrbkhwamniyminxdit thngyngimmipyhainkarthanganehmuxnxyangthikhntxnwithiinxditprasbkn cungthaihhlay hnwynganaelabrisththangdansxftaewrtang hnmaichkhntxnwithi Blowfish knmakyingkhun cakthiemuxkxnnnkhntxnwithiinkarekharhsnncatxngmikarcdlikhsiththiinkarnamaichngan aelaecakhxngphuthicaxnuyatihichngankhuxhnwyngankhxngrthbalethann aetkhntxnwithi Blowfish niidepnkhntxnwithitwaerkthiidmikarnaxxkmaihichidxyangesri odyimmilikhsiththiinkarichnganid thngsin singnielyepnsingthicudprakayihkhntxnwithi Blowfish idepnthiniymknxyangrwderw aelatxenuxngcnthungpccubnkhntxnwithi Blowfish epnkarichkhiyaebb Variable Length Key odymikhnadkhwamyawkhxngkhiytngaetkhnad 32 Bit cnthung 448 Bit sungcathaihekidkhwamyudhyuninkareluxkichkhiykbkarekharhsaebb Block Cipher makyingkhunsungcadikwawithikaraebb DES hrux IDEA sungmikar Fixed Length Key odyichkhiykhnad 32 Bit ethann enuxha 1 nay Bruce Schneier phukhidkhnkhntxnwithi Blowfish 2 khntxnwithi Blowfish 3 karwiekhraahaelatrwcsxbkhntxnwithi Blowfish 4 karthangankb Blowfish 5 phlitphnththiichkhntxnwithi Blowfishnay Bruce Schneier phukhidkhnkhntxnwithi Blowfish aekikhnay Bruce Schneier phukhidxxkaebbwithikarekharhslbaebb Blowfish ekidemuxwnthi 15 eduxnmkrakhm pi kh s 1963 inpraethsshrthxemrika ekhathanganepnnk Cryptographer epnphuduaelkhwamplxdphythangkhxmphiwetxr Computer Security Specialist aelayngepnnkekhiynxikdwy Bruce yngidekhiynhnngsuxhlay elmineruxngkhxng Computer Security aela Cryptography aelaekhayngepnphukxtngaelaepnphubriharkhxngsanknganethkhonolyi Counterpane Internet Security xikdwypccubnnay Bruce Schneier xasyxyuinemuxng Minneapolis Minnesota kbphrryakhxngekhakhux nang Karen Cooper nay Bruce Schneier cbkarsuksaradbpriyyatrithangdanfisikscakmhawithyalyorechsetxr University of Rochester aelacbkarsuksainradbpriyyaoththangdanwithyakarkhxmphiwetxrcakmhawithyalychawxemrikn American University odykxnhnathiekhacamaepnphukxtngsanknganethkhonolyi Counterpane Internet Security nn ekhaidthanganinhnwyngankrathrwngklaohmshrthxemrika United States Department of Defense aelainhnwyngankhxng Bell Labs makxnkarsuksathangdan Applied Cryptography epnsingthiidrbkhwamniymaelathaihekhamichuxesiyngthangdanwithyakarekharhslb hrux Cryptography epnxyangmak Schneier idxxkaebb aelarwmxxkaebbinethkhnikhwithikarekharhsinhlay khntxnwithisungidaek Blowfish Twofish aela MacGuffin thngyngxxkaebbethkhnikhkarsumaelasrangtwelkhinkarekharhsaebb Yarrow aela Fortuna xikdwykhntxnwithi Blowfish aekikhBlowfish caepnkarekharhsaebb 64 Bit Block Cipher odykhxmulinkarekharhscathukaebngxxkepnblxk blxkla 64 Bit aelaichkhiyaebb Variable Length Key odycamikhnadtngaet 32 Bit ipcnthung 448 Bit odykhntxnkarthangannncamikarthaepnrxbthnghmd 16 rxb sungeriykwawithikaraebb Feistel Network aelaeluxkichkhiythiehmaasmkb S boxes inkarekharhs odycamiokhrngsrangkhlaykbkarthangankhxngkhntxnwithi CAST 128 thiepnaebb Fixed S boxestam Diagram thangkhwamuxnncaepnkaraesdngkarthangankhxngkhntxnwithi Blowfish sung 1 esncaaethndwykhxmulkhnad 32 Bit thieriykwa P entries ody khntxnwithi inkareluxk Key hrux Subkey nncaprakxbdwy 2 swnkhux 18 entry P array aela 4 khxng 256 entry S boxes odythi S boxes nncaepnkarrbkhxmulekha Input khnad 8 Bit ekhaipephuxthanganinkrabwnkartang aelacaihkhxmulkhnad 32 Bit xxkma Output odyinaetla P array canamaichinaetrarxbtngaet P1 cnthung P16 aelahlngcakthimikaresrcsinkarthangan 16 rxb aelwinaetla 32 Bit khxng Data Block cathukthakar XORed Exclusive OR kb P array xik 2 tw khux P17 aela P18tam Diagram thangkhwamuxcaepnkaraesdngkarthanganphayinkhxngfngkchn F F function sungpraktxyucak Diagram danbn odykarthangankhxngfngkchn F nncaerimtnodycaaebngkhxmulkhnad 32 Bit epn 4 swn swnla 8 Bit ephuxepn Input inkarekhaipthangankhxng 4 S boxes thixyuphayinfngkchn F nn aelaemuxthakarphan S box ipaelwcaid Output xxkmaepnkhxmulthimikhnad 32 Bit inthuk S box odycanamathakarbwk aelwharexaessdwy 232 aelakar XOR cnidkhxmulsudthaythimikhnad 32 Bit echnedimtarangkhiykhxngkhntxnwithi Blowfish caerimthakarkahndkhaepn Subkey thieriykwa P array aela S box sungprakxbipdwykhakhxngtwelkhthansibhkkhxngkha Pi sungepnkhathiimepnraebiybaelayaktxkarcderiyng odythikhiylbnicathakar XORed kb P entries hruxkhxmulthiepn 32 bit thangsaymuxinthuk rxbtngaet P1 cnthung P16 aelainthuk rxbcamikar Generate Subkey khunmaihmthukkhrng emuxthakar XORed inrxbnn aelwkcaekhasukarthanganinfngkchn F sungprakxbipdwy 4 S box caknnkcathakar XORed xikkhrngkb P entries hrux Data Block thimikhnad 32 Bit thixyuthangfngkhwamux caknncamikarslbkhxmulodythi 32 Bit P entries thangkhwamuxcathukslbipthangsaymux aela 32 Bit P entries thangsaymuxcathungslbipthangkhwamux kepnkarsinsudkarthanganinaetlarxb odycathanganaebbniiperuxy cnkhrb 16 rxb aelaemuxkhrb 16 rxbaelwkcathakar XORed xikkhrngkb P array twthi 17 aela 18 sungepn Subkey 2 twsudthay kcasinsudkhntxnkarekharhs aelacamikhntxnkarrwmknkhxng 32 Bit Block Cipher thng 2 fngekhadwyknepn Cipher text khnad 64 Bit echnedim sungkarekharhsaebb Blowfish nicamikarthangan Run thnghmd 521 khrngephuxthakar Generate khakhxngthuk Subkey thiekidkhun sungcaichenuxkhxng CPU thimikhnadepn 4 KB inkar Process ethannsungthuxwanxymakkarwiekhraahaelatrwcsxbkhntxnwithi Blowfish aekikhemuxkhntxnwithi Blowfish sungimmikarkahndlikhsiththiid ekidkhunmaid 1 pi kidmiphusnbsnunkhxngwarsar Dr Dobb s Journal thiepn Cryptanalysis idihkhxmulexaiw 5 swndwyknodythng 5 swnnnidkhxsrupxxkmadngnikhuxnay John Kelsey idthakarocmtiodyekhaipkhdkhwangkarthanganinrxbthi 3 inkarthangankhxng Blowfish aetpraktwaimsamrthhyudkarthanganlngid karocmtiinkarthangankhxngfngkchn F aelakarthanganaebb Addition mod 232 and XOR yaktxkaraeprkhaxxkipcakedim nay Vikramjit Singh Chhabra phbwakarsrang Key khxng Blowfish caichekhruxnginkarthangansungepnkarthanganthimiprasiththiphaphepnxyangmaknay Serge Vaudenay idtrwcsxbthungkaraeprphnkhxngkhntxnwithi Blowfish odyich S boxes thiimkhunxyukbkha key ephuxnamaepntwaeprphn sungkhakhwamaetktangcakkarocmtisamarthaesdngihehnwakha P array thiepn 28r 1 camikhaiklekhiyngkb khxkhwamthrrmda odythi r khuxcanwnrxb sungkarocmtiniepnipidinrxbthi 8 khxng Blowfish hruxsungkwannsahrbkhakhiythiepn Weak Key aela Weak S box cathukthakarsrangkhunmaidodykarkahndelkhkhiephuxmasumtwelkh 1 twin 214 tw aelakarocmtitxngkarephiyng 24r 1 khxng plaintext ephuxcathakarhakhakhxng P array xxkmakidaelathaihruthungkhakhxng S box dwy emuxrukhakhxng S box aelwkcasamarthyxnrxyipcnthungkhxmultntxid aelakarthanganodykarocmtiaebbnisamarththicaldrxbkarthanganlngid aelakcaidkhakhxmulthiehmuxn 16 rxbinpikh s 2005 nay Dieter Schmidt idtrwcsxbthungtarangkhiykhxngkhntxnwithi Blowfish aelaphbwa Subkeys thiichinrxbthi 3 aela 4 nncaimkhunkb 64 bits aerkkhxng key edimkarthangankb Blowfish aekikhBlowfish epnhnunginkarekharhsaebb Block Cipher thithanganidrwderwaelaplxdphysung odymikarkahndkhakhxng Subkey ihmxyutlxdewla aelaichenuxthiinkarsrang Key khunmaodyichenuxthikhxng CPU ephiyng 4 KB ethannsungnxymakemuxethiybkbkarekharhskhxngkhntxnwithitwxun dngnncungidnamaichindankarthangankhxng Application opraekrmtang makmayechn kartha Password hashing in OpenBSD kcaichkhntxnwithikhxng Blowfish inkarsrangtarang Key khunmaepntninkarekhiynopraekrmhrux Implement opraekrmtang nnkcaichkarthangankhxng Blowfish ekhamaekiywkhxngxikdwyodyechphaakarnamaichkbopraekrmthiichinxupkrnkhnadelkxyangechn PlamOS hrux ekhruxng PDAs epntn aelayngnamaichinekhruxngkhxmphiwetxraebb Laptop makmay aetkyngichnganimidkbxupkrnthimikhnadelkmak ipkwani yktwxyangechnbtr Smartcards epntnBlowfish epnkhntxnwithithiimmikarcdlikhsiththiid thngsin epnkhntxnwithithimiihfriaela samarthhaidodythwip singnielyepnsingthithaihphukhnsnicaelahnmaichkhntxnwithi Blowfish knxyangaephrhlayaelaidrbkhwamniymepnxyangyinginpccubnephuxichepnethkhnikhkarekharhskbphlitphnthkhxngsxftaewrtang nnexngphlitphnththiichkhntxnwithi Blowfish aekikhBlowfish Advanced CS by Markus Hahn epnkarekharhskhxng File encryption odycaepn Win32 systems sungprakxbipdwykaraesdng File browser kartha job automation karkahnd auto password karrksakhwamplxkphykb key setup dwy SHA 1 aelakartha data compression dwy LZSS 96Crypt by fever link epnkarekharhsaelathxdrhskhxng file aela folder Access Manager by Citi Software Ltd epnkarcdkar password sahrbrabb Windows aelamiihichfri AEdit epnfriopraekrm word processorinrabb Windows thimikarekharhs Coolfish epnkar encrypting khxmulhruxkhxkhwamin editor sahrbrabb Windows Foopchat epnopraekrm Encrypted chat aelaopraekrmaechriflaebb client server JFile by Land J Technologies epnopraekrmthanganekiywkbthankhxmulinrabbkhxng PalmOS Freedom by Zero Knowledge epnopraekrmichthangdan web browsing karsngxieml kar chat khasng telnet aelakartha newsgroups bthkhwamekiywkbkhxmphiwetxr xupkrntang hruxekhruxkhayniyngepnokhrng khunsamarthchwywikiphiediyidodyephimkhxmul duephimthi sthaniyxy ethkhonolyisarsneths ekhathungcak https th wikipedia org w index php title oblwfich amp oldid 9681472, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,

บทความ

, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม