2008-11-18 31 views
5

Có ai biết làm thế nào để tìm ra thuật toán CRC nếu một mã đã cho + chuỗi CRC được đưa ra?Làm cách nào tôi có thể đoán thuật toán tổng kiểm tra?

Tôi có một số chuỗi bao gồm mã + CRC phù hợp nhưng không biết cách tính CRC được đề cập để tôi có thể tạo thêm chuỗi mã. Dưới đây là một số mẫu (mã 16bit + 4 bit CRC):

 
0010101000011101 + 0000 
0010101000011111 + 0001 
1000110011101101 + 0001 
0000000000000100 + 0010 
0011100011001110 + 0011 
1000110011101110 + 0100 
0001011110101100 + 0100 
0010101000011110 + 0101 
0011100011001101 + 0110 
0001011110101111 + 0111 
0011100011001100 + 1001 
0011100011001111 + 1010 
0001011110101101 + 1011 
0000000000001000 + 1011 
0000111100001101 + 1100 
0000000000001100 + 1100 
1111111111111111 + 1101 
1000110011101111 + 1101 
1000110011101100 + 1110 
0001011110101110 + 1110 
1111111100001101 + 1110 
0010101000011100 + 1111 

Các mã này đến từ một người gửi RF (433MHz) như các sản phẩm X10.

Tôi không chắc đây có phải là CRC hay không, nhưng ít nhất nó được tính bằng cách nào đó trong số các chuỗi mã đó.

Có ai giúp được không?

Cập nhật:

RE: tìm kiếm các thông số kỹ thuật tôi cũng nghĩ sẽ là giải pháp tốt nhất nhưng vì đây là không có lựa chọn tôi cần phải brute force tính toán checksum bằng cách nào đó.

Đây là vấn đề, tôi không có thông số kỹ thuật và tôi không thể tải chúng ở bất cứ đâu. Tôi đã thử một số phương pháp tính tổng kiểm tra khác nhau mà không có kết quả, không có cách nào so sánh chuỗi đầu vào để tìm ra những gì chúng có chung và cách này nhận thuật toán

+0

Liên quan: http://stackoverflow.com/questions/283556/tricky-crc-algorithm –

+0

Giải thích cho người gửi RF và công cụ X10 ​​là gì. Có thể http://www.x10.com/minisites/videosender/rf_systems_pro_3250_wireless_video_sender.html có liên quan. Trong trường hợp đó, bạn - Tom - nên đã giải thích cho chúng tôi những gì bạn đang làm sau. Chúng ta không nên đoán xem bạn đang làm gì! –

+0

Các cửa hàng RF (EMW100) là từ www.everflourish.com.cn, đổi tên thành Cotech, được bán bởi www.clasohlson.fi, máy phát - http://www.clasohlson.se/Archive/Images/Products/Hi/361183A_X_2007- 06-27_161950_278.jpg, từ xa - http://www.clasohlson.se/Archive/Images/Products/Hi/361183C_X_2007-06-27_162028_434.jpg –

Trả lời

3

Đoán là từ đúng. Nếu thiết bị RF này không độc quyền, hãy thử đọc các thông số ! Đây sẽ là cách dễ nhất để đi.

Đoán tất cả các thuật toán CRC (hoặc Hashing) có thể không quá lạc quan. Chỉ cần xem here.

Khả năng thứ ba là đảo ngược kỹ sư mã bạn đang sử dụng để tạo tổng kiểm tra.

chúc may mắn :)

+1

Vâng, nếu tổng kiểm tra là 4 bit và chúng tôi đang xử lý CRC, thì tỷ lệ cược là CRC-4. Đa thức không được biết, nhưng chỉ có 16 khả năng, do đó, không nên mất nhiều thời gian để cho một kẻ ăn mày tàn bạo thử tất cả chúng. –

0

Có quá nhiều khả năng thuật toán CRC để đoán hiệu quả. Bạn có thể tiếp cận dễ dàng, đó là việc tìm kiếm một đặc điểm kỹ thuật cho thiết bị của bạn. Hoặc bạn có thể sử dụng phương thức brute force, đó là tìm ra CRC cho mỗi đầu vào có thể, và tạo ra một thuật toán tạo ra cùng một kết quả.

0

Bạn có thể thử một vài phương pháp CRC phổ biến và hy vọng sẽ nhận được may mắn, nhưng câu trả lời của Mana (tìm kiếm thông số kỹ thuật) sẽ là lựa chọn tốt nhất.

5

Điều gì khiến bạn nghĩ đó là CRC? CRC thường không được sử dụng cho các mẩu dữ liệu nhỏ như vậy.

Đối với tôi điều này thay vì trông giống như một số loại chẵn lẻ, ECC (thực tế là FEC) hoặc mã Reed-Solomon. Có thể là Hamming Code - Hamming được sử dụng rộng rãi trong công nghiệp, trong viễn thông.

0

Toàn bộ điểm trong thuật toán kiểm tra tốt là không có bất kỳ điểm nào chung với văn bản nhập. Bạn có thể thay đổi một ký tự đơn trong đầu vào. và toàn bộ kết quả kiểm tra sẽ thay đổi. Vì vậy, cách duy nhất để đi theo cách khác là, có, đoán. Nếu bạn biết chuỗi đầu vào và đầu ra là gì, bạn có thể thử một vài thuật toán tổng kiểm tra phổ biến và xem liệu có bất kỳ thuật toán nào cho kết quả đầu ra đúng hay không. Ngoài ra, không, không thể.

Ngoài ra, như những người khác đã đề xuất, nó có thể không phải là kiểm tra ở tất cả, nhưng một số loại sửa lỗi/mã dự phòng, và có thể dễ dàng hơn để tìm ra.

0

Có lẽ đây không phải là CRC, nhưng tôi vẫn không thể quản lý để tìm ra các thuật toán sửa lỗi/giải phóng lỗi.

0

Đánh giá theo độ dài của chuỗi so với chiều dài của tổng kiểm tra, tôi sẽ nói đây là một kiểm tra sửa lỗi 1 lỗi đơn giản. Nó có lẽ là một trong những cái đơn giản sử dụng khoảng cách hamming. Tôi không thể nhớ tay nó hoạt động như thế nào, và tôi không có bất kỳ lý thuyết thông tin/sách giáo khoa đại số tuyến tính nào trên tôi.

2
['0010101000011101', '0000', '0'] ['0010101000011110', '0101', '5'] [1, 3] 
['1000110011101101', '0001', '1'] ['1000110011101110', '0100', '4'] [1, 3] 
['0000000000000100', '0010', '2'] ['0000000000001000', '1011', 'b'] [0, 3] 
['0011100011001110', '0011', '3'] ['0011100011001101', '0110', '6'] [1, 3] 
['0001011110101100', '0100', '4'] ['0001011110101111', '0111', '7'] [2, 3] 
['0011100011001100', '1001', '9'] ['0011100011001111', '1010', 'a'] [2, 3] 
['0001011110101101', '1011', 'b'] ['0001011110101110', '1110', 'e'] [1, 3] 
['1000110011101111', '1101', 'd'] ['1000110011101100', '1110', 'e'] [2, 3] 

kết quả khác biệt "phân tích", điều này không giống như crc, tài liệu tham khảo: http://www.cosc.canterbury.ac.nz/greg.ewing/essays/CRC-Reverse-Engineering.html

tôi nghi ngờ nó Hamming đang hoặc, như 4 bit chẵn lẻ chỉ cho phép bit 11 dữ liệu, không 16.

Các vấn đề liên quan