กลับไปหน้าบทความ

อ่าน 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 แสดงไว้ในภาพด้านล่าง:

ภาพประกอบระดับสูงบางส่วนของแกนหลัก VEST-4
ภาพประกอบระดับสูงบางส่วนของแกนหลัก 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 1342 1342 1432 143
ยาวที่สุดเท่าที่จะเป็นไปได้ 2 2512 3832 5192 791

ผลงาน

ประสิทธิภาพการคำนวณในซอฟต์แวร์

ตัวสะสมหลักในอัลกอริทึมการเข้ารหัส VEST มีโครงสร้างที่ซับซ้อนและไม่สม่ำเสมออย่างมาก ซึ่งทำให้การนำไปใช้งานอย่างมีประสิทธิภาพในซอฟต์แวร์เป็นไปได้ยาก

โครงสร้างหลักของ VEST-4: การแทนที่ตามด้วยการสลับตำแหน่ง

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

การนำไปใช้: นาฬิกา เวสท์-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

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=VEST&oldid=1337162389 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เสื้อกั๊ก

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 แสดงไว้ในภาพด้านล่าง: