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

อ่าน 8 นาที

แฮชแบบ Fast syndrome

ฟังก์ชันแฮชที่เข้ารหัส

ในด้านการเข้ารหัสลับฟังก์ชันแฮชแบบซินโดรมเร็ว (FSB)เป็นตระกูลของฟังก์ชันแฮชการเข้ารหัสลับที่ Daniel Augot, Matthieu Finiasz และ Nicolas Sendrier นำเสนอในปี 2003...

แฮชแบบ Fast syndrome

ฟังก์ชันแฮชแบบ Fast Syndrome (FSB)
ทั่วไป
นักออกแบบดาเนียล ออโกต์ , มัตติเยอ ฟิเนียส , นิโคลัส เซนดริเยร์
เผยแพร่ครั้งแรก2003
มาจากระบบเข้ารหัส McElieceและระบบเข้ารหัส Niederreiter
ผู้สืบทอดฟังก์ชันแฮชแบบ fast syndrome ที่ได้รับการปรับปรุง
เกี่ยวข้อง กับฟังก์ชันแฮชตามกลุ่มอาการ
รายละเอียด
ขนาดย่อยปรับขนาดได้

ในด้านการเข้ารหัสลับฟังก์ชันแฮชแบบซินโดรมเร็ว (FSB)เป็นตระกูลของฟังก์ชันแฮชการเข้ารหัสลับที่ Daniel Augot, Matthieu Finiasz และ Nicolas Sendrier นำเสนอในปี 2003 [ 1 ] แตกต่างจากฟังก์ชันแฮชการเข้ารหัสลับอื่นๆ ส่วนใหญ่ที่ใช้ในปัจจุบัน FSB สามารถพิสูจน์ได้ว่ามีความปลอดภัยในระดับหนึ่ง กล่าวคือ สามารถพิสูจน์ได้ว่าการเจาะ FSB นั้นยากอย่างน้อยเท่ากับการแก้ปัญหาNP-complete บางอย่างที่เรียกว่า การถอดรหัสซินโดรมปกติดังนั้น FSB จึงมีความปลอดภัยที่พิสูจน์ได้แม้ว่าจะไม่ทราบว่า ปัญหา NP-completeสามารถแก้ไขได้ในเวลาพหุนามหรือไม่ แต่มักจะสันนิษฐานว่าไม่สามารถทำได้

มีการเสนอ FSB หลายเวอร์ชัน โดยเวอร์ชันล่าสุดได้ถูกส่งเข้าประกวดการเข้ารหัส SHA-3แต่ถูกปฏิเสธในรอบแรก แม้ว่า FSB ทุกเวอร์ชันจะอ้างว่ามีความปลอดภัยที่พิสูจน์ได้ แต่เวอร์ชันเบื้องต้นบางเวอร์ชันก็ถูกเจาะได้ในที่สุด[ 2 ] อย่างไรก็ตาม การออกแบบ FSB เวอร์ชันล่าสุดได้คำนึงถึงการโจมตีนี้และยังคงปลอดภัยจากการโจมตีที่รู้จักในปัจจุบันทั้งหมด

เช่นเคย ความปลอดภัยที่พิสูจน์ได้นั้นมาพร้อมกับต้นทุน FSB ช้ากว่าฟังก์ชันแฮชแบบดั้งเดิมและใช้หน่วยความจำค่อนข้างมาก ซึ่งทำให้ไม่สามารถใช้งานได้จริงในสภาพแวดล้อมที่มีหน่วยความจำจำกัด นอกจากนี้ ฟังก์ชันการบีบอัดที่ใช้ใน FSB ต้องการขนาดเอาต์พุตขนาดใหญ่เพื่อรับประกันความปลอดภัย ปัญหาข้อสุดท้ายนี้ได้รับการแก้ไขในเวอร์ชันล่าสุดโดยการบีบอัดเอาต์พุตด้วยฟังก์ชันการบีบอัดอื่นที่เรียกว่าWhirlpoolอย่างไรก็ตาม แม้ว่าผู้เขียนจะโต้แย้งว่าการเพิ่มการบีบอัดครั้งสุดท้ายนี้ไม่ได้ลดความปลอดภัยลง แต่มันทำให้การพิสูจน์ความปลอดภัยอย่างเป็นทางการเป็นไปไม่ได้[ 3 ]

