Documentation ¶
Index ¶
- Constants
- Variables
- func ApproximateEntropyProto(bits []bool, m int) (float64, float64)
- func ApproximateEntropyTest(bits []bool) (float64, float64)
- func ApproximateEntropyTestBytes(data []byte, m int) (float64, float64)
- func AutocorrelationProto(bits []bool, d int) (float64, float64)
- func AutocorrelationTest(bits []bool, d int) (float64, float64)
- func AutocorrelationTestBytes(data []byte, d int) (float64, float64)
- func B2Byte(arr []bool) byte
- func B2bit(b byte) []bool
- func B2bitArr(src []byte) []bool
- func BinaryDerivativeProto(bits []bool, k int) (float64, float64)
- func BinaryDerivativeTest(bits []bool, k int) (float64, float64)
- func BinaryDerivativeTestBytes(data []byte, k int) (float64, float64)
- func CumulativeTest(bits []bool, forward bool) (float64, float64)
- func CumulativeTestBytes(data []byte, forward bool) (float64, float64)
- func DiscreteFourierTransformTest(bits []bool) (float64, float64)
- func DiscreteFourierTransformTestBytes(data []byte) (float64, float64)
- func FrequencyWithinBlockProto(bits []bool, m int) (float64, float64)
- func FrequencyWithinBlockTest(bits []bool) (float64, float64)
- func FrequencyWithinBlockTestBytes(data []byte, m int) (float64, float64)
- func GroupBit() []bool
- func GroupSecBit() []bool
- func Igamc(a, x float64) float64
- func LinearComplexityProto(bits []bool, m int) (float64, float64)
- func LinearComplexityTest(bits []bool) (float64, float64)
- func LinearComplexityTestBytes(data []byte, m int) (float64, float64)
- func LongestRunOfOnesInABlockProto(bits []bool, checkOne bool) (float64, float64)
- func LongestRunOfOnesInABlockTest(bits []bool, checkOne bool) (float64, float64)
- func LongestRunOfOnesInABlockTestBytes(data []byte, checkOne bool) (float64, float64)
- func MatrixRankProto(bits []bool, M, Q int) (float64, float64)
- func MatrixRankTest(bits []bool) (float64, float64)
- func MatrixRankTestBytes(data []byte, M, Q int) (float64, float64)
- func MaurerUniversalTest(bits []bool) (float64, float64)
- func MaurerUniversalTestBytes(data []byte) (float64, float64)
- func MonoBitFrequencyTest(bits []bool) (float64, float64)
- func MonoBitFrequencyTestBytes(data []byte) (float64, float64)
- func OverlappingTemplateMatchingProto(bits []bool, m int) (p1 float64, p2 float64, q1 float64, q2 float64)
- func OverlappingTemplateMatchingTest(bits []bool) (p1 float64, p2 float64, q1 float64, q2 float64)
- func OverlappingTemplateMatchingTestBytes(data []byte, m int) (p1 float64, p2 float64, q1 float64, q2 float64)
- func PokerProto(bits []bool, m int) (float64, float64)
- func PokerTest(bits []bool) (float64, float64)
- func PokerTestBytes(data []byte, m int) (float64, float64)
- func ReadGroup(filename string) []bool
- func ReadGroupInASCIIFormat(filename string) []bool
- func RunsDistributionTest(bits []bool) (float64, float64)
- func RunsDistributionTestBytes(data []byte) (float64, float64)
- func RunsTest(bits []bool) (float64, float64)
- func RunsTestBytes(data []byte) (float64, float64)
- type TestFunc
- type TestItem
- type TestResult
- func ApproximateEntropy(data []byte) *TestResult
- func Autocorrelation(data []byte) *TestResult
- func BinaryDerivative(data []byte) *TestResult
- func Cumulative(data []byte) *TestResult
- func DiscreteFourierTransform(data []byte) *TestResult
- func FrequencyWithinBlock(data []byte) *TestResult
- func LinearComplexity(data []byte) *TestResult
- func LongestRunOfOnesInABlock(data []byte) *TestResult
- func MatrixRank(data []byte) *TestResult
- func MaurerUniversal(data []byte) *TestResult
- func MonoBitFrequency(data []byte) *TestResult
- func OverlappingTemplateMatching(data []byte) *TestResult
- func Poker(data []byte) *TestResult
- func Runs(data []byte) *TestResult
- func RunsDistribution(data []byte) *TestResult
Constants ¶
const ( MAXLOG float64 = 7.09782712893383996732224e2 // log(MAXNUM) MACHEP float64 = 1.11022302462515654042e-16 )
const Alpha = 0.01
Alpha 显著性水平α
const AlphaT float64 = 0.0001
AlphaT 分布均匀性的显著性水平
Variables ¶
var TestMethodArr = []TestItem{ {"单比特频数检测", MonoBitFrequency}, {"块内频数检测", FrequencyWithinBlock}, {"扑克检测", Poker}, {"重叠子序列检测", OverlappingTemplateMatching}, {"游程总数检测", Runs}, {"游程分布检测", RunsDistribution}, {"块内最大“1”游程检测", LongestRunOfOnesInABlock}, {"二元推导检测", BinaryDerivative}, {"自相关检测", Autocorrelation}, {"矩阵秩检测", MatrixRank}, {"累加和检测", Cumulative}, {"近似熵检测", ApproximateEntropy}, {"线型复杂度检测", LinearComplexity}, {"通用统计检测", MaurerUniversal}, {"离散傅里叶检测", DiscreteFourierTransform}, }
TestMethodArr 测试方法序列
Functions ¶
func ApproximateEntropyProto ¶
ApproximateEntropyProto 近似熵检测 bits: 待检测序列 m: m长度
func ApproximateEntropyTest ¶
ApproximateEntropyTest 近似熵检测,m=5
func ApproximateEntropyTestBytes ¶
ApproximateEntropyTestBytes 近似熵检测
func AutocorrelationProto ¶
AutocorrelationProto 自相关检测 bits: 待检测序列 d: d=1,2,8,16
func AutocorrelationTest ¶
AutocorrelationTest 自相关检测,d=16
func AutocorrelationTestBytes ¶
AutocorrelationTestBytes 自相关检测 data: 待检测序列 d: d=1,2,8,16
func BinaryDerivativeProto ¶
BinaryDerivativeProto 二元推导检测 bits: 待检测序列 k: 重复次数,k=3,7
func BinaryDerivativeTest ¶
BinaryDerivativeTest 二元推导检测, k=7
func BinaryDerivativeTestBytes ¶
BinaryDerivativeTestBytes 二元推导检测 bits: 待检测序列 k: 重复次数,k=3,7
func CumulativeTest ¶
CumulativeTest 累加和检测 forward: true 前向, false 后向
func CumulativeTestBytes ¶
CumulativeTestBytes 累加和检测 forward: true 前向, false 后向
func DiscreteFourierTransformTest ¶
DiscreteFourierTransformTest 离散傅里叶检测
func DiscreteFourierTransformTestBytes ¶
DiscreteFourierTransformTestBytes 离散傅里叶检测
func FrequencyWithinBlockProto ¶
FrequencyWithinBlockProto 块内频数检测
func FrequencyWithinBlockTest ¶
FrequencyWithinBlockTest 块内频数检测, m = 10000 for bits = 1000_000
func FrequencyWithinBlockTestBytes ¶
FrequencyWithinBlockTestBytes 块内频数检测
func LinearComplexityProto ¶
LinearComplexityProto 线型复杂度检测 bits: 待检测序列 m: m长度
func LinearComplexityTest ¶
LinearComplexityTest 线型复杂度检测,m=500
func LinearComplexityTestBytes ¶
LinearComplexityTestBytes 线型复杂度检测 data: 待检测序列 m: m长度
func LongestRunOfOnesInABlockProto ¶
LongestRunOfOnesInABlockProto 块内最大游程检测 bits: 待检测序列 m: m长度, m = 10000, k=6 for bits = 1000_000
func LongestRunOfOnesInABlockTest ¶
LongestRunOfOnesInABlockTest 块内最大游程检测,m=10000 for bits = 1000_000
func LongestRunOfOnesInABlockTestBytes ¶
LongestRunOfOnesInABlockTestBytes 块内最大游程检测
func MatrixRankProto ¶
MatrixRankProto 矩阵秩检测 bits: 待检测序列 M: 矩阵行数 Q: 矩阵列隶属
func MatrixRankTest ¶
MatrixRankTest 矩阵秩检测,M=Q=32
func MatrixRankTestBytes ¶
MatrixRankTestBytes 矩阵秩检测
func MaurerUniversalTest ¶
MaurerUniversalTest Maurer通用统计检测方法
func MaurerUniversalTestBytes ¶
MaurerUniversalTestBytes Maurer通用统计检测方法
func MonoBitFrequencyTest ¶
MonoBitFrequencyTest 单比特频数检测
func MonoBitFrequencyTestBytes ¶
MonoBitFrequencyTestBytes 单比特频数检测
func OverlappingTemplateMatchingProto ¶
func OverlappingTemplateMatchingProto(bits []bool, m int) (p1 float64, p2 float64, q1 float64, q2 float64)
OverlappingTemplateMatchingProto 重叠子序列检测方法 bits: 检测序列 m: m长度,m=3,5 return:
p1: P-value1 p2: P-value2
func OverlappingTemplateMatchingTest ¶
OverlappingTemplateMatchingTest 重叠子序列检测方法,m=5 bits: 检测序列 return:
p1: P-value1 p2: P-value2
func OverlappingTemplateMatchingTestBytes ¶
func OverlappingTemplateMatchingTestBytes(data []byte, m int) (p1 float64, p2 float64, q1 float64, q2 float64)
OverlappingTemplateMatchingTestBytes 重叠子序列检测方法 data: 检测序列 m: m长度,m=2,5 return:
p1: P-value1 p2: P-value2
func PokerProto ¶
PokerProto 扑克检测 bits: 检测序列 m: m长度,m=4,8
func PokerTestBytes ¶
PokerTestBytes 扑克检测 data: 检测序列 m: m长度,m=4,8
func ReadGroupInASCIIFormat ¶
ReadGroupInASCIIFormat
func RunsDistributionTest ¶
RunsDistributionTest 游程分布检测
func RunsDistributionTestBytes ¶
RunsDistributionTestBytes 游程分布检测
Types ¶
type TestResult ¶
type TestResult struct { Name string // 检测名称 P float64 // 检测结果P_value1 Q float64 // 检测结果Q_value1 P2 float64 // 检测结果P_value2 Q2 float64 // 检测结果Q_value2 Pass bool // 是否大于等于显著水平 }
TestResult 检测结果
func ApproximateEntropy ¶
func ApproximateEntropy(data []byte) *TestResult
ApproximateEntropy 近似熵检测,m=5
func DiscreteFourierTransform ¶
func DiscreteFourierTransform(data []byte) *TestResult
DiscreteFourierTransform 离散傅里叶检测
func FrequencyWithinBlock ¶
func FrequencyWithinBlock(data []byte) *TestResult
FrequencyWithinBlock 块内频数检测, m = 10000 for bits = 1000_000
func LinearComplexity ¶
func LinearComplexity(data []byte) *TestResult
LinearComplexity 线型复杂度检测,m=500
func LongestRunOfOnesInABlock ¶
func LongestRunOfOnesInABlock(data []byte) *TestResult
LongestRunOfOnesInABlock 块内最大游程检测,m=10000, k=6 for bits = 1000_000
func OverlappingTemplateMatching ¶
func OverlappingTemplateMatching(data []byte) *TestResult
OverlappingTemplateMatching 重叠子序列检测方法,m=5
Source Files ¶
- approximate_entropy.go
- autocorrelation.go
- binary_derivative.go
- cumulative.go
- discrete_fourier_transform.go
- frequency_within_block.go
- linear_complexity.go
- longest_run_of_ones_In_block.go
- matrix_rank.go
- maurers_universal.go
- mono_bit_frequency.go
- overlapping.go
- poker.go
- runs.go
- runs_distribution.go
- structs.go
- utils.go