WO2020171145A1 - パルス列信号の周期推定装置、パルス列信号の周期推定方法およびパルス列信号の周期推定プログラム - Google Patents

パルス列信号の周期推定装置、パルス列信号の周期推定方法およびパルス列信号の周期推定プログラム Download PDF

Info

Publication number
WO2020171145A1
WO2020171145A1 PCT/JP2020/006627 JP2020006627W WO2020171145A1 WO 2020171145 A1 WO2020171145 A1 WO 2020171145A1 JP 2020006627 W JP2020006627 W JP 2020006627W WO 2020171145 A1 WO2020171145 A1 WO 2020171145A1
Authority
WO
WIPO (PCT)
Prior art keywords
period
pulse train
cycle
candidate
pulse
Prior art date
Application number
PCT/JP2020/006627
Other languages
English (en)
French (fr)
Inventor
弘樹 長山
伸悟 加島
谷川 真樹
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US17/430,326 priority Critical patent/US11846662B2/en
Priority to JP2021502111A priority patent/JP7070790B2/ja
Publication of WO2020171145A1 publication Critical patent/WO2020171145A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R23/00Arrangements for measuring frequencies; Arrangements for analysing frequency spectra
    • G01R23/02Arrangements for measuring frequency, e.g. pulse repetition rate; Arrangements for measuring period of current or voltage
    • G01R23/10Arrangements for measuring frequency, e.g. pulse repetition rate; Arrangements for measuring period of current or voltage by converting frequency into a train of pulses, which are then counted, i.e. converting the signal into a square wave
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R29/00Arrangements for measuring or indicating electric quantities not covered by groups G01R19/00 - G01R27/00
    • G01R29/26Measuring noise figure; Measuring signal-to-noise ratio
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R23/00Arrangements for measuring frequencies; Arrangements for analysing frequency spectra
    • G01R23/02Arrangements for measuring frequency, e.g. pulse repetition rate; Arrangements for measuring period of current or voltage
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R23/00Arrangements for measuring frequencies; Arrangements for analysing frequency spectra
    • G01R23/02Arrangements for measuring frequency, e.g. pulse repetition rate; Arrangements for measuring period of current or voltage
    • G01R23/15Indicating that frequency of pulses is either above or below a predetermined value or within or outside a predetermined range of values, by making use of non-linear or digital elements (indicating that pulse width is above or below a certain limit)