คำอธิบายของฟังก์ชันแฮช

เราเริ่มต้นด้วยฟังก์ชันการบีบอัดϕ{\displaystyle \phi }ด้วยพารามิเตอร์n,,{\displaystyle {n,r,w}}โดยที่ n>{\displaystyle n>w}และบันทึก(n/)>{\displaystyle w\log(n/w)>r}ฟังก์ชันนี้จะใช้งานได้เฉพาะกับข้อความที่มีความยาวตามที่กำหนดเท่านั้น=บันทึก(n/){\displaystyle s=w\log(n/w)};{\displaystyle r}ขนาดของผลลัพธ์จะเป็นเท่านี้ นอกจากนี้ เราต้องการn,,,{\displaystyle n,r,w,s}และบันทึก(n/){\displaystyle \log(n/w)}เพื่อเป็นจำนวนธรรมชาติ โดยที่บันทึก{\displaystyle \log }หมายถึงลอการิทึมฐานสองเหตุผลสำหรับบันทึก(n/)>{\displaystyle w\cdot \log(n/w)>r}นั่นคือสิ่งที่เราต้องการϕ{\displaystyle \phi }เพื่อให้เป็นฟังก์ชันการบีบอัด ดังนั้นอินพุตจะต้องมีขนาดใหญ่กว่าเอาต์พุต ในภายหลังเราจะใช้การสร้างแบบ Merkle–Damgårdเพื่อขยายขอบเขตไปยังอินพุตที่มีความยาวตามอำเภอใจ

พื้นฐานของฟังก์ชันนี้ประกอบด้วยเลขฐานสอง (ที่เลือกแบบสุ่ม)×n{\displaystyle r\times n}เมทริกซ์ชม{\displaystyle H}ซึ่งดำเนินการตามข้อความของn{\displaystyle n}เข้ารหัส บิตด้วยการคูณเมทริกซ์ในที่นี้เราเข้ารหัสบันทึก(n/){\displaystyle w\log(n/w)}ข้อความบิตเป็นเวกเตอร์ใน(เอฟ2)n{\displaystyle (\mathbf {F} _{2})^{n}},n{\displaystyle n}ปริภูมิเวกเตอร์มิติเหนือฟิลด์ที่มีสององค์ประกอบ ดังนั้นผลลัพธ์จะเป็นข้อความของ{\displaystyle r}บิต

เพื่อความปลอดภัยและเพื่อให้ได้ความเร็วในการคำนวณแฮชที่เร็วขึ้น เราจึงต้องการใช้เฉพาะ "คำที่มีน้ำหนักปกติ" เท่านั้น{\displaystyle w}“เพื่อใช้เป็นข้อมูลป้อนเข้าสำหรับเมทริกซ์ของเรา”

คำจำกัดความ

  • ข้อความนั้นเรียกว่าคำพูดที่มีความหมาย{\displaystyle w}และความยาวn{\displaystyle n}หากประกอบด้วยn{\displaystyle n}บิตและแน่นอน{\displaystyle w}ในจำนวนนั้นมีเลขหนึ่งอยู่ด้วย
  • คำที่มีน้ำหนัก{\displaystyle w}และความยาวn{\displaystyle n}เรียกว่าปกติถ้าในทุกช่วงเวลา[(ฉัน1)(n/),ฉัน(n/)){\displaystyle [(i-1)(n/w),i(n/w))}ประกอบด้วยค่าที่ไม่เป็นศูนย์เพียงค่าเดียวสำหรับทุกรายการ0<ฉัน<+1{\displaystyle 0<i<w+1}กล่าวโดยสรุปแล้ว นั่นหมายความว่า หากเราแบ่งข้อความออกเป็นwส่วนเท่าๆ กัน แต่ละส่วนจะมีค่าที่ไม่เป็นศูนย์อยู่หนึ่งค่าพอดี

ฟังก์ชันการบีบอัด

