A computer-implemented method for recoding binary representations for use in a comb-based elliptic curve point multiplication, in an elliptic curve cryptosystem, comprising: receiving a point P and an integer k; setting k' based at least in part on a value of k, wherein k' is an odd integer; converting the odd integer k ' into a binary representation; configuring the binary representation of n bits as comb bit-columns, wherein each of the comb bit-columns is a signed odd integer, wherein the method is configured for a window width w ≥ 2 where d = ⌊ n + 1 w ⌋, wherein the configuring comprises: converting each bit b i of a least significant d bits of the binary representation of the odd integer k' consistent with having a least significant signed digit b i ′ in each comb bit-column that is either a 1 or a -1, wherein converting each bit b i of the least significant d bits comprises: configuring a loop for index i running from the least significant bit towards higher significant bits, within which the least significant d bits are set according to: if b i = 1 then set b i ′ = 1; and if b i = 0 then set b i ′ = 1 and b i − 1 ′ = 1 ̅; and converting bits b i of the binary representation having significance greater than d such that a resulting signed digit b i ′ at an i -th position is either a 0 or a signed 1, wherein the signed 1 is signed according to a signed digit b i mod d ′ at an ( i mod d) th position, wherein converting bits of significance greater than d comprises: setting an initial value for e, wherein e = ⌊ k 2 d ⌋; configuring a loop, within which: if e is odd and b i mod d ′ = 1 ̅, setting b i ′ = 1 ⇀ and e = ⌊ e 2 ⌋ + 1; and otherwise, setting b i ′ = e mod 2, and e = ⌊ e 2 ⌋ processing the comb bit-columns and the point P to calculate a value Q, wherein Q = kP; and outputting Q. receiving a point P and an integer k; setting k' based at least in part on a value of k, wherein k' is an odd integer; converting the odd integer k ' into a binary representation; configuring the binary representation of n bits as comb bit-columns, wherein each of the comb bit-columns is a signed odd integer, wherein the method is configured for a window width w ≥ 2 where d = ⌊ n + 1 w ⌋, wherein the configuring comprises: converting each bit b i of a least significant d bits of the binary representation of the odd integer k' consistent with having a least significant signed digit b i ′ in each comb bit-column that is either a 1 or a -1, wherein converting each bit b i of the least significant d bits comprises: configuring a loop for index i running from the least significant bit towards higher significant bits, within which the least significant d bits are set according to: if b i = 1 then set b i ′ = 1; and if b i = 0 then set b i ′ = 1 and b i − 1 ′ = 1 ̅; and converting bits b i of the binary representation having significance greater than d such that a resulting signed digit b i ′ at an i -th position is either a 0 or a signed 1, wherein the signed 1 is signed according to a signed digit b i mod d ′ at an ( i mod d) th position, wherein converting bits of significance greater than d comprises: setting an initial value for e, wherein e = ⌊ k 2 d ⌋; configuring a loop, within which: if e is odd and b i mod d ′ = 1 ̅, setting b i ′ = 1 ⇀ and e = ⌊ e 2 ⌋ + 1; and otherwise, setting b i ′ = e mod 2, and e = ⌊ e 2 ⌋ converting each bit b i of a least significant d bits of the binary representation of the odd integer k' consistent with having a least significant signed digit b i ′ in each comb bit-column that is either a 1 or a -1, wherein converting each bit b i of the least significant d bits comprises: configuring a loop for index i running from the least significant bit towards higher significant bits, within which the least significant d bits are set according to: if b i = 1 then set b i ′ = 1; and if b i = 0 then set b i ′ = 1 and b i − 1 ′ = 1 ̅; and if b i = 1 then set b i ′ = 1; and if b i = 0 then set b i ′ = 1 and b i − 1 ′ = 1 ̅; and converting bits b i of the binary representation having significance greater than d such that a resulting signed digit b i ′ at an i -th position is either a 0 or a signed 1, wherein the signed 1 is signed according to a signed digit b i mod d ′ at an ( i mod d) th position, wherein converting bits of significance greater than d comprises: setting an initial value for e, wherein e = ⌊ k 2 d ⌋; configuring a loop, within which: if e is odd and b i mod d ′ = 1 ̅, setting b i ′ = 1 ⇀ and e = ⌊ e 2 ⌋ + 1; and otherwise, setting b i ′ = e mod 2, and e = ⌊ e 2 ⌋ setting an initial value for e, wherein e = ⌊ k 2 d ⌋; configuring a loop, within which: if e is odd and b i mod d ′ = 1 ̅, setting b i ′ = 1 ⇀ and e = ⌊ e 2 ⌋ + 1; and otherwise, setting b i ′ = e mod 2, and e = ⌊ e 2 ⌋ processing the comb bit-columns and the point P to calculate a value Q, wherein Q = kP; and outputting Q.