Definitions

  • the present invention relates to a pulse train signal period estimation device, a pulse train signal period estimation method, and a pulse train signal period estimation program.
  • a difference histogram method that histograms the differences in pulse arrival times to estimate the period
  • a sequential search that calculates the correlation with an assumed periodic pulse train
  • a conversion similar to autocorrelation There are methods such as PRI (Pulse Repetition Interval) conversion to be performed.
  • PRI Pulse Repetition Interval
  • Each of these methods has different advantages and disadvantages in terms of calculation time, resistance to jitter and loss. Therefore, in order to make up for each of the disadvantages, there is a method of performing period estimation by combining these methods. Specifically, it is a method of extracting a potential candidate cycle in the difference histogram method and then performing two-step cycle determination by PRI conversion and sequential search for the candidate cycle.
  • H.K.Mardia, et al New techniques for the deinterleaving of repetitive sequences, Volume 136 issue 4, Aug 1989, Page 149-154 C.L.Davies, et al: Automatic processing for ESM, Volume 129 issue 3, June 1982, Pages 164-171 KEN’ICHI, N. et al: Improved Algorithm for Estimating Pulse Repetition Intervals, IEEE Transactions on Aerospace and Electronic Systems, Volume 36 issue 2, Apr 2000, Page 407-421 Yanchao Liu. et al: Improved method for deinterleaving radar signals and estimating PRI values, volume 12 issues 5, 16 April 2018, Page 506-514
  • the existing method is often applied mainly to the field of radar pulse analysis, but there are two issues when applying this method to the network field.
  • the first is the task of reducing the calculation time.
  • the existing method has a problem in that a cycle that does not actually exist is extracted as a candidate cycle and the calculation time is increased due to the influence of random noise pulses.
  • the second problem is the uneven distribution of pulse reception timing (jitter).
  • jitter tends to occur on the delay side. If the jitter is distributed unevenly on one side such as the delay side, the effect of jitter accumulates in proportion to the length of the observation period, In some cases, the existing method may not be able to determine the periodic pulse as periodic. Therefore, it is difficult to change the communication cycle due to the setting change of the device in the network environment and to discover the device having the different period from the plurality of equivalent devices.
  • a pulse train signal cycle estimation device of the present invention is a candidate cycle extractor that extracts a candidate cycle that is a target of cycle determination from an input pulse train, and the extracted candidates. Using a part of the cycle, it is determined whether or not it exists as a real cycle, and when it is determined that the candidate cycle does not exist as a real cycle, a filter unit that interrupts the cycle determination for the candidate cycle, and as a real cycle While performing a cycle determination for the candidate cycle determined to exist, a pseudo cycle pulse train based on the candidate cycle is generated, based on the difference value between the generated pseudo cycle pulse train and the input pulse train, the pseudo cycle The pulse position of the pulse train is adjusted, the period detection unit that detects the periodic pulse train according to the result of the period determination and the adjustment, and the detected periodic pulse train is separated from the input pulse train, and the separated pulse train is newly added.
  • a periodic pulse separation unit that is input to the candidate period extraction unit as a new input pulse train, a parameter related to the extraction of the candidate period, and one or more of the new input pulse train, and continue the analysis of the period.
  • a cycle analysis continuation determination unit that determines whether or not the determination is performed.
  • the pulse train signal period estimation method of the present invention uses a candidate period extraction step of extracting a candidate period to be subjected to a period determination from an input pulse train, and a part of the extracted candidate periods, and is present as an actual period. If it is determined that the candidate cycle does not exist as a real cycle, a filtering step for interrupting the cycle determination for the candidate cycle, and a cycle for the candidate cycle determined to exist as a real cycle Judgment, a period detection step of detecting a periodic pulse train according to the result of the period determination, and the detected periodic pulse train is separated from the input pulse train, and the separated pulse train is used as a new input pulse train to the candidate period.
  • a computer executes the analysis continuation determination step.
  • the pulse train signal period estimation program of the present invention exists as an actual period using a candidate period extraction step of extracting a candidate period that is a target of a period determination from an input pulse train, and a part of the extracted candidate periods. If it is determined that the candidate cycle does not exist as a real cycle, a filter step for interrupting the cycle determination for the candidate cycle, and a cycle for the candidate cycle determined to exist as a real cycle A period detection step of performing a determination and detecting a periodic pulse train according to the result of the period determination, separating the detected periodic pulse train from the input pulse train, and separating the separated pulse train as a new input pulse train to the candidate period. A cycle for determining whether or not to continue the cycle analysis based on one or more of the cycle pulse separation step input to the extraction step, the parameter related to the extraction of the candidate cycle, and the new input pulse train.
  • the analysis continuation determination step is executed by a computer.
  • the present invention it is possible to change the communication cycle by changing the setting of the device in the network environment, and to discover a device having a different cycle from a plurality of equivalent devices.
  • FIG. 1 is a block diagram showing an example of the configuration of the period estimation apparatus according to the first embodiment.
  • FIG. 2 is a diagram showing an example of generation of time series data.
  • FIG. 3 is a diagram showing an example of generation of a cumulative difference histogram.
  • FIG. 4 is a diagram showing an example of clustering of cumulative difference histograms.
  • FIG. 5 is a diagram showing a detailed example of clustering of cumulative difference histograms.
  • FIG. 6 is a diagram showing an example of extraction of candidate periods.
  • FIG. 7 is a diagram showing an example of the partial sequential search.
  • FIG. 8 is a diagram showing an example of PRI conversion.
  • FIG. 9 is a diagram showing an example of the sequential search.
  • FIG. 10 is a diagram showing an example of pulse position correction in a sequential search.
  • FIG. 10 is a diagram showing an example of pulse position correction in a sequential search.
  • FIG. 11 is a diagram showing an example of pulse position correction in a sequential search.
  • FIG. 12 is a diagram showing an example of cumulative jitter.
  • FIG. 13 is a diagram illustrating an example of separation of periodic communication.
  • FIG. 14 is a diagram showing an example of various experimental data.
  • FIG. 15 is a diagram illustrating an example of reducing the calculation time.
  • FIG. 16 is a flowchart showing an example of the period estimation process in the first embodiment.
  • FIG. 17 is a block diagram showing an example of the configuration of the cycle estimation device according to the second embodiment.
  • FIG. 18 is a diagram illustrating a flow of a cycle determination process for an input pulse train in the cycle estimation device shown in FIG.
  • FIG. 19 is a diagram for explaining the processing content of the preliminary cycle analysis.
  • FIG. 20 is a diagram showing an example of the periodic pattern.
  • FIG. 21 is a diagram for explaining the processing contents of the periodic communication type estimation method.
  • FIG. 22 is a diagram illustrating communication that is a detection target.
  • FIG. 23 is a diagram illustrating communication that is a detection target.
  • FIG. 24 is a diagram for explaining the processing contents of the aperiodic communication type estimation method.
  • FIG. 25 is a diagram illustrating communication that is a detection target.
  • FIG. 26 is a diagram for explaining the processing content of the mixed estimation method.
  • FIG. 27 is a diagram showing an example of the detection result by the cycle estimation device shown in FIG.
  • FIG. 28 is a flowchart showing an example of the processing procedure of the cycle estimation processing during the preliminary cycle analysis according to the second embodiment.
  • FIG. 29 is a flowchart showing an example of the processing procedure of the period estimation processing at the time of estimation in the second embodiment.
  • FIG. 30 is a diagram illustrating an example of a computer that executes a
  • pulse train signal period estimation device a pulse train signal period estimation method, and a pulse train signal period estimation program disclosed in the present application will be described in detail with reference to the drawings. Note that the pulse train signal period estimation device, the pulse train signal period estimation method, and the pulse train signal period estimation program according to the present application are not limited by this embodiment.
  • FIG. 1 is a block diagram showing an example of the configuration of the period estimation apparatus according to the first embodiment.
  • the cycle estimation device 10 extracts a candidate cycle that is a target of cycle determination from the input pulse train.
  • the cycle estimating apparatus 10 determines whether or not the candidate cycle exists as an actual cycle by using a part of the extracted candidate cycles, and when it determines that the candidate cycle does not exist as the actual cycle, interrupts the cycle determination for the candidate cycle. To do.
  • the period estimation device 10 performs a period determination on a candidate period determined to exist as an actual period, and also generates a pseudo period pulse train based on the candidate period.
  • the period estimation device 10 adjusts the pulse position of the pseudo period pulse train based on the difference value between the generated pseudo period pulse train and the input pulse train, and detects the period pulse train according to the result of the period determination and adjustment.
  • the period estimation device 10 separates the detected periodic pulse train from the input pulse train, and inputs the separated pulse train as a new input pulse train to a candidate period extraction unit that extracts a candidate period.
  • the period estimation apparatus 10 determines whether to continue the period analysis based on one or more of the parameters regarding the extraction of the candidate period and the new input pulse train. As a result, the cycle estimation apparatus 10 can discover a change in the communication cycle due to a change in the settings of the devices in the network environment and a device having a different cycle from a plurality of equivalent devices.
  • the period estimation device 10 includes a candidate period extraction unit 11, a filter unit 12, a period detection unit 13, a period pulse separation unit 14, and a period analysis continuation determination unit 15.
  • the cycle estimation device 10 also has a storage unit (not shown).
  • the storage unit is realized by, for example, a RAM (Random Access Memory), a semiconductor memory device such as a flash memory, or a storage device such as a hard disk or an optical disk.
  • the period estimation apparatus 10 may have various functional units of a known computer other than the functional units shown in FIG. 1, such as various input devices and audio output devices.
  • the input pulse train signal is input to the period estimation device 10.
  • the period estimation device 10 acquires the communication log as the input pulse train signal and acquires the time series data of the communication occurrence time, for example. May be generated.
  • the time-series data is data in which a signal representing the occurrence of communication is represented by pulses, and is also expressed as a time-series pulse train or an input pulse train.
  • the time-series data is binary data of “1” if there is communication at a certain time and “0” if there is no communication.
  • FIG. 2 is a diagram showing an example of generation of time series data.
  • the communication log 20 includes a Pcap file and a traffic log.
  • the cycle estimation device 10 generates, for example, time series data for each combination of (srcip, dstip) shown in the set A1 of the communication log 20.
  • the cycle estimation apparatus 10 can generate time-series data that can extract a cycle more accurately by combining a protocol number, a port number, and a command of each protocol.
  • the cycle estimation device 10 may perform time series for each combination of (srcip, dstip, tcp/udp, dst port) shown in the set A2 of the communication log 20 and for each combination of (srcip, dstip, cmd) shown in the set A3. Data may be generated. At this time, the extraction accuracy is set A3>set A2>set A1.
  • the cycle estimation device 10 generates a time stamp 21 from the sets A1, A2 and A3.
  • the cycle estimation device 10 generates time series data (time series pulse train) 22 in which the presence or absence of communication is arranged in time series based on the generated time stamp 21.
  • the period estimation device 10 can use the generated time series data 22 as an input pulse train signal.
  • the candidate cycle extraction unit 11, the filter unit 12, the cycle detection unit 13, the cycle pulse separation unit 14, and the cycle analysis continuation determination unit 15 are internally stored by, for example, a CPU (Central Processing Unit) or MPU (Micro Processing Unit). It is realized by executing a program stored in the device using a RAM as a work area.
  • the candidate period extraction unit 11, the filter unit 12, the period detection unit 13, the period pulse separation unit 14, and the period analysis continuation determination unit 15 are, for example, ASIC (Application Specific Integrated Circuit) and FPGA (Field Programmable Gate Array). It may be realized by an integrated circuit.
  • the configurations of the candidate period extraction unit 11, the filter unit 12, the period detection unit 13, the period pulse separation unit 14, and the period analysis continuation determination unit 15 are not limited to the configurations shown in FIG. Any other configuration may be used as long as it is.
  • the candidate cycle extraction unit 11 extracts a candidate cycle that is a target of cycle determination from the input time series data or the generated time series data.
  • the candidate cycle extraction unit 11 generates a cumulative difference histogram of the set difference value c.
  • the following equation (1) is used to calculate the PRI.
  • the candidate period extraction unit 11 creates a histogram of the number of appearances of the PRI based on the calculated PRI. That is, the candidate cycle extraction unit 11 converts the time series data into a difference histogram.
  • Sin indicates the sequence of the generation time of each pulse
  • DSin indicates the PRI
  • N indicates the total number of pulses in the observation period
  • c indicates the step difference value.
  • FIG. 3 is a diagram showing an example of generation of a cumulative difference histogram.
  • the time series data 22b is the same data as the time series data 22a.
  • the candidate cycle extraction unit 11 clusters the generated cumulative difference histogram.
  • the candidate period extraction unit 11 performs clustering in order to correct jitter, which is a slight deviation in PRI due to the packet data acquisition environment in the network. Note that the jitter tolerance (permissible jitter rate) Jc% at the time of clustering is set in advance.
  • FIG. 4 is a diagram showing an example of clustering of cumulative difference histograms.
  • the PRI varies due to the jitter, and the number of appearances does not exceed the threshold, so that the candidate cycle cannot be extracted. Therefore, if the histogram 25 is clustered at the jitter tolerance Jc%, that is, the scattered PRIs are aggregated into a likely value, and the histogram 26 is obtained, the number of appearances exceeds the threshold value and jitter exists. Also, the candidate cycle can be extracted.
  • FIG. 5 is a diagram showing a detailed example of clustering of the cumulative difference histogram.
  • DSin indicates a column in which the calculated PRI values are arranged
  • DSin′ indicates a column in which DSin is arranged in ascending order
  • NE indicates the number of elements of DSin′
  • j indicates the element number (0 of DSin′. ⁇ j ⁇ NE).
  • Ci represents the i-th cluster
  • ci represents the center position of the i-th cluster
  • d represents the distance between the extracted PRI and ci
  • Jc represents the jitter tolerance
  • x represents The PRI value extracted first is shown
  • y is the PRI value extracted second.
  • the candidate cycle extraction unit 11 first sorts DSin in ascending order to obtain DSin'.
  • the candidate period extraction unit 11 extracts DSin'(j) and generates Ci (step B1).
  • the candidate period extraction unit 11 extracts DSin'(j+1) and calculates provisional ci and d (step B2).
  • the candidate cycle extraction unit 11 determines whether or not d is equal to or less than the jitter allowable range (c1 ⁇ Jc).
  • the candidate period extraction unit 11 determines that d is equal to or less than the jitter allowable range (c1 ⁇ Jc) (step B3-1)
  • the candidate period extraction unit 11 determines that d exceeds the allowable range of jitter (c1 ⁇ Jc) (step B3-2), it sets a new cluster Ci+1. That is, the cluster Ci includes x, and the new cluster Ci+1 includes y. In this way, the candidate period extraction unit 11 performs clustering by sequentially extracting PRI values from DSin' and assigning them to existing or new clusters.
  • the candidate cycle extraction unit 11 applies a threshold to the histogram regenerated through clustering to extract candidate cycles.
  • the candidate cycle extraction unit 11 outputs the extracted candidate cycle to the filter unit 12.
  • the threshold value is set such that when a pulse train having a certain PRI value as a cycle exists for ⁇ % or more of the entire observation period T, the PRI becomes a candidate cycle.
  • the threshold value is calculated by the following equation (2).
  • T represents a pulse observation period
  • represents a coefficient for determining a threshold.
  • FIG. 6 is a diagram showing an example of extraction of candidate periods.
  • the filter unit 12 determines whether or not the input candidate cycle exists as a real cycle by using a random noise filter and a partial sequential search. It should be noted that the filter unit 12 performs the cycle determination in order from the candidate cycle having the smallest value among the candidate cycles extracted by the candidate cycle extraction unit 11. The filter unit 12 first executes a random noise filter. That is, the filter unit 12 calculates the theoretical maximum spectrum value when the PRI conversion of the input candidate cycle is performed and the random noise threshold value calculated at the time of the PRI conversion.
  • the filter unit 12 suspends the analysis on the difference value c and shifts to the next difference value c+1. That is, the filter unit 12 determines that the candidate cycle does not exist as the actual cycle when the following expression (3) is satisfied.
  • T represents the observation period of the input pulse train
  • represents the value of the candidate period
  • represents a constant
  • Jc represents the allowable jitter rate.
  • the filter unit 12 performs a partial sequential search when the calculated theoretical maximum spectrum value is equal to or larger than the random noise threshold value, that is, when passing through the random noise filter.
  • the pseudo period pulse train q(t) is a pulse train having a value ⁇ of a candidate period having a jitter range.
  • the time-series data g(t) is represented by the following equations (4) and (5), and the pseudo period pulse train q(t) is represented by the following equations (6) and (7).
  • t indicates the time
  • N indicates the total number of pulses in the observation period
  • indicates the Dirac delta function
  • t n indicates the pulse generation time
  • T indicates the pulse observation period
  • p indicates the first time.
  • the position of the pulse (initial pulse) is shown, a is a constant, ⁇ is a candidate period, and Jc is a jitter tolerance.
  • the filter unit 12 executes a partial sequential search for performing a partial cycle determination before performing the PRI conversion in order to reduce the calculation time.
  • the filter unit 12 performs a sequential search using up to the Xth of the pseudo periodic pulse train q(t), and the correlation value D between the time series data g(t) and the pseudo periodic pulse train q(t) is X or more.
  • the value ⁇ of the candidate cycle is output to the cycle detector 13.
  • the correlation value D is the number of overlapping pulses of the time series data g(t) and the pseudo period pulse train q(t), and is represented by the following formula (8).
  • X is a constant representing the range of the partial sequential search
  • tx represents the generation time of the Xth pulse.
  • FIG. 7 is a diagram showing an example of the partial sequential search.
  • the filter unit 12 generates the pseudo period pulse train q(t) shown in the graph 31 with respect to the time series data g(t) shown in the graph 30. That is, the filter unit 12 generates a pseudo period pulse train q(t) having a total pulse number X with a pulse width of 2Jc ⁇ , where p is an initial pulse position, a value ⁇ of a candidate period is a pulse interval, and Jc is an allowable jitter ratio. To do. Since the pseudo-periodic pulse train q(t) targets the correlation calculation up to the Xth pulse, all the values after the Xth pulse are 0.
  • the filter unit 12 changes the time t from 0 to the observation period T of the time-series data g(t) (up to tx) and the pseudo-period pulse train q(t) and the time-series data.
  • the number of overlapping pulses (correlation value D) with g(t) is counted.
  • the filter unit 12 sets the count of the number of overlapping pulses to “1” when a plurality of pulses of the time-series data g(t) overlaps one pulse of the pseudo period pulse train q(t).
  • the filter unit 12 determines that there is an actual period, and outputs the value ⁇ of the candidate period to the period detection unit 13.
  • the filter unit 12 changes the value of the position p of the first pulse and counts the number of overlapping pulses again.
  • the filter unit 12 determines that the candidate cycle does not exist as an actual cycle when the number of overlapping pulses is smaller than the total pulse number X for all the values of the positions p of all the first pulses given.
  • the filter unit 12 suspends the analysis of the difference value c and shifts to the analysis of the next difference value c+1.
  • the period detection unit 13 performs the period determination by PRI conversion on the value ⁇ of the candidate period and corrects the accumulated jitter. That is, the cycle detection unit 13 performs PRI conversion and sequential search on the value ⁇ of the candidate cycle.
  • the cycle detection unit 13 calculates a spectrum and a threshold value by PRI conversion using the following equations (9) and (10).
  • D( ⁇ ) represents the spectrum of the value ⁇ of the candidate period
  • i represents the imaginary number
  • t n represents the time when the n-th pulse occurs
  • t m represents m.
  • the occurrence time of the th pulse is indicated
  • Th( ⁇ ) indicates the threshold value of the value ⁇ of the candidate period
  • ⁇ , ⁇ , ⁇ indicate constants
  • C( ⁇ ) indicates the autocorrelation value
  • N indicates the observation period.
  • the total number of pulses is shown.
  • the influence of the pulse loss is reduced by adding the phase term e ⁇ (2 ⁇ it/ ⁇ ) to the autocorrelation function.
  • the cycle detection unit 13 suspends the PRI conversion and shifts to the analysis of the next difference value c+1.
  • Dn represents the spectrum of PRI conversion when the analysis is advanced to the nth pulse
  • T represents the observation period of the input pulse train
  • TOAn represents the appearance time of the nth pulse
  • represents the value of the candidate cycle
  • Th represents the threshold value for cycle determination.
  • FIG. 8 is a diagram showing an example of PRI conversion.
  • a graph 34 can be obtained by performing PRI conversion on the time series data g(t) shown in the graph 33 of FIG. In the graph 34, for example, since the candidate cycles 35 and 36 exceed the threshold value, it can be determined that there is a cycle.
  • the cycle detection unit 13 also corrects accumulated jitter when performing a sequential search on the value ⁇ of the candidate cycle determined to have a cycle by the PRI conversion. That is, the cycle detection unit 13 extracts the correct cycle by suppressing the influence of the jitter due to the long pulse observation period and the influence of the noise pulse that cannot be dealt with by the PRI conversion.
  • the period detection unit 13 generates a pseudo period pulse train q(t) based on the value ⁇ of the candidate period.
  • the period detection unit 13 corrects the accumulated jitter on the generated pseudo period pulse train q(t) and executes a sequential search.
  • the period detection unit 13 calculates a correlation value D between the pseudo period pulse train q(t) and the time-series data g(t), and compares the correlation value D with the threshold th so that the candidate period is included in the time-series data g(t). It is determined whether the value ⁇ of exists.
  • the cycle detection unit 13 outputs the pseudo periodic pulse train q(t) to the periodic pulse separation unit 14 as a detected periodic pulse train.
  • the threshold th is shown in the following equation (12).
  • s represents a constant.
  • the correlation value D is the number of overlapping pulses of the time series data g(t) and the pseudo period pulse train q(t), and is represented by the following formula (13).
  • FIG. 9 is a diagram showing an example of the sequential search.
  • the period detection unit 13 generates the pseudo period pulse train q(t) shown in the graph 37 for the time series data g(t) shown in the graph 30. That is, the period detection unit 13 generates a pseudo period pulse train q(t) having a pulse width of 2Jc ⁇ , where the initial pulse position is p, the pulse interval is the value ⁇ of the candidate period, and the allowable jitter ratio is Jc.
  • the cycle detection unit 13 changes the time t from 0 to the observation period T of the time series data g(t), and the pseudo cycle pulse train q(t) and the time series data g(t). ) And are overlapped, the number of overlapping pulses is counted.
  • the cycle detection unit 13 sets the overlapping pulse count to “1”.
  • the cycle detection unit 13 uses the pseudo-period pulse train q(t) based on the value ⁇ of the candidate period as the detected periodic pulse train and the periodic pulse separation unit. It outputs to 14.
  • the cycle detecting unit 13 changes the value of the position p of the first pulse (initial pulse) and counts the number of overlapping pulses again.
  • the cycle detection unit 13 determines that the value ⁇ of the candidate cycle does not exist as the actual cycle when the number of overlapping pulses becomes smaller than the threshold th for all the values of the positions p of all the first pulses given.
  • the cycle detection unit 13 proceeds to the processing of the remaining value ⁇ of the candidate cycle. Further, when it is determined that not all of the detection target candidate cycle values ⁇ exist as real cycles, the process shifts to the analysis of the next difference value c+1.
  • Jitter accumulates as the pulse observation period becomes longer, and the possibility of exceeding the allowable jitter range increases.
  • the jitter tends to be biased toward the delay side, and the influence of the accumulated jitter tends to be large. Therefore, the cycle detection unit 13 performs the jitter correction for each pulse.
  • FIGS. 10 and 11 are diagrams showing an example of pulse position correction in a sequential search.
  • the graph 39 of FIG. 10 in the existing sequential search, as the jitter accumulates, the pulse position of the time series data g(t) exceeds the allowable jitter range.
  • the cumulative jitter is dealt with by correcting the pulse position of the pseudo period pulse train q(t) according to the jitter amount of one pulse.
  • the second pulse is shifted (translated) by the jitter J1 of the first pulse.
  • the third pulse is shifted by a value obtained by adding the jitter J1 of the second pulse to the jitter J1.
  • the cycle detection unit 13 determines the position of the overlapping pulse of the time-series data g(t) from the overlapping pulse of the pseudo-period pulse train q(t).
  • a difference value ⁇ n′ obtained by subtracting the center position is calculated.
  • the cycle detection unit 13 calculates the movement value ⁇ n based on the calculated difference value ⁇ n′ and the movement value ⁇ n ⁇ 1 that is the difference value immediately before the difference value ⁇ n′.
  • the period detection unit 13 moves the pulse position next to the overlapping pulse of the immediately preceding pseudo period pulse train q(t) in parallel by the movement value ⁇ n.
  • the cycle detection unit 13 further increases the jitter amount when one pulse of the pseudo-period pulse train q(t) matches a plurality of pulses of the time series data g(t).
  • the pulse having the smaller number is regarded as the periodic pulse, and the pulse position of the pseudo periodic pulse train q(t) is corrected.
  • the cycle detecting unit 13 determines that when one pulse of the pseudo period pulse train q(t) has no matching pulse of the time series data g(t), the pseudo period pulse train q(t). ) Pulse position correction is not performed.
  • FIG. 12 is a diagram showing an example of cumulative jitter.
  • the graph 43 shown in FIG. 12 is an example of the cumulative jitter observed in the communication of the network of a certain building.
  • the graph 43 is an example in the case where the analysis target protocol is bacnet and the analysis target data is one pattern for one day of Pcap of the network.
  • the deviation of the pseudo period pulse train q(t) increases due to the influence of the accumulated jitter as the observation period becomes longer.
  • it is determined that there is no cycle in the existing sequential search but it can be determined that there is a cycle in the sequential search of the present embodiment.
  • the periodic pulse train q(t) which is the periodic pulse train detected by the period detector 13
  • the time-series data g(t) matches the pseudo periodic pulse train q(t).
  • the pulse is separated from the time series data g(t) as periodic communication.
  • the periodic pulse separation unit 14 outputs the separated periodic communication and the time-series data g(t) after the periodic communication separation to the periodic analysis continuation determination unit 15. Further, the periodic pulse separation unit 14 outputs the time-series data g(t) after the periodic communication separation to the candidate period extraction unit 11.
  • FIG. 13 is a diagram showing an example of separation of periodic communication.
  • the periodic pulse separation unit 14 separates the periodic communication 45 that matches the pseudo periodic pulse train q(t) from the time series data 44.
  • the time series data 46 indicates the time series data after the periodic communication 45 is separated from the time series data 44.
  • the periodic analysis continuation determination unit 15 determines whether or not to continue the analysis based on the determination condition.
  • the determination condition when ending the analysis is that the value of the difference value c reaches the upper limit value c limit , the period determination for all candidate periods is completed, and the time-series data g after the periodic communication separation. This is a case where one or more conditions are satisfied when the number of pulses in (t) is equal to or less than the threshold value.
  • the periodic analysis continuation determination unit 15 determines to continue the analysis when these conditions are not satisfied.
  • the step difference value c is an example of a parameter related to extraction of a candidate cycle
  • the time series data g(t) after the periodic communication separation is an example of a new input pulse train.
  • the cycle analysis continuation determination unit 15 determines to continue the analysis, it instructs the candidate period extraction unit 11 to extract the candidate period using the time-series data g(t) after the periodic communication separation. ..
  • the periodic analysis continuation determination unit 15 outputs the periodic communication as the estimation result and ends the process.
  • FIG. 14 is a diagram showing an example of various experimental data.
  • the analysis target protocol is bacnet
  • the analysis target data is 5 patterns of experimental data 50 to 54.
  • Experimental data are shown.
  • the experimental data 50 shows data of a single cycle
  • the experimental data 51 shows data obtained by adding noise to a single cycle
  • the experimental data 52 shows data of a plurality of cycles.
  • the experimental data 53 shows a stagger pulse, that is, data in which a plurality of pulses exist in one cycle
  • the experimental data 54 shows random data.
  • FIG. 15 is a diagram showing an example of reduction in calculation time.
  • the calculation result 55 of FIG. 15 shows the calculation result when the existing method is used.
  • the calculation result 56 shows the calculation result of this embodiment.
  • erroneous detection of the cycle occurs when noise is added to a single cycle of the experimental data 51.
  • the calculation result 56 no erroneous detection of the cycle has occurred. Further, comparing the calculation result 55 and the calculation result 56, it can be seen that the calculation time is reduced as the noise is present.
  • FIG. 16 is a flowchart showing an example of the period estimation process in the first embodiment.
  • the candidate period extraction unit 11 receives input of time-series data as an input pulse train signal (step S1).
  • the candidate period extraction unit 11 generates a cumulative difference histogram of the set difference value c (step S3).
  • the candidate period extraction unit 11 performs clustering on the generated cumulative difference histogram (step S4).
  • the candidate cycle extraction unit 11 applies a threshold to the histogram regenerated through clustering to extract candidate cycles (step S5).
  • the candidate period extraction unit 11 determines whether there is a candidate period that can be extracted (step S6).
  • the candidate cycle extraction unit 11 increments the difference value c (step S15) and returns to step S2.
  • the candidate cycle extraction unit 11 outputs the extracted candidate cycle to the filter unit 12 when determining that there is a candidate cycle that can be extracted (step S6: Yes).
  • the filter unit 12 executes a random noise filter (step S7).
  • the filter unit 12 determines whether or not the random noise threshold value is larger than the theoretical maximum spectrum value based on the execution result of the random noise filter (step S8).
  • the filter unit 12 determines that the random noise threshold is larger (step S8: Yes)
  • the difference value c is incremented (step S15), and the process returns to step S2.
  • the filter unit 12 executes a partial sequential search (step S9).
  • the filter unit 12 determines whether or not there is a real cycle based on the partial sequential search (step S10). When determining that there is no actual cycle (step S10: No), the filter unit 12 increments the difference value c (step S15) and returns to step S2. On the other hand, when determining that there is an actual cycle (step S10: Yes), the filter unit 12 outputs the value ⁇ of the candidate cycle to the cycle detection unit 13.
  • the cycle detection unit 13 executes PRI conversion on the value ⁇ of the candidate cycle (step S11).
  • the period detection unit 13 determines whether or not to interrupt the PRI conversion based on Expression (11) during the execution of the PRI conversion (step S12).
  • the cycle detection unit 13 increments the difference value c (step S15) and returns to step S2.
  • the cycle detection unit 13 determines not to interrupt the PRI conversion (step S12: No)
  • the period detection unit 13 generates a pseudo period pulse train q(t) based on the value ⁇ of the candidate period for the value ⁇ of the candidate period that is determined by the PRI conversion to have a period.
  • the cycle detection unit 13 corrects the accumulated jitter on the generated pseudo cycle pulse train q(t) and executes a sequential search (step S13).
  • the cycle detection unit 13 determines whether or not a cycle pulse train is detected as a result of the sequential search (step S14). When it is determined that the periodic pulse train is not detected (step S14: No), the cycle detection unit 13 increments the difference value c (step S15) and returns to step S2. When it is determined that the periodic pulse train is detected (step S14: Yes), the period detection unit 13 outputs the detected periodic pulse train to the periodic pulse separation unit 14.
  • the periodic pulse train q(t) which is the periodic pulse train detected by the period detector 13
  • the time-series data g(t) matches the pseudo periodic pulse train q(t).
  • the pulse is separated from the time series data g(t) as periodic communication (step S16).
  • the periodic pulse separation unit 14 outputs the separated periodic communication and the time-series data g(t) after the periodic communication separation to the periodic analysis continuation determination unit 15. Further, the periodic pulse separation unit 14 outputs the time-series data g(t) after the periodic communication separation to the candidate period extraction unit 11.
  • the periodic analysis continuation determination unit 15 determines whether or not to continue the analysis based on the determination condition. Is determined (step S17). When the cycle analysis continuation determination unit 15 determines to continue the analysis (step S17: Yes), the process returns to step S2. On the other hand, when the cycle analysis continuation determination unit 15 determines not to continue the analysis (step S17: No), the cycle communication is output as the estimation result, and the cycle estimation process ends. As a result, the cycle estimation apparatus 10 can discover a change in the communication cycle due to a change in the settings of the devices in the network environment, or a device having a different cycle from a plurality of equivalent devices. Further, since the cycle estimation device 10 can discover a change in the communication cycle or a device having a different cycle, it is possible to specify an unintended device setting.
  • the candidate period extraction unit 11 extracts the candidate period that is the target of the period determination from the input pulse train. Further, the cycle estimation device 10 determines whether or not the candidate cycle exists as an actual cycle by using a part of the extracted candidate cycles, and when it is determined that the candidate cycle does not exist as the actual cycle, the cycle estimation for the candidate cycle is performed. To suspend. Further, the period estimation apparatus 10 performs a period determination on a candidate period determined to exist as an actual period, and also generates a pseudo period pulse train based on the candidate period.
  • the period estimation device 10 adjusts the pulse position of the pseudo period pulse train based on the difference value between the generated pseudo period pulse train and the input pulse train, and detects the period pulse train according to the result of the period determination and adjustment. Further, the period estimation apparatus 10 separates the detected periodic pulse train from the input pulse train, and inputs the separated pulse train to the candidate period extraction unit 11 as a new input pulse train. In addition, the period estimation apparatus 10 determines whether to continue the period analysis based on one or more of the parameters related to the extraction of the candidate period and the new input pulse train. As a result, the cycle estimation apparatus 10 can discover a change in the communication cycle due to a change in the setting of the device in the network environment, or a device having a different cycle from a plurality of equivalent devices.
  • the period estimation device 10 calculates each pulse interval of the input pulse train based on a specific step difference to generate a histogram, and in the generated histogram, extracts a pulse interval that appears more than a predetermined threshold number of times as a candidate period. .. As a result, the period estimation apparatus 10 can extract the candidate period.
  • the cycle estimation device 10 determines that the candidate cycle does not exist as an actual cycle when the above expression (3) is satisfied. As a result, the period estimation apparatus 10 can reduce the calculation time for PRI conversion and the like.
  • the period estimation apparatus 10 sets the initial pulse position as p, the pulse interval as the value ⁇ of the candidate period, the allowable jitter rate as Jc, and the pseudo period pulse train q(t) of the total pulse number X with the pulse width of 2Jc ⁇ . To generate. Further, when the input pulse train is g(t), the period estimation device 10 changes the time t from 0 to the observation period T of the input pulse train g(t), and the pseudo period pulse train q(t) is obtained. The number of overlapping pulses with the input pulse train g(t) is counted. When the number of overlapping pulses is equal to or more than the total number of pulses X, the period estimation device 10 outputs the value ⁇ of the candidate period to the period detection unit 13.
  • the period estimating apparatus 10 changes the value of p and counts the number of overlapping pulses again, and the number of overlapping pulses is changed for all the given values of p. If it is smaller than the total number of pulses X, it is determined that the candidate cycle does not exist as an actual cycle. As a result, the period estimation apparatus 10 can reduce the calculation time for PRI conversion and the like.
  • the cycle estimation device 10 suspends the PRI conversion when the above expression (11) is satisfied during execution of the PRI conversion in the cycle determination. As a result, the period estimation apparatus 10 can reduce the calculation time for PRI conversion and the like.
  • the period estimation apparatus 10 sets the initial pulse position as p, the pulse interval as the value ⁇ of the candidate period input from the filter unit 12, the permissible jitter ratio as Jc, and the pseudo period pulse train q(t as the pulse width is 2Jc ⁇ . ) Is generated. Further, when the input pulse train is g(t), the period estimation device 10 changes the time t from 0 to the observation period T of the input pulse train g(t), and the pseudo period pulse train q(t) is obtained. When the input pulse train g(t) overlaps, the number of overlapping pulses is counted.
  • the period estimation device 10 subtracts the center position of the overlapping pulse of the pseudo period pulse train q(t) from the position of the overlapping pulse of the input pulse train g(t) for the overlapping pulse together with the counting of the number of overlapping pulses.
  • the difference value ⁇ n′ is calculated.
  • the period estimation apparatus 10 calculates the movement value ⁇ n based on the calculated difference value ⁇ n′ and the movement value ⁇ n ⁇ 1 immediately before the difference value ⁇ n′, and immediately before the pseudo period pulse train q(t ), the next pulse position of the overlapping pulse is moved in parallel by the movement value ⁇ n.
  • the period estimating apparatus 10 detects the periodic pulse train based on the value ⁇ of the input candidate period, and the final number of overlapping pulses is the predetermined value. If it is smaller, the value of p is changed and the number of overlapping pulses is counted again. Further, the cycle estimating apparatus 10 determines that the value ⁇ of the candidate cycle does not exist as the actual cycle when the number of overlapping pulses becomes smaller than the predetermined value for all the given values of p. As a result, the period estimation apparatus 10 can detect the periodic pulse train even when the jitter is accumulated.
  • FIG. 17 is a block diagram showing an example of the configuration of the cycle estimation device according to the second embodiment.
  • the period estimation device 210 analyzes the period pattern of the input pulse train, registers the type of the period pattern in the period pattern model in association with the input pulse train. Then, the period estimation apparatus 210 classifies the types of period patterns of the subsequent input pulse trains using the period pattern model. Then, the period estimation device 210 analyzes the input pulse train by using the period estimation method limited to the optimum process depending on the type of the classified period pattern. As a result, the cycle estimation apparatus 10 reduces the calculation time and realizes detection with the optimum detection granularity.
  • the cycle estimation apparatus 210 includes an advance cycle analysis section 211 (analysis section), a cycle pattern model 212, in addition to the estimation section 10A having the same configuration as the cycle estimation apparatus 10 according to the first embodiment. It further includes a classification unit 213 and a setting unit 214.
  • the period estimation device 210 also has a storage unit (not shown).
  • the storage unit is realized by, for example, a semiconductor memory device such as a flash memory or a storage device such as a hard disk or an optical disk.
  • the period estimation device 210 may have various functional units of a known computer other than the functional units shown in FIG. 17, such as various input devices and audio output devices.
  • the advance period analysis unit 211 performs advance analysis of the period pattern of the input pulse train.
  • the pre-period analysis unit 211 first performs, as pre-analysis processing, on the input pulse train, the process by the candidate period extraction unit 11, the process by the filter unit 12, and the process by the period detection unit 13 described in the first embodiment.
  • the estimation unit 10A is caused to perform the processing by the periodic pulse separation unit 14 and the processing by the periodic analysis continuation determination unit 15. That is, the preliminary cycle analysis unit 211 causes the estimation unit 10A to perform the processes of steps S1 to S17 shown in FIG.
  • the prior cycle analysis unit 211 analyzes the type of the periodic pattern of the input pulse train based on the processing result by the estimation unit 10A, and registers the analyzed type of the periodic pattern in the periodic pattern model 212 in association with the input pulse train. To do.
  • the prior cycle analysis unit 211 performs prior cycle analysis processing for a fixed period or periodically, and also performs prior cycle analysis on an input pulse train that could not be classified by the classification unit 213 (described later).
  • the periodic pattern model 212 registers the types of periodic patterns analyzed by the pre-period analysis unit 211 in association with the input pulse train. Then, the periodic pattern model 212 learns the correspondence between the type of the periodic pattern analyzed by the pre-period analysis unit 211 and the input pulse train, and when the input pulse train is input, the type of the periodic pattern corresponding to this input pulse train. Is output.
  • the classification unit 213 uses the periodic pattern model 212 to classify the type of the periodic pattern of the next estimation target input pulse train that the period estimation apparatus 210 has received as input.
  • the classification unit 213 inputs the next estimation target input pulse train into the periodic pattern model 212 and receives the output of the periodic pattern model 212 to classify the types of the periodic patterns of the next estimation target input pulse trains.
  • the setting unit 214 sets the period estimation method for the next input pulse train to be estimated according to the type of period pattern classified by the classifying unit 213.
  • the setting unit 214 sets the period estimation method in which the process by the estimation unit 10A is partially limited depending on the type of the periodic pattern classified by the classification unit 213.
  • FIG. 18 is a diagram illustrating a flow of a cycle determination process for an input pulse train in cycle estimation apparatus 210 shown in FIG.
  • the period estimation device 210 performs a preliminary period analysis. Specifically, when the period estimation device 210 receives an input of an input pulse signal that is time-series data (step S101), the preliminary period analysis unit 211 causes the estimation unit 10A to perform a period determination process on the input pulse train. , Pre-period analysis for analyzing the periodic pattern of the input pulse train is performed (step S102).
  • FIG. 19 is a diagram for explaining the processing content of the preliminary cycle analysis.
  • the estimation unit 10A receives the input time series data D0 (see (1) in FIG. 19) at the time of the preliminary period analysis, as in the period estimation process according to the first embodiment shown in FIG. ), the candidate period extraction unit 11 extracts the candidate period ((2) in FIG. 19 and step S102-1), the filter unit 12 performs the noise filter (step S102-2), and the period detection unit 13 detects the period (step S102-1). S102-3), periodic communication separation by the periodic pulse separation unit 14 ((5) in FIG. 19 and step S102-4), and continuation determination processing by the periodic analysis continuation determination unit 15 are performed.
  • the filter unit 12 applies the filters F1 and F2 to perform noise filtering (see (3) in FIG. 19).
  • the period detection unit 13 performs early interruption determination by PRI conversion and jitter correction sequential search (see (4) in FIG. 19). By performing the processing illustrated in FIG. 19, the estimation unit 10A detects the presence or absence of a communication cycle and detects the extraction of the cycle value.
  • FIG. 20 is a diagram showing an example of the periodic pattern.
  • the pre-period analysis unit 211 determines that the periodic pattern of the input pulse train is periodic communication type (see (1) of FIG. 18 and (1) of FIG. 20) or aperiodic communication type (see FIG. 18 (2) and (2) of FIG. 20) and which are mixed types including periodic communication and aperiodic communication (see (3) of FIG. 18 and (3) of FIG. 20) are analyzed. ..
  • the pre-period analysis unit 211 registers the type of the analyzed periodic pattern in the periodic pattern model 212 in association with the input pulse train.
  • the periodic pattern model 212 learns the correspondence relationship between the type of periodic pattern analyzed during the preliminary period analysis and the input pulse train.
  • the cycle estimation device 210 detects a communication that deviates from the normal cycle pattern learned during the preliminary cycle analysis.
  • the cycle estimating apparatus 210 determines that the classifying unit 213 uses the cycle pattern for the input pulse train of the next estimation target that the cycle estimating apparatus 210 receives as an input (step S110).
  • the cycle pattern is classified using the model 212 (step S111), and the setting unit 214 sets the cycle estimation method according to the classification result (steps S120 to S140).
  • the setting unit 120 sets the periodic communication type estimation method when the periodic pattern of the next input pulse train is the periodic communication type (step S120). Moreover, the setting part 120 sets the aperiodic communication type estimation method, when the periodic pattern of the next input pulse train is aperiodic communication type (step S130). Further, when the periodic pattern of the next input pulse train is the mixed type including the periodic communication pattern and the aperiodic communication pattern, the setting unit 120 sets the mixed type estimation method (step S140). ..
  • Period communication type estimation method Each estimation method set by the setting unit 214 will be described. First, the periodic communication type estimation method will be described with reference to FIG. FIG. 21 is a diagram for explaining the processing contents of the periodic communication type estimation method. Compared with the processing shown in FIG. 16, the periodic communication type estimation method is a period estimation method limited to the detection processing of the periodic pulse train using the sequential search by the period detection unit 13 and the processing by the periodic pulse separation unit 14.
  • the time series data D1 (see (1) in FIG. 21) which is the next input pulse train is a periodic pattern
  • detection of the periodic pulse train using the sequential search by the period detection unit 13 is performed. Detection can be performed by the periodic communication type estimation method limited to the processing ((2) in FIG. 21 and step S122) and the periodic communication separation by the periodic pulse separation unit 14 ((3) in FIG. 21 and step S123). ..
  • the period estimation device 210 can detect out-of-cycle communication (see (1) in FIG. 22) and loss of periodic communication (see (1) in FIG. 23).
  • Out-of-cycle communication is considered to be due to the insertion of attack packets into the regular data acquisition communication.
  • the periodic communication loss is considered to be caused by the occurrence of packet unreachable due to ARP (Address Resolution Protocol) spoofing and system down attacks.
  • ARP Address Resolution Protocol
  • the processing by the candidate period extraction unit 11, the processing by the filter unit 12, and the PRI conversion processing by the period detection unit 13 are omitted, so that compared with the processing shown in FIG. High-speed processing becomes possible.
  • FIG. 24 is a diagram for explaining the processing contents of the aperiodic communication type estimation method.
  • the aperiodic communication type estimation method includes a processing by the candidate cycle extraction unit 11, a detection processing of a periodic pulse train using a partial sequential search by the cycle detection unit 13, and a periodic pulse separation unit. It is a period estimation method limited to the process by 14.
  • the time-series data D2 (see (1) in FIG. 24), which is the next input pulse train, is an aperiodic pattern, so the SDIF method ((2 in FIG. ) Reference) (step S132 in FIG. 21), the cycle detection unit 13 detects a periodic pulse train using a partial sequential search ((3) in FIG. 24 and step S133), and the periodic pulse.
  • the detection can be performed by the aperiodic communication type estimation method limited to the periodic communication separation by the separation unit 14 ((4) in FIG. 24 and step S134).
  • FIG. 25 is a diagram explaining the communication to be detected.
  • the period estimation device 210 can detect the appearance of new periodic communication. The appearance of such new periodic communication is considered to be due to the occurrence of malicious transmission of control commands.
  • the processing by the filter unit 12 and the PRI conversion processing in the cycle detection unit 13 are omitted, so that high-speed processing becomes possible compared to the processing shown in FIG.
  • FIG. 26 is a diagram for explaining the processing content of the mixed estimation method.
  • the mixed type estimation method performs the same processing as the processing shown in FIG. That is, for the input time-series data D3 (see (1) of FIG. 26), the candidate period extraction unit 11 using the SDIF method extracts the candidate period ((2) of FIG. 26 and step S142) and the filter unit. 12 by the noise filter (step S143), the cycle detection section 13 performs cycle detection using PRI conversion and sequential search ((3) in FIG. 26 and step S144), and the cycle pulse separation section 14 performs cycle communication separation (FIG. 26 (4) and step S145) are performed.
  • this mixed estimation method it is possible to detect the communication of complicated patterns including periodic and aperiodic communication, and it is possible to detect the new periodic communication that occurred only in a part of the observation period. It is possible.
  • FIG. 27 is a diagram showing an example of the detection result by the period estimation device 210 shown in FIG.
  • the period estimation device 210 classifies the period patterns using the period pattern model 212 learned by the preliminary period analysis, and then estimates the period. Therefore, in the period estimation device 210, as shown in FIG. 27, for each specified detection granularity (for example, source address (Src), destination address (dst), command (cmd)) of the flow information. , The analysis result can be output.
  • the cycle estimation device 210 classifies the input pulse signal into a cycle pattern and then estimates the cycle, thereby classifying the out-of-cycle communication, the cycle communication disappearance, or the new cycle occurrence, depending on the cycle pattern, to detect a communication error. Can be detected.
  • FIG. 28 is a flowchart showing an example of the processing procedure of the cycle estimation processing during the preliminary cycle analysis according to the second embodiment.
  • the period estimation device 210 When the period estimation device 210 receives input of time series data as an input pulse signal (step S201), the period estimation device 210 performs pre-period analysis processing on the received time series data (step S202). The period estimation device 210 performs the same process as steps S1 to S17 shown in FIG. 16 as the preliminary period analysis process. Then, the pre-period analysis unit 211 analyzes the type of the periodic pattern of the input pulse train, and registers the analyzed type of the periodic pattern in the periodic pattern model 212 in association with the input pulse train (step S203). In the periodic pattern model 212, the correspondence between the type of periodic pattern and the input pulse train is learned.
  • FIG. 29 is a flowchart showing an example of the processing procedure of the period estimation processing at the time of estimation in the second embodiment.
  • the classifying unit 213 classifies the time-series data into a period pattern using the period pattern model 212 ( Step S212).
  • step S213 periodic communication
  • step S214 the setting unit 214 sets the periodic communication type estimation method.
  • the estimation unit 10A applies the periodic communication type estimation method to perform the period estimation process for the next input pulse train (step S215).
  • step S213 aperiodic communication
  • the setting unit 214 sets the aperiodic communication type estimation method (step S216).
  • the estimation unit 10A applies the periodic communication type estimation method to perform the period estimation processing for the next input pulse train (step S217).
  • the setting unit 214 sets the mixed type estimation method (Ste S218).
  • the estimation unit 10A applies the mixed estimation method to perform the period estimation process for the next input pulse train (step S219).
  • the period estimation device 210 outputs the detection result of the estimation unit 10A (step S220), and ends the period estimation process for this input pulse train. If the input pulse train is not classified into any of the input patterns in step S213, the period estimation device 210 executes steps S202 and S203 shown in FIG. 28 for this input pulse train.
  • the period estimation apparatus 210 analyzes the type of the periodic pattern of the input pulse train by performing the preliminary period analysis on the input pulse train, and determines the type of the analyzed periodic pattern as described above. It is registered in the periodic pattern model in association with the input pulse train. Then, the period estimation device 210 classifies the type of period pattern of the next input target pulse train to be estimated using the period pattern model, and is limited to a part of the period estimation process depending on the type of the classified period pattern. Then, the period estimation method for the next input pulse train to be estimated is set.
  • the period estimation device 210 optimizes the processing content of the period estimation process in accordance with the period pattern of the input pulse train to be estimated, so that the period estimation process can be made faster than in the first embodiment. it can. Further, since the cycle estimation device 210 classifies the cycle patterns and then estimates the cycle, it is possible to realize detection with the optimum detection granularity in the flow information.
  • each component of each device shown in the drawings is functionally conceptual and does not necessarily have to be physically configured as shown. That is, the specific form of distribution/integration of each device is not limited to that shown in the figure, and all or part of the device may be functionally or physically distributed/arranged in arbitrary units according to various loads and usage conditions. It can be integrated and configured.
  • each processing function performed by each device is realized in whole or in part by a CPU or GPU and a program analyzed and executed by the CPU or GPU, or as hardware by wired logic. Can be realized.
  • program Further, it is also possible to create a program in which the process executed by the period estimation device 10 described in the above embodiment is described in a computer-executable language. For example, it is possible to create a cycle estimation program for a pulse train signal in which the processing executed by the cycle estimation apparatus 10 according to the embodiment is described in a computer-executable language. In this case, the computer executes the period estimation program of the pulse train signal to obtain the same effect as that of the above embodiment. Further, by recording the period estimation program of the pulse train signal in a computer-readable recording medium, and by causing the computer to read and execute the period estimation program of the pulse train signal recorded in the recording medium, similar to the above-described embodiment. The processing may be realized.
  • FIG. 30 is a diagram illustrating an example of a computer that executes a period estimation program for a pulse train signal.
  • the computer 1000 includes, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. However, these units are connected by a bus 1080.
  • the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012, as illustrated in FIG.
  • the ROM 1011 stores, for example, a boot program such as BIOS (Basic Input Output System).
  • BIOS Basic Input Output System
  • the hard disk drive interface 1030 is connected to the hard disk drive 1090, as illustrated in FIG.
  • the disk drive interface 1040 is connected to the disk drive 1100, as illustrated in FIG.
  • a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1100.
  • the serial port interface 1050 is connected to, for example, a mouse 1110 and a keyboard 1120 as illustrated in FIG.
  • the video adapter 1060 is connected to, for example, the display 1130, as illustrated in FIG.
  • the hard disk drive 1090 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. That is, the above-described pulse train signal period estimation program is stored in, for example, the hard disk drive 1090 as a program module in which a command executed by the computer 1000 is described.
  • the various data described in the above embodiment is stored as program data in, for example, the memory 1010 or the hard disk drive 1090. Then, the CPU 1020 reads the program module 1093 and the program data 1094 stored in the memory 1010 or the hard disk drive 1090 into the RAM 1012 as necessary, and executes various processing procedures.
  • the program module 1093 and the program data 1094 relating to the pulse train signal period estimation program are not limited to being stored in the hard disk drive 1090, and are stored in, for example, a removable storage medium and read by the CPU 1020 via a disk drive or the like. May be issued.
  • the program module 1093 and the program data 1094 related to the pulse train signal period estimation program are stored in another computer connected via a network (LAN, WAN (Wide Area Network), etc.), and via the network interface 1070. It may be read by the CPU 1020.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Manipulation Of Pulses (AREA)
  • Measuring Frequencies, Analyzing Spectra (AREA)