มีอยู่จำนวนที่แน่นอน(n/){\displaystyle (n/w)^{w}}คำศัพท์ทั่วไปที่แตกต่างกันเกี่ยวกับน้ำหนัก{\displaystyle w}และความยาวn{\displaystyle n}ดังนั้นเราจึงต้องการอย่างแม่นยำบันทึก((n/))=บันทึก(n/)={\displaystyle \log((n/w)^{w})=w\log(n/w)=s}บิตข้อมูลเพื่อเข้ารหัสคำปกติเหล่านี้ เรากำหนดการจับคู่แบบหนึ่งต่อหนึ่งจากเซตของสตริงบิตที่มีความยาว{\displaystyle s}ไปยังชุดคำปกติที่มีน้ำหนัก{\displaystyle w}และความยาวn{\displaystyle n}จากนั้นฟังก์ชันการบีบอัด FSB จะถูกกำหนดดังต่อไปนี้ :

  1. อินพุต: ข้อความที่มีขนาด{\displaystyle s}
  2. แปลงเป็นคำที่มีความยาวปกติn{\displaystyle n}และน้ำหนัก{\displaystyle w}
  3. คูณด้วยเมทริกซ์ชม{\displaystyle H}
  4. ผลลัพธ์: แฮชขนาด{\displaystyle r}

โดยทั่วไปแล้วเวอร์ชันนี้เรียกว่าการบีบอัดตามกลุ่มอาการ (syndrome-based compression ) มันช้ามากและในทางปฏิบัติจะทำในวิธีที่แตกต่างและเร็วกว่า ทำให้เกิดการบีบอัดตามกลุ่มอาการแบบเร็ว (fast syndrome-based compression ) เราแยกออกชม{\displaystyle H}ลงในเมทริกซ์ย่อยชมฉัน{\displaystyle H_{i}}ขนาด×n/{\displaystyle r\times n/w}และเรากำหนดการจับคู่แบบหนึ่งต่อหนึ่งจากสตริงบิตที่มีความยาวบันทึก(n/){\displaystyle w\log(n/w)}ไปยังชุดลำดับของ{\displaystyle w}ตัวเลขระหว่าง 1 และn/{\displaystyle n/w}นี่เทียบเท่ากับการจับคู่แบบหนึ่งต่อหนึ่งกับเซตของคำปกติที่มีความยาวn{\displaystyle n}และน้ำหนัก{\displaystyle w}เนื่องจากเราสามารถมองคำดังกล่าวเป็นลำดับตัวเลขระหว่าง 1 ถึง 2 ได้n/{\displaystyle n/w}ฟังก์ชันการบีบอัดมีลักษณะดังนี้:

  1. อินพุต: ข้อความขนาด{\displaystyle s}
  2. แปลง{\displaystyle s}ไปยังลำดับของ{\displaystyle w}ตัวเลข1,,{\displaystyle s_{1},\dots ,s_{w}}ระหว่าง 1 และn/{\displaystyle n/w}
  3. บวกคอลัมน์ที่ตรงกันของเมทริกซ์เข้าด้วยกันชมฉัน{\displaystyle H_{i}}เพื่อให้ได้สตริงไบนารีที่มีความยาว{\displaystyle r}
  4. ผลลัพธ์: แฮชขนาด{\displaystyle r}

ขณะนี้เราสามารถใช้การสร้างแบบ Merkle–Damgårdเพื่อขยายฟังก์ชันการบีบอัดให้สามารถรับอินพุตที่มีความยาวใดๆ ก็ได้

ตัวอย่างของการบีบอัด

สถานการณ์และการเริ่มต้น : เข้ารหัสข้อความ=010011{\displaystyle s=010011}โดยใช้4×12{\displaystyle 4\times 12}เมทริกซ์ H ชม=(1011 0100 10110100 0111 01000111 0100 10101100 1011 0001){\displaystyle H=\left({\begin{array}{llllcllllcllll}1&0&1&1&~&0&1&0&0&~&1&0&1&1\\0&1&0&0&~&0&1&1&1&~&0&1&0&0\\0&1&1&1&~&0&1&0&0&~&1&0&1&0\\1&1&0&0&~&1&0&1&1&~&0&0&0&1\end{array}}\right)} ซึ่งแยกออกเป็น=3{\displaystyle w=3}บล็อกย่อยชม1{\displaystyle H_{1}},ชม2{\displaystyle H_{2}},ชม3{\displaystyle H_{3}}.

