Sách trắng Đánh giá rủi ro an toàn dữ liệu
400-100-9516
news
Chia sẻ công nghệ

Tìm kiếm trong trang

Chia sẻ công nghệ | Hướng dẫn bạn tìm hiểu nguyên lý hoạt động của Hyperscan
2022-04-13 4268 Chia sẻ công nghệ

undefined

Hyperscan cần chạy trên bộ vi xử lý Intel hiện đại hỗ trợ tập lệnh SIMD như SSEngoai hang anh 2025, AVX... SIMD chủ yếu được sử dụng để tăng tốc thực thi các lệnh, nguyên lý gia tốc của nó nằm ở việc thực hiện đồng thời nhiều lệnh không phụ thuộc theo chuỗi. Như hình minh họa dưới đây:

undefined

Hình | 1 Minh họa thực thi song song SIMD

Vì Intel đã phát triển các lệnh thực thi song songbóng đá trực tiếp, cộng thêm sự phổ biến rộng rãi của biểu thức chính quy, bài báo đã cải tiến thuật toán hiện có để tìm kiếm biểu thức chính quy và sử dụng công nghệ SIMD nhằm nâng cao đáng kể hiệu suất tìm kiếm.

Ý tưởng cốt lõi của Hyperscan là: 1. Phân tách biểu thức chính quy ban đầu thành nhiều thành phần; 2. Cải thiện thuật toán khớp cho từng thành phần để chúng có thể tận dụng các lệnh SIMD.

Tiếp theobóng đá trực tiếp, sẽ lần lượt giới thiệu thuật toán phân giải và thuật toán cải tiến.

undefined

Ý tưởng chính của việc phân tách biểu thức chính quy trong Hyperscan là chia nhỏ biểu thức thành các chuỗi và sub-regex (FA)bóng đá trực tiếp, trong đó FA là Finite Automata – máy trạng thái hữu hạn.

Phân giải chính tắc tuyến tính

1:regex —> left str FA

2:left —> left str FA | FA

Trong đó str,FA đều là các thành phần độc lậpngoai hang anh 2025, FA có thể để trống.

Sau khi phân táchkết quả bóng đá trực tiếp, một biểu thức chính quy có thể được biểu diễn dưới dạng: FAnstrnFAn−1strn−1 ... str2FA1str1FA0

Có thể chọn phân giải chính tắc

Dạng (A|B)bóng đá trực tiếp, chỉ khi A và B có thể được phân giải thành str hoặc FA kết quả bóng đá trực tiếp, nếu không thì (A|B) sẽ được coi là một FA Sau khi phân táchngoai hang anh 2025, kết quả của biểu thức chính quy sẽ tương đương với kết quả ban đầu; tuy nhiên, hiện tại Hyperscan chưa đưa ra bằng chứng toán học cho điều này.

Phương pháp thực hiện

Đối với phân giải chính tắcngoai hang anh 2025, phương pháp dựa trên đồ thị được chia thành ba loại:

1. Phân tích đường đi

undefined

Hình | 2 Phân tích đường đi

2. Phân tích khu vực

undefined

Hình | 3 Phân tích khu vực

3. Phân tích luồng mạng

undefined

Hình | 4 Phân tích luồng mạng

undefined

Chương này giới thiệu thuật toán khớp đa chuỗi và FAbóng đá trực tiếp, thuật toán này sử dụng SIMD để tăng tốc.

Thuật toán khớp đa chuỗi

Tên thuật toán là FDR; thuật toán được chia thành hai bướckết quả bóng đá trực tiếp, như hình:

undefined

Hình | 5 Hai giai đoạn khớp FDR

Đầu tiênngoai hang anh 2025, sử dụng thuật toán Extended Shift-or Matching để so khớp các chuỗi đã được phân tách; sau đó, các phương án khớp được chuyển đến thuật toán FA để tiếp tục kiểm tra.

Shift-or Matching

Thuật toán shift-or là một thuật toán đơn giản; như hình:

undefined

Hình | 6 Thuật toán shift-or kinh điển

Đối với chuỗi cần khớpkết quả bóng đá trực tiếp, cần duy trì hai trạng thái st-mask và sh-mask('c').

Đối với chuỗingoai hang anh 2025, nếu 'c' xuất hiện trong chuỗi, thì bit trong sh-mask('c') tại vị trí mà 'c' xuất hiện sẽ là 0, còn lại đều là 1.

Như hình 6ngoai hang anh 2025, chuỗi khớp là "aphp", 'p' xuất hiện ở vị trí thứ 2 và 4, do đó sh-mask('p') = 11110101.

Trạng thái ban đầu của st-mask là 11111111

Đối với ký tự mới nhập 'x':

st-mask=((st-mask≪1) | sh-mask(‘x’)

Nếu bit tương ứng với độ dài chuỗi khớp trong st-mask là 0 thì có nghĩa là đã khớp thành công.

Thuật toán Shift-or Matching có hiệu suất caokết quả bóng đá trực tiếp, nhưng cũng tồn tại hai nhược điểm: 1. Chỉ hỗ trợ khớp một chuỗi đơn; 2. Không thể sử dụng SIMD để tối ưu hóa.

Để khắc phục hai nhược điểm nàybóng đá trực tiếp, sử dụng thuật toán sau:

Multi-string shift-or matching

Để hỗ trợ khớp đồng thời nhiều chuỗingoai hang anh 2025, cấu trúc dữ liệu đã được sửa đổi.

Đầu tiênkết quả bóng đá trực tiếp, chia chuỗi thành n bucket, mỗi bucket được gán số từ 0 đến n-1; giả sử rằng mỗi chuỗi chỉ thuộc về một bucket duy nhất.

Bước haikết quả bóng đá trực tiếp, mở rộng st-mask và sh-mask n lần;

sh-mask('x') được khởi tạo toàn bộ là 1;

Nếu 'x' xuất hiện ở vị trí thứ k trong bucket thứ nbóng đá trực tiếp, thì bit thứ k của sh-mask('x') ở vị trí thứ n sẽ được đặt thành 0; đồng thời, các bucket có độ dài ngắn hơn độ dài lớn nhất cần được bổ sung bit.

undefined

Hình | 7 Ví dụ về sh-mask

Vị trí thứ k ở đây khác với thuật toán Shift-or Matchingbóng đá trực tiếp, vì ở đây đếm từ bên phải. st-mask |= (sh-mask('x') << (k bytes)). Dưới đây là ví dụ minh họa.

undefined

Hình | 8 Khớp shift-or đa chuỗi FDR

Nhóm mẫu

Trong phần trước đã đề cập đến việc phân bổ cặp chuỗi vào các nhóm khác nhau; bài viết này sử dụng phương pháp lập trình động để thực hiện việc phân nhóm.

Đầu tiênbóng đá trực tiếp, sắp xếp mảng ký tự theo độ dài chuỗi; sau đó sử dụng phương trình quy hoạch động sau để hoàn thành nhóm:

undefined

Cải tiến thuật toán

Có một số hạn chế đối với mã hóa trong cùng một bucket. Ví dụ trong hình 7ngoai hang anh 2025, do a và c tương đương, b và d tương đương, nên có thể nhận diện sai các chuỗi như ad và cb. Để khắc phục lỗi này, thuật toán được cải tiến bằng cách mở rộng độ dài ký tự, làm cho độ dài ký tự được mở rộng lên m bit (9 ≤ m ≤ 15).

Giả sử m=12 thì a được ánh xạ thành a=((loworder4bitsofb<<8)|a)

Tăng tốc bằng SIMD

Sau khi cải tiến trênbóng đá trực tiếp, các thành phần có thể sử dụng lệnh SIMD đồng bộ để tăng tốc.

undefined

Khi String Matching thành côngbóng đá trực tiếp, sẽ kích hoạt FA Matching; để có thể tận dụng SIMD hiệu quả, FA Matching chạy theo cách bit-based NFA. Mô tả thuật toán như sau:

Trước tiênbóng đá trực tiếp, mã hóa n trạng thái của NFA thành 0, n-1;

Định nghĩa trạng thái Sbóng đá trực tiếp,biểu thị tính hợp lệ của các trạng thái hiện tại; ví dụngoai hang anh 2025, nếu bit thứ k là 1, thì trạng thái thứ k hiện tại là hợp lệ;

Định nghĩa shift-k maskngoai hang anh 2025, biểu thị trạng thái hiện tại có thể bỏ qua k trạng thái để đạt được trạng thái mới đối với nút đầu vào mới;

Exception mask biểu thị cờ ở nút ngoại lệ

succ_mask[i] biểu thị tập hợp các trạng thái mà nút i có thể đạt được (bit được thiết lập thành 1 nếu có thể chuyển sang trạng thái đó qua một lần chuyển đổi).

reach[x], biểu thị tất cả các trạng thái mà ký tự k có thể đạt được;

Chuyển trạng thái được định nghĩa là nút loại và nút ngoại lệ; nút loại có chuyển trạng thái vượt qua không quá k nút và không có trạng thái quay lại.

undefined

Hình | 9 Trình bày NFA của biểu thức chính tắc (AB|CD)AFF*

Như hình 9kết quả bóng đá trực tiếp, shift-k được đặt là 2; trong đó các bit 0, 2, 4 là nút ngoại lệ; mô tả thuật toán như sau:

undefined

Hình | 10 Thuật toán NFA dựa trên bit

Đề xuất trước đây

Giải đọc sâu về Luật An toàn Dữ liệu (Trung Quốc): Thực thi quản lý và con đường phát triển an toàn dữ liệu cho doanh nghiệp
Ngày 10 tháng 6 năm 2021bóng đá trực tiếp, kỳ họp thứ 29 của Ủy ban Thường vụ Quốc hội Trung Quốc lần thứ 13 đã thông qua Luật An toàn Dữ liệu Cộng hòa Nhân dân Trung Hoa (sau này gọi tắt là Luật An toàn Dữ liệu). Luật này gồm 55 điều, chia thành bảy chương, bao gồm: Quy định chung, An toàn dữ liệu và Phát triển, Hệ thống an toàn dữ liệu, Nghĩa vụ bảo vệ dữ liệu, Dữ liệu hành chính...
170 triệu dữ liệu người dùng bị rò rỉbóng đá trực tiếp, làm thế nào để tăng cường xây dựng an ninh dữ liệu trong ngành giáo dục?
Gần đâykết quả bóng đá trực tiếp, với sự phát triển nhanh chóng của công nghệ internet, giáo dục ngày càng trở nên hiện đại, số hóa, thông minh và không giấy tờ hơn; lượng lớn thông tin nhạy cảm được thu thập và lưu trữ trong các cơ sở dữ liệu khác nhau; ngoài ra, khối lượng và môi trường sử dụng của việc truy vấn, tải lên, phân tích và chia sẻ dữ liệu cũng tăng mạnh, thường xuyên đối mặt với nhiều rủi ro tiềm ẩn.
Dữ liệu bị rò rỉ thường xuyên xuất hiện trên bảng xếp hạngbóng đá trực tiếp, ngành y tế nên thoát khỏi "bế tắc an ninh" như thế nào?
Trong kỷ nguyên dữ liệu lớnbóng đá trực tiếp, dữ liệu đã trở thành mặt hàng “có giá trị cao” được định giá rõ ràng. Trong đó, dữ liệu y tế dường như bí mật lại thường “hoạt động” trên các mạng ngầm: một thẻ ID bảo hiểm y tế có thể bán được ít nhất 1 USD, một hồ sơ y tế đầy đủ có giá khởi điểm 5 USD; nếu mua số lượng lớn, còn có thể được giảm giá...
Chăm sóc khách hàng trực tuyến