Abstract

周期推定装置(10)は、入力パルス列から候補周期を抽出する。周期推定装置(10)は、候補周期の一部を用いて実周期として存在するか否かを判定し、実周期として存在しない場合、周期判定を中断する。周期推定装置(10)は、実周期として存在すると判定した候補周期に対して周期判定を行い、候補周期に基づく擬似周期パルス列を生成する。周期推定装置(10)は、擬似周期パルス列と入力パルス列との差分値に基づき擬似周期パルス列のパルス位置を調整し、周期判定および調整の結果に応じて周期パルス列の検出を行う。周期推定装置(10)は、周期パルス列を入力パルス列から分離し、分離後のパルス列を新たな入力パルス列とする。周期推定装置(10)は、候補周期の抽出に関するパラメータと、新たな入力パルス列とに基づいて、周期の分析を継続するか否かを判定する。

Description

パルス列信号の周期推定装置、パルス列信号の周期推定方法およびパルス列信号の周期推定プログラム
 本発明は、パルス列信号の周期推定装置、パルス列信号の周期推定方法およびパルス列信号の周期推定プログラムに関する。
 パルス列信号の周期を推定する代表的な手法として、パルス到達時間の差分をヒストグラム化して周期推定を行う差分ヒストグラム法、仮定した周期パルス列との相関を計算するシーケンシャルサーチ、自己相関に類似した変換を行うPRI(Pulse Repetition Interval)変換などの手法が存在する。これらの方法には、それぞれ計算時間、ジッタや欠損への耐性などの観点で異なる長所短所が存在する。したがって、それぞれの短所を補い合うため、これらの手法を組み合わせて周期推定を行う手法が存在する。具体的には、差分ヒストグラム法において潜在的な候補周期を抽出した後、候補周期に対してPRI変換とシーケンシャルサーチによる2段階の周期判定を実施する手法である。
H.K. Mardia,et al: New techniques for the deinterleaving of repetitive sequences,Volume 136 issue 4,Aug 1989,Page 149-154 C.L. Davies,et al: Automatic processing for ESM,Volume 129 issue 3,June 1982,Page 164-171 KEN’ICHI,N.et al:Improved Algorithm for Estimating Pulse Repetition Intervals, IEEE Transactions on Aerospace and Electronic Systems,Volume 36 issue 2, Apr 2000, Page 407-421 Yanchao Liu. et al: Improved method for deinterleaving radar signals and estimating PRI values,volume 12 issue 5,16 April 2018,Page 506-514
 既存手法は主にレーダーパルス分析の分野に適用されることが多いが、同手法をネットワーク分野に適用する際には二つの課題が存在する。一つ目は計算時間削減の課題である。ネットワーク分野では、レーダーパルス分析の分野と比較しランダムなノイズを生み出す要因が多い。既存手法では、ランダムなノイズパルスの影響により、実際には存在しない周期を候補周期として抽出し、計算時間を増加させてしまうという問題がある。二つ目はパルス受信タイミング(ジッタ)の偏在に関する課題である。ネットワーク環境下においては、ジッタが遅れ側に発生しやすい傾向が観測されており、ジッタが遅れ側など片側に偏って分布する場合、観測期間の長さに比例してジッタの影響が累積し、既存手法では周期パルスを周期的と判定できなくなる場合がある。従って、ネットワーク環境における機器の設定変更による通信周期の変化や、複数の同等機器から異なる周期をもつ機器を発見することが困難である。
 上述した課題を解決し、目的を達成するために、本発明のパルス列信号の周期推定装置は、入力パルス列から周期判定の対象となる候補周期を抽出する候補周期抽出部と、抽出された前記候補周期の一部を用いて、実周期として存在するか否かを判定し、前記候補周期が実周期として存在しないと判定した場合、前記候補周期に対する周期判定を中断するフィルタ部と、実周期として存在すると判定された前記候補周期に対して周期判定を行うとともに、前記候補周期に基づく擬似周期パルス列を生成し、生成した前記擬似周期パルス列と前記入力パルス列との差分値に基づいて、前記擬似周期パルス列のパルス位置を調整し、前記周期判定および前記調整の結果に応じて周期パルス列の検出を行う周期検出部と、検出された前記周期パルス列を前記入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として前記候補周期抽出部に入力する周期パルス分離部と、前記候補周期の抽出に関するパラメータ、および、前記新たな入力パルス列のうち、1つまたは複数に基づいて、周期の分析を継続するか否かを判定する周期分析継続判定部と、を備えることを特徴とする。
 また、本発明のパルス列信号の周期推定方法は、入力パルス列から周期判定の対象となる候補周期を抽出する候補周期抽出工程と、抽出された前記候補周期の一部を用いて、実周期として存在するか否かを判定し、前記候補周期が実周期として存在しないと判定した場合、前記候補周期に対する周期判定を中断するフィルタ工程と、実周期として存在すると判定された前記候補周期に対して周期判定を行い、前記周期判定の結果に応じた周期パルス列の検出を行う周期検出工程と、検出された前記周期パルス列を前記入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として前記候補周期抽出工程に入力する周期パルス分離工程と、前記候補周期の抽出に関するパラメータ、および、前記新たな入力パルス列のうち、1つまたは複数に基づいて、周期の分析を継続するか否かを判定する周期分析継続判定工程と、をコンピュータが実行することを特徴とする。
 また、本発明のパルス列信号の周期推定プログラムは、入力パルス列から周期判定の対象となる候補周期を抽出する候補周期抽出ステップと、抽出された前記候補周期の一部を用いて、実周期として存在するか否かを判定し、前記候補周期が実周期として存在しないと判定した場合、前記候補周期に対する周期判定を中断するフィルタステップと、実周期として存在すると判定された前記候補周期に対して周期判定を行い、前記周期判定の結果に応じた周期パルス列の検出を行う周期検出ステップと、検出された前記周期パルス列を前記入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として前記候補周期抽出ステップに入力する周期パルス分離ステップと、前記候補周期の抽出に関するパラメータ、および、前記新たな入力パルス列のうち、1つまたは複数に基づいて、周期の分析を継続するか否かを判定する周期分析継続判定ステップと、をコンピュータに実行させることを特徴とする。
 本発明によれば、ネットワーク環境における機器の設定変更による通信周期の変化や、複数の同等機器から異なる周期をもつ機器を発見することができるという効果を奏する。
図1は、第1の実施形態に係る周期推定装置の構成の一例を示すブロック図である。 図2は、時系列データの生成の一例を示す図である。 図3は、累積差分ヒストグラムの生成の一例を示す図である。 図4は、累積差分ヒストグラムのクラスタリングの一例を示す図である。 図5は、累積差分ヒストグラムのクラスタリングの詳細な一例を示す図である。 図6は、候補周期の抽出の一例を示す図である。 図7は、部分的シーケンシャルサーチの一例を示す図である。 図8は、PRI変換の一例を示す図である。 図9は、シーケンシャルサーチの一例を示す図である。 図10は、シーケンシャルサーチにおけるパルス位置の補正の一例を示す図である。 図11は、シーケンシャルサーチにおけるパルス位置の補正の一例を示す図である。 図12は、累積ジッタの一例を示す図である。 図13は、周期通信の分離の一例を示す図である。 図14は、各種実験データの一例を示す図である。 図15は、計算時間の削減の一例を示す図である。 図16は、第1の実施形態における周期推定処理の一例を示すフローチャートである。 図17は、第2の実施形態に係る周期推定装置の構成の一例を示すブロック図である。 図18は、図17に示す周期推定装置における入力パルス列に対する周期判定処理の流れを説明する図である。 図19は、事前周期分析の処理内容を説明する図である。 図20は、周期パターンの一例を示す図である。 図21は、周期通信型推定方法の処理内容を説明する図である。 図22は、検知対象の通信を説明する図である。 図23は、検知対象の通信を説明する図である。 図24は、非周期通信型推定方法の処理内容を説明する図である。 図25は、検知対象の通信を説明する図である。 図26は、混合型推定方法の処理内容を説明する図である。 図27は、図17に示す周期推定装置による検知結果の一例を示す図である。 図28は、第2の実施形態における事前周期分析時における周期推定処理の処理手順の一例を示すフローチャートである。 図29は、第2の実施形態2における推定時における周期推定処理の処理手順の一例を示すフローチャートである。 図30は、パルス列信号の周期推定プログラムを実行するコンピュータの一例を示す図である。
 以下、図面に基づいて、本願の開示するパルス列信号の周期推定装置、パルス列信号の周期推定方法およびパルス列信号の周期推定プログラムの実施の形態を詳細に説明する。なお、この実施の形態により本願に係るパルス列信号の周期推定装置、パルス列信号の周期推定方法およびパルス列信号の周期推定プログラムが限定されるものではない。