อัลกอริทึม :

  1. เราแยกอินพุตออก{\displaystyle s}เข้าไปข้างใน=3{\displaystyle w=3}ส่วนของความยาวบันทึก2(12/3)=2{\displaystyle \log _{2}(12/3)=2}และเราได้รับ1=01{\displaystyle s_{1}=01},2=00{\displaystyle s_{2}=00},3=11{\displaystyle s_{3}=11}.
  2. เราแปลงแต่ละอันฉัน{\displaystyle s_{i}}แปลงเป็นจำนวนเต็มแล้วได้ผลลัพธ์1=1{\displaystyle s_{1}=1},2=0{\displaystyle s_{2}=0},3=3{\displaystyle s_{3}=3}.
  3. จากเมทริกซ์ย่อยแรกชม1{\displaystyle H_{1}}เราเลือกคอลัมน์ที่ 2 จากเมทริกซ์ย่อยที่สองชม2{\displaystyle H_{2}}คอลัมน์ที่ 1 และจากเมทริกซ์ย่อยที่สาม คอลัมน์ที่ 4
  4. เราบวกคอลัมน์ที่เลือกเข้าด้วยกันและได้ผลลัพธ์=011100011001=1111{\displaystyle r=0111\oplus 0001\oplus 1001=1111}.

หลักฐานความปลอดภัยของ FSB

โครงสร้าง Merkle –Damgårdได้รับการพิสูจน์แล้วว่าอาศัยความปลอดภัยของฟังก์ชันการบีบอัดที่ใช้เท่านั้น ดังนั้นเราจึงจำเป็นต้องแสดงให้เห็นว่าฟังก์ชันการบีบอัดนั้นปลอดภัยϕ{\displaystyle \phi }ปลอดภัย

ฟังก์ชันแฮชเข้ารหัสลับจำเป็นต้องมีความปลอดภัยในสามด้านที่แตกต่างกัน:

  1. ความต้านทานต่อภาพก่อนหน้า: เมื่อกำหนดค่าแฮชh แล้ว การค้นหาข้อความ mที่ทำให้ Hash( m ) = hควรเป็นเรื่องยาก
  2. ความต้านทานภาพก่อนหน้าข้อที่สอง: เมื่อกำหนดข้อความm แล้ว ควรจะยากที่จะหาข้อความm ที่ทำให้ Hash( m ) = Hash( m )
  3. ความต้านทานการชนกัน: ควรเป็นเรื่องยากที่จะหาข้อความสองข้อความที่แตกต่างกันm และm ที่ทำให้ Hash( m )=Hash( m )

โปรดทราบว่า หากฝ่ายตรงข้ามสามารถค้นหาภาพต้นแบบที่สองได้ ก็ย่อมสามารถค้นหาการชนกันได้อย่างแน่นอน ซึ่งหมายความว่า หากเราสามารถพิสูจน์ได้ว่าระบบของเราทนต่อการชนกันได้ ระบบนั้นก็จะทนต่อภาพต้นแบบที่สองได้อย่างแน่นอน

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

ความต้านทานภาพก่อนหน้าและการถอดรหัสกลุ่มอาการปกติ (RSD)

ดังที่กล่าวไว้ก่อนหน้านี้ ความปลอดภัยของ FSB ขึ้นอยู่กับปัญหาที่เรียกว่าการถอดรหัสซินโดรมแบบปกติ (RSD)การถอดรหัสซินโดรมเป็นปัญหาจากทฤษฎีการเข้ารหัสแต่เนื่องจากมันเป็นปัญหา NP-completeness จึงทำให้มันเป็นแอปพลิเคชันที่ดีสำหรับวิทยาการเข้ารหัสลับ การถอดรหัสซินโดรมแบบปกติเป็นกรณีพิเศษของการถอดรหัสซินโดรมและมีนิยามดังนี้:

นิยามของ RSD: กำหนดให้{\displaystyle w}เมทริกซ์ชมฉัน{\displaystyle H_{i}}ของมิติ×(n/){\displaystyle r\times (n/w)}และเชือกเส้นเล็กๆเอส{\displaystyle S}ความยาว{\displaystyle r}โดยที่ชุดหนึ่งมีอยู่{\displaystyle w}คอลัมน์ละหนึ่งคอลัมน์ชมฉัน{\displaystyle H_{i}}รวมกันได้เป็นเอส{\displaystyle S}จงหาชุดคอลัมน์ดังกล่าว

ปัญหานี้ได้รับการพิสูจน์แล้วว่าเป็นปัญหาNP-completeโดยการลดรูปจากการจับคู่แบบ 3 มิติอย่างไรก็ตาม แม้ว่าจะไม่ทราบว่ามี อัลกอริทึม เวลาพหุนามสำหรับแก้ปัญหา NP-complete หรือไม่ แต่ก็ยังไม่มีอัลกอริทึมใดที่ค้นพบ และการค้นพบอัลกอริทึมดังกล่าวจะเป็นการค้นพบครั้งสำคัญ

เห็นได้ชัดว่าการค้นหาภาพต้นแบบของแฮชที่กำหนดนั้นทำได้ง่ายเอส{\displaystyle S}เทียบเท่ากับปัญหานี้อย่างแท้จริง ดังนั้นปัญหาการค้นหาภาพต้นแบบใน FSB จึงต้องเป็นปัญหา NP-complete เช่นกัน

เรายังต้องพิสูจน์ความต้านทานต่อการชนกัน สำหรับเรื่องนี้เราต้องการ RSD รูปแบบ NP-complete อีกแบบหนึ่ง นั่นคือการถอดรหัสซินโดรมว่างแบบ 2-regular

การต้านทานการชนและการถอดรหัสซินโดรมว่างแบบปกติ 2 ตัว (2-RNSD)

นิยามของ 2-RNSD: กำหนดให้{\displaystyle w}เมทริกซ์ชมฉัน{\displaystyle H_{i}}ของมิติ×(n/){\displaystyle r\times (n/w)}และเชือกเส้นเล็กๆเอส{\displaystyle S}ความยาว{\displaystyle r}โดยที่ชุดหนึ่งมีอยู่{\displaystyle w'}คอลัมน์ โดยแต่ละคอลัมน์มีสองหรือศูนย์คอลัมน์ชมฉัน{\displaystyle H_{i}}รวมกันแล้วได้ศูนย์(0<<2){\displaystyle (0<w'<2w)}จงหาชุดคอลัมน์ดังกล่าว

นอกจากนี้ 2-RNSD ยังได้รับการพิสูจน์แล้วว่าเป็นปัญหาNP-completeโดยการลดรูปจากการจับคู่แบบ 3มิติ

เช่นเดียวกับที่ RSD นั้นโดยพื้นฐานแล้วเทียบเท่ากับการค้นหาคำธรรมดาๆ คำหนึ่ง{\displaystyle w}โดยที่ชม=เอส{\displaystyle Hw=S}2-RNSD เทียบเท่ากับการค้นหาคำปกติ 2 ตัว{\displaystyle w'}โดยที่ชม=0{\displaystyle Hw'=0}คำปกติ 2 คำที่มีความยาวn{\displaystyle n}และน้ำหนัก{\displaystyle w}เป็นสตริงบิตที่มีความยาวn{\displaystyle n}โดยที่ในทุกช่วงเวลา[(ฉัน1),ฉัน){\displaystyle [(i-1)w,iw)}ค่าของตัวเลขสองค่าหรือศูนย์ค่าจะมีค่าเท่ากับ 1 โปรดทราบว่า คำปกติ 2 ค่า คือผลรวมของคำปกติสองคำ

สมมติว่าเราพบการชนกันแล้ว ดังนั้นเราจะมี Hash( m ) = Hash( m ) โดยที่12{\displaystyle m_{1}\neq m_{2}}จากนั้นเราก็สามารถหาคำปกติสองคำได้1{\displaystyle w_{1}}และ2{\displaystyle w_{2}}โดยที่ชม1=ชม2{\displaystyle Hw_{1}=Hw_{2}}จากนั้นเราก็มีชม(1+2)=ชม1+ชม2=2ชม1=0{\displaystyle H(w_{1}+w_{2})=Hw_{1}+Hw_{2}=2Hw_{1}=0};(1+2){\displaystyle (w_{1}+w_{2})}เป็นผลรวมของคำปกติสองคำที่แตกต่างกัน ดังนั้นจึงต้องเป็นคำปกติ 2 คำที่มีแฮชเป็นศูนย์ ดังนั้นเราจึงแก้ปัญหาตัวอย่างของ 2-RNSD ได้แล้ว เราสรุปได้ว่าการค้นหาการชนกันใน FSB นั้นยากพอๆ กับการแก้ปัญหา 2-RNSD และดังนั้นจึงต้องเป็นปัญหา NP-complete

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

ตัวอย่าง

ในการแก้ RSD เราจะอยู่ในสถานการณ์ตรงกันข้ามกับการแฮช โดยใช้ค่าเดียวกันกับในตัวอย่างก่อนหน้านี้ เราจะได้รับชม{\displaystyle H}แยกออกเป็น=3{\displaystyle w=3}บล็อกย่อยและสตริง=1111{\displaystyle r=1111}เราได้รับมอบหมายให้หาคอลัมน์เพียงหนึ่งคอลัมน์ในแต่ละบล็อกย่อย ซึ่งผลรวมของคอลัมน์ทั้งหมดจะเท่ากับ...{\displaystyle r}คำตอบที่คาดหวังจึงเป็นดังนี้1=1{\displaystyle s_{1}=1},2=0{\displaystyle s_{2}=0},3=3{\displaystyle s_{3}=3}เป็นที่ทราบกันดีว่าการคำนวณวิธีนี้ทำได้ยากสำหรับเมทริกซ์ขนาดใหญ่

ใน 2-RNSD เราต้องการค้นหาในแต่ละซับบล็อก ไม่ใช่แค่คอลัมน์เดียว แต่เป็นสองคอลัมน์หรือศูนย์คอลัมน์ ที่ผลรวมของคอลัมน์เหล่านั้นจะได้ 0000 (และไม่ใช่ 0){\displaystyle r}ในตัวอย่างนี้ เราอาจใช้คอลัมน์ (นับจาก 0) ที่ 2 และ 3 จากชม1{\displaystyle H_{1}}ไม่มีคอลัมน์จากชม2{\displaystyle H_{2}}คอลัมน์ที่ 0 และ 2 จากชม3{\displaystyle H_{3}}ยังมีวิธีแก้ปัญหาอื่นๆ อีก เช่น อาจไม่มีการใช้คอลัมน์ใดๆ เลยชม3{\displaystyle H_{3}}.

การวิเคราะห์การเข้ารหัสเชิงเส้น

ความปลอดภัยที่พิสูจน์ได้ของ FSB หมายความว่าการค้นหาการชนกันนั้นเป็นปัญหา NP-complete แต่การพิสูจน์นั้นเป็นการลดรูปไปสู่ปัญหาที่มีความซับซ้อนในกรณีที่เลวร้ายที่สุด แบบ asymptotically hard ซึ่งให้การรับประกันความปลอดภัยที่จำกัดเท่านั้น เนื่องจากยังคงมีอัลกอริทึมที่สามารถแก้ปัญหาได้อย่างง่ายดายสำหรับส่วนย่อยของพื้นที่ปัญหา ตัวอย่างเช่น มี วิธี การเชิงเส้นที่สามารถใช้สร้างการชนกันได้ในเวลาไม่กี่วินาทีบนพีซีเดสก์ท็อปสำหรับ FSB รุ่นแรกๆ ที่อ้างว่ามีความปลอดภัย 2^128 แสดงให้เห็นว่าฟังก์ชันแฮชให้ความต้านทานต่อภาพก่อนหน้าหรือการชนกันน้อยที่สุดเมื่อเลือกพื้นที่ข้อความในลักษณะเฉพาะ

ผลลัพธ์ด้านความปลอดภัยเชิงปฏิบัติ

ตารางต่อไปนี้แสดงความซับซ้อนของการโจมตีที่รู้จักกันดีที่สุดต่อ FSB

ขนาดเอาต์พุต (บิต)ความซับซ้อนของการค้นหาการชนกันความซับซ้อนของการผกผัน
1602 100.32 163.6
2242 135.32,229.0
2562,190.02 261.0
3842 215.52 391.5
5122 285.62 527.4

เจเนซิส

FSB เป็นเวอร์ชันเร่งความเร็วของฟังก์ชันแฮชแบบซินโดรม (SB) ในกรณีของ SB ฟังก์ชันการบีบอัดนั้นคล้ายคลึงกับฟังก์ชันการเข้ารหัสของระบบการเข้ารหัส McEliece เวอร์ชันของ Niederreiter มาก แทนที่จะใช้เมทริกซ์ตรวจสอบความเท่าเทียมกันของรหัส Goppa ที่เรียงสลับกัน SB จะใช้เมทริกซ์สุ่มชม{\displaystyle H}จากมุมมองด้านความปลอดภัย สิ่งนี้จะช่วยเสริมความแข็งแกร่งให้กับระบบได้เท่านั้น

