被广泛运用的纠错技术
相比于传统密钥可以准确地被输入密码系统,生物特征密钥在采集时会面临着光照、角度、磨损、采集设备不同等实际情况。这会导致本次采集到的信息和库内保存的信息并不能完全做到一致。因此,纠错技术被广泛运用其中。
纠错技术最早应用在通信领域,当发送方发送一串消息时,由于通信信道的不稳定,可能在传输过程中出现噪声,导致接收方无法收到正确的消息。为了解决这个问题,发送方通常会将待发送的消息附上一定的校验及冗余信息,这样即使在传输过程中出现了噪声,也很容易从收到的冗余信息中恢复出发送方的消息。
另外,在早期的光盘,如今的 5G 通信技术,以及每天使用的二维码中,都处处包含着纠错技术。因此我们很容易直接借鉴纠错技术对生物特征进行纠错。
有了纠错技术,我们来看如何将其用于绑定密钥,构成生物特征密码系统。假设生物特征可以被编码成一个消息 m,选定一种纠错码 C = (Enc, Dec),再给定待绑定的密钥 k,我们可以生成一份文件 v = Enc(k) + m。
这时,由于加法的混淆,冒充者既无法从文件 v 中得知密钥 k,也无法从中还原出生物特征 m。而对于用户来说,当下一次采集的生物特征被编码成另一个消息 m’ 时,我们计算 k’= Dec(v - m’),因为 m’ 和 m 非常相似,即仅有很少的错误发生,那么 k’ = Dec(m - m’ + Enc(k)) = k,也就是说用户得到了之前绑定的密钥。进而可以拿该密钥解锁密码系统的信息。可以看到,纠错码在生物密钥系统中扮演着重要的角色。在接下来的文章中,我们将简单介绍一些纠错码的基础知识。
纠错码的基础知识
简单来说,分块纠错码是一个单射函数 ,其中 是有限字母表,将一块长度为 k 的消息映射到长度为 n 的码字。因为 C 是单射,不同的消息会被映射到不同的码字,显然有 。当然,为了纠错,我们还需要一个解码函数 ,满足 。即,或者将收到的消息正确解码,或者无法正确解码,输出 *。