[第1の実施形態]
 以下の実施の形態では、第1の実施形態に係る周期推定装置10の構成、周期推定装置10の処理の流れを順に説明し、最後に第1の実施形態による効果を説明する。
[周期推定装置の構成]
 まず、図1を用いて、周期推定装置10の構成を説明する。図1は、第1の実施形態に係る周期推定装置の構成の一例を示すブロック図である。周期推定装置10は、入力パルス列から周期判定の対象となる候補周期を抽出する。周期推定装置10は、抽出された候補周期の一部を用いて、実周期として存在するか否かを判定し、候補周期が実周期として存在しないと判定した場合、候補周期に対する周期判定を中断する。周期推定装置10は、実周期として存在すると判定された候補周期に対して周期判定を行うとともに、候補周期に基づく擬似周期パルス列を生成する。周期推定装置10は、生成した擬似周期パルス列と入力パルス列との差分値に基づいて、擬似周期パルス列のパルス位置を調整し、周期判定および調整の結果に応じて周期パルス列の検出を行う。周期推定装置10は、検出された周期パルス列を入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として候補周期を抽出する候補周期抽出部に入力する。周期推定装置10は、候補周期の抽出に関するパラメータ、および、新たな入力パルス列のうち、1つまたは複数に基づいて、周期の分析を継続するか否かを判定する。これにより、周期推定装置10は、ネットワーク環境における機器の設定変更による通信周期の変化や、複数の同等機器から異なる周期をもつ機器を発見することができる。
 図1に示すように、周期推定装置10は、候補周期抽出部11と、フィルタ部12と、周期検出部13と、周期パルス分離部14と、周期分析継続判定部15とを有する。また、周期推定装置10は、図示しない記憶部を有する。記憶部は、例えば、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。なお、周期推定装置10は、図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
 また、図1に示すように、周期推定装置10には入力パルス列信号が入力されるが、周期推定装置10は、例えば、入力パルス列信号として、通信ログを取得して通信発生時刻の時系列データを生成してもよい。時系列データは、通信発生を表す信号をパルスで表したデータであり、時系列パルス列または入力パルス列とも表現する。例えば、時系列データは、ある時刻において通信があれば「1」、無ければ「0」の二値をとるデータである。
 ここで、図2を用いて時系列データの生成について説明する。図2は、時系列データの生成の一例を示す図である。図2に示すように、通信ログ20は、Pcapファイルやトラフィックログを含む。周期推定装置10は、例えば、通信ログ20の組A1に示す(srcip,dstip)の組み合わせごとに時系列データを生成する。また、周期推定装置10は、組A1に加え、プロトコル番号やポート番号、各プロトコルのコマンドを組み合わせることで、より精度よく周期を抽出できる時系列データを生成することができる。例えば、周期推定装置10は、通信ログ20の組A2に示す(srcip,dstip,tcp/udp,dst port)の組み合わせごとや、組A3に示す(srcip,dstip,cmd)の組み合わせごとに時系列データを生成するようにしてもよい。このとき、抽出の精度は、組A3>組A2>組A1となる。
 周期推定装置10は、組A1,A2,A3からタイムスタンプ21を生成する。周期推定装置10は、生成したタイムスタンプ21に基づいて、通信発生の有無を時系列に並べた時系列データ(時系列パルス列)22を生成する。周期推定装置10は、生成した時系列データ22を入力パルス列信号として用いることができる。
 図1の説明に戻る。候補周期抽出部11、フィルタ部12、周期検出部13、周期パルス分離部14および周期分析継続判定部15は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、候補周期抽出部11、フィルタ部12、周期検出部13、周期パルス分離部14および周期分析継続判定部15は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。なお、候補周期抽出部11、フィルタ部12、周期検出部13、周期パルス分離部14および周期分析継続判定部15の構成は、図1に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
 候補周期抽出部11は、入力された時系列データまたは生成した時系列データから周期判定の対象となる候補周期を抽出する。候補周期抽出部11は、まず、階差値c=1を設定する。候補周期抽出部11は、設定した階差値cの累積差分ヒストグラムを生成する。候補周期抽出部11は、階差値cに基づいて、時系列データのパルス発生時刻の差分(パルス繰り返し間隔:以下、PRIともいう。)を算出する。候補周期抽出部11は、例えば、階差値c=1である場合、隣接するパルス間のPRIを算出する。PRIの算出は、以下の式(1)を用いる。候補周期抽出部11は、算出したPRIに基づいて、PRIの出現回数をヒストグラム化する。つまり、候補周期抽出部11は、時系列データを差分ヒストグラム化する。
Figure JPOXMLDOC01-appb-M000003
 式(1)において、Sinは各パルスの発生時刻の列を示し、DSinはPRIを示し、Nは観測期間の全パルス数を示し、cは階差値を示す。
 ここで、図3を用いて累積差分ヒストグラムの生成について説明する。図3は、累積差分ヒストグラムの生成の一例を示す図である。図3に示すように、時系列データ22aは、階差値c=1の場合におけるPRIのとり方を示している。時系列データ22aでは、PRI=aと、PRI=bとの出現回数を算出してヒストグラム化し、つまり差分ヒストグラム化し、ヒストグラム23を生成している。時系列データ22bは、階差値c=2の場合におけるPRIのとり方を示している。なお、時系列データ22bは、時系列データ22aと同一のデータである。時系列データ22bでは、PRI=a+bの出現回数を算出し、階差値c=1の場合のPRI=aと、PRI=bとの出現回数に加算して、ヒストグラム24を生成している。
 次に、候補周期抽出部11は、生成した累積差分ヒストグラムについてクラスタリングを行う。候補周期抽出部11は、ネットワークにおけるパケットデータ取得環境に起因するPRIの微妙なズレであるジッタを補正するために、クラスタリングを行う。なお、クラスタリングの際のジッタ許容率(許容するジッタ率)Jc%は、予め設定されるものとする。
 ここで、図4および図5を用いてクラスタリングについて説明する。図4は、累積差分ヒストグラムのクラスタリングの一例を示す図である。図4に示すように、ヒストグラム25では、ジッタによりPRIがばらつき、出現回数が閾値を超えないため、候補周期を抽出することが出来ない。このため、ヒストグラム25に対して、ジッタ許容率Jc%でクラスタリングする、つまり、ばらついたPRIを尤もらしい値に集約することで、ヒストグラム26とすると、出現回数が閾値を超え、ジッタが存在した場合にも候補周期を抽出することができる。
 図5は、累積差分ヒストグラムのクラスタリングの詳細な一例を示す図である。図5では、DSinは算出したPRI値を並べた列を示し、DSin’は、DSinを昇順に整列した列を示し、NEはDSin’の要素数を示し、jはDSin’の要素番号(0≦j<NE)を示す。また、図5では、Ciはi番目のクラスタを示し、ciはi番目のクラスタの中心位置を示し、dは取り出したPRIとciとの距離を示し、Jcはジッタ許容率を示し、xは1つ目に取り出したPRI値を示し、yは2つ目に取り出したPRI値を示す。
 図5に示すように、候補周期抽出部11は、まず、DSinを昇順に並べ替えてDSin’とする。候補周期抽出部11は、DSin’(j)を取り出してCiを生成する(ステップB1)。候補周期抽出部11は、DSin’(j+1)を取り出して、仮のciとdとを算出する(ステップB2)。候補周期抽出部11は、例えば、ci=(x+y)/2,d=|y-ci|として算出する。
 候補周期抽出部11は、dがジッタの許容範囲(c1×Jc)以下であるか否かを判定する。候補周期抽出部11は、dがジッタの許容範囲(c1×Jc)以下であると判定した場合(ステップB3-1)、既存のクラスタCiを更新する。つまり、クラスタCiには、x,yの2つのPRI値が含まれる。
 一方、候補周期抽出部11は、dがジッタの許容範囲(c1×Jc)を超えると判定した場合(ステップB3-2)、新規クラスタCi+1を設定する。つまり、クラスタCiにはxが含まれ、新規クラスタCi+1には、yが含まれる。このように、候補周期抽出部11は、DSin’から順にPRI値を取り出し、既存または新規クラスタに所属させていくことでクラスタリングを行う。
 次に、候補周期抽出部11は、クラスタリングを通して再生成されたヒストグラムに対して閾値を適用し、候補周期を抽出する。候補周期抽出部11は、抽出した候補周期をフィルタ部12に出力する。なお、閾値は、あるPRI値を周期とするパルス列が、全観測期間Tのω割以上存在した場合に、そのPRIが候補周期となるように設定される。閾値は、下記の式(2)によって求められる。なお、式(2)において、Tはパルス観測期間を示し、ωは閾値決定用の係数を示す。
Figure JPOXMLDOC01-appb-M000004
 ここで、図6を用いて候補周期の抽出について説明する。図6は、候補周期の抽出の一例を示す図である。図6に示すヒストグラム27は、クラスタリングが行われた後のヒストグラムであり、PRI=60が閾値を超えていることがわかる。従って、候補周期抽出部11は、PRI=60を候補周期として抽出する。
 図1の説明に戻る。フィルタ部12は、候補周期抽出部11から候補周期が入力されると、入力された候補周期が実周期として存在するか否かを、ランダムノイズフィルタと部分的シーケンシャルサーチとを用いて判定する。なお、フィルタ部12は、候補周期抽出部11で抽出した候補周期のうち、値の小さいものから順に周期判定を行う。フィルタ部12は、まず、ランダムノイズフィルタを実行する。つまり、フィルタ部12は、入力された候補周期のPRI変換実施時の理論的な最大スペクトル値と、PRI変換時に算出されるランダムノイズ閾値とを算出する。
 フィルタ部12は、算出した理論的な最大スペクトル値よりもランダムノイズ閾値の方が大きい場合、当該階差値cにおける分析を中断し、次の階差値c+1の分析に移行する。すなわち、フィルタ部12は、下記の式(3)が成り立つ場合、候補周期が実周期として存在しないと判定する。なお、式(3)において、Tは入力パルス列の観測期間を示し、τは候補周期の値を示し、γは定数を示し、Jcは許容するジッタ率を示す。
Figure JPOXMLDOC01-appb-M000005
 フィルタ部12は、算出した理論的な最大スペクトル値がランダムノイズ閾値以上である場合、つまりランダムノイズフィルタを通過する場合、部分的シーケンシャルサーチを行う。まず、部分的シーケンシャルサーチにおける時系列データg(t)と、擬似周期パルス列q(t)とについて説明する。なお、擬似周期パルス列q(t)は、ジッタ範囲を持たせた候補周期の値τのパルス列である。時系列データg(t)は、下記の式(4)および式(5)で表され、擬似周期パルス列q(t)は、下記の式(6)および式(7)で表される。
Figure JPOXMLDOC01-appb-M000006
Figure JPOXMLDOC01-appb-M000007
Figure JPOXMLDOC01-appb-M000008
Figure JPOXMLDOC01-appb-M000009
 ここで、tは時刻を示し、Nは観測期間の全パルス数を示し、δはディラックのデルタ関数を示し、tはパルス発生時刻を示し、Tはパルス観測期間を示し、pは第1パルス(初期パルス)の位置を示し、aは定数を示し、τは候補周期を示し、Jcはジッタ許容率を示す。
 フィルタ部12は、計算時間削減のため、PRI変換実施前に部分的な周期判定を行う部分的シーケンシャルサーチを実行する。フィルタ部12は、擬似周期パルス列q(t)のX番目までを用いてシーケンシャルサーチを行い、時系列データg(t)と、擬似周期パルス列q(t)との相関値DがX以上である場合、候補周期の値τを周期検出部13に出力する。なお、相関値Dは、時系列データg(t)と、擬似周期パルス列q(t)との重複パルス数であり、下記の式(8)で表す。また、式(8)において、Xは部分的シーケンシャルサーチの範囲を表す定数であり、txはX番目のパルスの発生時刻を示す。
Figure JPOXMLDOC01-appb-M000010
 ここで、図7を用いて部分的シーケンシャルサーチについて説明する。図7は、部分的シーケンシャルサーチの一例を示す図である。図7に示すように、フィルタ部12は、グラフ30に示す時系列データg(t)に対して、グラフ31に示す擬似周期パルス列q(t)を生成する。つまり、フィルタ部12は、初期パルス位置をp、パルス間隔を候補周期の値τ、許容するジッタ率をJcとして、パルス幅を2Jcτとした総パルス数Xの擬似周期パルス列q(t)を生成する。なお、擬似周期パルス列q(t)は、X番目のパルスまでを相関計算の対象とするので、X番目のパルス以降の値は全て0である。
 フィルタ部12は、グラフ32に示すように、時刻tを0から時系列データg(t)の観測期間Tまで(txまで)変化させた際に、擬似周期パルス列q(t)と時系列データ(入力パルス列)g(t)との重複パルス数(相関値D)をカウントする。なお、フィルタ部12は、擬似周期パルス列q(t)の1つのパルスに対し、時系列データg(t)の複数のパルスが重複した場合、重複パルス数のカウントは「1」とする。フィルタ部12は、重複パルス数(相関値D)が総パルス数X以上である場合、実周期があると判定し、候補周期の値τを周期検出部13に出力する。
 一方、フィルタ部12は、重複パルス数(相関値D)が総パルス数Xより小さい場合、第1パルスの位置pの値を変化させて重複パルス数を再度カウントする。フィルタ部12は、与えられた全ての第1パルスの位置pの値に対して重複パルス数が総パルス数Xより小さくなる場合、候補周期が実周期として存在しないと判定する。フィルタ部12は、候補周期が実周期として存在しないと判定した場合、当該階差値cにおける分析を中断し、次の階差値c+1の分析に移行する。
 図1の説明に戻る。周期検出部13は、フィルタ部12から候補周期の値τが入力されると、当該候補周期の値τに対してPRI変換にて周期判定を行うとともに、累積ジッタの補正を行う。つまり、周期検出部13は、候補周期の値τについてPRI変換およびシーケンシャルサーチを行う。
 周期検出部13は、下記の式(9),(10)を用いてPRI変換によるスペクトルおよび閾値の算出を行う。
Figure JPOXMLDOC01-appb-M000011
Figure JPOXMLDOC01-appb-M000012
 なお、式(9),(10)において、D(τ)は候補周期の値τのスペクトルを示し、iは虚数を示し、tはn番目のパルスの発生時刻を示し、tはm番目のパルスの発生時刻を示し、Th(τ)は候補周期の値τの閾値を示し、α,β,γは定数を示し、C(τ)は自己相関値を示し、Nは観測期間の全パルス数を示す。また、式(9)では、自己相関関数に位相の項e^(2πit/τ)を加えることでパルス欠損の影響を低減する。さらに、周期検出部13は、PRI変換の実行中に、下記の式(11)が成り立つ場合、PRI変換を中断し、次の階差値c+1の分析に移行する。
Figure JPOXMLDOC01-appb-M000013
 なお、式(11)において、Dnはn番目のパルスまで分析を進めた場合のPRI変換のスペクトルを示し、Tは入力パルス列の観測期間を示し、TOAnはn番目のパルスの出現時刻を示し、τは候補周期の値を示し、Thは周期判定の閾値を示す。
 ここで、図8を用いてPRI変換について説明する。図8は、PRI変換の一例を示す図である。図8のグラフ33に示す時系列データg(t)について、PRI変換を行うと、グラフ34を得ることができる。グラフ34では、例えば、候補周期35,36が閾値を超えているので、周期ありと判定することができる。
 周期検出部13は、PRI変換にて周期ありと判定した候補周期の値τに対して、シーケンシャルサーチを行う際に、累積ジッタの補正も行う。つまり、周期検出部13は、パルス観測期間が長くなることによるジッタの影響と、PRI変換では対処しきれないノイズパルスの影響とを抑制することで、正しい周期の抽出を行う。
 周期検出部13は、候補周期の値τに基づく擬似周期パルス列q(t)を生成する。周期検出部13は、生成した擬似周期パルス列q(t)に対して累積ジッタの補正を行ってシーケンシャルサーチを実行する。周期検出部13は、擬似周期パルス列q(t)と、時系列データg(t)との相関値Dを算出し、閾値thと比較することで、時系列データg(t)内に候補周期の値τが存在するか否かを判定する。周期検出部13は、相関値Dが閾値th以上である場合、擬似周期パルス列q(t)を検出した周期パルス列として周期パルス分離部14に出力する。なお、閾値thは、下記の式(12)に示す。式(12)において、sは定数を示す。また、相関値Dは、時系列データg(t)と、擬似周期パルス列q(t)との重複パルス数であり、下記の式(13)で表す。
