อ่าน 3 นาที
เสื้อกั๊ก
VEST (Very Efficient Substitution Transposition) ciphers เป็นชุดของตระกูล ciphers เฉพาะฮาร์ดแวร์อเนกประสงค์ที่รองรับ การเข้ารหัสแบบตรวจสอบความถูกต้อง ผ่านครั้งเดียว...
เสื้อกั๊ก
โครงสร้างระดับสูงของ VEST | |
| ทั่วไป | |
|---|---|
| นักออกแบบ | ฌอน โอนีล |
| เผยแพร่ครั้งแรก | 13 มิถุนายน 2548 |
| รายละเอียดรหัสลับ | |
| ขนาดกุญแจ | ใดๆ |
| การเรียกร้องด้านความปลอดภัย | 80–256 บิต |
| ขนาดของรัฐ | 256 บิต (VEST-4) ถึง 768 บิต (VEST-32) |
| โครงสร้าง | NLFSR , SPN , ฟังก์ชัน T |
VEST (Very Efficient Substitution Transposition) ciphersเป็นชุดของตระกูล ciphers เฉพาะฮาร์ดแวร์อเนกประสงค์ที่รองรับการเข้ารหัสแบบตรวจสอบความถูกต้อง ผ่านครั้งเดียว และสามารถทำงานเป็นฟังก์ชันแฮชที่ทนต่อการชนกันซึ่งออกแบบโดยSean O'Neil , Benjamin GittinsและHoward Landman [ 1 ] VESTไม่สามารถนำไปใช้งานได้อย่างมีประสิทธิภาพในซอฟต์แวร์
VEST ใช้ฟังก์ชัน T ที่สมดุล ซึ่งสามารถอธิบายได้ว่าเป็นรีจิสเตอร์เลื่อนป้อนกลับแบบไม่เชิงเส้นแบบหนึ่งต่อหนึ่ง ที่มีการป้อนกลับแบบขนาน (NLPFSR) หรือเป็นเครือข่ายการแทนที่-การเรียงสับเปลี่ยนซึ่งได้รับการสนับสนุนโดยตัว นับแบบ RNS ที่ไม่เชิง เส้น ตระกูล VEST ทั้งสี่ที่อธิบายไว้ในข้อกำหนดของรหัสลับ ได้แก่VEST-4 , VEST-8 , VEST-16และVEST-32รหัสลับ VEST รองรับคีย์และIV ที่มี ขนาดแปรผันได้และการเปลี่ยนคีย์แบบทันที รหัสลับ VEST ทั้งหมดจะปล่อยเอาต์พุตในทุกรอบสัญญาณนาฬิกา
ผลิตภัณฑ์ VEST ทุกรุ่นได้รับการคุ้มครองโดยสิทธิบัตรยุโรปหมายเลขEP 1820295(B1)ซึ่งเป็นกรรมสิทธิ์ของ Synaptic Laboratories
VEST เป็นผู้เข้ารอบที่ 2 ใน การแข่งขัน eSTREAMในกลุ่มผลิตภัณฑ์ฮาร์ดแวร์ แต่ไม่ใช่ผู้เข้ารอบที่ 3 หรือผู้เข้ารอบหลัก ดังนั้นจึงไม่ได้เป็นส่วนหนึ่งของผลิตภัณฑ์ขั้นสุดท้าย
ภาพรวม
| รหัสลับ: | เวสท์-4 | เวสท์-8 | เสื้อกั๊ก-16 | เวสท์-32 | เอเอส-128 |
|---|---|---|---|---|---|
| เอาต์พุต (บิตต่อการเรียก): | 4 | 8 | 16 | 32 | 128 |
| จำนวนบิตที่อ้างสิทธิ์ด้านความปลอดภัย: | 80 | 128 | 160 | 256 | 128 |
| ความยาวและขนาดของดอกไขควงที่แนะนำ: | 160 | 256 | 320 | 512 | 128 |
| ความยาวแฮชที่แนะนำ (บิต): | 160 | 256 | 320 | 512 | |
| ขนาดตัวนับ (บิต): | 163 | 163 | 171 | 171 | |
| ขนาดแกนหลัก (บิต): | 83 | 211 | 331 | 587 | |
| ขนาดสถานะ (บิต): | 256 | 384 | 512 | 768 | 128 |
ออกแบบ
โครงสร้างโดยรวม
รหัสลับ VEST ประกอบด้วยส่วนประกอบสี่ส่วน ได้แก่ ตัวนับแบบไม่เชิงเส้น ตัวกระจายตัวนับเชิงเส้น ตัวสะสมแบบไม่เชิงเส้นแบบหนึ่งต่อหนึ่งที่มีสถานะขนาดใหญ่ และตัวรวมเอาต์พุตเชิงเส้น (ดังแสดงในภาพที่มุมบนขวาของหน้านี้) ตัวนับ RNS ประกอบด้วยNLFSR จำนวนสิบหกตัว ที่มีคาบเป็นจำนวนเฉพาะ ตัวกระจายตัวนับคือชุดของตัวรวมเชิงเส้นแบบ 5 ต่อ 1 ที่มีการป้อนกลับเพื่อบีบอัดเอาต์พุตของตัวนับทั้ง 16 ตัวให้เหลือ 10 บิต ในขณะเดียวกันก็ขยายข้อมูลอินพุต 8 ตัวให้เหลือ 9 บิต ตัวสะสมหลักคือ NLPFSR ที่รับ 10 บิตจากตัวกระจายตัวนับเป็นอินพุต และตัวรวมเอาต์พุตคือชุดของตัวรวมเชิงเส้นแบบ 6 ต่อ 1
ตัวสะสม
ตัวสะสมหลักในอัลกอริทึมการเข้ารหัส VEST สามารถมองได้ว่าเป็นSPNที่สร้างขึ้นโดยใช้ฟังก์ชันป้อนกลับแบบไม่เชิงเส้น 6 ต่อ 1 โดยมีฟังก์ชันหนึ่งสำหรับแต่ละบิต และทุกฟังก์ชันจะได้รับการอัปเดตพร้อมกัน ตัวสะสมหลักของ VEST-4 แสดงไว้ในภาพด้านล่าง:

วงจรนี้รับข้อมูลเข้า 10 บิต ( d0 − d9 ) บิตที่มีค่าน้อยที่สุดห้าบิต ( p0 − p4 ) ในสถานะสะสมจะถูกอัปเดตโดยกล่องการแทนที่ขนาด5 × 5 และรวมเข้ากับบิตอินพุตห้า บิต แรกในแต่ละรอบแบบเชิงเส้น บิตสะสมห้าบิตถัดไปจะถูกรวมเข้ากับบิตอินพุตห้าบิตถัดไปแบบเชิงเส้นและกับฟังก์ชันที่ไม่เป็นเชิงเส้นของบิตสะสมที่มีค่าน้อยกว่าสี่บิต ในโหมดการเข้ารหัสแบบตรวจสอบความถูกต้อง บิตป้อนกลับของข้อความที่เข้ารหัสจะถูกป้อนกลับเข้าไปในตัวสะสม ( e0 − e3 ) แบบ เชิง เส้นด้วยฟังก์ชันที่ไม่เป็นเชิงเส้นของบิตสะสมที่มีค่าน้อยกว่าสี่บิต บิตอื่นๆ ทั้งหมดในสถานะสะสมของ VEST จะถูกรวมเข้ากับฟังก์ชันที่ไม่เป็นเชิงเส้นของบิตที่มีค่าน้อยกว่าห้าบิตในสถานะสะสมในแต่ละรอบ การใช้เฉพาะบิตที่มีค่าน้อยกว่าเป็นอินพุตในฟังก์ชันป้อนกลับสำหรับแต่ละบิตนั้นเป็นลักษณะเฉพาะของฟังก์ชัน T และเป็นสาเหตุของความเป็นฟังก์ชันหนึ่งต่อหนึ่งของป้อนกลับ หลังจากดำเนินการ แทนที่แล้วจะตามด้วยการสลับตำแหน่งแบบสุ่มเทียมของบิตทั้งหมดในสถานะ (ดูภาพด้านล่าง)
การตรวจสอบความถูกต้องของข้อมูล
รหัสลับ VEST สามารถประมวลผลได้ในโหมดการเข้ารหัสแบบตรวจสอบความถูกต้องดั้งเดิม คล้ายกับPhelixแต่จะตรวจสอบความถูกต้องของข้อความที่เข้ารหัสแล้ว แทนที่จะเป็นข้อความธรรมดา ด้วยความเร็วและพื้นที่เท่ากับ การสร้าง คีย์สตรีมอย่างไรก็ตาม การตรวจสอบความถูกต้องโดยไม่ใช้คีย์ (การแฮช) จะดำเนินการเพียง 8 บิตต่อครั้ง โดยการโหลดข้อความธรรมดาลงในตัวนับ แทนที่จะโหลดลงในตัวสะสมหลักโดยตรง
กุญแจครอบครัว
ตระกูลรหัสลับ VEST หลักทั้งสี่ตระกูล ได้แก่ VEST-4, VEST-8, VEST-16 และ VEST-32 แต่ละตระกูลของรหัสลับ VEST รองรับการสร้างรหัสลับแบบอิสระ (family keying) เพื่อสร้างตระกูลรหัสลับอื่นๆ ที่มีขนาดเท่ากัน กระบวนการสร้างรหัสลับแบบอิสระนี้เป็นวิธีการมาตรฐานในการสร้างตระกูลรหัสลับที่มีการแทนที่ที่ไม่ซ้ำกันและตัวนับที่ไม่ซ้ำกันโดยมีช่วงเวลา ที่แตกต่างกัน การสร้าง รหัสลับแบบอิสระนี้ช่วยให้ผู้ใช้สามารถสร้างรหัสลับที่ปลอดภัยและไม่ซ้ำกันสำหรับชิปแต่ละตัวได้
ช่วงเวลา
รหัส VEST ได้รับความช่วยเหลือจากตัวนับ RNS แบบไม่เชิงเส้นที่มีคาบยาวมาก ตามที่ผู้เขียนกล่าว การกำหนดคาบเฉลี่ยของรหัส VEST หรือความน่าจะเป็นของคาบที่สั้นที่สุดของ VEST-16 และ VEST-32 ที่ต่ำกว่าระดับความปลอดภัยที่โฆษณาไว้สำหรับคีย์บางตัวยังคงเป็นปัญหาที่ยังไม่ได้รับการแก้ไขและไม่สามารถคำนวณได้ พวกเขาเชื่อว่าความน่าจะเป็นเหล่านี้ต่ำกว่า 2 −160สำหรับ VEST-16 และต่ำกว่า 2 −256สำหรับ VEST-32 คาบที่สั้นที่สุดที่เป็นไปได้ในทางทฤษฎีของ VEST-4 และ VEST-8 นั้นสูงกว่าระดับความปลอดภัย ดังที่เห็นได้จากตารางต่อไปนี้
| ระยะเวลา: | เวสท์-4 | เวสท์-8 | เสื้อกั๊ก-16 | เวสท์-32 |
|---|---|---|---|---|
| รับประกันขั้นต่ำ | 2 134 | 2 134 | 2 143 | 2 143 |
| ยาวที่สุดเท่าที่จะเป็นไปได้ | 2 251 | 2 383 | 2 519 | 2 791 |
ผลงาน
ประสิทธิภาพการคำนวณในซอฟต์แวร์
ตัวสะสมหลักในอัลกอริทึมการเข้ารหัส VEST มีโครงสร้างที่ซับซ้อนและไม่สม่ำเสมออย่างมาก ซึ่งทำให้การนำไปใช้งานอย่างมีประสิทธิภาพในซอฟต์แวร์เป็นไปได้ยาก

