  This paper presents a unifying framework to construct low-density
parity-check (LDPC) codes with associated Tanner graphs of desired girth.
Towards this goal, we highlight the role that a certain square matrix that
appears in the product of the parity-check matrix with its transpose has in the
construction of codes with graphs of desired girth and further explore it in
order to generate the set of necessary and sufficient conditions for a Tanner
graph to have a given girth between 6 and 12. For each such girth, we present
algorithms to construct codes of the desired girth and we show how to use them
to compute the minimum necessary value of the lifting factor. For girth larger
than 12, we show how to use multi-step graph lifting methods to
deterministically modify codes in order to increase their girth. We also give a
new perspective on LDPC protograph-based parity-check matrices by viewing them
as rows of a parity-check matrix equal to the sum of certain permutation
matrices and obtain an important connection between all protographs and those
with variable nodes of degree 2. We also show that the results and methodology
that we develop for the all-one protograph can be used and adapted to analyze
the girth of the Tanner graph of any parity-check matrix and demonstrate how
this can be done using a well-known irregular, multi-edge protograph specified
by the NASA Consultative Committee for Space Data Systems (CCSDS). Throughout
the paper, we exemplify our theoretical results with constructions of LDPC
codes with Tanner graphs of any girth between 6 and 14 and give sufficient
conditions for a multi-step lifted parity-check matrix to have girth between 14
and 22.
