Satellite-based ocean observation data processing method and system
By performing time stamp formatting, differential slice preprocessing, Huffman compression, AES encryption and channel encoding on ocean observation data, the problems of large amount of data, high loss risk and poor confidentiality in ocean observation data transmission are solved, and the problem of improved Communication efficiency and security.
Patent Information
- Application Number
- CN202411450290.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-17
- Publication Date
- 2025-01-03
- Estimated Expiration
- 2044-10-17
AI Technical Summary
The large amount of data of marine observation data, high risk of data loss and poor data confidentiality are problems such as when communication links are unstable in the marine environment, resulting in an increased risk of signal distortion and incorrect data.
Using satellite-based marine observation data processing methods, time stamp formatting, differential slice data preprocessing, Huffman compression, AES encryption and channel encoding are carried out to ensure that the data is effectively compressed and encrypted before transmission. deal with.
It effectively reduces the amount of ocean observation data, improves communication efficiency and data security, reduces the risk of data loss and error reception, and enhances communication success rate and noise immunity performance.
Smart Images

Figure CN119254386A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of ocean observation technology, and in particular to a satellite-based ocean observation data processing method and system. Background Art
[0002] In related technologies, ocean observation devices usually only perform simple compression on observation data and then send the observation data to land observation stations through wireless technology. However, the existing compression algorithm has the defect of low compression efficiency, resulting in a large amount of observation data. Since ocean observation devices are affected by the ocean environment, the connection stability of the communication link is difficult to guarantee, resulting in the larger the amount of data, the higher the communication success rate and the risk of data loss. In addition, the confidentiality of observation data is poor, and there is a risk of being stolen during transmission. Moreover, the observation data is affected by environmental noise during transmission, and there is a risk of signal distortion, which may cause the land observation station to obtain incorrect data. Summary of the invention
[0003] The technical problem to be solved by the present invention is to provide a satellite-based ocean observation data processing method and system to solve the problems of large data volume, high risk of data loss and poor data confidentiality of ocean observation data.
[0004] The technical solution adopted by the present invention to solve the technical problem is: constructing a satellite-based ocean observation data processing method for an ocean observation device, the ocean observation data processing method comprising: Acquiring ocean observation data collected by the ocean observation device within a set time; Formatting the ocean observation data according to the timestamps to obtain a plurality of data slices corresponding to the plurality of timestamps and arranged based on a set data format; Arrange the multiple data slices from small to large based on the timestamps, and determine the difference slice data corresponding to each of the arranged data slices according to a set formula; wherein the set formula is: ; Indicates the first difference slice data, Indicates the data slice with the earliest timestamp. Represents the nth data slice, Represents the nth difference slice data, represents the n-1th data slice, and M corresponds to the total number of data slices within the set time; For each of the difference slice data, the following steps are performed: preprocessing the difference slice data to obtain preprocessed data, and judging whether the preprocessed data meets the similarity requirement. If so, the difference slice data is determined as data to be processed; otherwise, the preprocessed data is determined as data to be processed; Compressing, encrypting and channel coding all the data to be processed in sequence to obtain data to be sent; A communication channel is established with the satellite to send the data to be sent to the land observation station through the satellite.
[0005] Preferably, the ocean observation data includes data of various observation information collected within the set time, and the step of formatting the ocean observation data according to the timestamp includes: Classifying the various observation information collected at the same timestamp into a group of data to be merged, so as to obtain multiple groups of data to be merged corresponding to multiple timestamps; For each group of the data to be merged, the following steps are performed: generating a unique identification code, and generating an identification code data segment based on the identification code; generating a time data segment based on the timestamp of the data to be merged; generating a test data segment based on each type of observation information contained in the data to be merged, and obtaining a plurality of test data segments corresponding to various observation information; setting the data length of each data segment based on a memory setting list; merging the identification code data segment, the time data segment, and the set data segment with each test data segment in a set column order, and obtaining a data slice corresponding to the data to be merged; wherein the memory setting list includes byte settings for respectively setting the data lengths of various data segments.
[0006] Preferably, the step of preprocessing the difference slice data includes: Eliminate all bits storing logic zero in the difference slice data, and generate preprocessed data capable of representing positions of all non-logic zero bits according to positions of non-logic zero bits; The step of determining whether the preprocessed data meets the similarity requirement includes: It is determined whether the data length of the preprocessed data is greater than a preset length threshold, if so, it is determined that the preprocessed data meets the similarity requirement, if not, it is determined that the preprocessed data does not meet the similarity requirement.
[0007] Preferably, the step of sequentially compressing, encrypting and channel coding all the data to be processed comprises: Compressing the data to be processed by using a Huffman compression algorithm to obtain plain text; Encrypt the plaintext using an AES encryption algorithm to obtain encrypted data; Channel coding is performed on the encrypted data to obtain data to be sent.
[0008] Preferably, the step of encrypting the plaintext by using the AES encryption algorithm comprises: Obtain a key matrix; wherein the key matrix includes N groups of keys; N is a natural number greater than two; Based on the N groups of keys and plain text, the following steps are performed: SS1, performing encryption operation on the first group of keys and the plaintext based on a set encryption function to obtain data to be encrypted; SS2, performing byte replacement processing on the data to be encrypted to obtain replaced data; SS3, performing row shift processing on the replaced data to obtain shifted data; SS4: Determine whether the number of key groups that have not been encrypted in the key matrix is greater than one, and if so, execute SS5; otherwise, execute SS7; SS5, performing column mixing processing on the shifted data to obtain mixed data; SS6, based on the set encryption function, perform encryption operation on the Mth group of keys and the plaintext to obtain a sub-ciphertext, use the sub-ciphertext as the latest data to be encrypted, and return it to SS2; wherein the initial value of M is 2, and M is increased by one after each execution of SS5; SS7. Perform encryption operation on the Nth group of keys and the shifted data to obtain the encrypted data.
[0009] Preferably, before step SS1, the method further includes: Convert the plaintext into a state matrix consisting of L×K bytes, and each byte in the state matrix is represented by a hexadecimal code; L and K are natural numbers greater than 1; In the SS2, the byte replacement process includes: Obtain a predefined S-box; wherein the S-box is configured as a 16×16 element matrix composed of 256 elements; For each element in the state matrix, the following steps are performed: taking the upper four bits of the byte stored in the element as the row value and the lower four bits of the byte as the column value, taking out the corresponding element in the S-box based on the row value and the column value, and replacing the byte with the element; In the SS3, the row shift process includes: Shift the bytes in the first row of the state matrix by X byte units in a set direction; Shift the bytes in the second row of the state matrix by Y byte units in a set direction; Shift the bytes in the third row of the state matrix by Z bytes in a set direction; Shift the bytes in the fourth row of the state matrix by J byte units in a set direction; In the SS5, the column mixing process includes: Get a predefined K×L transformation matrix consisting of bytes; For each element in the state matrix, the following steps are performed: taking out all bytes in the same column as the byte in the state matrix, recording the bytes taken out from the state matrix as the bytes to be operated; taking out all bytes in the transformation matrix whose row values are the same as the row values of the byte, recording the bytes taken out from the transformation matrix as mixed bytes; substituting the bytes to be operated and all mixed bytes into a predetermined mixing function to obtain a mixed value corresponding to the bytes to be mixed; After the mixed values corresponding to all bytes in the state matrix are calculated, each byte in the state matrix is replaced with the mixed value corresponding thereto.
[0010] Preferably, the step of performing channel coding on the encrypted data comprises: It is determined whether the memory occupied by the encrypted data is less than a set memory threshold, if so, the encrypted data is channel encoded by a Hamming coding algorithm, if not, the encrypted data is channel encoded by a preset coding algorithm.
[0011] Preferably, the step of performing channel coding on the encrypted data by using a Hamming coding algorithm comprises: Dividing the encrypted data into four-bit units to obtain a plurality of data segments to be encoded; Obtaining a predetermined supervisory relationship; wherein the supervisory relationship includes a computational relationship between a plurality of supervisory bits and the data segment to be encoded; For each of the data segments to be encoded, the following steps are performed: calculating the value of each of the supervisory bits according to the supervisory relationship and the data segment to be encoded, encoding the supervisory bits into the data to be encoded according to a predetermined encoding sequence, and obtaining an encoded data segment.
[0012] Preferably, the step of performing channel coding on the encrypted data by using a preset coding algorithm comprises: Encoding the encrypted data based on the RS error correction coding algorithm to obtain RS code; Encode the RS code based on a convolutional error correction coding algorithm to obtain convolutionally encoded data; The convolutionally encoded data is encoded based on an interleaving coding algorithm to obtain the data to be sent.
[0013] The present invention also constructs a satellite-based ocean observation data processing system for an ocean observation device, wherein the satellite-based ocean observation data processing system comprises a plurality of ocean observation devices, satellites and land observation stations; Among them, the ocean observation device includes a main control module, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, the steps of the above-mentioned satellite-based ocean observation data processing method are implemented.
[0014] The implementation of the technical solution of the present invention can effectively compress the amount of ocean observation data, significantly reduce the amount of data that needs to be sent by the ocean observation device, thereby improving communication efficiency and playing a positive role in saving electricity for ocean observation data. It also encrypts and channel encodes the ocean observation data, thereby improving the security, communication success rate and noise resistance of the ocean observation data, thereby effectively preventing data loss and receiving erroneous information. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] The present invention will be further described below with reference to the accompanying drawings and embodiments, in which: Figure 1 is a program flow chart of a satellite-based ocean observation data processing method in some embodiments of the present invention; Figure 2 is a schematic diagram of a memory setting list in some embodiments of the present invention; Figure 3 is a schematic diagram of a data structure of data slices in some embodiments of the present invention; Figure 4 is a flowchart of step S5 in some embodiments of the present invention; Figure 5 is a flowchart of encryption processing in some embodiments of the present invention; Figure 6 is a flowchart of a program for column mixing processing in some embodiments of the present invention; Figure 7 is a flow chart of a channel coding procedure in some embodiments of the present invention; Figure 8 is a flow chart of a channel coding procedure in other embodiments of the present invention; Fig. 9 It is a schematic diagram of the structure of a satellite-based ocean observation data processing system in some embodiments of the present invention. DETAILED DESCRIPTION
[0016] In order to have a clearer understanding of the technical features, purposes and effects of the present invention, specific embodiments of the present invention are now described in detail with reference to the accompanying drawings.
[0017] It should be noted that the flowcharts shown in the accompanying drawings are only exemplary and do not necessarily include all the contents and operations / steps, nor do they have to be executed in the order described. For example, some operations / steps can be decomposed, while some operations / steps can be combined or partially combined, so the actual execution order may change according to actual conditions.
[0018] The block diagrams shown in the accompanying drawings are merely functional entities and do not necessarily correspond to physically independent entities. That is, these functional entities may be implemented in software form, or in one or more hardware modules or integrated circuits, or in different networks and / or processor devices and / or microcontroller devices. The present invention provides a method for processing ocean observation data based on satellites, which is used in a main control module included in an ocean observation device. The ocean observation device can be a buoy or a submerged buoy, which is mainly used to collect ocean information, generate ocean observation data based on the ocean information, and transmit the ocean observation data. In addition, Fig. 9 As shown, the ocean observation device also includes a sensor module for collecting ocean information and outputting ocean observation data and an antenna module for realizing wireless communication.
[0019] See also Figure 1 The ocean observation data processing method includes step S1, step S2, step S3, step S4, step S5 and step S6.
[0020] See also Figure 1 , step S1 includes: obtaining the ocean observation data collected by the ocean observation device within a set time. In this step, the ocean observation device collects ocean information through a sensor module, and generates ocean observation data based on the collected ocean information. Among them, the sensor module can be composed of a variety of sensors, with various types of ocean information, such as collecting seawater temperature through a temperature sensor, collecting seawater salinity through a salinity sensor, measuring seawater flow rate through a flow sensor, determining the real-time longitude and latitude of the ocean observation device through a GPS module, and collecting seawater oxygen content through an oxygen content sensor.
[0021] In addition, the setting time can be customized according to the actual data collection amount of the ocean observation device. However, given that the ocean observation device is affected by the external environment (such as ocean current impact, biological invasion, etc.), there is a risk of failure at any time. The setting time of the buoy-type ocean observation device can be 1 hour. On the one hand, it can avoid the loss of a large amount of observation data when the ocean observation device fails due to the long data processing cycle. On the other hand, it can avoid the ocean observation device from frequently processing data, resulting in increased power consumption. It should be noted that the designed service life of the ocean observation device is generally more than one year, and the power is usually provided by batteries. When the device is not collecting and processing data, the device will enter a low-power mode to reduce energy consumption. If the setting time is longer, it means that the ocean observation device will enter the normal working mode for a longer time. Therefore, the setting time should not be too long, otherwise it is easy to cause the ocean observation device to fail due to insufficient power before the operating time reaches the designed life.
[0022] See also Figure 1 , step S2 includes: formatting the ocean observation data according to the timestamp to obtain multiple data slices that correspond to multiple timestamps one by one and are arranged based on the set data format.
[0023] It should be noted that the sensor module will collect ocean information at a certain frequency. For example, each sensor in the sensor module samples the corresponding information at a frequency of once per second. It can be understood that the ocean observation data includes multiple types of observation information (including longitude, latitude, seawater salinity, seawater temperature, seawater flow rate, seawater oxygen content, etc.) collected by different sensor modules at multiple timestamps, that is, the ocean observation data includes multiple types of observation information collected within a set time. The purpose of this step is to extract multiple types of observation information collected at the same timestamp, and reorganize the format of these observation information based on the timestamp to prepare for subsequent data processing.
[0024] In some embodiments, the ocean observation data may be formatted by executing steps S21 and S22.
[0025] Step S21 includes: classifying the multiple observation information collected at the same timestamp into a group of data to be merged, so as to obtain multiple groups of data to be merged corresponding to multiple timestamps. It should be noted that the main control module generates a timestamp associated with the multiple observation information obtained each time when acquiring the multiple observation information collected by the sensor module (the timestamp increases with the increase of system operation time).
[0026] Step S22 includes: for each group of data to be merged, the following steps are performed: generating a unique identification code corresponding to the data to be merged, and generating an identification code data segment according to the identification code; generating a time data segment according to the timestamp corresponding to the data to be merged; generating a test data segment according to each type of observation information contained in the data to be merged, so as to obtain a plurality of test data segments corresponding to various observation information one by one; setting the data length of each data segment based on a memory setting list; merging the identification code data segment, the time data segment and the set data segment with each test data segment in a set sorting manner, so as to obtain a data slice corresponding to the data to be merged; wherein the memory setting list includes byte settings for respectively setting the data length of various data segments (including the identification code data segment, the time data segment and each test data segment).
[0027] In this step, an existing identification code generation algorithm can be used to generate an identification code. For example, a unique identification code can be generated by using a timestamp and a set operation formula, and the identification code is converted into a binary form to obtain the identification code data segment. Similarly, the timestamp is converted into a binary form to obtain the time data segment; each type of observation information is converted into a binary form to obtain the test data segment corresponding to the observation information.
[0028] In some embodiments, the memory settings list can refer to Figure 2 .
[0029] In some embodiments, reference may be made to Figure 3 The identification code data segment, the time data segment and the setting data segment are merged with each test data segment.
[0030] Since some ocean observation devices need to observe certain ocean information in a targeted manner, such as a seabed-based buoy needs to observe the geological information of the seabed, the categories of the test data segments are different. In view of this, in some embodiments, such as Figure 3 As shown, a reserved bit is also provided in the data slice, so that special ocean information can be stored through the reserved bit, which can not only keep the word length of the data slice consistent, but also facilitate the subsequent steps to calculate and process the same type of data, and improve the scalability. To facilitate data identification and processing, in some embodiments, the word length of the data slice can be maintained at 28 bytes.
[0031] See also Figure 1 Step S3 includes: determining the difference slice data corresponding to each of the arranged data slices according to a set formula. It should be noted that, in this step, the larger the serial number of the arranged data slice is, the later its corresponding timestamp is, that is, within the set time, the data slice with the earliest timestamp corresponds to the data slice corresponding to the first timestamp.
[0032] In some embodiments, each difference slice data can be calculated by formula (1): ;in, Indicates the first difference slice data, Indicates the data slice with the earliest timestamp. Represents the nth data slice, Represents the nth difference slice data, Indicates the n-1th data slice, and M corresponds to the total number of data slices within the set time.
[0033] It should be noted that, when all the difference slice data are known, as long as the difference slice data with the earliest timestamp is used as the base package, and then the inverse operation is performed based on formula (1), all the data slices corresponding to the set time can be restored.
[0034] See also Figure 1 Step S4 includes: for each difference slice data: preprocessing the difference slice data to obtain preprocessed data, judging whether the preprocessed data meets the similarity requirement, if so, setting the difference slice data as the data to be processed, otherwise, setting the preprocessed data as the data to be processed. Since the sensor has a slow-changing characteristic in time when collecting ocean information, that is, the same observation information of adjacent timestamps may be unchanged, there is a possibility of duplicate data, and the role of this step is to simplify the difference slice data according to the actual situation of the difference slice data to reduce the amount of data.
[0035] In some embodiments, the difference slice data may be preprocessed by performing the following steps: removing all bits storing logic zeros in the difference slice data, removing all bits storing logic zeros in the difference slice data, and generating preprocessed data that can represent the positions of all non-logic zero bits based on the positions of the non-logic zero bits.
[0036] Since the difference slice data is the difference between the data slices corresponding to the two timestamps arranged in front and behind, and is expressed in binary form, in view of the slow-changing characteristics of the sensor when collecting data, and some ocean information may only change slightly within a certain period of time, such as seawater salinity and seawater temperature, some bits in the difference slice data store logical "0", especially the high-order bits. Specifically, assuming that the seawater temperature only changes by 0.02°C between two adjacent timestamps, in some embodiments, the seawater temperature binary code corresponding to the smaller timestamp can be "XXXXXXXXXXXXX010", and the seawater temperature binary code corresponding to the larger timestamp can be "XXXXXXXXXXXXX100". It can be seen that the high-order data of the two data slices are consistent, and the difference slice data obtained after the difference of this segment of data will contain a large number of logical "0".
[0037] In addition, when the pre-processed data of a timestamp is known and the data slice of the previous timestamp of the timestamp is known, the pre-processed data of the timestamp is restored to the corresponding difference slice data, and then the data slice of the previous timestamp is added to the difference slice data to obtain the data slice corresponding to the timestamp. It can be understood that for some difference slice data, the amount of data can be significantly reduced after the logical zero removal process is performed.
[0038] In some embodiments, in order to facilitate determination of whether the data to be processed is preprocessed data or differential slice data, after the preprocessed data is determined as the data to be processed, a flag indicating that the data to be processed originates from the preprocessed data may be added to the data to be processed.
[0039] In some embodiments, it can be determined whether the preprocessed data meets the similarity requirement by executing the following steps: determining whether the data length of the preprocessed data is greater than a preset length threshold, if so, determining that the preprocessed data meets the similarity requirement, otherwise determining that the preprocessed data does not meet the similarity requirement. The main purpose of step S4 is to reduce the amount of data, and considering that the restoration of the preprocessed data requires a certain amount of computer computing power, the length of the preprocessed data should not be too large. If it is greater than the preset length threshold, it is considered that there is no reduction requirement for the difference slice data, and thus the preprocessed data is determined to meet the similarity requirement, otherwise it is determined that the preprocessed data does not meet the similarity requirement.
[0040] In some embodiments, the preset length threshold can be determined by the following formula: P1=T*M, where P1 represents the preset length threshold, T represents the determination threshold (which can be custom set and its setting range is greater than 0 and less than 1), and M represents the length of the difference slice data.
[0041] See also Figure 1 , step S5 includes: compressing, encrypting and channel coding all the data to be processed in sequence to obtain the data to be sent.
[0042] In some embodiments, Figure 4 As shown, step S5 may include step S51, step S52 and step S53.
[0043] See also Figure 4 Step S51 includes: compressing the data to be processed by the Huffman compression algorithm to obtain plain text. This step can achieve lossless compression of the data to be processed by the Huffman compression algorithm, and can ensure the integrity of the data as much as possible.
[0044] In some embodiments, the process of compressing the data to be processed using the Huffman compression algorithm may include: counting the frequency of occurrence of each character in the data to be processed; sorting each character according to the frequency of occurrence of each character; establishing a Huffman tree based on an existing algorithm; generating a character code through the Huffman tree; and encoding the data to be processed based on the character code to obtain the plain text.
[0045] See also Figure 4 , step S52 includes: encrypting the plain text through the AES encryption algorithm to obtain encrypted data.
[0046] In some embodiments, plaintext may be encrypted by performing the following steps: Obtain a key matrix; wherein the key matrix includes N groups of keys; N is a natural number greater than two; Based on N sets of keys and plaintext, Figure 5 Shown are step SS1, step SS2, step SS3, step SS4, step SS5, step SS6 and step SS7.
[0047] See also Figure 5 , step SS1 includes: performing encryption operation on the first group of keys and plain text based on the set encryption function to obtain the data to be encrypted. This step can be achieved by formula (2): Encrypt the plaintext, where C represents the data to be encrypted. Indicates setting the encryption function, K indicates the key, In addition, the encryption function may be an existing encryption function, such as an XOR function.
[0048] To ensure that the plaintext is consistent with the format of the key during encryption, in some embodiments, before executing step SS1, it may also include: converting the plaintext into a state matrix consisting of L×K bytes (i.e., the number of rows and the number of columns of the state matrix are L and K). In some embodiments, the key length is 128 bits, and accordingly, L is equal to 4, K is equal to 4, and each element in the state matrix contains one byte. It should be noted that after the plaintext is encrypted, the plaintext is still an L×K matrix structure, but the elements are encrypted once.
[0049] See also Figure 5 Step SS2 includes: performing byte substitution processing on the data to be encrypted to obtain replaced data. In this step, by performing byte substitution processing on the data to be encrypted, the obfuscation of the data to be encrypted can be improved, thereby improving the security of data encryption.
[0050] In some embodiments, the byte substitution process may be implemented by executing step SS21 and step SS22.
[0051] Step SS21 includes: obtaining a predefined S-box; wherein the S-box is configured as a 16×16 element matrix composed of 256 elements. The S-box in this step is a two-dimensional constant array used to encrypt data in the AES encryption algorithm, and the array structure can be customized. In addition, when decrypting at the land observation station, the inverse S-box corresponding to the S-box in this step can be used to achieve decoding, thereby restoring the data. The specific functions of the S-box and the inverse S-box can refer to the prior art and will not be repeated here.
[0052] Step SS22 includes: for each element in the state matrix (i.e., the converted plaintext), the following steps are performed: the upper four bits of the byte stored in the element are used as the row value, the lower four bits of the byte are used as the column value, the corresponding element in the S box is taken out based on the row value and the column value, and the byte is replaced with the element. For example, if the byte stored in an element in the state matrix corresponding to the plaintext is 0x12, then its upper four bits are 1 and its lower four bits are 2, and the element corresponding to the first row and second column of the S box is 0xC9, then 0xC9 will replace the original value 0x12 and store it in the element. After all elements in the plaintext are replaced, the plaintext at this time is the data to be encrypted.
[0053] Step SS3 includes: performing row shift processing on the replaced data to obtain shifted data. In this step, by performing row shift processing on the replaced data, the complexity of data encryption can be increased, and the encryption security can be further improved.
[0054] In some embodiments, row shift processing can be implemented by executing the following steps: shifting the bytes in the first row of the state matrix by X byte units in the set direction, shifting the bytes in the second row of the state matrix by Y byte units in the set direction, shifting the bytes in the third row of the state matrix by Z byte units in the set direction, and shifting the bytes in the fourth row of the state matrix by J byte units in the set direction.
[0055] In this step, X, Y, Z and J can be natural numbers set by user, and optionally, X can be 0, Y can be 1, Z can be 2, and J can be 3. In order to further improve the encryption effect, the values of X, Y, Z and J can be determined by the existing random number generation function. As long as the X, Y, Z and J defined during the row shift are packaged and sent to the land observation station each time the ocean observation data is transmitted, the land observation station can be ensured to achieve decryption, which can improve data security.
[0056] See also Figure 5 , step SS4 includes: determining whether the number of key groups that have not been encrypted in the key matrix is greater than one, if so, executing SS5, otherwise executing SS7.
[0057] See also Figure 5Step SS5 includes: performing column mixing processing on the shifted data to obtain mixed data (i.e., the shifted data after the column mixing processing). This step can effectively protect the data and increase the difficulty of data decryption by performing column mixing processing on the shifted data.
[0058] In some embodiments, Figure 6 As shown, the column mixing process can be implemented by executing step SS51, step SS52 and step SS53.
[0059] See also Figure 6 , step SS51 includes: obtaining a predefined K×L transformation matrix composed of bytes.
[0060] See also Figure 6 , step SS52 includes: for each byte in the state matrix: take out all bytes in the same column as the byte in the state matrix, and record the byte taken out from the state matrix as the byte to be operated; take out all bytes in the transformation matrix whose row value is the same as the row value recorded by the byte, and record the byte taken out from the transformation matrix as the mixed byte; substitute the byte to be operated and all the mixed bytes into the predetermined mixing function to obtain the mixed value corresponding to the byte to be mixed.
[0061] Specifically, in some embodiments, the state matrix is expressed as: ; The transformation matrix is expressed as: ; Accordingly, the mixing function can be expressed as: .
[0062] in, represents the element in row 1 and column J in the state matrix, represents the element in row 2 and column J in the state matrix, represents the element in row 3 and column J in the state matrix, represents the element in the 4th row and the Jth column in the state matrix, Indicates the bytes to be mixed The corresponding mixed value, Indicates the bytes to be mixed The corresponding mixed value, Indicates the bytes to be mixed The corresponding mixed value, Indicates the bytes to be mixed The corresponding mixed value, Represented as a multiplication operation, Represents an XOR operation.
[0063] See also Figure 6, step SS53 includes: after calculating the mixed values corresponding to all bytes in the state matrix, replacing each byte in the state matrix with the corresponding mixed value.
[0064] See also Figure 5 , step SS6 includes: performing encryption operation on the Mth group of keys and plaintext based on the set encryption function to obtain sub-ciphertext, taking the sub-ciphertext as the latest data to be encrypted, and returning to SS2; wherein the initial value of M is 2, and M is increased by 1 after each execution of SS5. In this step, except for the different keys, the process of each encryption operation is the same as that of step SS1, so it can be referred to the upper level and will not be repeated here.
[0065] See also Figure 5 , step SS7 includes: performing encryption operation on the Nth group of keys and the shifted data to obtain encrypted data. In this embodiment, after the Nth group of keys and the shifted data are encrypted, it is equivalent to that all the keys in the key matrix are used and an encryption operation is performed once, that is, after all the keys are consumed, the encrypted data can be obtained.
[0066] Optionally, N is equal to 11.
[0067] See also Figure 1 Step S53 includes: performing channel coding on the encrypted data to obtain data to be sent. This step can further improve data security by performing channel coding on the encrypted data.
[0068] Since different algorithms have different channel coding effects on encrypted data of different data sizes, if the algorithm is not selected properly, it is easy to cause a large amount of encoded data. In view of this, in some embodiments, the step of channel coding the encrypted data may include: determining whether the memory occupied by the encrypted data is less than a set memory threshold, if so, channel coding the encrypted data using a Hamming coding algorithm, otherwise, channel coding the encrypted data using a preset coding algorithm.
[0069] In some embodiments, the ocean observation device is divided into a buoy-type ocean observation device and a submersible ocean observation device. The buoy-type ocean observation device mainly observes ocean information at the sea level. Since it is more convenient to communicate with satellites, it can communicate with satellites at a higher frequency, so the amount of data that needs to be sent each time is smaller. The submersible ocean observation device mainly works on the seabed or deep water. Since the device consumes a lot of power and time to float up and down, it is not suitable to be carried out frequently. Therefore, this type of observation device usually floats to the sea level to send ocean observation data only after observing a large amount of data. Therefore, the amount of data that needs to be sent each time is large.
[0070] In some embodiments, Figure 7As shown, the step of performing channel coding on the encrypted data by using the Hamming coding algorithm may include step S531, step S532 and step S533.
[0071] See also Figure 7 Step S531 includes: dividing the encrypted data into four-bit units to obtain a plurality of data segments to be encoded. Since the encrypted data is stored in a binary form in a computer, the encrypted data can be equally divided into four-bit units to obtain a plurality of data segments to be encoded with a width of four bits.
[0072] See also Figure 7 , step S532 includes: obtaining a predetermined supervisory relationship; wherein the supervisory relationship includes the operational relationship between multiple supervisory bits and the data segments to be encoded.
[0073] In some embodiments, the supervision relationship can be expressed as: .
[0074] in, , and Respectively represent the supervision bit, , , and Respectively represent the values of 4 bits in the data segment to be encoded. It can be understood that by , , and Substituting into the supervision relationship, we can calculate , and .
[0075] See also Figure 7 Step S533 includes: for each data segment to be encoded: calculating the value of each supervisory bit according to the supervisory relationship and the data segment to be encoded, encoding the supervisory bit into the data to be encoded according to a predetermined encoding sequence, and obtaining an encoded data segment. The predetermined encoding sequence can be customized according to the needs, for example, with " "arrangement.
[0076] In some embodiments, Figure 8 As shown, the step of performing channel coding on the encrypted data by using a preset coding algorithm may include step SS531, step SS532 and step SS533.
[0077] See also Figure 8Step SS531 includes: encoding the encrypted data based on the RS error correction coding algorithm to obtain the RS code. In this step, the encrypted data is encoded by the existing RS error correction coding algorithm to encode nk supervisory code elements in a certain pattern in the information code element of the encrypted data to obtain the RS code. The RS code can be represented in the form of (n, k), where n represents the code length of the RS code, and k represents the number of information code elements in the RS code.
[0078] It can be understood that the RS error correction coding algorithm has the advantages of error correction capability, easy implementation, and high coding efficiency. For encrypted data with a large amount of data, RS error correction coding is performed on it first, which can effectively simplify the data amount and reduce the computational burden of subsequent processing. It is also convenient to handle random errors and burst errors that occur in the transmission process of the encrypted data, thereby avoiding data loss.
[0079] See also Figure 8 Step SS532 includes: encoding the RS code based on a convolutional error correction coding algorithm to obtain convolutional coded data. This step can be implemented by encoding the RS code using two existing convolutional error correction encoders.
[0080] Among them, the convolutional coding equation can be expressed as: .in, represents the output sequence of the first convolutional error correction encoder, ; represents the output sequence of the second convolutional error correction encoder, ; represents the original data sequence input to the convolutional error correction encoder (ie, RS encoding), ; represents the generator polynomial coefficient vector of the first convolutional encoder, ; represents the generator polynomial coefficient vector of the second convolutional encoder, .
[0081] Understandably, convolutional error correction coding has the advantages of strong anti-interference performance and can effectively prevent data from being distorted by environmental noise.
[0082] See also Figure 8 Step SS533 includes: encoding the convolutional coded data based on an interleaving coding algorithm to obtain data to be sent. Specifically, the convolutional coded data is arranged into an R×E code matrix using an existing interleaving coding algorithm, and the code matrix is rearranged to obtain data to be sent. In some embodiments, the R×E code matrix can be expressed as: ; Accordingly, the data to be sent can be expressed as: .
[0083] Understandably, interleaving coding helps to effectively reduce the risk of data loss in wireless communication, and can effectively avoid the risk of data loss when subsequently sending data to be sent.
[0084] In step S53, when it is necessary to send larger data, the encrypted data is encoded in sequence through the RS error correction coding algorithm, the convolutional error correction coding algorithm and the interleaving coding algorithm, which can combine the advantages of RS error correction coding, convolutional error correction coding and interleaving coding at the same time, not only reducing the risk of repeated data transmission, but also ensuring the reliability and security of communication.
[0085] See also Figure 1 , step S6 includes: establishing a communication channel with the satellite to send the data to be sent to the land observation station via the satellite. In this step, the main control module establishes a communication channel with the satellite by controlling the antenna module to work, so as to send the data to be sent to the land observation station via the satellite. After receiving the data to be sent, the land observation station can use the known information to perform inverse operations to restore the ocean observation data output by the sensor module, because the encryption function, S-box, mixing function, key matrix, supervision relation, coding sequence, and algorithm in the channel coding process can be agreed in advance.
[0086] It can be understood that the technical solution of the present invention can effectively compress the amount of ocean observation data, significantly reduce the amount of data that needs to be sent by the ocean observation device, thereby improving communication efficiency and playing a positive role in saving electricity for ocean observation data. It also encrypts and channel encodes the ocean observation data, thereby improving the security, communication success rate and noise resistance of the ocean observation data, thereby effectively preventing data loss and receiving erroneous information.
[0087] The present invention also provides a satellite-based ocean observation data processing system for ocean observation devices, such as Fig. 9 As shown, the satellite-based ocean observation data processing system includes several ocean observation devices, satellites and land observation stations.
[0088] Among them, the ocean observation device includes a main control module, the main control module includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, the steps of the satellite-based ocean observation data processing method provided in an embodiment of the present invention are implemented.
[0089] In this specification, each embodiment is described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the embodiments can be referred to each other. For the device disclosed in the embodiment, since it corresponds to the method disclosed in the embodiment, the description is relatively simple, and the relevant parts can be referred to the method part.
[0090] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described in the above description according to function. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present invention.
[0091] The steps of the method or algorithm described in conjunction with the embodiments disclosed herein may be implemented directly using hardware, a software module executed by a processor, or a combination of the two. The software module may be placed in a random access memory (RAM), a memory, a read-only memory (ROM), an electrically programmable ROM, an electrically erasable programmable ROM, a register, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
[0092] It can be understood that the above embodiments only express the preferred implementation modes of the present invention, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the patent scope of the present invention. It should be pointed out that, for ordinary technicians in this field, the above technical features can be freely combined without departing from the concept of the present invention, and several deformations and improvements can be made, which all belong to the protection scope of the present invention. Therefore, all equivalent changes and modifications made to the scope of the claims of the present invention should belong to the coverage of the claims of the present invention.
Claims
1. A method for processing ocean observation data based on satellite, used in an ocean observation device, characterized in that: The ocean observation data processing method comprises: Acquiring ocean observation data collected by the ocean observation device within a set time; Formatting the ocean observation data according to the timestamps to obtain multiple data slices corresponding to the multiple timestamps and arranged based on a set data format; Arrange the multiple data slices from small to large based on the timestamps, and determine the difference slice data corresponding to each of the arranged data slices according to a set formula; wherein the set formula is: ; Indicates the first difference slice data, Indicates the data slice with the earliest timestamp. Represents the nth data slice, Represents the nth difference slice data, represents the n-1th data slice, and M corresponds to the total number of data slices within the set time; For each of the difference slice data, the following steps are performed: preprocessing the difference slice data to obtain preprocessed data, and judging whether the preprocessed data meets the similarity requirement. If so, the difference slice data is determined as data to be processed; otherwise, the preprocessed data is determined as data to be processed; Compressing, encrypting and channel coding all the data to be processed in sequence to obtain data to be sent; A communication channel is established with the satellite to send the data to be sent to the land observation station through the satellite.
2. The method for processing ocean observation data based on satellite according to claim 1, characterized in that: The ocean observation data includes data of various observation information collected within the set time, and the step of formatting the ocean observation data according to the timestamp includes: Classifying the various observation information collected at the same timestamp into a group of data to be merged, so as to obtain multiple groups of data to be merged corresponding to multiple timestamps; For each group of the data to be merged, the following steps are performed: generating a unique identification code, and generating an identification code data segment based on the identification code; generating a time data segment based on the timestamp of the data to be merged; generating a test data segment based on each type of observation information contained in the data to be merged, and obtaining a plurality of test data segments corresponding to various observation information; setting the data length of each data segment based on a memory setting list; merging the identification code data segment, the time data segment, and the set data segment with each test data segment in a set column order, and obtaining a data slice corresponding to the data to be merged; wherein the memory setting list includes byte settings for respectively setting the data lengths of various data segments.
3. The method for processing ocean observation data based on satellite according to claim 1, characterized in that: The step of preprocessing the difference slice data includes: Eliminate all bits storing logic zero in the difference slice data, and generate preprocessed data capable of representing positions of all non-logic zero bits according to positions of non-logic zero bits; The step of determining whether the preprocessed data meets the similarity requirement includes: It is determined whether the data length of the preprocessed data is greater than a preset length threshold, if so, it is determined that the preprocessed data meets the similarity requirement, if not, it is determined that the preprocessed data does not meet the similarity requirement.
4. The method for processing ocean observation data based on satellite according to any one of claims 1 to 3, characterized in that: The step of sequentially compressing, encrypting and channel coding all the data to be processed comprises: Compressing the data to be processed by using a Huffman compression algorithm to obtain plain text; Encrypt the plaintext using an AES encryption algorithm to obtain encrypted data; Channel coding is performed on the encrypted data to obtain data to be sent.
5. The method for processing ocean observation data based on satellite according to claim 4, characterized in that: The step of encrypting the plaintext by using the AES encryption algorithm comprises: Obtain a key matrix; wherein the key matrix includes N groups of keys; N is a natural number greater than two; Based on the N groups of keys and plain text, the following steps are performed: SS1, performing encryption operation on the first group of keys and the plaintext based on a set encryption function to obtain data to be encrypted; SS2, performing byte replacement processing on the data to be encrypted to obtain replaced data; SS3, performing row shift processing on the replaced data to obtain shifted data; SS4: Determine whether the number of key groups that have not been encrypted in the key matrix is greater than one, and if so, execute SS5; otherwise, execute SS7; SS5, performing column mixing processing on the shifted data to obtain mixed data; SS6, based on the set encryption function, perform encryption operation on the Mth group of keys and the plaintext to obtain a sub-ciphertext, use the sub-ciphertext as the latest data to be encrypted, and return it to SS2; wherein the initial value of M is 2, and M is increased by one after each execution of SS5; SS7. Perform encryption operation on the Nth group of keys and the shifted data to obtain the encrypted data.
6. The method for processing ocean observation data based on satellite according to claim 5, characterized in that: Before step SS1, the method further includes: Convert the plaintext into a state matrix consisting of L×K bytes, and each byte in the state matrix is represented by a hexadecimal code; L and K are natural numbers greater than 1; In the SS2, the byte replacement process includes: Obtain a predefined S-box; wherein the S-box is configured as a 16×16 element matrix composed of 256 elements; For each element in the state matrix, the following steps are performed: taking the upper four bits of the byte stored in the element as the row value and the lower four bits of the byte as the column value, taking out the corresponding element in the S-box based on the row value and the column value, and replacing the byte with the element; In the SS3, the row shift process includes: Shift the bytes in the first row of the state matrix by X byte units in a set direction; Shift the bytes in the second row of the state matrix by Y byte units in a set direction; Shift the bytes in the third row of the state matrix by Z bytes in a set direction; Shift the bytes in the fourth row of the state matrix by J byte units in a set direction; In the SS5, the column mixing process includes: Get a predefined K×L transformation matrix consisting of bytes; For each element in the state matrix, the following steps are performed: taking out all bytes in the same column as the byte in the state matrix, recording the bytes taken out from the state matrix as the bytes to be operated; taking out all bytes in the transformation matrix whose row values are the same as the row values of the byte, recording the bytes taken out from the transformation matrix as mixed bytes; substituting the bytes to be operated and all mixed bytes into a predetermined mixing function to obtain a mixed value corresponding to the bytes to be mixed; After the mixed values corresponding to all bytes in the state matrix are calculated, each byte in the state matrix is replaced with the mixed value corresponding thereto.
7. The method for processing ocean observation data based on satellite according to claim 4, characterized in that: The step of performing channel coding on the encrypted data comprises: It is determined whether the memory occupied by the encrypted data is less than a set memory threshold, if so, the encrypted data is channel encoded by a Hamming coding algorithm, if not, the encrypted data is channel encoded by a preset coding algorithm.
8. The method for processing ocean observation data based on satellite according to claim 7, characterized in that: The step of performing channel coding on the encrypted data by using a Hamming coding algorithm comprises: Dividing the encrypted data into four-bit units to obtain a plurality of data segments to be encoded; Obtaining a predetermined supervisory relationship; wherein the supervisory relationship includes a computational relationship between a plurality of supervisory bits and the data segment to be encoded; For each of the data segments to be encoded, the following steps are performed: calculating the value of each of the supervisory bits according to the supervisory relationship and the data segment to be encoded, encoding the supervisory bits into the data to be encoded according to a predetermined encoding sequence, and obtaining an encoded data segment.
9. The method for processing ocean observation data based on satellite according to claim 7, characterized in that: The step of performing channel coding on the encrypted data by using a preset coding algorithm comprises: Encoding the encrypted data based on the RS error correction coding algorithm to obtain RS code; Encode the RS code based on a convolutional error correction coding algorithm to obtain convolutionally encoded data; The convolutionally encoded data is encoded based on an interleaving coding algorithm to obtain the data to be sent.
10. A satellite-based ocean observation data processing system for an ocean observation device, characterized in that: The satellite-based ocean observation data processing system includes several ocean observation devices, satellites and land observation stations; Wherein, the ocean observation device includes a main control module, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, the steps of the satellite-based ocean observation data processing method described in any one of claims 1 to 9 are implemented.
Citation Information
Patent Citations
Oceanic autonomous observation platform data transmission method based on Beidou communication
CN103840924A
Ship-end data lightweight device, shore-end data restoration device, and ship-shore integrated data lightweight transmission system and method
CN109474594A
Satellite transmission physical characteristic self-fusion type compression encryption algorithm for CTD marine observation data
CN110311774A
Marine phenomenon observation method and system based on buoy end local identification
CN117168545A
Compression method for satellite original observation data file in RINEX format
CN118449528A