Figure JPOXMLDOC01-appb-M000014
Figure JPOXMLDOC01-appb-M000015
 ここで、図9を用いてシーケンシャルサーチについて説明する。図9は、シーケンシャルサーチの一例を示す図である。図9に示すように、周期検出部13は、グラフ30に示す時系列データg(t)に対して、グラフ37に示す擬似周期パルス列q(t)を生成する。つまり、周期検出部13は、初期パルス位置をp、パルス間隔を候補周期の値τ、許容するジッタ率をJcとして、パルス幅を2Jcτとした擬似周期パルス列q(t)を生成する。
 周期検出部13は、グラフ38に示すように、時刻tを0から時系列データg(t)の観測期間Tまで変化させた際に、擬似周期パルス列q(t)と時系列データg(t)とが重複した場合、重複パルス数をカウントする。なお、周期検出部13は、擬似周期パルス列q(t)の1つのパルスに対し、時系列データg(t)の複数のパルスが重複した場合、重複パルス数のカウントは「1」とする。周期検出部13は、最終的な重複パルス数(相関値D)が閾値th以上である場合、候補周期の値τに基づく擬似周期パルス列q(t)を、検出した周期パルス列として周期パルス分離部14に出力する。
 一方、周期検出部13は、最終的な重複パルス数(相関値D)が閾値thより小さい場合、第1パルス(初期パルス)の位置pの値を変化させて重複パルス数を再度カウントする。周期検出部13は、与えられた全ての第1パルスの位置pの値に対して重複パルス数が閾値thより小さくなる場合、候補周期の値τが実周期として存在しないと判定する。周期検出部13は、候補周期の値τが実周期として存在しないと判定した場合、残りの候補周期の値τの処理に移行する。また、検出対象の候補周期の値τの全てが実周期として存在しないと判定した場合、次の階差値c+1の分析に移行する。
 次に、累積ジッタの補正について説明する。ジッタは、パルス観測期間が長くなることで蓄積し、許容ジッタ範囲を超過する可能性が高くなる。ネットワーク環境では、ジッタが遅れ側に偏る傾向が見られ、累積ジッタの影響が大きくなりやすい。このため、周期検出部13では、パルス1回ごとにジッタ補正を行う。
 図10および図11は、シーケンシャルサーチにおけるパルス位置の補正の一例を示す図である。図10のグラフ39に示すように、既存のシーケンシャルサーチでは、ジッタが累積していくと、時系列データg(t)のパルス位置が許容ジッタ範囲を超過することになる。これに対し、グラフ40に示すように、本実施形態のシーケンシャルサーチでは、パルス1回のジッタ量に合わせて擬似周期パルス列q(t)のパルス位置を補正することで累積ジッタに対応する。
 グラフ40では、1番目のパルスのジッタJ1だけ2番目のパルスをシフト(並行移動)する。また、3番目のパルスでは、ジッタJ1に2番目のパルスのジッタJ2を加算した値だけシフトする。言い換えると、n番目のパルスに対するシフト量を移動値δnとすると、周期検出部13は、時系列データg(t)の重複したパルスの位置から、擬似周期パルス列q(t)の重複したパルスの中心位置を引いた差分値δn’を算出する。次に、周期検出部13は、算出した差分値δn’と、差分値δn’の1つ前の差分値である移動値δn-1とに基づいて、移動値δnを算出する。周期検出部13は、直前の擬似周期パルス列q(t)の重複したパルスの次のパルス位置を移動値δnだけ並行移動する。
 また、周期検出部13は、図11のグラフ41に示すように、擬似周期パルス列q(t)の1つのパルスに、時系列データg(t)の複数のパルスが一致する場合、よりジッタ量が少ない方のパルスを周期パルスとみなして、擬似周期パルス列q(t)のパルス位置を補正する。また、周期検出部13は、グラフ42に示すように、擬似周期パルス列q(t)の1つのパルスに、一致する時系列データg(t)のパルスが存在しない場合、擬似周期パルス列q(t)のパルス位置の補正は行わない。
 図12は、累積ジッタの一例を示す図である。図12に示すグラフ43は、あるビルのネットワークの通信で観測された累積ジッタの一例である。グラフ43は、ネットワークのPcap1日分について、分析対象プロトコルをbacnet、分析対象のデータを1パターンとした場合の例である。グラフ43では、周期2400秒の時系列データg(t)に対して、観測期間が長くなるに従い、累積ジッタの影響で擬似周期パルス列q(t)の乖離が大きくなっていることがわかる。グラフ43の例では、既存のシーケンシャルサーチでは周期なしと判定されてしまうが、本実施形態のシーケンシャルサーチでは周期ありと判定することができる。
 図1の説明に戻る。周期パルス分離部14は、周期検出部13から検出された周期パルス列である擬似周期パルス列q(t)が入力されると、時系列データg(t)から擬似周期パルス列q(t)と一致するパルスを周期通信として時系列データg(t)から分離する。周期パルス分離部14は、分離した周期通信と、周期通信分離後の時系列データg(t)とを周期分析継続判定部15に出力する。また、周期パルス分離部14は、周期通信分離後の時系列データg(t)を候補周期抽出部11に出力する。
 図13は、周期通信の分離の一例を示す図である。図13に示すように、周期パルス分離部14は、時系列データ44から擬似周期パルス列q(t)と一致する周期通信45を分離する。時系列データ46は、時系列データ44から周期通信45を分離した後の時系列データを示す。
 図1の説明に戻る。周期分析継続判定部15は、周期パルス分離部14から周期通信と、周期通信分離後の時系列データg(t)とが入力されると、判定条件に基づいて、分析を継続するか否かを判定する。ここで、分析を終了する場合の判定条件は、階差値cの値が上限値climitに到達し、全候補周期に対する周期判定が終了した場合、および、周期通信分離後の時系列データg(t)のパルス数が閾値以下となった場合のうち、1つまたは複数の条件を満たす場合である。周期分析継続判定部15は、これらの条件を満たさない場合、分析を継続すると判定する。なお、階差値cは、候補周期の抽出に関するパラメータの一例であり、周期通信分離後の時系列データg(t)は、新たな入力パルス列の一例である。
 周期分析継続判定部15は、分析を継続すると判定した場合、候補周期抽出部11に対して、周期通信分離後の時系列データg(t)を用いて候補周期の抽出を行うように指示する。周期分析継続判定部15は、分析を継続しないと判定した場合、周期通信を推定結果として出力して処理を終了する。
 ここで、図14および図15を用いて計算時間の削減効果について説明する。図14は、各種実験データの一例を示す図である。図14には、計算時間の削減効果を確認するための実験データとして、あるビルのネットワークのPcap1日分について、分析対象プロトコルをbacnet、分析対象のデータとして実験データ50~54の5パターンとした実験データを示す。実験データ50は、単一周期のデータを示し、実験データ51は、単一周期にノイズを加えたデータを示し、実験データ52は、複数周期のデータを示す。また、実験データ53は、staggerパルス、つまり1周期あたりに複数のパルスが存在するデータを示し、実験データ54は、ランダムなデータを示す。
 図15は、計算時間の削減の一例を示す図である。図15の計算結果55は、既存手法を用いた場合の計算結果を示す。また、計算結果56は、本実施形態の計算結果を示す。計算結果55では、実験データ51の単一周期にノイズを加算した場合に、周期の誤検出が発生している。一方、計算結果56では、周期の誤検出は発生していない。また、計算結果55と計算結果56とを比較すると、ノイズが存在するものほど計算時間が削減されていることがわかる。
[周期推定装置の処理手順]
 次に、第1の実施形態に係る周期推定装置10の動作について説明する。図16は、第1の実施形態における周期推定処理の一例を示すフローチャートである。
 候補周期抽出部11は、入力パルス列信号として、時系列データの入力を受け付ける(ステップS1)。候補周期抽出部11は、階差値c=1を設定する(ステップS2)。候補周期抽出部11は、設定した階差値cの累積差分ヒストグラムを生成する(ステップS3)。候補周期抽出部11は、生成した累積差分ヒストグラムについてクラスタリングを行う(ステップS4)。
 候補周期抽出部11は、クラスタリングを通して再生成されたヒストグラムに対して閾値を適用し、候補周期を抽出する(ステップS5)。候補周期抽出部11は、抽出できた候補周期があるか否かを判定する(ステップS6)。候補周期抽出部11は、抽出できた候補周期がないと判定した場合(ステップS6:No)、階差値cをインクリメントし(ステップS15)、ステップS2に戻る。一方、候補周期抽出部11は、抽出できた候補周期があると判定した場合(ステップS6:Yes)、抽出した候補周期をフィルタ部12に出力する。
 フィルタ部12は、候補周期抽出部11から候補周期が入力されると、ランダムノイズフィルタを実行する(ステップS7)。フィルタ部12は、ランダムノイズフィルタの実行結果に基づいて、理論的な最大スペクトル値よりもランダムノイズ閾値の方が大きいか否かを判定する(ステップS8)。フィルタ部12は、ランダムノイズ閾値の方が大きいと判定した場合(ステップS8:Yes)、階差値cをインクリメントし(ステップS15)、ステップS2に戻る。一方、フィルタ部12は、理論的な最大スペクトル値がランダムノイズ閾値以上であると判定した場合(ステップS8:No)、部分的シーケンシャルサーチを実行する(ステップS9)。
 フィルタ部12は、部分的シーケンシャルサーチに基づいて、実周期があるか否かを判定する(ステップS10)。フィルタ部12は、実周期がないと判定した場合(ステップS10:No)、階差値cをインクリメントし(ステップS15)、ステップS2に戻る。一方、フィルタ部12は、実周期があると判定した場合(ステップS10:Yes)、候補周期の値τを周期検出部13に出力する。
 周期検出部13は、フィルタ部12から候補周期の値τが入力されると、当該候補周期の値τについてPRI変換を実行する(ステップS11)。周期検出部13は、PRI変換の実行中に、式(11)に基づいて、PRI変換を中断するか否かを判定する(ステップS12)。周期検出部13は、PRI変換を中断すると判定した場合(ステップS12:Yes)、階差値cをインクリメントし(ステップS15)、ステップS2に戻る。一方、周期検出部13は、PRI変換を中断しないと判定した場合(ステップS12:No)、引き続きPRI変換を実行する。
 周期検出部13は、PRI変換にて周期ありと判定した候補周期の値τについて、候補周期の値τに基づく擬似周期パルス列q(t)を生成する。周期検出部13は、生成した擬似周期パルス列q(t)に対して、累積ジッタの補正を行ってシーケンシャルサーチを実行する(ステップS13)。周期検出部13は、シーケンシャルサーチの結果、周期パルス列を検出したか否かを判定する(ステップS14)。周期検出部13は、周期パルス列を検出していないと判定した場合(ステップS14:No)、階差値cをインクリメントし(ステップS15)、ステップS2に戻る。周期検出部13は、周期パルス列を検出したと判定した場合(ステップS14:Yes)、検出した周期パルス列を周期パルス分離部14に出力する。
 周期パルス分離部14は、周期検出部13から検出された周期パルス列である擬似周期パルス列q(t)が入力されると、時系列データg(t)から擬似周期パルス列q(t)と一致するパルスを周期通信として時系列データg(t)から分離する(ステップS16)。周期パルス分離部14は、分離した周期通信と、周期通信分離後の時系列データg(t)とを周期分析継続判定部15に出力する。また、周期パルス分離部14は、周期通信分離後の時系列データg(t)を候補周期抽出部11に出力する。
 周期分析継続判定部15は、周期パルス分離部14から周期通信と、周期通信分離後の時系列データg(t)とが入力されると、判定条件に基づいて、分析を継続するか否かを判定する(ステップS17)。周期分析継続判定部15は、分析を継続すると判定した場合(ステップS17:Yes)、ステップS2に戻る。一方、周期分析継続判定部15は、分析を継続しないと判定した場合(ステップS17:No)、周期通信を推定結果として出力して周期推定処理を終了する。これにより、周期推定装置10は、ネットワーク環境における機器の設定変更による通信周期の変化や、複数の同等機器から異なる周期をもつ機器を発見することができる。また、周期推定装置10は、通信周期の変化や、異なる周期をもつ機器を発見することができるので、意図しない機器設定を特定することができる。
[第1の実施形態の効果]
 このように、周期推定装置10は、候補周期抽出部11が入力パルス列から周期判定の対象となる候補周期を抽出する。また、周期推定装置10は、抽出された候補周期の一部を用いて、実周期として存在するか否かを判定し、候補周期が実周期として存在しないと判定した場合、候補周期に対する周期判定を中断する。また、周期推定装置10は、実周期として存在すると判定された候補周期に対して周期判定を行うとともに、候補周期に基づく擬似周期パルス列を生成する。また、周期推定装置10は、生成した擬似周期パルス列と入力パルス列との差分値に基づいて、擬似周期パルス列のパルス位置を調整し、周期判定および調整の結果に応じて周期パルス列の検出を行う。また、周期推定装置10は、検出された周期パルス列を入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として候補周期抽出部11に入力する。また、周期推定装置10は、候補周期の抽出に関するパラメータ、および、新たな入力パルス列のうち、1つまたは複数に基づいて、周期の分析を継続するか否かを判定する。その結果、周期推定装置10は、ネットワーク環境における機器の設定変更による通信周期の変化や、複数の同等機器から異なる周期をもつ機器を発見することができる。
 また、周期推定装置10は、特定の階差に基づき入力パルス列の各パルス間隔を算出してヒストグラムを生成し、生成したヒストグラムにおいて、所定の閾値以上の回数出現したパルス間隔を候補周期として抽出する。その結果、周期推定装置10は、候補周期を抽出することができる。
 また、周期推定装置10は、上記の式(3)が成り立つ場合、候補周期が実周期として存在しないと判定する。その結果、周期推定装置10は、PRI変換等の計算時間を削減することができる。
 また、周期推定装置10は、初期パルス位置をp、パルス間隔を候補周期の値τ、許容するジッタ率をJcとして、パルス幅を2Jcτとした総パルス数Xの擬似周期パルス列q(t)を生成する。また、周期推定装置10は、入力パルス列をg(t)とした場合に、時刻tを0から入力パルス列g(t)の観測期間Tまで変化させた際に、擬似周期パルス列q(t)と入力パルス列g(t)との重複パルス数をカウントする。また、周期推定装置10は、重複パルス数が総パルス数X以上である場合、候補周期の値τを周期検出部13に出力する。また、周期推定装置10は、重複パルス数が総パルス数Xより小さい場合、pの値を変化させて重複パルス数を再度カウントし、与えられた全てのpの値に対して重複パルス数が総パルス数Xより小さくなる場合、候補周期が実周期として存在しないと判定する。その結果、周期推定装置10は、PRI変換等の計算時間を削減することができる。
 また、周期推定装置10は、周期判定において、PRI変換の実行中に、上記の式(11)が成り立つ場合、PRI変換を中断する。その結果、周期推定装置10は、PRI変換等の計算時間を削減することができる。
 また、周期推定装置10は、初期パルス位置をp、パルス間隔をフィルタ部12から入力された候補周期の値τ、許容するジッタ率をJcとして、パルス幅を2Jcτとした擬似周期パルス列q(t)を生成する。また、周期推定装置10は、入力パルス列をg(t)とした場合に、時刻tを0から入力パルス列g(t)の観測期間Tまで変化させた際に、擬似周期パルス列q(t)と入力パルス列g(t)とが重複した場合、重複パルス数をカウントする。また、周期推定装置10は、重複パルス数のカウントとともに、重複パルスについて、入力パルス列g(t)の重複したパルスの位置から、擬似周期パルス列q(t)の重複したパルスの中心位置を引いた差分値δn’を算出する。また、周期推定装置10は、算出した差分値δn’と、差分値δn’の1つ前の移動値δn-1とに基づいて、移動値δnを算出し、直前の擬似周期パルス列q(t)の重複したパルスの次のパルス位置を移動値δnだけ並行移動させる。また、周期推定装置10は、最終的な重複パルス数が所定値以上である場合、入力された候補周期の値τに基づいて、周期パルス列の検出を行い、最終的な重複パルス数が所定値より小さい場合、pの値を変化させて重複パルス数を再度カウントする。また、周期推定装置10は、与えられた全てのpの値に対して重複パルス数が所定値より小さくなる場合、候補周期の値τが実周期として存在しないと判定する。その結果、周期推定装置10は、ジッタが累積する場合であっても周期パルス列を検出することができる。
[第2の実施形態]
 次に、第2の実施形態に係る周期推定装置210の構成、周期推定装置210の処理の流れを順に説明し、最後に第2の実施形態による効果を説明する。
[周期推定装置の構成]
 まず、図17を用いて、周期推定装置210の構成を説明する。図17は、第2の実施形態に係る周期推定装置の構成の一例を示すブロック図である。周期推定装置210は、入力パルス列の周期パターンを分析し、周期パターンの種別を入力パルス列に対応付けて周期パターンモデルに登録する。続いて、周期推定装置210は、周期パターンモデルを用いて、以降の入力パルス列の周期パターンの種別を分類する。そして、周期推定装置210は、分類した周期パターンの種別によっては、最適な工程に限定した周期推定方法を用いて、入力パルス列の分析を行う。これによって、周期推定装置10は、計算時間を削減するとともに最適な検知粒度での検知を実現する。
 図17に示すように、周期推定装置210は、第1の実施形態に係る周期推定装置10と同じ構成を有する推定部10Aに加え、事前周期分析部211(分析部)、周期パターンモデル212、分類部213および設定部214をさらに有する。また、周期推定装置210は、図示しない記憶部を有する。記憶部は、例えば、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。なお、周期推定装置210は、図17に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
 事前周期分析部211は、入力パルス列の周期パターンの事前分析を行う。事前周期分析部211は、まず、事前分析処理として、入力パルス列に対し、第1の実施形態において説明した、候補周期抽出部11による処理と、フィルタ部12による処理と、周期検出部13による処理と、周期パルス分離部14による処理と、周期分析継続判定部15による処理とを推定部10Aに実施させる。すなわち、事前周期分析部211は、推定部10Aに、図16に示すステップS1~ステップS17の処理を実施させる。
 続いて、事前周期分析部211は、推定部10Aによる処理結果を基に、入力パルス列の周期パターンの種別を分析し、分析した周期パターンの種別を入力パルス列に対応付けて周期パターンモデル212に登録する。事前周期分析部211は、一定期間或いは周期的に事前周期分析処理を行う他、分類部213(後述)により分類ができなかった入力パルス列に対して事前周期分析を行う。
 周期パターンモデル212は、事前周期分析部211によって分析された周期パターンの種別を入力パルス列に対応付けて登録する。そして、周期パターンモデル212は、事前周期分析部211によって分析された周期パターンの種別と入力パルス列との対応関係を学習し、入力パルス列が入力されると、この入力パルス列に対応する周期パターンの種別を出力する。
 分類部213は、周期パターンモデル212を用いて、周期推定装置210が入力を受け付けた次の推定対象の入力パルス列の周期パターンの種別を分類する。分類部213は、次の推定対象の入力パルス列を周期パターンモデル212に入力し、周期パターンモデル212の出力を受けることによって、次の推定対象の入力パルス列の周期パターンの種別を分類する。
 設定部214は、分類部213が分類した周期パターンの種別に応じて、次の推定対象の入力パルス列に対する周期推定方式を設定する。設定部214は、分類部213が分類した周期パターンの種別によっては、推定部10Aによる処理を一部限定した周期推定方法を設定する。
[周期推定処理の流れ]
 次に、図18を参照して、周期推定装置210における入力パルス列に対する周期判定処理の流れを説明する。図18は、図17に示す周期推定装置210における入力パルス列に対する周期判定処理の流れを説明する図である。
 図18の(a)に示すように、周期推定装置210は、事前周期分析を行う。具体的には、時系列データである入力パルス信号の入力を周期推定装置210が受け付けると(ステップS101)、事前周期分析部211は、推定部10Aを入力パルス列に対する周期判定処理を実施させることによって、この入力パルス列の周期パターンを分析する事前周期分析を行う(ステップS102)。図19は、事前周期分析の処理内容を説明する図である。
 図19に示すように、推定部10Aは、事前周期分析時には、図16に示す第1の実施形態に係る周期推定処理と同様に、入力された時系列データD0(図19の(1)参照)に対し、候補周期抽出部11による候補周期抽出(図19の(2)およびステップS102-1)、フィルタ部12によるノイズフィルタ(ステップS102-2)と、周期検出部13による周期検出(ステップS102-3)、周期パルス分離部14による周期通信分離(図19の(5)およびステップS102-4)、および、周期分析継続判定部15による継続判定処理を実施する。フィルタ部12は、フィルタF1,F2を適用してノイズフィルタを行う(図19の(3)参照)。周期検出部13は、PRI変換による早期中断判定と、ジッタ補正シーケンシャルサーチとを行う(図19の(4)参照)。図19に示す処理を行うことによって、推定部10Aは、通信周期の有無の判定や周期値の抽出を検知する。
 図20は、周期パターンの一例を示す図である。事前周期分析部211は、推定部10Aによる検知結果を基に、入力パルス列の周期パターンが、周期通信型(図18の(1)および図20の(1)参照)、非周期通信型(図18の(2)および図20の(2)参照)、周期通信と非周期通信とを含む混合型(図18の(3)および図20の(3)参照)のいずれであるかを分析する。そして、事前周期分析部211は、分析した周期パターンの種別を入力パルス列に対応付けて周期パターンモデル212に登録する。そして、周期パターンモデル212は、事前周期分析時に分析された周期パターンの種別と入力パルス列との対応関係を学習する。
 そして、推定時では、周期推定装置210は、事前周期分析時に学習した正常時の周期パターンから逸脱した通信を検知する。まず、図18の(b)に示すように、周期推定装置210は、周期推定装置210が入力を受け受けた次の推定対象の入力パルス列については(ステップS110)、分類部213が、周期パターンモデル212を用いて周期パターンを分類し(ステップS111)、設定部214が、分類結果に応じて周期推定方式を設定する(ステップS120~S140)。
 具体的には、設定部120は、次の入力パルス列の周期パターンが、周期通信型である場合には、周期通信型推定方法を設定する(ステップS120)。また、設定部120は、次の入力パルス列の周期パターンが、非周期通信型である場合には、非周期通信型推定方法を設定する(ステップS130)。また、設定部120は、次の入力パルス列の周期パターンが、周期的な通信パターンと非周期である通信パターンとを含む混合型である場合には、混合型推定方法を設定する(ステップS140)。
[周期通信型推定方法]
 設定部214が設定する各推定方法について説明する。まず、図21を参照して、周期通信型推定方法について説明する。図21は、周期通信型推定方法の処理内容を説明する図である。周期通信型推定方法は、図16に示す処理と比して、周期検出部13によるシーケンシャルサーチを用いた周期パルス列の検出処理と周期パルス分離部14による処理とに限定した周期推定方法である。
 図21に示すように、次の入力パルス列である時系列データD1(図21の(1)参照)は、周期的なパターンであるため、周期検出部13によるシーケンシャルサーチを用いた周期パルス列の検出処理(図21の(2)およびステップS122)と、周期パルス分離部14による周期通信分離(図21の(3)およびステップS123)とに限定した周期通信型推定方法で、検知が可能である。
 図22および図23は、検知対象の通信を説明する図である。周期通信型推定方法によれば、周期推定装置210は、周期外通信(図22の(1)参照)や周期通信消失(図23の(1)参照)を検出することができる。周期外通信は、定期的なデータ取得通信への攻撃パケットの挿入などに起因すると考えられる。周期通信消失は、ARP(Address Resolution Protocol)スプーフィングやシステムダウン攻撃によるパケット未到達などの発生に起因すると考えられる。
 また、周期通信型推定方法を適用した場合には、候補周期抽出部11による処理、フィルタ部12による処理、周期検出部13におけるPRI変換処理を省略するため、図16に示す処理と比して高速処理が可能になる。
[非周期通信型推定方法]
 続いて、図24を参照して、非周期通信型推定方法について説明する。図24は、非周期通信型推定方法の処理内容を説明する図である。非周期通信型推定方法は、図16に示す処理と比して、候補周期抽出部11による処理と、周期検出部13による部分的シーケンシャルサーチを用いた周期パルス列の検出処理と、周期パルス分離部14による処理とに限定した周期推定方法である。
 図24に示すように、次の入力パルス列である時系列データD2(図24の(1)参照)は、非周期なパターンであるため、候補周期抽出部11によるSDIF法(図24の(2)参照)を用いた候補周期抽出(図21のステップS132)と、周期検出部13による部分的シーケンシャルサーチを用いた周期パルス列の検出処理(図24の(3)およびステップS133)と、周期パルス分離部14による周期通信分離(図24の(4)およびステップS134)とに限定した非周期通信型推定方法で、検知が可能である。
 図25は、検知対象の通信を説明する図である。非周期通信型推定方法を適用した場合には、シーケンシャルサーチでの部分的な周期検索を繰り返すことで、観測期間中の一部期間でのみ発生した周期通信も検知が可能である。言い換えると、図25に示すように、非周期通信型推定方法によれば、周期推定装置210は、新たな周期通信の出現を検出可能である。このような新たな周期通信の出現は、悪意を持った制御指令の継続送信の発生に起因すると考えられる。
 また、非周期通信型推定方法を適用した場合には、フィルタ部12による処理、周期検出部13におけるPRI変換処理を省略するため、図16に示す処理と比して高速処理が可能になる。
[混合型推定方法]
 続いて、図26を参照して、混合型推定方法について説明する。図26は、混合型推定方法の処理内容を説明する図である。混合型推定方法は、図16に示す処理と同様の処理を行う。すなわち、入力された時系列データD3(図26の(1)参照)に対し、SDIF法を用いた候補周期抽出部11による候補周期抽出(図26の(2)およびステップS142)と、フィルタ部12によるノイズフィルタ(ステップS143)と、周期検出部13によるPRI変換およびシーケンシャルサーチを用いた周期検出(図26の(3)およびステップS144)、および、周期パルス分離部14による周期通信分離(図26の(4)およびステップS145)を実施する。
 この混合型推定方法を適用した場合、周期および非周期通信を含む複雑なパターンの通信の検出にも対応が可能であり、観測期間中の一部期間でのみ発生した新たな周期通信も検知が可能である。
[検知結果]
 周期推定装置210を用いて検知を行った結果を示す。図27は、図17に示す周期推定装置210による検知結果の一例を示す図である。図27に示すように、周期推定装置210は、事前周期分析で学習した周期パターンモデル212を用いて、周期パターンを分類してから、周期推定を行う。このため、周期推定装置210では、図27に示すように、フローの情報のうち、指定した検知粒度(例えば、送信元アドレス(Src)、送信先アドレス(dst)、コマンド(cmd))ごとに、分析結果を出力することができる。また、周期推定装置210では、入力パルス信号を周期パターンに分類してから、周期推定を行うことで、周期パターンに応じて、周期外通信、周期通信消失または新周期発生に分けて、通信異常を検知できる。
[事前周期分析時における処理手順]
 次に、周期推定装置210による事前周期分析時における処理手順について説明する。図28は、第2の実施形態における事前周期分析時における周期推定処理の処理手順の一例を示すフローチャートである。
 周期推定装置210は、入力パルス信号として、時系列データの入力を受け付けると(ステップS201)、入力を受けつけた時系列データに対し、事前周期分析処理を行う(ステップS202)。周期推定装置210は、事前周期分析処理として、図16に示すステップS1~ステップS17と同じ処理を行う。そして、事前周期分析部211は、入力パルス列の周期パターンの種別を分析し、分析した周期パターンの種別を入力パルス列に対応付けて周期パターンモデル212に登録する(ステップS203)。周期パターンモデル212では、周期パターンの種別と入力パルス列との対応関係を学習する。
[推定処理の処理手順]
 次に、事前周期分析時に学習した正常時の周期パターンから逸脱した通信を検知する推定時の処理手順について説明する。図29は、第2の実施形態2における推定時における周期推定処理の処理手順の一例を示すフローチャートである。
 周期推定装置210は、次の入力パルス列として、時系列データの入力を受け付けると(ステップS211)、分類部213が、この時系列データに対し、周期パターンモデル212を用いて周期パターンを分類する(ステップS212)。
 分類結果が周期通信型である場合(ステップS213:周期通信)、設定部214は、周期通信型推定方法を設定する(ステップS214)。推定部10Aは、周期通信型推定方法を適用して、次の入力パルス列に対する周期推定処理を行う(ステップS215)。
 また、分類結果が非周期通信型である場合(ステップS213:非周期通信)、設定部214は、非周期通信型推定方法を設定する(ステップS216)。推定部10Aは、周期通信型推定方法を適用して、次の入力パルス列に対する周期推定処理を行う(ステップS217)。
 また、分類結果が周期的な通信パターンと非周期である通信パターンとを含む混合型である場合(ステップS213:周期的および非周期通信)、設定部214は、混合型推定方法を設定する(ステップS218)。推定部10Aは、混合型推定方法を適用して、次の入力パルス列に対する周期推定処理を行う(ステップS219)。そして、周期推定装置210は、推定部10Aによる検知結果を出力して(ステップS220)、この入力パルス列に対する周期推定処理を終了する。なお、ステップS213において、入力パルス列がいずれの入力パターンにも分類されない場合には、周期推定装置210は、この入力パルス列に対し、図28に示すステップS202,S203を実行する。
[第2の実施形態の効果]
 このように、第2の実施形態に係る周期推定装置210は、入力パルス列に対し、事前周期分析を実施させることによって、入力パルス列の周期パターンの種別を分析し、分析した周期パターンの種別を前記入力パルス列に対応付けて周期パターンモデルに登録する。そして、周期推定装置210は、周期パターンモデルを用いて、次の推定対象の入力パルス列の周期パターンの種別を分類し、分類した周期パターンの種別によっては、周期推定処理の一部の処理に限定した方法を、次の推定対象の入力パルス列に対する周期推定方式を設定する。したがって、周期推定装置210は、推定対象の入力パルス列の周期パターンに応じて周期推定処理の処理内容を最適化することで、第1の実施形態よりも、周期推定処理の高速化を図ることができる。また、周期推定装置210は、周期パターンを分類してから周期推定を行うため、フローの情報のうち、最適な検知粒度での検知も実現できる。
[システム構成等]
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUやGPUおよび当該CPUやGPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
 また、上記実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
 また、上記実施形態において説明した周期推定装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施形態に係る周期推定装置10が実行する処理をコンピュータが実行可能な言語で記述したパルス列信号の周期推定プログラムを作成することもできる。この場合、コンピュータがパルス列信号の周期推定プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるパルス列信号の周期推定プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたパルス列信号の周期推定プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。
 図30は、パルス列信号の周期推定プログラムを実行するコンピュータの一例を示す図である。図30に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
 メモリ1010は、図30に例示するように、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図30に例示するように、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、図30に例示するように、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、図30に例示するように、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、図30に例示するように、例えばディスプレイ1130に接続される。
 ここで、図30に例示するように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の、パルス列信号の周期推定プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1090に記憶される。
 また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、各種処理手順を実行する。
 なお、パルス列信号の周期推定プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、パルス列信号の周期推定プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
 上記の実施形態やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
 10,210 周期推定装置
 10A 推定部
 11 候補周期抽出部
 12 フィルタ部
 13 周期検出部
 14 周期パルス分離部
 15 周期分析継続判定部
 211 事前周期分析部
 212 周期パターンモデル
 213 分類部
 214 設定部

