I have been going through this example of MOV attack on a particular curve (namely $y^2 = x^3 + x + 300$ over $\mathbb F_{8111}$. The example quite clearly demonstrates how the attack actually works.
However, the answer does not show how the random point $R$ having specific order ($8269$ here) is chosen. The linked source code does something very interesting -
R = E_.random_element() * (E_.order() // E.order()^2)
Here E is the curve on the base field and E_ is the curve on the extension field.
In the above code, a random point $T \in E(\mathbb F_{q^k})$ is chosen. Taking $n = \#E(\mathbb F_{q^k})$ and $m = \#E(\mathbb F_q)$, it basically is computing $R = (n / m^2) T$.
From whatever other references of MOV attack I could find, they choose the point $R'$ as $(n / m) T$ which is intuitive as $m R' = n T = O$.
What is not clear to me is the additional factor of $m$ in the denominator when finding $R$ here. Furthermore, when tested using SAGE, I observed that in the given example, $(n/m) T$ almost always turns out to be $O$ (infact, in my testing, in no case was it not the point-at-infinity). Is this scenario specific to this example, or does it generalise to other examples as well? Also how can we show that $R$ is actually an $m$-torsion point, ie, $m R = (n/m) T \stackrel{?}{=} O$ for any random $T$?
EDIT: Using SAGE, we can see that $E(\mathbb F_{q^k})$ is infact isomorphic to $Z_{n_1} \times Z_{n_2}$ (take $n_1 \mid n_2$) and therefore, each element's order can be atmost $n_2$.
sage: E_.abelian_group()
Additive abelian group isomorphic to Z/32265638 + Z/16538 embedded in Abelian group of points on Elliptic Curve defined by y^2 = x^3 + x + 300 over Finite Field in x of size 8111^3
Does this mean that in each case of MOV attack, we need to know the underlying structure before proceeding? How could we have known this apriori?