  Cyclic redundancy check (CRC) codes combined with convolutional codes yield a
powerful concatenated code that can be efficiently decoded using list decoding.
To help design such systems, this paper presents an efficient algorithm for
identifying the distance-spectrum-optimal (DSO) CRC polynomial for a given
tail-biting convolutional code (TBCC) when the target undetected error rate
(UER) is small. Lou et al. found that the DSO CRC design for a given
zero-terminated convolutional code under low UER is equivalent to maximizing
the undetected minimum distance (the minimum distance of the concatenated
code). This paper applies the same principle to design the DSO CRC for a given
TBCC under low target UER. Our algorithm is based on partitioning the
tail-biting trellis into several disjoint sets of tail-biting paths that are
closed under cyclic shifts. This paper shows that the tail-biting path in each
set can be constructed by concatenating the irreducible error events (IEEs) and
circularly shifting the resultant path. This motivates an efficient collection
algorithm that aims at gathering IEEs, and a search algorithm that reconstructs
the full list of error events with bounded distance of interest, which can be
used to find the DSO CRC. Simulation results show that DSO CRCs can
significantly outperform suboptimal CRCs in the low UER regime.