Claims (13)

  1.  入力パルス列から周期判定の対象となる候補周期を抽出する候補周期抽出部と、
     抽出された前記候補周期の一部を用いて、実周期として存在するか否かを判定し、前記候補周期が実周期として存在しないと判定した場合、前記候補周期に対する周期判定を中断するフィルタ部と、
     実周期として存在すると判定された前記候補周期に対して周期判定を行うとともに、前記候補周期に基づく擬似周期パルス列を生 成し、生成した前記擬似周期パルス列と前記入力パルス列との差分値に基づいて、前記擬似周期パルス列のパルス位置を調整し、前記周期判定および前記調整の結果に応じて周期パルス列の検出を行う周期検出部と、
     検出された前記周期パルス列を前記入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として前記候補周期抽出部に入力する周期パルス分離部と、
     前記候補周期の抽出に関するパラメータ、および、前記新たな入力パルス列のうち、1つまたは複数に基づいて、周期の分析を継続するか否かを判定する周期分析継続判定部と、
     を備えることを特徴とするパルス列信号の周期推定装置。
  2.  前記候補周期抽出部は、特定の階差に基づき前記入力パルス列の各パルス間隔を算出してヒストグラムを生成し、生成した前記ヒストグラムにおいて、所定の閾値以上の回数出現したパルス間隔を前記候補周期として抽出する、
     ことを特徴とする請求項1に記載のパルス列信号の周期推定装置。
  3.  前記フィルタ部は、下記の数式(1)が成り立つ場合、前記候補周期が実周期として存在しないと判定する、
     ことを特徴とする請求項1または2に記載のパルス列信号の周期推定装置。
    Figure JPOXMLDOC01-appb-M000001
     ただし、前記数式(1)において、Tは入力パルス列の観測期間を示し、τは候補周期の値を示し、γは定数を示し、Jcは許容するジッタ率を示す。
  4.  前記フィルタ部は、初期パルス位置をp、パルス間隔を候補周期の値τ、許容するジッタ率をJcとして、パルス幅を2Jcτとした総パルス数Xの擬似周期パルス列q(t)を生成し、前記入力パルス列をg(t)とした場合に、時刻tを0から前記入力パルス列g(t)の観測期間Tまで変化させた際に、前記擬似周期パルス列q(t)と前記入力パルス列g(t)との重複パルス数をカウントし、前記重複パルス数が前記総パルス数X以上である場合、候補周期の値τを前記周期検出部に出力し、前記重複パルス数が前記総パルス数Xより小さい場合、前記pの値を変化させて前記重複パルス数を再度カウントし、与えられた全てのpの値に対して前記重複パルス数が前記総パルス数Xより小さくなる場合、前記候補周期が実周期として存在しないと判定する、
     ことを特徴とする請求項1~3のいずれか1つに記載のパルス列信号の周期推定装置。
  5.  前記周期検出部は、前記周期判定において、PRI変換の実行中に、下記の数式(2)が成り立つ場合、前記PRI変換を中断する、
     ことを特徴とする請求項1~4のいずれか1つに記載のパルス列信号の周期推定装置。
    Figure JPOXMLDOC01-appb-M000002
     ただし、前記数式(2)において、Dnはn番目のパルスまで分析を進めた場合のPRI変換のスペクトルを示し、Tは入力パルス列の観測期間を示し、TOAnはn番目のパルスの出現時刻を示し、τは候補周期の値を示し、Thは周期判定の閾値を示す。
  6.  前記周期検出部は、初期パルス位置をp、パルス間隔を前記フィルタ部から入力された候補周期の値τ、許容するジッタ率をJcとして、パルス幅を2Jcτとした擬似周期パルス列q(t)を生成し、前記入力パルス列をg(t)とした場合に、時刻tを0から前記入力パルス列g(t)の観測期間Tまで変化させた際に、前記擬似周期パルス列q(t)と前記入力パルス列g(t)とが重複した場合、重複パルス数をカウントするとともに、重複パルスについて、前記入力パルス列g(t)の重複したパルスの位置から、前記擬似周期パルス列q(t)の重複したパルスの中心位置を引いた差分値δn’を算出し、算出した差分値δn’と、差分値δn’の1つ前の移動値δn-1とに基づいて、移動値δnを算出し、直前の前記擬似周期パルス列q(t)の重複したパルスの次のパルス位置を前記移動値δnだけ並行移動させ、最終的な前記重複パルス数が所定値以上である場合、入力された前記候補周期の値τに基づいて、前記周期パルス列の検出を行い、最終的な前記重複パルス数が所定値より小さい場合、前記pの値を変化させて前記重複パルス数を再度カウントし、与えられた全てのpの値に対して前記重複パルス数が前記所定値より小さくなる場合、前記候補周期の値τが実周期として存在しないと判定する、
     ことを特徴とする請求項1~5のいずれか1つに記載のパルス列信号の周期推定装置。
  7.  前記入力パルス列に対し、前記候補周期抽出部による処理と、前記フィルタ部による処理と、前記周期検出部による処理と、前記周期パルス分離部による処理と、前記周期分析継続判定部による処理と実施させることによって、前記入力パルス列の周期パターンの種別を分析し、分析した周期パターンの種別を前記入力パルス列に対応付けて周期パターンモデルに登録する分析部と、
     前記周期パターンモデルを用いて、次の推定対象の入力パルス列の周期パターンの種別を分類する分類部と、
     前記分類部が分類した周期パターンの種別に応じて、前記次の推定対象の入力パルス列に対する周期推定方式を設定する設定部と、
     を有することを特徴とする請求項1~6のいずれか1つに記載のパルス列信号の周期推定装置。
  8.  前記周期パターンの種別は、通信パターンが周期的である周期通信型、通信パターンが非周期である非周期通信型、または、周期的な通信パターンと非周期である通信パターンとを含む混合型であることを特徴とする請求項7に記載のパルス列信号の周期推定装置。
  9.  前記設定部は、前記分類部が前記周期通信型であると分類した前記次の推定対象の入力パルス列に対し、前記周期検出部によるシーケンシャルサーチを用いた周期パルス列の検出処理と、前記周期パルス分離部による処理とに限定した周期推定方法を設定することを特徴とする請求項8に記載のパルス列信号の周期推定装置。
  10.  前記設定部は、前記分類部が前記非周期通信型であると分類した前記次の推定対象の入力パルス列に対し、前記候補周期抽出部による処理と、前記周期検出部による部分的シーケンシャルサーチを用いた周期パルス列の検出処理と、前記周期パルス分離部による処理とに限定した周期推定方法を設定することを特徴とする請求項8に記載のパルス列信号の周期推定装置。
  11.  前記設定部は、前記分類部が前記混合型であると分類した前記次の推定対象の入力パルス列に対し、前記候補周期抽出部による処理と、前記フィルタ部による処理と、前記周期検出部による処理と、前記周期パルス分離部による処理と、前記周期分析継続判定部による処理とを実施する周期推定方法を設定することを特徴とする請求項8に記載のパルス列信号の周期推定装置。
  12.  パルス列信号の周期推定装置が実行するパルス列信号の周期推定方法であって、
     入力パルス列から周期判定の対象となる候補周期を抽出する候補周期抽出工程と、
     抽出された前記候補周期の一部を用いて、実周期として存在するか否かを判定し、前記候補周期が実周期として存在しないと判定した場合、前記候補周期に対する周期判定を中断するフィルタ工程と、
     実周期として存在すると判定された前記候補周期に対して周期判定を行い、前記周期判定の結果に応じた周期パルス列の検出を行う周期検出工程と、
     検出された前記周期パルス列を前記入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として前記候補周期抽出工程に入力する周期パルス分離工程と、
     前記候補周期の抽出に関するパラメータ、および、前記新たな入力パルス列のうち、1つまたは複数に基づいて、周期の分析を継続するか否かを判定する周期分析継続判定工程と、
     を含むことを特徴とするパルス列信号の周期推定方法。
  13.  入力パルス列から周期判定の対象となる候補周期を抽出する候補周期抽出ステップと、
     抽出された前記候補周期の一部を用いて、実周期として存在するか否かを判定し、前記候補周期が実周期として存在しないと判定した場合、前記候補周期に対する周期判定を中断するフィルタステップと、
     実周期として存在すると判定された前記候補周期に対して周期判定を行い、前記周期判定の結果に応じた周期パルス列の検出を行う周期検出ステップと、
     検出された前記周期パルス列を前記入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として前記候補周期抽出ステップに入力する周期パルス分離ステップと、
     前記候補周期の抽出に関するパラメータ、および、前記新たな入力パルス列のうち、1つまたは複数に基づいて、周期の分析を継続するか否かを判定する周期分析継続判定ステップと、
     をコンピュータに実行させることを特徴とするパルス列信号の周期推定プログラム。
PCT/JP2020/006627 2019-02-21 2020-02-19 パルス列信号の周期推定装置、パルス列信号の周期推定方法およびパルス列信号の周期推定プログラム WO2020171145A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/430,326 US11846662B2 (en) 2019-02-21 2020-02-19 Pulse train signal cycle estimation device, pulse train signal cycle estimation method, and pulse train signal cycle estimation program
JP2021502111A JP7070790B2 (ja) 2019-02-21 2020-02-19 パルス列信号の周期推定装置、パルス列信号の周期推定方法およびパルス列信号の周期推定プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-029890 2019-02-21
JP2019029890 2019-02-21

Publications (1)

Publication Number Publication Date
WO2020171145A1 true WO2020171145A1 (ja) 2020-08-27

Family

ID=72144263

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/006627 WO2020171145A1 (ja) 2019-02-21 2020-02-19 パルス列信号の周期推定装置、パルス列信号の周期推定方法およびパルス列信号の周期推定プログラム

Country Status (3)

Country Link
US (1) US11846662B2 (ja)
JP (1) JP7070790B2 (ja)
WO (1) WO2020171145A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10570728B2 (en) 2015-11-12 2020-02-25 Halliburton Energy Services, Inc. Downhole fluid characterization methods and systems using multi-electrode configurations
WO2022244254A1 (ja) * 2021-05-21 2022-11-24 日本電信電話株式会社 定期フロー検出装置、遅延推定装置、定期フロー検出方法及びプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11118846A (ja) * 1997-10-20 1999-04-30 Japan Radio Co Ltd 周波数検出装置
JP2002098722A (ja) * 2000-09-26 2002-04-05 Nissin Electric Co Ltd 商用周波数識別方法及び演算処理装置
JP2002156396A (ja) * 2000-11-17 2002-05-31 Advantest Corp 時間・周波数測定装置
JP2006003327A (ja) * 2004-06-21 2006-01-05 Anritsu Corp 周波数検出方法、サンプリング装置および波形観測システム
WO2009093316A1 (ja) * 2008-01-23 2009-07-30 Anritsu Corporation 被測定信号の繰り返し周波数検出方法及びそれを用いるサンプリング装置並びに波形観測システム
WO2009122594A1 (ja) * 2008-04-04 2009-10-08 アンリツ株式会社 基本波ビート成分検出方法及びそれを用いる被測定信号のサンプリング装置並びに波形観測システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5381150A (en) * 1993-05-07 1995-01-10 Trw Inc. Partial intercept LPI (low probability of intercept) reconnaissance system
US6242918B1 (en) * 1996-11-15 2001-06-05 The United States Of America As Represented By The Secretary Of The Navy Apparatus and method for reducing the recovery period of a probe in pulsed nuclear quadrupole resonance and nuclear magnetic resonance detection systems by varying the impedance of a load to reduce total Q factor
WO2007029702A1 (ja) * 2005-09-06 2007-03-15 Nippon Telegraph And Telephone Corporation 無線送信装置と無線受信装置および無線送信方法と無線受信方法ならびに無線通信システムと無線通信方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11118846A (ja) * 1997-10-20 1999-04-30 Japan Radio Co Ltd 周波数検出装置
JP2002098722A (ja) * 2000-09-26 2002-04-05 Nissin Electric Co Ltd 商用周波数識別方法及び演算処理装置
JP2002156396A (ja) * 2000-11-17 2002-05-31 Advantest Corp 時間・周波数測定装置
JP2006003327A (ja) * 2004-06-21 2006-01-05 Anritsu Corp 周波数検出方法、サンプリング装置および波形観測システム
WO2009093316A1 (ja) * 2008-01-23 2009-07-30 Anritsu Corporation 被測定信号の繰り返し周波数検出方法及びそれを用いるサンプリング装置並びに波形観測システム
WO2009122594A1 (ja) * 2008-04-04 2009-10-08 アンリツ株式会社 基本波ビート成分検出方法及びそれを用いる被測定信号のサンプリング装置並びに波形観測システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10570728B2 (en) 2015-11-12 2020-02-25 Halliburton Energy Services, Inc. Downhole fluid characterization methods and systems using multi-electrode configurations
WO2022244254A1 (ja) * 2021-05-21 2022-11-24 日本電信電話株式会社 定期フロー検出装置、遅延推定装置、定期フロー検出方法及びプログラム

Also Published As

Publication number Publication date
JP7070790B2 (ja) 2022-05-18
JPWO2020171145A1 (ja) 2021-10-14
US20220128607A1 (en) 2022-04-28
US11846662B2 (en) 2023-12-19

Similar Documents

Publication Publication Date Title
WO2020171145A1 (ja) パルス列信号の周期推定装置、パルス列信号の周期推定方法およびパルス列信号の周期推定プログラム
CN109507647B (zh) 基于pri直方图的雷达信号分选方法
JP6420422B2 (ja) 複数の関心領域及び信頼スコアを使用する信号機検出
EP2743854B1 (en) Clustering processing method and device for virus files
US20150256552A1 (en) Imalicious code detection apparatus and method
US20200012784A1 (en) Profile generation device, attack detection device, profile generation method, and profile generation computer program
CN106850511B (zh) 识别访问攻击的方法及装置
CN107402851B (zh) 一种数据恢复控制方法及装置
CN112668498A (zh) 空中辐射源个体智能增量识别方法、系统、终端及应用
CN109257252B (zh) 一种判断网络拥塞状态的方法
US9696717B2 (en) Apparatus and method of segmenting sensor data output from a semiconductor manufacturing facility
AU2019288014B2 (en) Evaluation device and evaluation method
US10887329B2 (en) Cluster-based precision mitigation of network attacks
CN106877901B (zh) 一种低噪比直扩信号的检测方法
CN112198481B (zh) 一种脉冲丢失混叠情况下的pri抖动雷达信号分选方法
KR102292968B1 (ko) 기계학습을 이용한 고속의 네트워크 침입탐지 방법
CN106201949B (zh) 眼图抖动的分析方法
CN109873822B (zh) 基于北斗亚纳秒级高精度授时的防火墙规则变化的检测装置及方法
WO2020184141A1 (ja) パルス列信号の周期推定装置、パルス列信号の周期推定方法およびパルス列信号の周期推定プログラム
EP2566078B1 (en) Determining a quality of a clock signal
CN113839963A (zh) 基于人工智能与大数据的网络安全漏洞智能检测方法
CN111123216A (zh) 一种基于雷达信号直方图的频率引导方法
CN113591734A (zh) 一种基于改进nms算法的目标检测方法
JP7302660B2 (ja) 学習装置、検知システム、学習方法及び学習プログラム
WO2017118429A1 (zh) 一种通信网络的可靠性确定方法及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20760162

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021502111

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20760162

Country of ref document: EP

Kind code of ref document: A1