โครงสร้างอินพุตที่ไม่สม่ำเสมออย่างมาก ประกอบกับชุดอินพุตเฉพาะสำหรับแต่ละฟังก์ชันป้อนกลับ ทำให้การประมวลผลซอฟต์แวร์มีประสิทธิภาพลดลง ส่งผลให้ฟังก์ชันป้อนกลับทั้งหมดต้องคำนวณตามลำดับในซอฟต์แวร์ ทำให้ความเร็วของฮาร์ดแวร์และซอฟต์แวร์แตกต่างกันโดยประมาณเท่ากับจำนวนเกตที่ใช้โดยตรรกะป้อนกลับในฮาร์ดแวร์ (ดูคอลัมน์ "ความแตกต่าง" ในตารางด้านล่าง)
| การนำไปใช้: | นาฬิกา | เวสท์-4 | เวสท์-8 | เสื้อกั๊ก-16 | เวสท์-32 |
|---|---|---|---|---|---|
| ฮาร์ดแวร์ | 250 เมกะเฮิร์ตซ์ | ~1 กิกะบิต/วินาที | ประมาณ 2 กิกะบิต/วินาที | ~4 กิกะบิต/วินาที | ~8 กิกะบิต/วินาที |
| ซอฟต์แวร์ | 250 เมกะเฮิร์ตซ์ | < 1.0 เมกะบิต/วินาที | < 0.8 เมกะบิต/วินาที | < 1.1 เมกะบิต/วินาที | < 1.3 เมกะบิต/วินาที |
| ความแตกต่าง | > 1000 x | > 2300 x | > 3500 x | > 6000 x |
ความแตกต่างอย่างมากระหว่างการประมวลผลฮาร์ดแวร์ที่ได้รับการปรับให้เหมาะสมของ VEST กับการประมวลผลซอฟต์แวร์ที่ได้รับการปรับให้เหมาะสมซึ่งมีความเร็วสัญญาณนาฬิกาเท่ากัน ทำให้เกิดความต้านทานโดยธรรมชาติต่อการลอกเลียนแบบโปรเซสเซอร์ซอฟต์แวร์อเนกประสงค์ราคาถูกที่ปลอมตัวเป็นโทเค็นการตรวจสอบความถูกต้องของฮาร์ดแวร์ของแท้
ในสถานการณ์การตอบสนองต่อคำท้าจำนวนมาก เช่น แอปพลิเคชันการตรวจสอบสิทธิ์ RFID การใช้งานการเข้ารหัส VEST แบบแบ่งบิตบนโปรเซสเซอร์ 32 บิต ซึ่งประมวลผลข้อความอิสระจำนวนมากพร้อมกัน จะช้ากว่า AES 2-4 เท่าต่อไบต์ข้อความ
ประสิทธิภาพของฮาร์ดแวร์
VEST ถูกส่งเข้าประกวดในโครงการ eStream ภายใต้ Profile II ซึ่งออกแบบมาสำหรับ "แอปพลิเคชันฮาร์ดแวร์ที่มีทรัพยากรจำกัด เช่น พื้นที่จัดเก็บข้อมูล จำนวนเกต หรือการใช้พลังงานที่จำกัด" และแสดงให้เห็นถึงความเร็วสูงใน ฮาร์ดแวร์ FPGAและASICตามการประเมินของ ETH Zurich
ผู้เขียนอ้างว่า จากการใช้งานจริงโดยใช้ "กระบวนการตรวจสอบขั้นสุดท้ายของการออกแบบ RapidChip มาตรฐานแบบอนุรักษ์นิยม" นั้น "VEST-32 สามารถตอบสนองความต้องการการเข้ารหัสแบบตรวจสอบความถูกต้อง 256 บิตที่ความเร็ว 10 Gbit/s ที่ 167 MHz บนแพลตฟอร์มเทคโนโลยี ASIC ของ LSI Logic RapidChip ขนาด 180 นาโนเมตร ได้อย่างง่ายดาย โดยใช้เกตน้อยกว่า 45,000 ตัวและไม่มี SRAM" บนเทคโนโลยี Rapidchip ขนาด 110 นาโนเมตร VEST-32 ให้การเข้ารหัสแบบตรวจสอบความถูกต้อง 20 Gbit/s ที่ความเร็ว 320 MHz โดยใช้เกตน้อยกว่า 45,000 ตัว" พวกเขายังระบุอีกว่า การคลายฟังก์ชันรอบของ VEST สามารถลดความเร็วสัญญาณนาฬิกาลงครึ่งหนึ่งและลดการใช้พลังงาน ในขณะที่เพิ่มเอาต์พุตต่อรอบสัญญาณนาฬิกาเป็นสองเท่า โดยแลกกับพื้นที่ที่เพิ่มขึ้น
ความคล่องตัวที่สำคัญ
ระบบเข้ารหัส VEST มีกลยุทธ์การสร้างคีย์ 3 แบบ:
- โหลดสถานะการเข้ารหัสทั้งหมดด้วย กุญแจ เข้ารหัสที่มีความแข็งแกร่ง (เอนโทรปี 100%) ที่ได้จากกระบวนการสร้างกุญแจหรือการแลกเปลี่ยนกุญแจที่มีความแข็งแกร่ง ในทันที
- การโหลดสถานะการเข้ารหัสทั้งหมดใหม่ทันทีด้วยสถานะการเข้ารหัสที่เริ่มต้นอย่างปลอดภัยก่อนหน้านี้
- การโหลดคีย์แบบเพิ่มทีละน้อย (ของคีย์ที่ไม่สมบูรณ์) เริ่มต้นด้วยบิตที่มีค่าน้อยที่สุดของคีย์ที่โหลดลงในตัวนับ 15 เลื่อนหน้าต่าง 16 บิตลงทีละบิตในแต่ละรอบ จนกระทั่งบิตเดียว 1 ที่อยู่ถัดจากบิตที่มีค่ามากที่สุดของคีย์ถูกโหลดลงในตัวนับ 0 กระบวนการนี้สิ้นสุดลงด้วยรอบการผนึกเพิ่มเติมอีก 32 รอบ ขณะนี้สามารถจัดเก็บสถานะการเข้ารหัสทั้งหมดเพื่อโหลดใหม่ได้ทันที
| ข้อมูลสำคัญ | รอบการโหลดคีย์ |
|---|---|
| 80 | 128 |
| 160 | 208 |
| 256 | 304 |
| 320 | 368 |
| 512 | 560 |
ระบบเข้ารหัส VEST มีกลยุทธ์การซิงโครไนซ์ใหม่เพียงวิธีเดียว:
- ทำการแฮช (IV) โดยการโหลดทีละ 8 บิตเข้าไปในตัวนับ RNS 8 ตัวแรก ตามด้วยรอบการผนึกเพิ่มเติมอีก 32 รอบ
| IV Bits | รอบสำหรับการบรรจุสายน้ำเกลือเข้าเส้นเลือด |
|---|---|
| 64 | 40 |
| 128 | 48 |
| 256 | 64 |
ประวัติศาสตร์
VEST ถูกออกแบบโดยฌอน โอ'นีล และส่งเข้าประกวดในงาน eStream เมื่อเดือนมิถุนายน ปี 2005 นับเป็นการเผยแพร่รหัสลับนี้เป็นครั้งแรก
ความปลอดภัย
ผู้เขียนกล่าวว่าขอบเขตความปลอดภัยของ VEST สอดคล้องกับแนวทางที่เสนอโดยLars Knudsenในบทความ "ข้อคิดบางประการเกี่ยวกับกระบวนการ AES" และแนวทางที่เข้มงวดกว่าที่เสนอโดยNicolas Courtoisในบทความ "การวิเคราะห์การเข้ารหัสของ Sfinks" แม้ว่าผู้เขียนจะไม่ได้เผยแพร่การวิเคราะห์การเข้ารหัสของตนเอง แต่รหัส VEST ก็ผ่านการตรวจสอบจากสาธารณะมานานกว่าหนึ่งปีในฐานะส่วนหนึ่งของการแข่งขัน eStream ที่จัดโดย ECRYPT พวกเขาผ่านเข้ารอบที่สอง แม้ว่าจะไม่ได้อยู่ในกลุ่มผู้ทดสอบก็ตาม
การโจมตี
ในงาน SASC 2007 Joux และ Reinhard ได้เผยแพร่การโจมตีที่สามารถกู้คืนสถานะตัวนับได้ 53 บิต โดยการเปรียบเทียบความซับซ้อนของการโจมตีกับการโจมตีแบบ brute-force แบบขนาน Bernstein ได้ประเมินความแข็งแกร่งของการเข้ารหัสที่ได้ผลลัพธ์เป็น 100 บิต[ 2 ]ซึ่งต่ำกว่าความแข็งแกร่งในการออกแบบของสมาชิกตระกูล VEST ส่วนใหญ่เล็กน้อย นักออกแบบของ VEST อ้างว่าการโจมตีเกิดจากข้อผิดพลาดในการพิมพ์ในข้อกำหนดการเข้ารหัสเดิม และได้เผยแพร่การแก้ไขในคลังข้อมูล Cryptology ePrint เมื่อวันที่ 21 มกราคม 2007 ไม่กี่วันก่อนการเผยแพร่การโจมตี
ลิงก์ภายนอก
- หน้า eSTREAM บน VEST ถูกเก็บถาวรเมื่อวันที่ 4 มีนาคม 2016 ที่Wayback Machine
- ข้อกำหนด VEST eStream เฟส II
- ซอร์สโค้ดอ้างอิงและเวกเตอร์ทดสอบของ VEST C
- การตรวจสอบประสิทธิภาพฮาร์ดแวร์ของ ETH Zurich
- บทความเรื่อง "ข้อคิดบางประการเกี่ยวกับกระบวนการ AES" โดย Lars R. Knudsen
- บทความเรื่อง "การวิเคราะห์รหัสลับของ Sfinks" โดย Nicolas Courtois
- บทความเรื่อง "การค้นพบใหม่ของการแลกเปลี่ยนระหว่างความทรงจำและเวลา" โดย เจ. ฮง และ พี. ซาร์การ์
- บทความเรื่อง "การทำความเข้าใจการใช้กำลังดุร้าย" โดย แดเนียล เจ. เบิร์นสไตน์
- บทความเรื่อง "ความคิดเห็นเกี่ยวกับการค้นพบใหม่ของการแลกเปลี่ยนข้อมูลหน่วยความจำเวลา" โดย C. De Cannière, J. Lano และ B. Preneel
- การรับประกันความปลอดภัยจากอุดมคติสู่ความเป็นจริงในกุญแจเข้ารหัส โดย จัสติน ทราวด์แมนเก็บถาวรเมื่อ 11 พฤศจิกายน 2006 ที่Wayback Machine
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เสื้อกั๊ก
VEST (Very Efficient Substitution Transposition) ciphers เป็นชุดของตระกูล ciphers เฉพาะฮาร์ดแวร์อเนกประสงค์ที่รองรับ การเข้ารหัสแบบตรวจสอบความถูกต้อง ผ่านครั้งเดียว...
ภาพรวม
รหัสลับ: เวสท์-4 เวสท์-8 เสื้อกั๊ก-16 เวสท์-32 เอเอส-128 เอาต์พุต (บิตต่อการเรียก): 4 8 16 32 128 จำนวนบิตที่อ้างสิทธิ์ด้านความปลอดภัย: 80 128 160 256 128 ความยาวและขนาดของดอกไขควงที่แนะนำ: 160 256 320 512 128 ความยาวแฮชที่แนะนำ (บิต): 160 256 320 512...
โครงสร้างโดยรวม
รหัสลับ VEST ประกอบด้วยส่วนประกอบสี่ส่วน ได้แก่ ตัวนับแบบไม่เชิงเส้น ตัวกระจายตัวนับเชิงเส้น ตัวสะสมแบบไม่เชิงเส้นแบบหนึ่งต่อหนึ่งที่มีสถานะขนาดใหญ่ และตัวรวมเอาต์พุตเชิงเส้น (ดังแสดงในภาพที่มุมบนขวาของหน้านี้) ตัวนับ RNS ประกอบด้วย NLFSR จำนวนสิบหกตัว ที่มี...
ตัวสะสม
ตัวสะสมหลักในอัลกอริทึมการเข้ารหัส VEST สามารถมองได้ว่าเป็น SPN ที่สร้างขึ้นโดยใช้ฟังก์ชันป้อนกลับแบบไม่เชิงเส้น 6 ต่อ 1 โดยมีฟังก์ชันหนึ่งสำหรับแต่ละบิต และทุกฟังก์ชันจะได้รับการอัปเดตพร้อมกัน ตัวสะสมหลักของ VEST-4 แสดงไว้ในภาพด้านล่าง: