🛜 “Wireguard FPGA — ปฏิวัติความปลอดภัยเครือข่ายด้วยฮาร์ดแวร์โอเพนซอร์สราคาประหยัด”
 
ในยุคที่ความปลอดภัยของข้อมูลกลายเป็นเรื่องสำคัญระดับโลก การเชื่อมต่อเครือข่ายผ่าน VPN กลายเป็นสิ่งจำเป็น แต่โซลูชันแบบเดิมอย่าง OpenVPN หรือ IPSec เริ่มล้าหลัง ทั้งในด้านประสิทธิภาพและความซับซ้อนในการจัดการ นี่คือจุดเริ่มต้นของโครงการ “Wireguard FPGA” ที่มุ่งสร้างระบบ VPN แบบฮาร์ดแวร์เต็มรูปแบบ ด้วยความเร็วระดับสายไฟ (wire-speed) บน FPGA ราคาประหยัด พร้อมเปิดซอร์สให้ทุกคนเข้าถึงได้ 
โครงการนี้ใช้ Artix-7 FPGA ซึ่งรองรับเครื่องมือโอเพนซอร์ส และเขียนโค้ดทั้งหมดด้วย Verilog/SystemVerilog โดยไม่พึ่งพา IP แบบปิดหรือเครื่องมือเชิงพาณิชย์ จุดเด่นคือการออกแบบระบบให้ทำงานแบบ self-contained ไม่ต้องพึ่งพา PC host และสามารถจัดการการเข้ารหัสแบบ ChaCha20-Poly1305 ได้ในระดับฮาร์ดแวร์ 
ทีมงานเบื้องหลังเคยมีส่วนร่วมในโครงการ Blackwire ซึ่งเป็นฮาร์ดแวร์ VPN ความเร็ว 100Gbps แต่มีข้อจำกัดด้านราคาและเครื่องมือที่ใช้ ทำให้ Wireguard FPGA ถูกพัฒนาขึ้นเพื่อให้ทุกคนเข้าถึงได้ง่ายขึ้น โดยมีแผนพัฒนาเป็นหลายเฟส ตั้งแต่การสร้างต้นแบบ ไปจนถึงการทดสอบจริง และการเพิ่มฟีเจอร์ควบคุมการไหลของข้อมูล   
 เป้าหมายของโครงการ Wireguard FPGA  
 สร้างระบบ VPN แบบฮาร์ดแวร์ที่เร็วระดับสายไฟ  
 ใช้ Artix-7 FPGA ราคาประหยัดและเครื่องมือโอเพนซอร์ส  
 เขียนโค้ดด้วย Verilog/SystemVerilog ทั้งหมด  
 ความแตกต่างจากโครงการ Blackwire  
 Blackwire ใช้ Alveo U50 ที่มีราคาสูงและเครื่องมือ Vivado แบบปิด  
 Wireguard FPGA ไม่พึ่งพา PC host และใช้โค้ดที่เข้าถึงได้ง่าย  
 Blackwire เปิดซอร์สเพราะปัญหาทางการเงิน ไม่ใช่เจตนาเดิม  
 สถาปัตยกรรมระบบ  
 แบ่งเป็น Control Plane (ซอฟต์แวร์บน RISC-V CPU) และ Data Plane (ฮาร์ดแวร์เข้ารหัส)  
 ใช้ CSR-based HAL ในการเชื่อมต่อระหว่างสองส่วน  
 รองรับการเข้ารหัส/ถอดรหัสด้วย ChaCha20-Poly1305 ในฮาร์ดแวร์  
 การพัฒนาแบบหลายเฟส  
 Phase 1: สร้างต้นแบบและทดสอบพื้นฐาน  
 Phase 2: สร้าง datapath และรวม IP เข้าด้วยกัน  
 Phase 3: พัฒนาเฟิร์มแวร์ควบคุมบน RISC-V  
 Phase 4: จัดการ VPN tunnel แบบครบวงจร  
 Phase 5: ทดสอบจริงและพอร์ตไปยัง OpenXC7  
 Phase 6: เพิ่มโมดูลควบคุมการไหลของข้อมูล  
 เครื่องมือและเทคโนโลยีที่ใช้  
 ใช้ Verilator, cocoTB, VProc ISS ในการจำลอง  
 ใช้ IP จากโครงการอื่น เช่น Corundum, Cookie Cutter SOC  
 ใช้ระบบ co-simulation HAL ที่สร้างจาก SystemRDL  
 ข้อมูลเสริมจากภายนอก  
 ChaCha20-Poly1305 เป็นอัลกอริธึม AEAD ที่ใช้ใน Wireguard ตาม RFC7539  
 Curve25519 ใช้สำหรับแลกเปลี่ยนคีย์แบบ ECDH  
 OpenXC7 เป็นเครื่องมือโอเพนซอร์สสำหรับ FPGA ตระกูล Xilinx Series7  
 ข้อควรระวังและความท้าทาย  
 Artix-7 ไม่รองรับ High-Performance I/O ทำให้จำกัดความเร็วที่ 600MHz  
 เครื่องมือโอเพนซอร์สยังไม่สมบูรณ์ อาจมีปัญหา timing closure และ routing  
 การจำลองระบบขนาดใหญ่ต้องใช้ทรัพยากรสูงและอาจไม่เหมาะกับทุกคน  
 การพอร์ตไปยัง OpenXC7 ยังมีปัญหา crash และไม่มี timing-driven STA  
https://github.com/chili-chips-ba/wireguard-fpga  🛜 “Wireguard FPGA — ปฏิวัติความปลอดภัยเครือข่ายด้วยฮาร์ดแวร์โอเพนซอร์สราคาประหยัด”
ในยุคที่ความปลอดภัยของข้อมูลกลายเป็นเรื่องสำคัญระดับโลก การเชื่อมต่อเครือข่ายผ่าน VPN กลายเป็นสิ่งจำเป็น แต่โซลูชันแบบเดิมอย่าง OpenVPN หรือ IPSec เริ่มล้าหลัง ทั้งในด้านประสิทธิภาพและความซับซ้อนในการจัดการ นี่คือจุดเริ่มต้นของโครงการ “Wireguard FPGA” ที่มุ่งสร้างระบบ VPN แบบฮาร์ดแวร์เต็มรูปแบบ ด้วยความเร็วระดับสายไฟ (wire-speed) บน FPGA ราคาประหยัด พร้อมเปิดซอร์สให้ทุกคนเข้าถึงได้
โครงการนี้ใช้ Artix-7 FPGA ซึ่งรองรับเครื่องมือโอเพนซอร์ส และเขียนโค้ดทั้งหมดด้วย Verilog/SystemVerilog โดยไม่พึ่งพา IP แบบปิดหรือเครื่องมือเชิงพาณิชย์ จุดเด่นคือการออกแบบระบบให้ทำงานแบบ self-contained ไม่ต้องพึ่งพา PC host และสามารถจัดการการเข้ารหัสแบบ ChaCha20-Poly1305 ได้ในระดับฮาร์ดแวร์
ทีมงานเบื้องหลังเคยมีส่วนร่วมในโครงการ Blackwire ซึ่งเป็นฮาร์ดแวร์ VPN ความเร็ว 100Gbps แต่มีข้อจำกัดด้านราคาและเครื่องมือที่ใช้ ทำให้ Wireguard FPGA ถูกพัฒนาขึ้นเพื่อให้ทุกคนเข้าถึงได้ง่ายขึ้น โดยมีแผนพัฒนาเป็นหลายเฟส ตั้งแต่การสร้างต้นแบบ ไปจนถึงการทดสอบจริง และการเพิ่มฟีเจอร์ควบคุมการไหลของข้อมูล
✅ เป้าหมายของโครงการ Wireguard FPGA 
➡️ สร้างระบบ VPN แบบฮาร์ดแวร์ที่เร็วระดับสายไฟ 
➡️ ใช้ Artix-7 FPGA ราคาประหยัดและเครื่องมือโอเพนซอร์ส 
➡️ เขียนโค้ดด้วย Verilog/SystemVerilog ทั้งหมด
✅ ความแตกต่างจากโครงการ Blackwire 
➡️ Blackwire ใช้ Alveo U50 ที่มีราคาสูงและเครื่องมือ Vivado แบบปิด 
➡️ Wireguard FPGA ไม่พึ่งพา PC host และใช้โค้ดที่เข้าถึงได้ง่าย 
➡️ Blackwire เปิดซอร์สเพราะปัญหาทางการเงิน ไม่ใช่เจตนาเดิม
✅ สถาปัตยกรรมระบบ 
➡️ แบ่งเป็น Control Plane (ซอฟต์แวร์บน RISC-V CPU) และ Data Plane (ฮาร์ดแวร์เข้ารหัส) 
➡️ ใช้ CSR-based HAL ในการเชื่อมต่อระหว่างสองส่วน 
➡️ รองรับการเข้ารหัส/ถอดรหัสด้วย ChaCha20-Poly1305 ในฮาร์ดแวร์
✅ การพัฒนาแบบหลายเฟส 
➡️ Phase 1: สร้างต้นแบบและทดสอบพื้นฐาน 
➡️ Phase 2: สร้าง datapath และรวม IP เข้าด้วยกัน 
➡️ Phase 3: พัฒนาเฟิร์มแวร์ควบคุมบน RISC-V 
➡️ Phase 4: จัดการ VPN tunnel แบบครบวงจร 
➡️ Phase 5: ทดสอบจริงและพอร์ตไปยัง OpenXC7 
➡️ Phase 6: เพิ่มโมดูลควบคุมการไหลของข้อมูล
✅ เครื่องมือและเทคโนโลยีที่ใช้ 
➡️ ใช้ Verilator, cocoTB, VProc ISS ในการจำลอง 
➡️ ใช้ IP จากโครงการอื่น เช่น Corundum, Cookie Cutter SOC 
➡️ ใช้ระบบ co-simulation HAL ที่สร้างจาก SystemRDL
✅ ข้อมูลเสริมจากภายนอก 
➡️ ChaCha20-Poly1305 เป็นอัลกอริธึม AEAD ที่ใช้ใน Wireguard ตาม RFC7539 
➡️ Curve25519 ใช้สำหรับแลกเปลี่ยนคีย์แบบ ECDH 
➡️ OpenXC7 เป็นเครื่องมือโอเพนซอร์สสำหรับ FPGA ตระกูล Xilinx Series7
‼️ ข้อควรระวังและความท้าทาย 
⛔ Artix-7 ไม่รองรับ High-Performance I/O ทำให้จำกัดความเร็วที่ 600MHz 
⛔ เครื่องมือโอเพนซอร์สยังไม่สมบูรณ์ อาจมีปัญหา timing closure และ routing 
⛔ การจำลองระบบขนาดใหญ่ต้องใช้ทรัพยากรสูงและอาจไม่เหมาะกับทุกคน 
⛔ การพอร์ตไปยัง OpenXC7 ยังมีปัญหา crash และไม่มี timing-driven STA
https://github.com/chili-chips-ba/wireguard-fpga