คุณสมบัติอื่นๆ

  • ขนาดบล็อกของฟังก์ชันแฮชและขนาดของผลลัพธ์สามารถปรับขนาดได้อย่างสมบูรณ์
  • ความเร็วสามารถปรับได้โดยการปรับจำนวนการดำเนินการบิตที่ FSB ใช้ต่อบิตอินพุต
  • สามารถปรับระดับความปลอดภัยได้โดยการปรับขนาดของเอาต์พุต
  • มีกรณีที่ไม่ดีอยู่บ้าง และต้องระมัดระวังเมื่อเลือกเมทริกซ์ชม{\displaystyle H}.
  • เมทริกซ์ที่ใช้ในฟังก์ชันการบีบอัดอาจมีขนาดใหญ่ขึ้นในบางสถานการณ์ ซึ่งอาจเป็นข้อจำกัดเมื่อพยายามใช้ FSB บนอุปกรณ์ที่มีหน่วยความจำจำกัด ปัญหานี้ได้รับการแก้ไขแล้วในฟังก์ชันแฮชที่เกี่ยวข้องที่เรียกว่า Improved FSB ซึ่งยังคงมีความปลอดภัยที่พิสูจน์ได้แต่ต้องอาศัยข้อสมมติที่เข้มงวดขึ้นเล็กน้อย

ตัวแปร

ในปี 2550 IFSB ได้รับการเผยแพร่[ 3 ]ในปี 2553 S-FSB ได้รับการเผยแพร่ ซึ่งเร็วกว่าเวอร์ชันดั้งเดิม 30% [ 4 ]

ในปี 2011 DJ BernsteinและTanja Langeได้เผยแพร่ RFSB ซึ่งเร็วกว่า FSB-256 ดั้งเดิมถึง 10 เท่า [ 5 ] RFSB ได้รับการพิสูจน์แล้วว่าทำงานได้เร็วมากบนFPGA Spartan 6 โดยมีอัตราการส่งข้อมูลสูงถึงประมาณ 5 Gbit/s [ 6 ] 

  • เว็บไซต์ FSB สำหรับการแข่งขัน SHA-3
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Fast_syndrome-based_hash&oldid=1294704855 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ แฮชแบบ Fast syndrome

ในด้านการเข้ารหัสลับฟังก์ชันแฮชแบบซินโดรมเร็ว (FSB)เป็นตระกูลของฟังก์ชันแฮชการเข้ารหัสลับที่ Daniel Augot, Matthieu Finiasz และ Nicolas Sendrier นำเสนอในปี 2003...

คำอธิบายของฟังก์ชันแฮช

เราเริ่มต้นด้วยฟังก์ชันการบีบอัด ϕ {\displaystyle \phi } ด้วยพารามิเตอร์ n , ร , ว {\displaystyle {n,r,w}} โดยที่ w"}}"> w}"> n > ว {\displaystyle n>w} w}"> และ r"}}"> r}"> ว บันทึก ⁡ ( n / ว ) > ร {\displaystyle w\log(n/w)>r} r}">...

คำจำกัดความ

ข้อความนั้นเรียกว่า คำพูดที่มีความหมาย ว {\displaystyle w} และความยาว n {\displaystyle n} หากประกอบด้วย n {\displaystyle n} บิตและแน่นอน ว {\displaystyle w} ในจำนวนนั้นมีเลขหนึ่งอยู่ด้วย คำที่มีน้ำหนัก ว {\displaystyle w} และความยาว n {\displaystyle n}...

ฟังก์ชันการบีบอัด

มีอยู่จำนวนที่แน่นอน ( n / ว ) ว {\displaystyle (n/w)^{w}} คำศัพท์ทั่วไปที่แตกต่างกันเกี่ยวกับน้ำหนัก ว {\displaystyle w} และความยาว n {\displaystyle n} ดังนั้นเราจึงต้องการอย่างแม่นยำ บันทึก ⁡ ( ( n / ว ) ว ) = ว บันทึก ⁡ ( n / ว ) = ส {\displaystyle...